MDL-86463 libraries: Upgrade AWS SDK for PHP to 3.356.22

This commit is contained in:
Andi Permana
2025-09-29 18:14:10 +07:00
parent a828ba12c1
commit 9a09603bad
737 changed files with 4483 additions and 2318 deletions
+797 -86
View File
@@ -1,91 +1,802 @@
# CHANGELOG
## 3.342.2 - 2025-03-07
* `Aws\BedrockAgent` - Introduces support for Neptune Analytics as a vector data store and adds Context Enrichment Configurations, enabling use cases such as GraphRAG.
* `Aws\ElasticLoadBalancingv2` - This release adds support for assigning IP addresses to Application Load Balancers from VPC IP Address Manager pools.
* `Aws\CloudFront` - Documentation updates for Amazon CloudFront.
* `Aws\NeptuneGraph` - Several small updates to resolve customer requests.
* `Aws\BedrockAgentRuntime` - Support Multi Agent Collaboration within Inline Agents
* `Aws\EC2` - Add serviceManaged field to DescribeAddresses API response.
## 3.342.1 - 2025-03-06
* `Aws\NetworkFlowMonitor` - This release contains 2 changes. 1: DeleteScope/GetScope/UpdateScope operations now return 404 instead of 500 when the resource does not exist. 2: Expected string format for clientToken fields of CreateMonitorInput/CreateScopeInput/UpdateMonitorInput have been updated to be an UUID based string.
* `Aws\RedshiftDataAPIService` - This release adds support for ListStatements API to filter statements by ClusterIdentifier, WorkgroupName, and Database.
* `Aws\CloudTrail` - Doc-only update for CloudTrail.
* `Aws\WAFV2` - You can now perform an exact match or rate limit aggregation against the web request's JA4 fingerprint.
* `Aws\IVSRealTime` - IVS Real-Time now offers customers the ability to merge fragmented recordings in the event of a participant disconnect.
* `Aws\WorkSpaces` - Added a new ModifyEndpointEncryptionMode API for managing endpoint encryption settings.
* `Aws\Bedrock` - This releases adds support for Custom Prompt Router
## 3.342.0 - 2025-03-05
* `Aws\Handler` - Remove code for unsupported version v5 of Guzzle.
* `Aws\BedrockRuntime` - This releases adds support for Custom Prompt Router ARN
* `Aws\GameLiftStreams` - New Service: Amazon GameLift Streams delivers low-latency game streaming from AWS global infrastructure to virtually any device with a browser at up to 1080p resolution and 60 fps.
* `Aws\WorkSpaces` - Added DeviceTypeWorkSpacesThinClient type to allow users to access their WorkSpaces through a WorkSpaces Thin Client.
* `Aws\DataSync` - AWS DataSync now supports modifying ServerHostname while updating locations SMB, NFS, and ObjectStorage.
* `Aws\IoTFleetWise` - This release adds floating point support for CAN/OBD signals and adds support for signed OBD signals.
## 3.341.0 - 2025-03-04
* `Aws\ClientSideMonitoring` - Updates handling of `csm_port` value if provided in ini file
* `Aws\IoTManagedIntegrations` - Adding managed integrations APIs for IoT Device Management to setup and control devices across different manufacturers and connectivity protocols. APIs include managedthing operations, credential and provisioning profile management, notification configuration, and OTA update.
* `Aws\RDS` - Note support for Database Insights for Amazon RDS.
* `Aws\IoTSiteWise` - AWS IoT SiteWise now supports MQTT-enabled, V3 gateways. Configure data destinations for real-time ingestion into AWS IoT SiteWise or buffered ingestion using Amazon S3 storage. You can also use path filters for precise data collection from specific MQTT topics.
* `Aws\ElastiCache` - Doc only update, listing 'valkey7' and 'valkey8' as engine options for parameter groups.
## 3.340.5 - 2025-03-03
* `Aws\` - Changes to align with current waiter specifications.
* `Aws\EC2` - Update the DescribeVpcs response
* `Aws\CognitoIdentityProvider` - Added the capacity to return available challenges in admin authentication and to set version 3 of the pre token generation event for M2M ATC.
* `Aws\CloudWatchRUM` - Add support for PutResourcePolicy, GetResourcePolicy and DeleteResourcePolicy to support resource based policies for AWS CloudWatch RUM
* `Aws\SageMaker` - Add DomainId to CreateDomainResponse
* `Aws\TranscribeService` - Updating documentation for post call analytics job queueing.
* `Aws\QBusiness` - Adds support for the ingestion of audio and video files by Q Business, which can be configured with the mediaExtractionConfiguration parameter.
## 3.340.4 - 2025-02-28
* `Aws\S3` - Adds missing, unimplemented streamwrapper methods
* `Aws\MediaConvert` - The AWS MediaConvert Probe API allows you to analyze media files and retrieve detailed metadata about their content, format, and structure.
* `Aws\EKS` - Adding licenses to EKS Anywhere Subscription operations response.
* `Aws\BedrockDataAutomationRuntime` - Added a mandatory parameter DataAutomationProfileArn to support for cross region inference for InvokeDataAutomationAsync API. Renamed DataAutomationArn to DataAutomationProjectArn. Added APIs to support tagging.
* `Aws\BedrockAgent` - This release lets Amazon Bedrock Flows support newer models by increasing the maximum length of output in a prompt configuration. This release also increases the maximum number of prompt variables to 20 and the maximum number of node inputs to 20.
* `Aws\BedrockDataAutomation` - Renamed and added new StandardConfiguration enums. Added support to update EncryptionConfiguration in UpdateBlueprint and UpdateDataAutomation APIs. Changed HttpStatus code for DeleteBlueprint and DeleteDataAutomationProject APIs to 200 from 204. Added APIs to support tagging.
* `Aws\SSM` - Systems Manager doc-only updates for Feb. 2025.
* `Aws\Pricing` - Update GetProducts and DescribeServices API request input validations.
* `Aws\DatabaseMigrationService` - Add skipped status to the Result Statistics of an Assessment Run
## 3.340.3 - 2025-02-27
* `Aws\BedrockAgentRuntime` - Introduces Sessions (preview) to enable stateful conversations in GenAI applications.
* `Aws\RedshiftServerless` - Add track support for Redshift Serverless workgroup.
* `Aws\StorageGateway` - This release adds support to invoke a process that cleans the specified file share's cache of file entries that are failing upload to Amazon S3.
* `Aws\QBusiness` - This release supports deleting attachments from conversations.
* `Aws\SageMaker` - SageMaker HubService is introducing support for creating Training Jobs in Curated Hub (Private Hub). Additionally, it is introducing two new APIs: UpdateHubContent and UpdateHubContentReference.
* `Aws\EMR` - Definition update for EbsConfiguration.
## 3.340.2 - 2025-02-26
* `Aws\OAM` - This release adds support for sharing AWS::ApplicationSignals::Service and AWS::ApplicationSignals::ServiceLevelObjective resources.
* `Aws\Batch` - AWS Batch: Resource Aware Scheduling feature support
* `Aws\Chime` - Removes the Amazon Chime SDK APIs from the "chime" namespace. Amazon Chime SDK APIs continue to be available in the AWS SDK via the dedicated Amazon Chime SDK namespaces: chime-sdk-identity, chime-sdk-mediapipelines, chime-sdk-meetings, chime-sdk-messaging, and chime-sdk-voice.
* `Aws\EC2` - Amazon EC2 Fleet customers can now override the Block Device Mapping specified in the Launch Template when creating a new Fleet request, saving the effort of creating and associating new Launch Templates to customize the Block Device Mapping.
* `Aws\IoTFleetWise` - This release adds an optional listResponseScope request parameter in certain list API requests to limit the response to metadata only.
* `Aws\SageMaker` - AWS SageMaker InferenceComponents now support rolling update deployments for Inference Components.
* `Aws\ApplicationSignals` - This release adds API support for reading Service Level Objectives and Services from monitoring accounts, from SLO and Service-scoped operations, including ListServices and ListServiceLevelObjectives.
* `Aws\CloudFront` - Documentation update for VPC origin config.
## 3.340.1 - 2025-02-25
* `Aws\DeviceFarm` - Add an optional configuration to the ScheduleRun and CreateRemoteAccessSession API to set a device level http/s proxy.
* `Aws\EC2` - Adds support for time-based EBS-backed AMI copy operations. Time-based copy ensures that EBS-backed AMIs are copied within and across Regions in a specified timeframe.
* `Aws\TaxSettings` - PutTaxRegistration API changes for Egypt, Greece, Vietnam countries
* `Aws\CodeBuild` - Adding "reportArns" field in output of BatchGetBuildBatches API. "reportArns" is an array that contains the ARNs of reports created by merging reports from builds associated with the batch build.
* `Aws\IoT` - AWS IoT - AWS IoT Device Defender adds support for a new Device Defender Audit Check that monitors device certificate age and custom threshold configurations for both the new device certificate age check and existing device certificate expiry check.
## 3.356.22 - 2025-09-20
* `Aws\MediaLive` - Add MinBitrate for QVBR mode under H264/H265/AV1 output codec. Add GopBReference, GopNumBFrames, SubGopLength fields under H265 output codec.
* `Aws\KendraRanking` - Model whitespace change - no client difference
* `Aws\LicenseManagerUserSubscriptions` - Added support for cross-account Active Directories.
* `Aws\Connect` - This release adds a persistent connection field to UserPhoneConfig that maintains agent's softphone media connection for faster call connections.
* `Aws\ConfigService` - Add UNKNOWN state to RemediationExecutionState and add IN_PROGRESS/EXITED/UNKNOWN states to RemediationExecutionStepState.
* `Aws\BedrockAgentCoreControl` - Add tagging and VPC support to AgentCore Runtime, Code Interpreter, and Browser resources. Add support for configuring request headers in Runtime. Fix AgentCore Runtime shape names.
* `Aws\SQS` - Update invalid character handling documentation for SQS SendMessage API
## 3.356.21 - 2025-09-18
* `Aws\Exception` - Loosens requirements for `$previous` `AwsException` parameter from `Exception` to `Throwable`.
* `Aws\Bedrock` - Release includes an increase to the maximum policy build document size, an update to DeleteAutomatedReasoningPolicyBuildWorkflow to add ResourceInUseException, and corrections to UpdateAutomatedReasoningPolicyTestCaseRequest.
* `Aws\ChimeSDKMessaging` - Amazon Chime SDK Messaging GetMessagingSessionEndpoint API now returns dual-stack WebSocket endpoints supporting IPv4/IPv6.
* `Aws\EC2` - Allowed AMIs adds support for four new parameters - marketplaceProductCodes, deprecationTimeCondition, creationDateCondition and imageNames
* `Aws\Budgets` - Added BillingViewHealthStatus Exception which is thrown when a Budget is created or updated with a Billing View that is not in the HEALTHY status
## 3.356.20 - 2025-09-17
* `Aws\NetworkFirewall` - Network Firewall now prevents TLS handshakes with the target server until after the Server Name Indication (SNI) has been seen and verified. The monitoring dashboard now provides deeper insights into PrivateLink endpoint candidates and offers filters based on IP addresses and protocol.
* `Aws\PCS` - Add support for Amazon EC2 Capacity Blocks for ML
* `Aws\EC2` - Add mac-m4.metal and mac-m4pro.metal instance types.
## 3.356.19 - 2025-09-16
* `Aws\CloudWatchLogs` - Cloudwatch Logs added support for 2 new API parameters in metric and subscription filter APIs to filter log events based on system field values and emit system field values as dimensions and send them to customer destination as additional metadata.
* `Aws\IVSRealTime` - IVS now offers customers the ability to control the positioning of participants in both grid and PiP layouts based on custom attribute values in participant tokens.
* `Aws\Budgets` - Add support for custom time periods in budget configuration
* `Aws\OSIS` - Adds support for cross-account ingestion for push-based sources. This includes resource policies for sharing pipelines across accounts and features for managing pipeline endpoints which enable accessing pipelines across different VPCs, including VPCs in other accounts.
## 3.356.18 - 2025-09-15
* `Aws\S3Control` - Introduce three new encryption filters: EncryptionType (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C, NOT-SSE), KmsKeyArn (for SSE-KMS and DSSE-KMS), and BucketKeyEnabled (for SSE-KMS).
* `Aws\ObservabilityAdmin` - CloudWatch Observability Admin adds the ability to enable telemetry centralization in customers' Organizations. The release introduces new APIs to manage centralization rules, which define settings to replicate telemetry data to a central destination in the customers' Organization.
* `Aws\MedicalImaging` - Added support for OpenID Connect (OIDC) custom authorizer
* `Aws\CostExplorer` - Added endpoint support for eusc-de-east-1 region.
## 3.356.17 - 2025-09-12
* `Aws\` - Once again allow psr/http-message 1.0, for increased compatibility with other packages.
* `Aws\PaymentCryptography` - Add support for certificates to be signed by 3rd party certificate authorities. New API GetCertificateSigningRequest API and support for providing certificates at run-time for tr-34 import/export
## 3.356.16 - 2025-09-11
* `Aws\Api` - Fixes bug in document type validation where unordered integer array keys are not considered.
* `Aws\GuardDuty` - Updated Java SDK implementation of entity set status in GuardDuty API.
* `Aws\DataZone` - adding IAM principal id to IAM user profile details
* `Aws\QuickSight` - This release adds support for Account level custom permissions, additional Dashboard Options, and Null support for Q&A.
* `Aws\PrometheusService` - Add Vended Logs APIs for Amazon Prometheus Managed Collector
* `Aws\RDS` - Adds support for end-to-end IAM authentication in RDS Proxy for MySQL, MariaDB, and PostgreSQL engines.
* `Aws\MediaLive` - AWS Elemental MediaLive adds a new feature in MediaPackage output group that enables MediaPackage V2 users to control HLS-related parameters directly in MediaLive. These parameter settings are then reflected in MediaPackage outputs, providing more streamlined control over HLS configurations.
* `Aws\Evs` - CreateEnvironment API now supports parameters (isHcxPublic & hcxNetworkAclId) for HCX migration via public internet, adding flexibility for migration scenarios. New APIs have been added for associating (AssociateEipToVlan) & disassociating (DisassociateEipFromVlan) Elastic IP (EIP) addresses.
* `Aws\ECS` - This release supports hook details for Amazon ECS lifecycle hooks.
* `Aws\EMRContainers` - Added nodeLabel support in container provider to aid hardware isolation support for virtual cluster and security configuration.
## 3.356.15 - 2025-09-10
* `Aws\NetworkFlowMonitor` - Added new enum value (AWS::Region) for type field under MonitorLocalResource and MonitorRemoteResource. Workload Insights and Monitor top contributors queries now support a new DestinationCategory (INTER_REGION).
* `Aws\PaymentCryptography` - AWS Payment Cryptography Service now supports Multi-Region key replication. Customers can choose to automatically distribute keys across AWS Regions.
## 3.356.14 - 2025-09-09
* `Aws\AutoScaling` - Added WaitForTransitioningInstances parameter to the CancelInstanceRefresh API, allowing the caller to cancel an instance refresh without waiting for on-going launches and terminations.
* `Aws\DataZone` - Adds support for custom blueprints
* `Aws\MediaPackageV2` - Added CUE tag SCTE output to MediaPackageV2 HLS and LL-HLS manifests.
* `Aws\SageMaker` - Released IPv6 support with dual-stack domain options on SageMaker Studio and introduced support for p6-b200.48xlarge instance type on SageMaker Studio for JupyterLab and CodeEditor applications.
* `Aws\CloudWatch` - Added a new API - DescribeAlarmContributors API, to retrieve alarm contributors in ALARM state. Added support in DescribeAlarmHistory API to query alarm contributor history
* `Aws\Connect` - SDK release for user defined predefined attributes.
* `Aws\Organizations` - Documentation updates for AWS Organizations APIs.
## 3.356.13 - 2025-09-08
* `Aws\IoTSiteWise` - Add ComputationModelVersion support in IoT SiteWise APIs
* `Aws\SecurityHub` - This release adds the RESOURCE_NOT_FOUND error code as a possible value in responses to the following operations: BatchGetStandardsControlAssociations, BatchUpdateStandardsControlAssociations, and BatchGetSecurityControls.
* `Aws\S3` - This release includes backward compatibility work on the "Expires" parameter.
## 3.356.12 - 2025-09-05
* `Aws\ECS` - This is a documentation only release that adds additional information for Amazon ECS Availability Zone rebalancing.
* `Aws\PCS` - Documentation-only update to add AccountingStorageEnforce to SlurmCustomSetting.
* `Aws\SageMaker` - Release IPv6 support with dualstack in SageMaker Notebooks, Tiered Storage Checkpointing Support in SageMaker HyperPod and P5.4xlarge instance type for SageMaker Hosting.
## 3.356.11 - 2025-09-04
* `Aws\OpenSearchServerless` - Add support for Federal Information Processing Standards (FIPS) and Federal Risk and Authorization Management Program (FedRAMP) compliance
* `Aws\CloudFormation` - ListHookResults API now supports retrieving invocation results for all CloudFormation Hooks (previously limited to create change set and Cloud Control operations) with new optional parameters for filtering by Hook status and ARN.
* `Aws\CleanRooms` - Add support for configurable compute sizes for PySpark jobs.
* `Aws\VerifiedPermissions` - Amazon Verified Permissions / Features : Adds support for datetime and duration attribute values.
* `Aws\RDS` - Added new EndpointNetworkType and TargetConnectionNetworkType fields in Proxy APIs to support IPv6
* `Aws\EC2` - Add m8i, m8i-flex and i8ge instance types.
## 3.356.10 - 2025-09-03
* `Aws\CleanRooms` - Added support for adding new data provider members to an existing collaboration.
* `Aws\MQ` - Add CONFIG_MANAGED as a supported AuthenticationStrategy for Amazon MQ for RabbitMQ brokers. Make username and password optional on broker creation for CONFIG_MANAGED brokers.
* `Aws\CloudFront` - Adding an optional field IpAddressType in CustomOriginConfig
* `Aws\CleanRoomsML` - AWS Clean Rooms ML adds log sanitization for privacy-enhanced error summaries, supports new instance types for custom models providing better performance and lower costs, and deprecates P3-series instances.
* `Aws\RDS` - This release adds support for MasterUserAuthenticationType parameter on CreateDBInstance, ModifyDBInstance, CreateDBCluster, and ModifyDBCluster operations.
* `Aws\Route53Domains` - Added new ExtraParams AU_ELIGIBILITY_TYPE, AU_POLICY_REASON, and AU_REGISTRANT_NAME
* `Aws\Route53` - Amazon Route 53 now supports the Asia Pacific (New Zealand) Region (ap-southeast-6) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region.
## 3.356.9 - 2025-09-02
* `Aws\Sms` - Removes the Service Migration Service, which has been deprecated.
* `Aws\EC2` - MaximumEbsAttachments and AttachmentLimitType fields added to DescribeInstanceTypesResponse. G6f, Gr6f, R8i, R8i-flex and p5.4xlarge instance types added to InstanceTypes enum.
* `Aws\Notifications` - Added Org support for notifications: - `ListMemberAccounts` gets member accounts list, `AssociateOrganizationalUnit` links OU to notification configuration, `DisassociateOrganizationalUnit` removes OU from notification configuration, `ListOrganizationalUnits` shows OUs configured for notifications.
* `Aws\Neptune` - Removed the deprecated marker from publiclyAccessible parameter from DbInstance, CreateDbInstance and ModifyDbInstance and added relevant usage information for the parameter.
* `Aws\WorkMail` - Make RoleArn an optional parameter for the PutEmailMonitoringConfiguration API, and add UnsupportedOperationException to RegisterToWorkMail.
## 3.356.8 - 2025-08-29
* `Aws\BedrockRuntime` - Fixed stop sequence limit for converse API.
* `Aws\EC2` - Release shows new route types such as filtered and advertisement.
* `Aws\XRay` - AWS X-Ray Features: Support Sampling Rate Boost On Anomaly
## 3.356.7 - 2025-08-28
* `Aws\Credentials` - Updates `CredentialProvider::memoize()` to refresh credentials that within 1 minute of expiration.
* `Aws\ManagedBlockchainQuery` - Remove incorrect endpoint tests
* `Aws\TimestreamQuery` - Remove incorrect endpoint tests
* `Aws\EC2InstanceConnect` - Remove incorrect endpoint tests
* `Aws\EventBridge` - Remove incorrect endpoint tests
* `Aws\WorkMailMessageFlow` - Remove incorrect endpoint tests
* `Aws\XRay` - Remove incorrect endpoint tests
* `Aws\SWF` - Remove incorrect endpoint tests
* `Aws\Scheduler` - Remove incorrect endpoint tests
* `Aws\ECR` - Remove incorrect endpoint tests
* `Aws\PCS` - Remove incorrect endpoint tests
* `Aws\ApplicationCostProfiler` - Remove incorrect endpoint tests
* `Aws\ServiceQuotas` - Remove incorrect endpoint tests
* `Aws\CloudSearchDomain` - Remove incorrect endpoint tests
* `Aws\MarketplaceDeployment` - Remove incorrect endpoint tests
* `Aws\Connect` - AgentStatusDrillDown feature in GetCurrentMetricData API. Adding AGENT_STATUS as filter and grouping in GetCurrentMetricData API
* `Aws\OSIS` - Remove incorrect endpoint tests
* `Aws\Omics` - Adds Amazon ECR pull through cache support to AWS HealthOmics, so you can more easily use container images from external sources.
* `Aws\Glue` - Adding support to fetch TargetDatabase field during GetDatabases with AttributesToGet
* `Aws\CodeDeploy` - Remove incorrect endpoint tests
* `Aws\EntityResolution` - Remove incorrect endpoint tests
* `Aws\OAM` - Remove incorrect endpoint tests
* `Aws\GeoPlaces` - Remove incorrect endpoint tests
* `Aws\AppRunner` - Doc only updates for APIs and and datatypes related to IPAddressType and Subnets for IPv6 dualstack support.
* `Aws\Route53Domains` - Remove incorrect endpoint tests
* `Aws\FIS` - Remove incorrect endpoint tests
* `Aws\CodeGuruReviewer` - Remove incorrect endpoint tests
* `Aws\Amplify` - Remove incorrect endpoint tests
* `Aws\EC2` - This release adds support for copying Amazon EBS snapshot and AMIs to and from Local Zones.
* `Aws\PinpointSMSVoice` - Remove incorrect endpoint tests
* `Aws\MTurk` - Remove incorrect endpoint tests
* `Aws\SSMGuiConnect` - Remove incorrect endpoint tests
* `Aws\SsmSap` - Added support for Configuration Checks on SAP HANA Applications.
* `Aws\Pipes` - Remove incorrect endpoint tests
* `Aws\CloudHSMV2` - Remove incorrect endpoint tests
* `Aws\InternetMonitor` - Remove incorrect endpoint tests
* `Aws\EMR` - Remove incorrect endpoint tests
* `Aws\ApplicationAutoScaling` - Remove incorrect endpoint tests
* `Aws\HealthLake` - Add ValidationLevel parameter to StartFHIRImportJob API, allowing users to specify a FHIR validation level for their asynchronous import jobs.
* `Aws\SSO` - Remove incorrect endpoint tests
* `Aws\NetworkFirewall` - Remove incorrect endpoint tests
* `Aws\Rekognition` - Remove incorrect endpoint tests
* `Aws\AutoScalingPlans` - Remove incorrect endpoint tests
* `Aws\GlueDataBrew` - Remove incorrect endpoint tests
* `Aws\MediaStoreData` - Remove incorrect endpoint tests
* `Aws\SES` - Remove incorrect endpoint tests
* `Aws\DynamoDB` - Remove incorrect endpoint tests
* `Aws\MachineLearning` - Remove incorrect endpoint tests
* `Aws\LicenseManagerUserSubscriptions` - Remove incorrect endpoint tests
* `Aws\InspectorScan` - Remove incorrect endpoint tests
* `Aws\SESv2` - Remove incorrect endpoint tests
* `Aws\ConnectCampaignService` - Remove incorrect endpoint tests
* `Aws\WAF` - Remove incorrect endpoint tests
* `Aws\BedrockRuntime` - Remove incorrect endpoint tests
* `Aws\FMS` - Remove incorrect endpoint tests
* `Aws\OpenSearchService` - Remove incorrect endpoint tests
* `Aws\Kinesis` - Remove incorrect endpoint tests
* `Aws\SSMIncidents` - Remove incorrect endpoint tests
* `Aws\GeoMaps` - Remove incorrect endpoint tests
* `Aws\QuickSight` - Remove incorrect endpoint tests
* `Aws\SavingsPlans` - Remove incorrect endpoint tests
* `Aws\Cloud9` - Remove incorrect endpoint tests
* `Aws\PinpointSMSVoiceV2` - Remove incorrect endpoint tests
* `Aws\RDS` - Added RDS HTTP Endpoint feature support flag to DescribeOrderableDBInstanceOptions API
## 3.356.6 - 2025-08-27
* `Aws\S3Tables` - Remove incorrect endpoint tests
* `Aws\ChimeSDKIdentity` - Remove incorrect endpoint tests
* `Aws\IoT` - Remove incorrect endpoint tests
* `Aws\CleanRoomsML` - Remove incorrect endpoint tests
* `Aws\Chime` - Remove incorrect endpoint tests
* `Aws\WorkDocs` - Remove incorrect endpoint tests
* `Aws\KafkaConnect` - Remove incorrect endpoint tests
* `Aws\EKS` - Add support for on-demand refresh of EKS cluster insights
* `Aws\BedrockAgentCore` - Remove incorrect endpoint tests
* `Aws\IoTWireless` - Remove incorrect endpoint tests
* `Aws\VPCLattice` - Remove incorrect endpoint tests
* `Aws\AppConfigData` - Remove incorrect endpoint tests
* `Aws\ElastiCache` - Remove incorrect endpoint tests
* `Aws\CodeBuild` - Remove incorrect endpoint tests
* `Aws\IVSRealTime` - Remove incorrect endpoint tests
* `Aws\LexModelBuildingService` - Remove incorrect endpoint tests
* `Aws\Neptune` - Remove incorrect endpoint tests
* `Aws\CodeConnections` - Remove incorrect endpoint tests
* `Aws\ChimeSDKMeetings` - Remove incorrect endpoint tests
* `Aws\ApplicationInsights` - Remove incorrect endpoint tests
* `Aws\AppTest` - Remove incorrect endpoint tests
* `Aws\AmplifyUIBuilder` - Remove incorrect endpoint tests
* `Aws\AmplifyBackend` - Remove incorrect endpoint tests
* `Aws\LakeFormation` - Remove incorrect endpoint tests
* `Aws\Personalize` - Remove incorrect endpoint tests
* `Aws\DirectoryService` - Add APIs for CA AutoEnrollment support: DescribeCAEnrollmentPolicy, EnableCAEnrollmentPolicy and DisableCAEnrollmentPolicy.
* `Aws\MigrationHubConfig` - Remove incorrect endpoint tests
* `Aws\MarketplaceReporting` - Remove incorrect endpoint tests
* `Aws\PI` - Remove incorrect endpoint tests
* `Aws\QApps` - Remove incorrect endpoint tests
* `Aws\TimestreamWrite` - Remove incorrect endpoint tests
* `Aws\Schemas` - Remove incorrect endpoint tests
* `Aws\ivschat` - Remove incorrect endpoint tests
* `Aws\SageMaker` - This release adds support for AutoScaling on SageMaker HyperPod.
* `Aws\Redshift` - Remove incorrect endpoint tests
* `Aws\ApplicationDiscoveryService` - Remove incorrect endpoint tests
* `Aws\KMS` - Remove incorrect endpoint tests
* `Aws\SupplyChain` - Remove incorrect endpoint tests
* `Aws\WorkMail` - Remove incorrect endpoint tests
* `Aws\SnowDeviceManagement` - Remove incorrect endpoint tests
* `Aws\Batch` - Added ECS_AL2023_NVIDIA as an option for Ec2Configuration.imageType.
* `Aws\ChimeSDKVoice` - Remove incorrect endpoint tests
* `Aws\KinesisVideoMedia` - Remove incorrect endpoint tests
* `Aws\Inspector` - Remove incorrect endpoint tests
* `Aws\NeptuneGraph` - Add StartGraph and StopGraph operations to Neptune Analytics
* `Aws\ACMPCA` - Remove incorrect endpoint tests
* `Aws\RoboMaker` - Remove incorrect endpoint tests
* `Aws\SNS` - Remove incorrect endpoint tests
* `Aws\ComputeOptimizer` - Remove incorrect endpoint tests
* `Aws\mgn` - Remove incorrect endpoint tests
* `Aws\CloudWatchEvidently` - Remove incorrect endpoint tests
* `Aws\FraudDetector` - Remove incorrect endpoint tests
* `Aws\MedicalImaging` - Remove incorrect endpoint tests
* `Aws\DataPipeline` - Remove incorrect endpoint tests
* `Aws\CodeGuruProfiler` - Remove incorrect endpoint tests
* `Aws\QLDBSession` - Remove incorrect endpoint tests
* `Aws\Omics` - Remove incorrect endpoint tests
* `Aws\KinesisVideo` - Remove incorrect endpoint tests
* `Aws\IoTFleetWise` - Remove incorrect endpoint tests
* `Aws\Textract` - Remove incorrect endpoint tests
* `Aws\VoiceID` - Remove incorrect endpoint tests
* `Aws\PaymentCryptographyData` - Remove incorrect endpoint tests
## 3.356.5 - 2025-08-26
* `Aws\OpsworksCM` - Removes the OpsworksCM service, which has reached end-of-life.
* `Aws\ConnectParticipant` - Amazon Connect Participant Service: Remove unused fields from WebRTCConnection
* `Aws\DataSync` - Remove incorrect endpoint tests
* `Aws\GlobalAccelerator` - Remove incorrect endpoint tests
* `Aws\Polly` - Remove incorrect endpoint tests
* `Aws\SecretsManager` - Remove incorrect endpoint tests
* `Aws\IoTJobsDataPlane` - Remove incorrect endpoint tests
* `Aws\IdentityStore` - Remove incorrect endpoint tests
* `Aws\Transfer` - Remove incorrect endpoint tests
* `Aws\AppMesh` - Remove incorrect endpoint tests
* `Aws\RecycleBin` - Remove incorrect endpoint tests
* `Aws\Neptunedata` - Remove incorrect endpoint tests
* `Aws\drs` - Remove incorrect endpoint tests
* `Aws\CodeStarconnections` - Remove incorrect endpoint tests
* `Aws\CloudWatch` - Remove incorrect endpoint tests
* `Aws\finspace` - Remove incorrect endpoint tests
* `Aws\Greengrass` - Remove incorrect endpoint tests
* `Aws\signer` - Remove incorrect endpoint tests
* `Aws\MigrationHub` - Remove incorrect endpoint tests
* `Aws\Glacier` - Remove incorrect endpoint tests
* `Aws\ConnectContactLens` - Remove incorrect endpoint tests
* `Aws\IoTTwinMaker` - Remove incorrect endpoint tests
* `Aws\SecurityHub` - Remove incorrect endpoint tests
* `Aws\DLM` - Remove incorrect endpoint tests
* `Aws\IoTSecureTunneling` - Remove incorrect endpoint tests
* `Aws\SocialMessaging` - Remove incorrect endpoint tests
* `Aws\Pinpoint` - Remove incorrect endpoint tests
* `Aws\ControlCatalog` - Remove incorrect endpoint tests
* `Aws\PcaConnectorScep` - Remove incorrect endpoint tests
* `Aws\MainframeModernization` - Remove incorrect endpoint tests
* `Aws\WAFRegional` - Remove incorrect endpoint tests
* `Aws\CodeCommit` - Remove incorrect endpoint tests
* `Aws\Route53RecoveryCluster` - Remove incorrect endpoint tests
* `Aws\ARCZonalShift` - This release adds new API options to enable allowed windows and multiple alarms for practice runs.
* `Aws\GameLift` - Remove incorrect endpoint tests
* `Aws\Kafka` - Remove incorrect endpoint tests
* `Aws\MQ` - Remove incorrect endpoint tests
* `Aws\ResourceExplorer2` - Remove incorrect endpoint tests
* `Aws\BedrockAgentCoreControl` - Remove incorrect endpoint tests
* `Aws\Route53` - Remove incorrect endpoint tests
* `Aws\Tnb` - Remove incorrect endpoint tests
* `Aws\EC2` - Add new APIs for viewing how your shared AMIs are used by other accounts, and identify resources in your account that are dependent on particular AMIs
* `Aws\SSM` - Remove incorrect endpoint tests
* `Aws\SsmSap` - Remove incorrect endpoint tests
* `Aws\LookoutforVision` - Remove incorrect endpoint tests
* `Aws\Evs` - Remove incorrect endpoint tests
* `Aws\LicenseManagerLinuxSubscriptions` - Remove incorrect endpoint tests
* `Aws\CleanRooms` - Remove incorrect endpoint tests
* `Aws\GeoRoutes` - Added RouteFerryNotice PotentialViolatedVehicleRestrictionUsage value for CalculateRoutes. This value indicates when the Route is potentially forbidden for the given vehicle profile.
* `Aws\SageMakerGeospatial` - Remove incorrect endpoint tests
* `Aws\AppConfig` - Remove incorrect endpoint tests
* `Aws\WorkSpaces` - Remove incorrect endpoint tests
* `Aws\RAM` - Remove incorrect endpoint tests
* `Aws\SSOOIDC` - Remove incorrect endpoint tests
* `Aws\PersonalizeEvents` - Remove incorrect endpoint tests
* `Aws\AppRunner` - Remove incorrect endpoint tests
* `Aws\imagebuilder` - Remove incorrect endpoint tests
* `Aws\RDSDataService` - Remove incorrect endpoint tests
* `Aws\ComprehendMedical` - Remove incorrect endpoint tests
* `Aws\TrustedAdvisor` - Remove incorrect endpoint tests
* `Aws\ElasticTranscoder` - Remove incorrect endpoint tests
* `Aws\AppRegistry` - Remove incorrect endpoint tests
* `Aws\MigrationHubRefactorSpaces` - Remove incorrect endpoint tests
## 3.356.4 - 2025-08-25
* `Aws\OpsWorks` - Removes the OpsWorks service, which has reached end-of-life.
* `Aws\WellArchitected` - Remove incorrect endpoint tests
* `Aws\Chatbot` - Remove incorrect endpoint tests
* `Aws\TimestreamInfluxDB` - Add MAINTENANCE status for DbInstance and DbCluster
* `Aws\CloudWatchEvents` - Remove incorrect endpoint tests
* `Aws\Odb` - Remove incorrect endpoint tests
* `Aws\QBusiness` - The Amazon Q Business GetDocumentContent operation now supports retrieval of the extracted text content in JSON format.
* `Aws\Outposts` - Remove incorrect endpoint tests
* `Aws\SSOAdmin` - Remove incorrect endpoint tests
* `Aws\kendra` - Remove incorrect endpoint tests
* `Aws\CodeArtifact` - Remove incorrect endpoint tests
* `Aws\MediaConvert` - This release adds support for input rendition selection for HLS input, adds new Share API to enable sharing jobs with AWS Support for support investigations, and adds INCLUDE_AS_TS to iFrameOnlyManifest setting for HLS outputs.
* `Aws\CloudSearch` - Remove incorrect endpoint tests
* `Aws\ControlTower` - Remove incorrect endpoint tests
* `Aws\SFN` - Remove incorrect endpoint tests
* `Aws\OpsWorksCM` - Remove incorrect endpoint tests
* `Aws\DocDBElastic` - Remove incorrect endpoint tests
* `Aws\WorkSpacesThinClient` - Remove incorrect endpoint tests
* `Aws\PcaConnectorAd` - Remove incorrect endpoint tests
* `Aws\B2bi` - Updated APIs to support custom validation rules.
* `Aws\IoTFleetHub` - Remove incorrect endpoint tests
* `Aws\SupportApp` - Remove incorrect endpoint tests
* `Aws\SageMakerFeatureStoreRuntime` - Remove incorrect endpoint tests
* `Aws\DAX` - Remove incorrect endpoint tests
* `Aws\Braket` - Remove incorrect endpoint tests
* `Aws\CloudFormation` - Remove incorrect endpoint tests
* `Aws\IoTSiteWise` - Remove incorrect endpoint tests
* `Aws\IoTDataPlane` - Remove incorrect endpoint tests
* `Aws\AppSync` - Remove incorrect endpoint tests
* `Aws\ChimeSDKMessaging` - Remove incorrect endpoint tests
* `Aws\ServiceCatalog` - Remove incorrect endpoint tests
* `Aws\FinSpaceData` - Remove incorrect endpoint tests
* `Aws\CloudTrailData` - Remove incorrect endpoint tests
* `Aws\LexModelsV2` - Remove incorrect endpoint tests
* `Aws\ResourceGroupsTaggingAPI` - Remove incorrect endpoint tests
* `Aws\AIOps` - Remove incorrect endpoint tests
* `Aws\BedrockAgent` - Remove incorrect endpoint tests
* `Aws\Repostspace` - Remove incorrect endpoint tests
* `Aws\BedrockDataAutomation` - Remove incorrect endpoint tests
* `Aws\CloudControlApi` - Remove incorrect endpoint tests
* `Aws\DeviceFarm` - Remove incorrect endpoint tests
* `Aws\MediaPackageVod` - Remove incorrect endpoint tests
* `Aws\EKS` - Remove incorrect endpoint tests
* `Aws\ConnectParticipant` - Remove incorrect endpoint tests
* `Aws\ForecastService` - Remove incorrect endpoint tests
* `Aws\BedrockDataAutomationRuntime` - Remove incorrect endpoint tests
* `Aws\AutoScaling` - Remove incorrect endpoint tests
* `Aws\SagemakerEdgeManager` - Remove incorrect endpoint tests
* `Aws\LicenseManager` - Remove incorrect endpoint tests
* `Aws\RedshiftServerless` - Remove incorrect endpoint tests
* `Aws\Bedrock` - Remove incorrect endpoint tests
* `Aws\CloudWatchLogs` - Remove incorrect endpoint tests
* `Aws\ChimeSDKMediaPipelines` - Remove incorrect endpoint tests
* `Aws\Keyspaces` - Remove incorrect endpoint tests
* `Aws\TaxSettings` - Remove incorrect endpoint tests
* `Aws\StorageGateway` - Remove incorrect endpoint tests
* `Aws\DataZone` - Releasing the following features - Asset classification that lets users use restricted terms for classifying assets if they have the right permissions. Also adding a new enum value "Moving" to project status.
* `Aws\OpenSearchServerless` - Remove incorrect endpoint tests
* `Aws\PersonalizeRuntime` - Remove incorrect endpoint tests
* `Aws\SQS` - Documentation update for Amazon SQS Supports Large Payload Message feature
* `Aws\CodeGuruSecurity` - Documentation update to notify users of the discontinuation of Amazon CodeGuru Security.
* `Aws\Support` - Remove incorrect endpoint tests
* `Aws\Shield` - Remove incorrect endpoint tests
* `Aws\DevOpsGuru` - Remove incorrect endpoint tests
* `Aws\TranscribeService` - Remove incorrect endpoint tests
* `Aws\SageMakerRuntime` - Remove incorrect endpoint tests
* `Aws\EMRContainers` - Remove incorrect endpoint tests
* `Aws\MigrationHubStrategyRecommendations` - Remove incorrect endpoint tests
* `Aws\EC2` - Added IPv6 support for AWS Client VPN.
* `Aws\MarketplaceCatalog` - Remove incorrect endpoint tests
* `Aws\Translate` - Remove incorrect endpoint tests
* `Aws\ACM` - Remove incorrect endpoint tests
* `Aws\LookoutEquipment` - Remove incorrect endpoint tests
* `Aws\CostandUsageReportService` - Remove incorrect endpoint tests
* `Aws\DirectConnect` - Remove incorrect endpoint tests
* `Aws\CodeStarNotifications` - Remove incorrect endpoint tests
* `Aws\KinesisVideoArchivedMedia` - Remove incorrect endpoint tests
* `Aws\Health` - Remove incorrect endpoint tests
* `Aws\GroundStation` - Remove incorrect endpoint tests
* `Aws\Appflow` - Remove incorrect endpoint tests
* `Aws\MediaStore` - Remove incorrect endpoint tests
* `Aws\FSx` - Remove incorrect endpoint tests
* `Aws\KinesisAnalytics` - Remove incorrect endpoint tests
* `Aws\LexRuntimeService` - Remove incorrect endpoint tests
* `Aws\ServerlessApplicationRepository` - Remove incorrect endpoint tests
* `Aws\MailManager` - Remove incorrect endpoint tests
* `Aws\Athena` - Remove incorrect endpoint tests
* `Aws\ResilienceHub` - Remove incorrect endpoint tests
* `Aws\Snowball` - Remove incorrect endpoint tests
* `Aws\Lambda` - Remove incorrect endpoint tests
## 3.356.3 - 2025-08-22
* `Aws\Token` - Fixes bug in `TokenProvider::cache()` where tokens are incorrectly written to the cache.
* `Aws\RDS` - Updates Amazon RDS documentation for Db2 read-only replicas.
* `Aws\ServiceDiscovery` - Updating SDK examples after launch of shared AWS Cloud Map namespaces
* `Aws\RolesAnywhere` - Remove incorrect endpoint tests
* `Aws\SageMaker` - Launch SageMaker Notebook Instances support for AL2023 along with P6-B200 instance type and Rootless Docker support for SageMaker Studio.
* `Aws\QConnect` - Releasing model ID support for UpdateAIPrompt
* `Aws\ApiGatewayV2` - Remove incorrect endpoint tests
* `Aws\APIGateway` - Remove incorrect endpoint tests
* `Aws\CloudWatchRUM` - Remove incorrect endpoint tests
* `Aws\Synthetics` - Added multi browser support for synthetics canaries, Increased ephemeral storage limit from 5GB to 10GB
* `Aws\Firehose` - Remove incorrect endpoint tests
* `Aws\MediaLive` - AWS Elemental MediaLive now has a field called "SubtitleRows" for controlling subtitle row count for DVB-Sub and Burn-In captions outputs
* `Aws\SQS` - Remove incorrect endpoint tests
* `Aws\HealthLake` - Remove incorrect endpoint tests
* `Aws\AugmentedAIRuntime` - Remove incorrect endpoint tests
* `Aws\PaymentCryptography` - Remove incorrect endpoint tests
* `Aws\Pricing` - Remove incorrect endpoint tests
* `Aws\IoTAnalytics` - Remove incorrect endpoint tests
* `Aws\SageMakerMetrics` - Remove incorrect endpoint tests
* `Aws\EMRServerless` - Remove incorrect endpoint tests
* `Aws\LocationService` - Remove incorrect endpoint tests
* `Aws\Proton` - Remove incorrect endpoint tests
* `Aws\NetworkMonitor` - Remove incorrect endpoint tests
* `Aws\ElasticLoadBalancing` - Remove incorrect endpoint tests
* `Aws\B2bi` - Remove incorrect endpoint tests
* `Aws\CodePipeline` - Remove incorrect endpoint tests
* `Aws\RedshiftDataAPIService` - Remove incorrect endpoint tests
* `Aws\Organizations` - Remove incorrect endpoint tests
* `Aws\MemoryDB` - Remove incorrect endpoint tests
* `Aws\QLDB` - Remove incorrect endpoint tests
* `Aws\MarketplaceCommerceAnalytics` - Remove incorrect endpoint tests
* `Aws\CognitoSync` - Remove incorrect endpoint tests
* `Aws\CloudDirectory` - Remove incorrect endpoint tests
* `Aws\DocDB` - Remove incorrect endpoint tests
* `Aws\MigrationHubOrchestrator` - Remove incorrect endpoint tests
* `Aws\SimSpaceWeaver` - Remove incorrect endpoint tests
* `Aws\LaunchWizard` - Remove incorrect endpoint tests
* `Aws\Route53RecoveryReadiness` - Remove incorrect endpoint tests
* `Aws\Macie2` - Remove incorrect endpoint tests
* `Aws\DataExchange` - Remove incorrect endpoint tests
* `Aws\Account` - Remove incorrect endpoint tests
* `Aws\WAFV2` - test and verified, safe to release
## 3.356.2 - 2025-08-21
* `Aws\AppStream` - Remove incorrect endpoint tests
* `Aws\AccessAnalyzer` - Remove incorrect endpoint tests
* `Aws\SSMContacts` - Doc-only updates for Incident Manager Contacts August 2025
* `Aws\GameLiftStreams` - The default application in a stream group can now be changed at any time using UpdateStreamGroup to update the DefaultApplicationIdentifier.
* `Aws\GreengrassV2` - Remove incorrect endpoint tests
* `Aws\PinpointEmail` - Remove incorrect endpoint tests
* `Aws\IoTDeviceAdvisor` - Remove incorrect endpoint tests
* `Aws\ManagedBlockchain` - Remove incorrect endpoint tests
* `Aws\ConfigService` - Remove incorrect endpoint tests
* `Aws\BackupGateway` - Remove incorrect endpoint tests
* `Aws\MediaPackageV2` - Remove incorrect endpoint tests
* `Aws\CostOptimizationHub` - Remove incorrect endpoint tests
* `Aws\Panorama` - Remove incorrect endpoint tests
* `Aws\ECS` - This is a documentation only release that adds additional information for the update-service request parameters.
* `Aws\DirectoryServiceData` - Remove incorrect endpoint tests
* `Aws\Connect` - Remove incorrect endpoint tests
* `Aws\ManagedGrafana` - Remove incorrect endpoint tests
* `Aws\DatabaseMigrationService` - Remove incorrect endpoint tests
* `Aws\ResourceGroups` - Remove incorrect endpoint tests
* `Aws\ElasticLoadBalancingv2` - Remove incorrect endpoint tests
* `Aws\ECRPublic` - Remove incorrect endpoint tests
* `Aws\AuditManager` - Remove incorrect endpoint tests
* `Aws\MediaTailor` - Remove incorrect endpoint tests
* `Aws\MediaPackage` - Remove incorrect endpoint tests
* `Aws\ConnectWisdomService` - Remove incorrect endpoint tests
* `Aws\KinesisVideoWebRTCStorage` - Remove incorrect endpoint tests
* `Aws\Route53Profiles` - Remove incorrect endpoint tests
* `Aws\S3Outposts` - Remove incorrect endpoint tests
* `Aws\CognitoIdentity` - Remove incorrect endpoint tests
* `Aws\GuardDuty` - Remove Pattern trait from email field
* `Aws\CloudHSM` - Remove incorrect endpoint tests
* `Aws\IoTEvents` - Remove incorrect endpoint tests
* `Aws\IVS` - Remove incorrect endpoint tests
* `Aws\KinesisVideoSignalingChannels` - Remove incorrect endpoint tests
* `Aws\Lightsail` - Remove incorrect endpoint tests
* `Aws\Comprehend` - Remove incorrect endpoint tests
* `Aws\MarketplaceAgreement` - Remove incorrect endpoint tests
* `Aws\VerifiedPermissions` - Remove incorrect endpoint tests
* `Aws\Backup` - Remove incorrect endpoint tests
* `Aws\Inspector2` - Remove incorrect endpoint tests
* `Aws\Route53Resolver` - Remove incorrect endpoint tests
* `Aws\CloudTrail` - Remove incorrect endpoint tests
* `Aws\MediaConnect` - Remove incorrect endpoint tests
* `Aws\ForecastQueryService` - Remove incorrect endpoint tests
* `Aws\Artifact` - Remove incorrect endpoint tests
* `Aws\MediaConvert` - Remove incorrect endpoint tests
* `Aws\SSMQuickSetup` - Remove incorrect endpoint tests
* `Aws\ConnectCampaignsV2` - Remove incorrect endpoint tests
* `Aws\MWAA` - Remove incorrect endpoint tests
* `Aws\IoTThingsGraph` - Remove incorrect endpoint tests
* `Aws\ObservabilityAdmin` - Remove incorrect endpoint tests
* `Aws\ApiGatewayManagementApi` - Remove incorrect endpoint tests
* `Aws\WorkSpacesWeb` - Remove incorrect endpoint tests
* `Aws\Glue` - Added support for preprocessing queries in Data Quality operations through new DataQualityGlueTable structure.
* `Aws\LookoutMetrics` - Remove incorrect endpoint tests
* `Aws\CustomerProfiles` - Remove incorrect endpoint tests
* `Aws\ElasticBeanstalk` - Remove incorrect endpoint tests
* `Aws\EBS` - Remove incorrect endpoint tests
* `Aws\ConnectCases` - Remove incorrect endpoint tests
* `Aws\Deadline` - Remove incorrect endpoint tests
* `Aws\AppIntegrationsService` - Remove incorrect endpoint tests
* `Aws\LexRuntimeV2` - Remove incorrect endpoint tests
* `Aws\BedrockAgentRuntime` - Remove incorrect endpoint tests
* `Aws\DynamoDBStreams` - Remove incorrect endpoint tests
* `Aws\CloudFront` - Remove incorrect endpoint tests
* `Aws\AppFabric` - Remove incorrect endpoint tests
* `Aws\ElasticsearchService` - Remove incorrect endpoint tests
* `Aws\PrometheusService` - Remove incorrect endpoint tests
* `Aws\SecurityLake` - Remove incorrect endpoint tests
* `Aws\TimestreamInfluxDB` - Remove incorrect endpoint tests
* `Aws\BillingConductor` - Remove incorrect endpoint tests
* `Aws\DirectoryService` - Remove incorrect endpoint tests
* `Aws\IoTEventsData` - Remove incorrect endpoint tests
* `Aws\STS` - Remove incorrect endpoint tests
## 3.356.1 - 2025-08-20
* `Aws\S3` - Allows :// within object key in S3 Streamwrapper.
* `Aws\PinpointSMSVoiceV2` - This change added InternationalSendingEnbaled as part of describe/Update/Request phone number API response, and as part of update/Request phone number API request
* `Aws\Budgets` - Remove incorrect endpoint tests
* `Aws\BedrockRuntime` - Launch CountTokens API to allow token counting
* `Aws\MarketplaceMetering` - Remove incorrect endpoint tests
* `Aws\CostExplorer` - Remove incorrect endpoint tests
* `Aws\MarketplaceEntitlementService` - Remove incorrect endpoint tests
* `Aws\CognitoIdentityProvider` - This release adds support for the new Terms APIs which allow displaying Terms of Use and Privacy Policy on the Managed Login user-registration page.
* `Aws\KinesisAnalyticsV2` - Adds Key Management Service (KMS) support allowing customer-managed key (CMK) encryption for Flink application data.
* `Aws\EKS` - EKS Add-ons Custom Namespace Support
* `Aws\DynamoDB` - Remove incorrect endpoint tests
* `Aws\DataZone` - This release supports policy grant identifier for cloud formation integration
* `Aws\Kinesis` - Remove incorrect endpoint tests
* `Aws\SESv2` - Remove incorrect endpoint tests
* `Aws\NetworkManager` - Remove incorrect endpoint tests
* `Aws\Billing` - Clarify IPv4 and IPv6 endpoints
* `Aws\Detective` - Remove incorrect endpoint tests
* `Aws\IAM` - Remove incorrect endpoint tests
* `Aws\SageMaker` - This release adds 1/ Launch ml.p5.4xlarge instance in Processing jobs, Training jobs and Training Plan 2/ Makes S3Uri to be required for S3FileSystem and S3FileSystemConfig.
* `Aws\EFS` - Remove incorrect endpoint tests
* `Aws\Route53RecoveryControlConfig` - Remove incorrect endpoint tests
## 3.356.0 - 2025-08-19
* `Aws\Token` - Adds token provider for Bedrock services to source bearer tokens from environment.
* `Aws\Polly` - Added support for new output format - Opus.
* `Aws\CleanRooms` - Support error message configuration for analysis templates
* `Aws\EC2` - Add support for "warning" volume status.
## 3.355.0 - 2025-08-18
* `Aws\Batch` - Added default_x86_64 and default_arm64 as values to the instanceTypes field.
* `Aws\SageMaker` - Customer managed keys now available for volume encryption of SageMaker HyperPod clusters.
* `Aws\ConnectParticipant` - Amazon Connect Service Feature: Add support to enable multi-user in-app, web, and video calling.
* `Aws\BCMDashboards` - Billing and Cost Management Dashboards enables users to create dashboards that combine multiple visualizations of cost and usage data. Users can create, manage, and share dashboards. Tags are also available for dashboards.
* `Aws\S3Control` - Adds support for Compute checksum functionality in Amazon S3 Batch Operations. You can now calculate checksums for a list of objects using supported algorithms in Amazon S3, without requiring a restore or download
* `Aws\Connect` - Amazon Connect Service Feature: Add support to enable multi-user in-app, web, and video calling.
## 3.354.1 - 2025-08-15
* `Aws\BedrockAgent` - This release adds support for saving Bedrock Flows while node configuration is still in progress, even if the Flow is not yet able to be invoked
* `Aws\PrometheusService` - Add Resource-based Policy APIs for Amazon Prometheus
* `Aws\Glue` - AWS Glue Zero ETL now supports On-demand snapshot load
## 3.354.0 - 2025-08-14
* `Aws\Api` - Reverts to previous behavior changed by #3146 when deserializing empty payload members.
* `Aws\ServiceDiscovery` - Added support for cross account through Id parameter overloading with ARN and allow owner account for some APIs instead of ARN
* `Aws\MediaLive` - CMAF Ingest output groups in MediaLive can now accept one additional destination url for single pipeline channels and up to two additional destination urls for standard channels.
* `Aws\Glue` - AWS Glue now supports Trusted Identity Propagation.
* `Aws\DynamoDB` - This release 1/ Adds support for throttled keys mode for CloudWatch Contributor Insights, 2/ Adds throttling reasons to exceptions across dataplane APIs. 3/ Explicitly models ThrottlingException as a class in statically typed languages. Refer to the launch day blog post for more details.
* `Aws\DirectConnect` - Added pagination support for DescribeHostedConnections, DescribeVirtualInterfaces, DescribeConnections, DescribeInterconnects, DescribeLags. Added asnLong support for BGP peer operations which supports a large range.
* `Aws\WorkSpaces` - New APIs introduced to import WorkSpaces BYOL image using a new process that leveraged EC2 Image Builder. WorkSpaces tests and fixes your image's compatibility issues and supports customized VM images.
* `Aws\EC2` - This release adds ModifyInstanceConnectEndpoint API to update configurations on existing EC2 Instance Connect Endpoints and improves IPv6 support through dualstack DNS names for EC2 Instance Connect Endpoints.
* `Aws\PCS` - Updated the regex pattern and description of iamInstanceProfileArn in the CreateComputeNodeGroup and UpdateComputeNodeGroup API actions. Name and path requirements apply to the ARN of the IAM role associated with the instance profile and not the ARN of the instance profile.
* `Aws\ARCRegionSwitch` - Endpoint rule test and documentation update.
* `Aws\GuardDuty` - Added support for entity lists.
* `Aws\QApps` - Documentation update for Amazon Q Apps API Reference
* `Aws\BCMRecommendedActions` - Initial SDK release for AWS Billing and Cost Management Recommended Actions.
* `Aws\FSx` - Amazon FSx for NetApp ONTAP 2nd generation file systems now support decreasing SSD storage capacity.
## 3.353.0 - 2025-08-13
* `Aws\` - Added support for configuring auth schemes based on user's preference. The order in which these auth schemes are provided will define the priority of the auth schemes selection.
* `Aws\Braket` - Add support for Braket program sets.
* `Aws\FSx` - Add Dual-Stack support for Amazon FSx for OpenZFS file systems
* `Aws\PartnerCentralSelling` - Add Tagging Support for Opportunity resources
* `Aws\SecurityIR` - Added support for Organizational Unit-level Membership configuration and the ability to resume a cancelled membership.
* `Aws\DataZone` - Adds support for account pools and project profile account decoupling
* `Aws\SageMaker` - This release introduces compute quota for GPU, Trainium accelerators, vCPU, and vCPU memory utilization across teams in HyperPod clusters
## 3.352.7 - 2025-08-12
* `Aws\Rds` - Ensures `DestinationRegion` is signed during presigning.
* `Aws\CodeBuild` - AWS CodeBuild now supports PullRequestBuildPolicy in webhook object.
* `Aws\SageMaker` - IAM Identity Center trusted identity propagation is now supported in SageMaker Studio.
* `Aws\TranscribeService` - AWS HealthScribe now supports specifying preferred patient pronouns through the MedicalScribeContext parameter for use in the generated clinical notes.
* `Aws\BackupSearch` - Using recommended smithy trait to generate regional endpoints for Backup Search
* `Aws\Organizations` - This release introduces 2 new APIs in Organizations: 1. ListAccountsWithInvalidEffectivePolicy 2. ListEffectivePolicyValidationErrors
* `Aws\EC2` - Release to allow route table association with a PublicIpv4Pool.
## 3.352.6 - 2025-08-11
* `Aws\Api` - Bugfix for #3167 where zero or `false` is skipped in header parsing.
* `Aws\Evs` - Update for general availability of Amazon Elastic VMware Service (EVS).
* `Aws\Deadline` - Adds support for Wait and Save feature in service-managed fleets
* `Aws\SSOAdmin` - Added support for managing user background session for applications
* `Aws\Connect` - Updating SearchUserHierarchyGroups API
* `Aws\Bedrock` - This release includes model updates and enhanced SDK documentation for union fields in automated reasoning policy components. Added docs cover policy definitions, mutations (add/update for rules/types/variables), build assets, workflow sources, test results, and tag exception handling.
* `Aws\CognitoIdentityProvider` - Remove SigV4 auth requirement for GetTokensFromRefreshToken
* `Aws\Lambda` - Doc-only update for Lambda that updates the maximum payload size for response streaming invocations to 200 MB.
* `Aws\EC2` - This release adds AvailabilityZoneId support for CreateVolume, DescribeVolume, LaunchTemplates, RunInstances, DescribeInstances, CreateDefaultSubnet, SpotInstances, and CreateDefaultSubnet APIs.
* `Aws\QuickSight` - Add RowAxisDisplayOptions and ColumnAxisDisplayOptions to HeatMapConfiguration, add Actions to PluginVisual, increase limit for CalculatedFields list
## 3.352.5 - 2025-08-08
* `Aws\TranscribeService` - Update documentation to use key ARN only in OutputEncryptionKMSKeyId request parameter
* `Aws\WorkspacesInstances` - Removed incorrect endpoint tests
* `Aws\PartnerCentralSelling` - Removed incorrect endpoint tests
* `Aws\Inspector2` - Add CVSSV4 to Vulnerability Search API and update enable/disable account id list length to 5
* `Aws\SecurityIR` - Removed incorrect endpoint tests
* `Aws\MPA` - Removed incorrect endpoint tests
* `Aws\BackupSearch` - Removed incorrect endpoint tests
* `Aws\Notifications` - Removed incorrect endpoint tests
* `Aws\BCMPricingCalculator` - Removed incorrect endpoint tests
* `Aws\DSQL` - Removed incorrect endpoint tests
* `Aws\GameLiftStreams` - Removed incorrect endpoint tests
* `Aws\Billing` - Removed incorrect endpoint tests
* `Aws\Connect` - This release adds a new API GetContactMetrics for Amazon Connect.
* `Aws\KeyspacesStreams` - Removed incorrect endpoint tests
* `Aws\NotificationsContacts` - Removed incorrect endpoint tests
* `Aws\Invoicing` - Removed incorrect endpoint tests
* `Aws\NetworkFlowMonitor` - Removed incorrect endpoint tests
* `Aws\ApplicationSignals` - Removed incorrect endpoint tests
* `Aws\SageMaker` - Adds support for GB200 UltraServers in Amazon SageMaker training jobs, training plans, and HyperPod clusters
* `Aws\IoTManagedIntegrations` - Removed incorrect endpoint tests
* `Aws\S3Vectors` - Removed incorrect endpoint tests
* `Aws\IoTDataPlane` - Adding DeleteConnection API to IoT Data Plane
## 3.352.4 - 2025-08-07
* `Aws\GameLiftStreams` - Adds Proton 9.0-2 to the list of runtime environment options available when creating an Amazon GameLift Streams application
* `Aws\CloudFront` - Added new viewer security policy, TLSv1.3_2025, for CloudFront.
* `Aws\Batch` - This feature allows customers to use AWS Batch with Linux with ARM64 CPU Architecture with Fargate Spot compute support.
* `Aws\Glue` - AWS Glue Data Catalog now supports Iceberg Optimization settings at the Catalog level, and supports new options to control the optimization job run rate.
* `Aws\GuardDuty` - Added support for VPC owner account ID associated with DNS request in the GuardDuty finding.
* `Aws\CodeBuild` - AWS CodeBuild now supports comment-based pull request control.
## 3.352.3 - 2025-08-06
* `Aws\OpenSearchServerless` - Features: add Index APIs in OpenSearchServerless to support managed semantic enrichment
* `Aws\QBusiness` - Amazon Q Business now supports the GetDocumentContent() API that enables customers to securely access the source documents through clickable citation links at query time
* `Aws\EC2` - Mark Elastic Inference Accelerators and Elastic Graphics Processor parameters as deprecated on the RunInstances and LaunchTemplate APIs.
* `Aws\Budgets` - Adds support for billing views. Billing views let you control access to cost and usage data through an AWS resource, streamlining the process of sharing cost and usage data across account boundaries. With this release, you can now create and view budgets based on billing views.
* `Aws\AppStream` - Added support for G6 instances
## 3.352.2 - 2025-08-05
* `Aws\SageMaker` - Add support for SageMaker Hyperpod continuous scaling and custom AMI; Introduce new APIs: ListClusterEvents, DescribeClusterEvent, BatchAddClusterNodes
* `Aws\RDS` - Adds a new Aurora Serverless v2 attribute to the DBCluster resource to expose the platform version. Also updates the attribute to be part of both the engine version and platform version descriptions.
* `Aws\BedrockRuntime` - This release adds support for Automated Reasoning checks output models for the Amazon Bedrock Guardrails ApplyGuardrail API.
* `Aws\EKS` - Add support for deletion protection on EKS clusters
* `Aws\Bedrock` - This release introduces Automated Reasoning checks for Amazon Bedrock Guardrails. The feature adds new APIs for policy building, refinement, version management, and testing. Guardrail APIs now support Automated Reasoning policy configuration and validation output.
## 3.352.1 - 2025-08-04
* `Aws\IoTSiteWise` - Support Interface for IoT SiteWise Asset Modeling
* `Aws\BedrockAgentCore` - Remove superfluous field from API
* `Aws\SageMaker` - This release adds the ability for customers to attach and detach their EBS volumes to EKS-orchestrated HyperPod cluster nodes.
* `Aws\CodeConnections` - New integration with Azure DevOps provider type.
* `Aws\Evs` - TagResource API now throws ServiceQuotaExceededException when the number of tags on the Amazon EVS resource exceeds the maximum allowed. TooManyTagsException is deprecated.
## 3.352.0 - 2025-08-01
* `Aws\ACMPCA` - Doc-only update to add more information to GetCertificate action.
* `Aws\ARCRegionSwitch` - This is the initial SDK release for Region switch
* `Aws\AuditManager` - Added a note to Framework APIs (CreateAssessmentFramework, GetAssessmentFramework, UpdateAssessmentFramework) clarifying that the Controls object returns a partial response when called through Framework APIs. Added documentation that the Framework's controlSources parameter is no longer supported.
* `Aws\Lightsail` - This release adds support for the Asia Pacific (Jakarta) (ap-southeast-3) Region.
* `Aws\SecurityHub` - Release new resource detail type CodeRepository
* `Aws\ObservabilityAdmin` - CloudWatch Observability Admin adds the ability to enable telemetry on AWS resources such as Amazon VPCs (Flow Logs) in customers AWS Accounts and Organizations. The release introduces new APIs to manage telemetry rules, which define telemetry settings to be applied on AWS resources.
* `Aws\SNS` - Amazon SNS support for Amazon SQS fair queues
* `Aws\PCS` - Add support for IPv6 Networking for Clusters.
* `Aws\AIOps` - This release includes fix for InvestigationGroup timestamp conversion issue.
## 3.351.12 - 2025-07-31
* `Aws\Sts` - Updates STS default endpoint configuration to `regional`
* `Aws\IoT` - This release allows AWS IoT Core users to use their own AWS KMS keys for data protection
* `Aws\ElasticLoadBalancingv2` - This release enables secondary IP addresses for Network Load Balancers.
* `Aws\S3Control` - Add Tags field to CreateAccessPoint
* `Aws\OpenSearchService` - Granular access control support for NEO-SAML with IAMFederation for AOS data source
* `Aws\Inspector2` - Extend usage to include agentless hours and add CODE_REPOSITORY to aggregation resource type
* `Aws\EC2` - Added support for the force option for the EC2 instance terminate command. This feature enables customers to recover resources associated with an instance stuck in the shutting-down state as a result of rare issues caused by a frozen operating system or an underlying hardware problem.
* `Aws\WorkSpacesWeb` - Added ability to log session activity on a portal to an S3 bucket.
* `Aws\Glue` - Added support for Route node, S3 Iceberg sources/targets, catalog Iceberg sources, DynamoDB ELT connector, AutoDataQuality evaluation, enhanced PII detection with redaction, Kinesis fan-out support, and new R-series worker types.
* `Aws\CustomerProfiles` - The release updates standard profile with 2 new fields that supports account-level engagement. Updated APIs include CreateProfile, UpdateProfile, MergeProfiles, SearchProfiles, BatchGetProfile, GetSegmentMembership, CreateSegmentDefinition, CreateSegmentEstimate.
* `Aws\QuickSight` - Added Impala connector support
* `Aws\EntityResolution` - Add support for creating advanced rule-based matching workflows in AWS Entity Resolution.
* `Aws\SESv2` - This release introduces support for Multi-tenant management
## 3.342.2 - 2025-03-07
* `Aws\BedrockAgent` - Introduces support for Neptune Analytics as a vector data store and adds Context Enrichment Configurations, enabling use cases such as GraphRAG.
* `Aws\ElasticLoadBalancingv2` - This release adds support for assigning IP addresses to Application Load Balancers from VPC IP Address Manager pools.
* `Aws\CloudFront` - Documentation updates for Amazon CloudFront.
* `Aws\NeptuneGraph` - Several small updates to resolve customer requests.
* `Aws\BedrockAgentRuntime` - Support Multi Agent Collaboration within Inline Agents
* `Aws\EC2` - Add serviceManaged field to DescribeAddresses API response.
## 3.342.1 - 2025-03-06
* `Aws\NetworkFlowMonitor` - This release contains 2 changes. 1: DeleteScope/GetScope/UpdateScope operations now return 404 instead of 500 when the resource does not exist. 2: Expected string format for clientToken fields of CreateMonitorInput/CreateScopeInput/UpdateMonitorInput have been updated to be an UUID based string.
* `Aws\RedshiftDataAPIService` - This release adds support for ListStatements API to filter statements by ClusterIdentifier, WorkgroupName, and Database.
* `Aws\CloudTrail` - Doc-only update for CloudTrail.
* `Aws\WAFV2` - You can now perform an exact match or rate limit aggregation against the web request's JA4 fingerprint.
* `Aws\IVSRealTime` - IVS Real-Time now offers customers the ability to merge fragmented recordings in the event of a participant disconnect.
* `Aws\WorkSpaces` - Added a new ModifyEndpointEncryptionMode API for managing endpoint encryption settings.
* `Aws\Bedrock` - This releases adds support for Custom Prompt Router
## 3.342.0 - 2025-03-05
* `Aws\Handler` - Remove code for unsupported version v5 of Guzzle.
* `Aws\BedrockRuntime` - This releases adds support for Custom Prompt Router ARN
* `Aws\GameLiftStreams` - New Service: Amazon GameLift Streams delivers low-latency game streaming from AWS global infrastructure to virtually any device with a browser at up to 1080p resolution and 60 fps.
* `Aws\WorkSpaces` - Added DeviceTypeWorkSpacesThinClient type to allow users to access their WorkSpaces through a WorkSpaces Thin Client.
* `Aws\DataSync` - AWS DataSync now supports modifying ServerHostname while updating locations SMB, NFS, and ObjectStorage.
* `Aws\IoTFleetWise` - This release adds floating point support for CAN/OBD signals and adds support for signed OBD signals.
## 3.341.0 - 2025-03-04
* `Aws\ClientSideMonitoring` - Updates handling of `csm_port` value if provided in ini file
* `Aws\IoTManagedIntegrations` - Adding managed integrations APIs for IoT Device Management to setup and control devices across different manufacturers and connectivity protocols. APIs include managedthing operations, credential and provisioning profile management, notification configuration, and OTA update.
* `Aws\RDS` - Note support for Database Insights for Amazon RDS.
* `Aws\IoTSiteWise` - AWS IoT SiteWise now supports MQTT-enabled, V3 gateways. Configure data destinations for real-time ingestion into AWS IoT SiteWise or buffered ingestion using Amazon S3 storage. You can also use path filters for precise data collection from specific MQTT topics.
* `Aws\ElastiCache` - Doc only update, listing 'valkey7' and 'valkey8' as engine options for parameter groups.
## 3.340.5 - 2025-03-03
* `Aws\` - Changes to align with current waiter specifications.
* `Aws\EC2` - Update the DescribeVpcs response
* `Aws\CognitoIdentityProvider` - Added the capacity to return available challenges in admin authentication and to set version 3 of the pre token generation event for M2M ATC.
* `Aws\CloudWatchRUM` - Add support for PutResourcePolicy, GetResourcePolicy and DeleteResourcePolicy to support resource based policies for AWS CloudWatch RUM
* `Aws\SageMaker` - Add DomainId to CreateDomainResponse
* `Aws\TranscribeService` - Updating documentation for post call analytics job queueing.
* `Aws\QBusiness` - Adds support for the ingestion of audio and video files by Q Business, which can be configured with the mediaExtractionConfiguration parameter.
## 3.340.4 - 2025-02-28
* `Aws\S3` - Adds missing, unimplemented streamwrapper methods
* `Aws\MediaConvert` - The AWS MediaConvert Probe API allows you to analyze media files and retrieve detailed metadata about their content, format, and structure.
* `Aws\EKS` - Adding licenses to EKS Anywhere Subscription operations response.
* `Aws\BedrockDataAutomationRuntime` - Added a mandatory parameter DataAutomationProfileArn to support for cross region inference for InvokeDataAutomationAsync API. Renamed DataAutomationArn to DataAutomationProjectArn. Added APIs to support tagging.
* `Aws\BedrockAgent` - This release lets Amazon Bedrock Flows support newer models by increasing the maximum length of output in a prompt configuration. This release also increases the maximum number of prompt variables to 20 and the maximum number of node inputs to 20.
* `Aws\BedrockDataAutomation` - Renamed and added new StandardConfiguration enums. Added support to update EncryptionConfiguration in UpdateBlueprint and UpdateDataAutomation APIs. Changed HttpStatus code for DeleteBlueprint and DeleteDataAutomationProject APIs to 200 from 204. Added APIs to support tagging.
* `Aws\SSM` - Systems Manager doc-only updates for Feb. 2025.
* `Aws\Pricing` - Update GetProducts and DescribeServices API request input validations.
* `Aws\DatabaseMigrationService` - Add skipped status to the Result Statistics of an Assessment Run
## 3.340.3 - 2025-02-27
* `Aws\BedrockAgentRuntime` - Introduces Sessions (preview) to enable stateful conversations in GenAI applications.
* `Aws\RedshiftServerless` - Add track support for Redshift Serverless workgroup.
* `Aws\StorageGateway` - This release adds support to invoke a process that cleans the specified file share's cache of file entries that are failing upload to Amazon S3.
* `Aws\QBusiness` - This release supports deleting attachments from conversations.
* `Aws\SageMaker` - SageMaker HubService is introducing support for creating Training Jobs in Curated Hub (Private Hub). Additionally, it is introducing two new APIs: UpdateHubContent and UpdateHubContentReference.
* `Aws\EMR` - Definition update for EbsConfiguration.
## 3.340.2 - 2025-02-26
* `Aws\OAM` - This release adds support for sharing AWS::ApplicationSignals::Service and AWS::ApplicationSignals::ServiceLevelObjective resources.
* `Aws\Batch` - AWS Batch: Resource Aware Scheduling feature support
* `Aws\Chime` - Removes the Amazon Chime SDK APIs from the "chime" namespace. Amazon Chime SDK APIs continue to be available in the AWS SDK via the dedicated Amazon Chime SDK namespaces: chime-sdk-identity, chime-sdk-mediapipelines, chime-sdk-meetings, chime-sdk-messaging, and chime-sdk-voice.
* `Aws\EC2` - Amazon EC2 Fleet customers can now override the Block Device Mapping specified in the Launch Template when creating a new Fleet request, saving the effort of creating and associating new Launch Templates to customize the Block Device Mapping.
* `Aws\IoTFleetWise` - This release adds an optional listResponseScope request parameter in certain list API requests to limit the response to metadata only.
* `Aws\SageMaker` - AWS SageMaker InferenceComponents now support rolling update deployments for Inference Components.
* `Aws\ApplicationSignals` - This release adds API support for reading Service Level Objectives and Services from monitoring accounts, from SLO and Service-scoped operations, including ListServices and ListServiceLevelObjectives.
* `Aws\CloudFront` - Documentation update for VPC origin config.
## 3.340.1 - 2025-02-25
* `Aws\DeviceFarm` - Add an optional configuration to the ScheduleRun and CreateRemoteAccessSession API to set a device level http/s proxy.
* `Aws\EC2` - Adds support for time-based EBS-backed AMI copy operations. Time-based copy ensures that EBS-backed AMIs are copied within and across Regions in a specified timeframe.
* `Aws\TaxSettings` - PutTaxRegistration API changes for Egypt, Greece, Vietnam countries
* `Aws\CodeBuild` - Adding "reportArns" field in output of BatchGetBuildBatches API. "reportArns" is an array that contains the ARNs of reports created by merging reports from builds associated with the batch build.
* `Aws\IoT` - AWS IoT - AWS IoT Device Defender adds support for a new Device Defender Audit Check that monitors device certificate age and custom threshold configurations for both the new device certificate age check and existing device certificate expiry check.
## 3.340.0 - 2025-02-24
* `Aws\Api` - Adds protocol selection behavior for services that specify the `protocols` field
+1 -1
View File
@@ -25,7 +25,7 @@
"ext-json": "*",
"ext-simplexml": "*",
"aws/aws-crt-php": "^1.2.3",
"psr/http-message": "^2.0"
"psr/http-message": "^1.0 || ^2.0"
},
"require-dev": {
"composer/composer" : "^2.7.8",
@@ -0,0 +1,31 @@
<?php
namespace Aws\AIOps;
use Aws\AwsClient;
/**
* This client is used to interact with the **AWS AI Ops** service.
* @method \Aws\Result createInvestigationGroup(array $args = [])
* @method \GuzzleHttp\Promise\Promise createInvestigationGroupAsync(array $args = [])
* @method \Aws\Result deleteInvestigationGroup(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteInvestigationGroupAsync(array $args = [])
* @method \Aws\Result deleteInvestigationGroupPolicy(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteInvestigationGroupPolicyAsync(array $args = [])
* @method \Aws\Result getInvestigationGroup(array $args = [])
* @method \GuzzleHttp\Promise\Promise getInvestigationGroupAsync(array $args = [])
* @method \Aws\Result getInvestigationGroupPolicy(array $args = [])
* @method \GuzzleHttp\Promise\Promise getInvestigationGroupPolicyAsync(array $args = [])
* @method \Aws\Result listInvestigationGroups(array $args = [])
* @method \GuzzleHttp\Promise\Promise listInvestigationGroupsAsync(array $args = [])
* @method \Aws\Result listTagsForResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
* @method \Aws\Result putInvestigationGroupPolicy(array $args = [])
* @method \GuzzleHttp\Promise\Promise putInvestigationGroupPolicyAsync(array $args = [])
* @method \Aws\Result tagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
* @method \Aws\Result untagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
* @method \Aws\Result updateInvestigationGroup(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateInvestigationGroupAsync(array $args = [])
*/
class AIOpsClient extends AwsClient {}
@@ -0,0 +1,9 @@
<?php
namespace Aws\AIOps\Exception;
use Aws\Exception\AwsException;
/**
* Represents an error interacting with the **AWS AI Ops** service.
*/
class AIOpsException extends AwsException {}
@@ -0,0 +1,49 @@
<?php
namespace Aws\ARCRegionSwitch;
use Aws\AwsClient;
/**
* This client is used to interact with the **ARC - Region switch** service.
* @method \Aws\Result approvePlanExecutionStep(array $args = [])
* @method \GuzzleHttp\Promise\Promise approvePlanExecutionStepAsync(array $args = [])
* @method \Aws\Result cancelPlanExecution(array $args = [])
* @method \GuzzleHttp\Promise\Promise cancelPlanExecutionAsync(array $args = [])
* @method \Aws\Result createPlan(array $args = [])
* @method \GuzzleHttp\Promise\Promise createPlanAsync(array $args = [])
* @method \Aws\Result deletePlan(array $args = [])
* @method \GuzzleHttp\Promise\Promise deletePlanAsync(array $args = [])
* @method \Aws\Result getPlan(array $args = [])
* @method \GuzzleHttp\Promise\Promise getPlanAsync(array $args = [])
* @method \Aws\Result getPlanEvaluationStatus(array $args = [])
* @method \GuzzleHttp\Promise\Promise getPlanEvaluationStatusAsync(array $args = [])
* @method \Aws\Result getPlanExecution(array $args = [])
* @method \GuzzleHttp\Promise\Promise getPlanExecutionAsync(array $args = [])
* @method \Aws\Result getPlanInRegion(array $args = [])
* @method \GuzzleHttp\Promise\Promise getPlanInRegionAsync(array $args = [])
* @method \Aws\Result listPlanExecutionEvents(array $args = [])
* @method \GuzzleHttp\Promise\Promise listPlanExecutionEventsAsync(array $args = [])
* @method \Aws\Result listPlanExecutions(array $args = [])
* @method \GuzzleHttp\Promise\Promise listPlanExecutionsAsync(array $args = [])
* @method \Aws\Result listPlans(array $args = [])
* @method \GuzzleHttp\Promise\Promise listPlansAsync(array $args = [])
* @method \Aws\Result listPlansInRegion(array $args = [])
* @method \GuzzleHttp\Promise\Promise listPlansInRegionAsync(array $args = [])
* @method \Aws\Result listRoute53HealthChecks(array $args = [])
* @method \GuzzleHttp\Promise\Promise listRoute53HealthChecksAsync(array $args = [])
* @method \Aws\Result listTagsForResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
* @method \Aws\Result startPlanExecution(array $args = [])
* @method \GuzzleHttp\Promise\Promise startPlanExecutionAsync(array $args = [])
* @method \Aws\Result tagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
* @method \Aws\Result untagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
* @method \Aws\Result updatePlan(array $args = [])
* @method \GuzzleHttp\Promise\Promise updatePlanAsync(array $args = [])
* @method \Aws\Result updatePlanExecution(array $args = [])
* @method \GuzzleHttp\Promise\Promise updatePlanExecutionAsync(array $args = [])
* @method \Aws\Result updatePlanExecutionStep(array $args = [])
* @method \GuzzleHttp\Promise\Promise updatePlanExecutionStepAsync(array $args = [])
*/
class ARCRegionSwitchClient extends AwsClient {}
@@ -0,0 +1,9 @@
<?php
namespace Aws\ARCRegionSwitch\Exception;
use Aws\Exception\AwsException;
/**
* Represents an error interacting with the **ARC - Region switch** service.
*/
class ARCRegionSwitchException extends AwsException {}
@@ -5,6 +5,8 @@ use Aws\AwsClient;
/**
* This client is used to interact with the **AWS ARC - Zonal Shift** service.
* @method \Aws\Result cancelPracticeRun(array $args = [])
* @method \GuzzleHttp\Promise\Promise cancelPracticeRunAsync(array $args = [])
* @method \Aws\Result cancelZonalShift(array $args = [])
* @method \GuzzleHttp\Promise\Promise cancelZonalShiftAsync(array $args = [])
* @method \Aws\Result createPracticeRunConfiguration(array $args = [])
@@ -21,6 +23,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listManagedResourcesAsync(array $args = [])
* @method \Aws\Result listZonalShifts(array $args = [])
* @method \GuzzleHttp\Promise\Promise listZonalShiftsAsync(array $args = [])
* @method \Aws\Result startPracticeRun(array $args = [])
* @method \GuzzleHttp\Promise\Promise startPracticeRunAsync(array $args = [])
* @method \Aws\Result startZonalShift(array $args = [])
* @method \GuzzleHttp\Promise\Promise startZonalShiftAsync(array $args = [])
* @method \Aws\Result updateAutoshiftObserverNotificationStatus(array $args = [])
@@ -13,6 +13,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise disableRegionAsync(array $args = [])
* @method \Aws\Result enableRegion(array $args = [])
* @method \GuzzleHttp\Promise\Promise enableRegionAsync(array $args = [])
* @method \Aws\Result getAccountInformation(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAccountInformationAsync(array $args = [])
* @method \Aws\Result getAlternateContact(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAlternateContactAsync(array $args = [])
* @method \Aws\Result getContactInformation(array $args = [])
@@ -23,6 +25,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getRegionOptStatusAsync(array $args = [])
* @method \Aws\Result listRegions(array $args = [])
* @method \GuzzleHttp\Promise\Promise listRegionsAsync(array $args = [])
* @method \Aws\Result putAccountName(array $args = [])
* @method \GuzzleHttp\Promise\Promise putAccountNameAsync(array $args = [])
* @method \Aws\Result putAlternateContact(array $args = [])
* @method \GuzzleHttp\Promise\Promise putAlternateContactAsync(array $args = [])
* @method \Aws\Result putContactInformation(array $args = [])
+2
View File
@@ -34,6 +34,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise requestCertificateAsync(array $args = [])
* @method \Aws\Result resendValidationEmail(array $args = [])
* @method \GuzzleHttp\Promise\Promise resendValidationEmailAsync(array $args = [])
* @method \Aws\Result revokeCertificate(array $args = [])
* @method \GuzzleHttp\Promise\Promise revokeCertificateAsync(array $args = [])
* @method \Aws\Result updateCertificateOptions(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateCertificateOptionsAsync(array $args = [])
*/
@@ -60,9 +60,7 @@ abstract class AbstractErrorParser
foreach ($errors as $key => $error) {
// If error code matches a known error shape, populate the body
if ($data['code'] == $error['name']
&& $error instanceof StructureShape
) {
if ($this->errorCodeMatches($data, $error)) {
$modeledError = $error;
$data['body'] = $this->extractPayload(
$modeledError,
@@ -92,4 +90,10 @@ abstract class AbstractErrorParser
return $data;
}
}
private function errorCodeMatches(array $data, $error): bool
{
return $data['code'] == $error['name']
|| (isset($error['error']['code']) && $data['code'] === $error['error']['code']);
}
}
@@ -12,41 +12,133 @@ trait JsonParserTrait
{
use PayloadParserTrait;
private function genericHandler(ResponseInterface $response)
private function genericHandler(ResponseInterface $response): array
{
$code = (string) $response->getStatusCode();
$error_code = null;
$error_type = null;
// Parse error code and type for query compatible services
if ($this->api
&& !is_null($this->api->getMetadata('awsQueryCompatible'))
&& $response->getHeaderLine('x-amzn-query-error')
&& $response->hasHeader('x-amzn-query-error')
) {
$queryError = $response->getHeaderLine('x-amzn-query-error');
$parts = explode(';', $queryError);
if (isset($parts) && count($parts) == 2 && $parts[0] && $parts[1]) {
$error_code = $parts[0];
$error_type = $parts[1];
$awsQueryError = $this->parseAwsQueryCompatibleHeader($response);
if ($awsQueryError) {
$error_code = $awsQueryError['code'];
$error_type = $awsQueryError['type'];
}
}
// Parse error code from X-Amzn-Errortype header
if (!$error_code && $response->hasHeader('X-Amzn-Errortype')) {
$error_code = $this->extractErrorCode(
$response->getHeaderLine('X-Amzn-Errortype')
);
}
$parsedBody = null;
$body = $response->getBody();
if (!$body->isSeekable() || $body->getSize()) {
$parsedBody = $this->parseJson((string) $body, $response);
}
// Parse error code from response body
if (!$error_code && $parsedBody) {
$error_code = $this->parseErrorFromBody($parsedBody);
}
if (!isset($error_type)) {
$error_type = $code[0] == '4' ? 'client' : 'server';
}
return [
'request_id' => (string) $response->getHeaderLine('x-amzn-requestid'),
'code' => isset($error_code) ? $error_code : null,
'request_id' => $response->getHeaderLine('x-amzn-requestid'),
'code' => $error_code ?? null,
'message' => null,
'type' => $error_type,
'parsed' => $this->parseJson($response->getBody(), $response)
'parsed' => $parsedBody
];
}
/**
* Parse AWS Query Compatible error from header
*
* @param ResponseInterface $response
* @return array|null Returns ['code' => string, 'type' => string] or null
*/
private function parseAwsQueryCompatibleHeader(ResponseInterface $response): ?array
{
$queryError = $response->getHeaderLine('x-amzn-query-error');
$parts = explode(';', $queryError);
if (count($parts) === 2 && $parts[0] && $parts[1]) {
return [
'code' => $parts[0],
'type' => $parts[1]
];
}
return null;
}
/**
* Parse error code from response body
*
* @param array|null $parsedBody
* @return string|null
*/
private function parseErrorFromBody(?array $parsedBody): ?string
{
if (!$parsedBody
|| (!isset($parsedBody['code']) && !isset($parsedBody['__type']))
) {
return null;
}
$error_code = $parsedBody['code'] ?? $parsedBody['__type'];
return $this->extractErrorCode($error_code);
}
/**
* Extract error code from raw error string containing # and/or : delimiters
*
* @param string $rawErrorCode
* @return string
*/
private function extractErrorCode(string $rawErrorCode): string
{
// Handle format with both # and uri (e.g., "namespace#http://foo-bar")
if (str_contains($rawErrorCode, ':') && str_contains($rawErrorCode, '#')) {
$start = strpos($rawErrorCode, '#') + 1;
$end = strpos($rawErrorCode, ':', $start);
return substr($rawErrorCode, $start, $end - $start);
}
// Handle format with uri only : (e.g., "ErrorCode:http://foo-bar.com/baz")
if (str_contains($rawErrorCode, ':')) {
return substr($rawErrorCode, 0, strpos($rawErrorCode, ':'));
}
// Handle format with only # (e.g., "namespace#ErrorCode")
if (str_contains($rawErrorCode, '#')) {
return substr($rawErrorCode, strpos($rawErrorCode, '#') + 1);
}
return $rawErrorCode;
}
protected function payload(
ResponseInterface $response,
StructureShape $member
) {
$jsonBody = $this->parseJson($response->getBody(), $response);
if ($jsonBody) {
return $this->parser->parse($member, $jsonBody);
$body = $response->getBody();
if (!$body->isSeekable() || $body->getSize()) {
$jsonBody = $this->parseJson($body, $response);
} else {
$jsonBody = (string) $body;
}
return $this->parser->parse($member, $jsonBody);
}
}
@@ -37,9 +37,7 @@ class JsonRpcErrorParser extends AbstractErrorParser
$parts = explode('#', $data['parsed']['__type']);
$data['code'] = isset($parts[1]) ? $parts[1] : $parts[0];
}
$data['message'] = isset($data['parsed']['message'])
? $data['parsed']['message']
: null;
$data['message'] = $data['parsed']['message'] ?? null;
}
$this->populateShape($data, $response, $command);
@@ -30,7 +30,7 @@ class RestJsonErrorParser extends AbstractErrorParser
// Merge in error data from the JSON body
if ($json = $data['parsed']) {
$data = array_replace($data, $json);
$data = array_replace($json, $data);
}
// Correct error type from services like Amazon Glacier
@@ -38,18 +38,9 @@ class RestJsonErrorParser extends AbstractErrorParser
$data['type'] = strtolower($data['type']);
}
// Retrieve the error code from services like Amazon Elastic Transcoder
if ($code = $response->getHeaderLine('x-amzn-errortype')) {
$colon = strpos($code, ':');
$data['code'] = $colon ? substr($code, 0, $colon) : $code;
}
// Retrieve error message directly
$data['message'] = isset($data['parsed']['message'])
? $data['parsed']['message']
: (isset($data['parsed']['Message'])
? $data['parsed']['Message']
: null);
$data['message'] = $data['parsed']['message']
?? ($data['parsed']['Message'] ?? null);
$this->populateShape($data, $response, $command);
@@ -55,8 +55,9 @@ abstract class AbstractRestParser extends AbstractParser
}
}
$body = $response->getBody();
if (!$payload
&& $response->getBody()->getSize() > 0
&& (!$body->isSeekable() || $body->getSize())
&& count($output->getMembers()) > 0
) {
// if no payload was found, then parse the contents of the body
@@ -73,20 +74,26 @@ abstract class AbstractRestParser extends AbstractParser
array &$result
) {
$member = $output->getMember($payload);
$body = $response->getBody();
if (!empty($member['eventstream'])) {
$result[$payload] = new EventParsingIterator(
$response->getBody(),
$body,
$member,
$this
);
} else if ($member instanceof StructureShape) {
// Structure members parse top-level data into a specific key.
} elseif ($member instanceof StructureShape) {
//Unions must have at least one member set to a non-null value
// If the body is empty, we can assume it is unset
if (!empty($member['union']) && ($body->isSeekable() && !$body->getSize())) {
return;
}
$result[$payload] = [];
$this->payload($response, $member, $result[$payload]);
} else {
// Streaming data is just the stream from the response body.
$result[$payload] = $response->getBody();
// Always set the payload to the body stream, regardless of content
$result[$payload] = $body;
}
}
@@ -100,13 +107,21 @@ abstract class AbstractRestParser extends AbstractParser
&$result
) {
$value = $response->getHeaderLine($shape['locationName'] ?: $name);
// Empty headers should not be deserialized
if ($value === null || $value === '') {
return;
}
switch ($shape->getType()) {
case 'float':
case 'double':
$value = (float) $value;
$value = match ($value) {
'NaN', 'Infinity', '-Infinity' => $value,
default => (float) $value
};
break;
case 'long':
case 'integer':
$value = (int) $value;
break;
case 'boolean':
@@ -143,6 +158,23 @@ abstract class AbstractRestParser extends AbstractParser
//output structure.
return;
}
case 'list':
$listMember = $shape->getMember();
$type = $listMember->getType();
// Only boolean lists require special handling
// other types can be returned as-is
if ($type !== 'boolean') {
break;
}
$items = array_map('trim', explode(',', $value));
$value = array_map(
static fn($item) => filter_var($item, FILTER_VALIDATE_BOOLEAN),
$items
);
break;
}
$result[$name] = $value;
@@ -300,10 +300,6 @@ class DecodingEventStreamIterator implements Iterator
private function unpackInt64($bytes)
{
if (version_compare(PHP_VERSION, '5.6.3', '<')) {
$d = unpack('N2', $bytes);
return [1 => $d[1] << 32 | $d[2]];
}
return unpack('J', $bytes);
}
@@ -102,6 +102,10 @@ class EventParsingIterator implements Iterator
return $this->parseError($event);
}
if ($event['headers'][':message-type'] === 'exception') {
return $this->parseException($event);
}
if ($event['headers'][':message-type'] !== 'event') {
throw new ParserException('Failed to parse unknown message type.');
}
@@ -190,6 +194,16 @@ class EventParsingIterator implements Iterator
);
}
private function parseException(array $event) {
$payload = $event['payload']?->getContents();
$parsedPayload = json_decode($payload, true);
throw new EventStreamDataException(
$event['headers'][':exception-type'] ?? 'Unknown',
$parsedPayload['message'] ?? $payload,
);
}
private function parseInitialResponseEvent($payload): array
{
return ['initial-response' => json_decode($payload, true)];
@@ -50,7 +50,10 @@ class JsonParser
$values = $shape->getValue();
$target = [];
foreach ($value as $k => $v) {
$target[$k] = $this->parse($values, $v);
// null map values should not be deserialized
if (!is_null($v)) {
$target[$k] = $this->parse($values, $v);
}
}
return $target;
@@ -17,6 +17,10 @@ trait MetadataParserTrait
&$result
) {
$value = $response->getHeaderLine($shape['locationName'] ?: $name);
// Empty values should not be deserialized
if ($value === null || $value === '') {
return;
}
switch ($shape->getType()) {
case 'float':
@@ -24,6 +28,7 @@ trait MetadataParserTrait
$value = (float) $value;
break;
case 'long':
case 'integer':
$value = (int) $value;
break;
case 'boolean':
@@ -40,7 +40,15 @@ class QueryParser extends AbstractParser
ResponseInterface $response
) {
$output = $this->api->getOperation($command->getName())->getOutput();
$xml = $this->parseXml($response->getBody(), $response);
$body = $response->getBody();
$xml = !$body->isSeekable() || $body->getSize()
? $this->parseXml($body, $response)
: null;
// Empty request bodies should not be deserialized.
if (is_null($xml)) {
return new Result();
}
if ($this->honorResultWrapper && $output['resultWrapper']) {
$xml = $xml->{$output['resultWrapper']};
@@ -28,10 +28,25 @@ class RestJsonParser extends AbstractRestParser
StructureShape $member,
array &$result
) {
$jsonBody = $this->parseJson($response->getBody(), $response);
$responseBody = (string) $response->getBody();
if ($jsonBody) {
$result += $this->parser->parse($member, $jsonBody);
// Parse JSON if we have content
$parsedJson = null;
if (!empty($responseBody)) {
$parsedJson = $this->parseJson($responseBody, $response);
} else {
// An empty response body should be deserialized as null
$result = $parsedJson;
return;
}
$parsedBody = $this->parser->parse($member, $parsedJson);
if (is_string($parsedBody) && $member['document']) {
// Document types can be strings: replace entire result
$result = $parsedBody;
} else {
// Merge array/object results into existing result
$result = array_merge($result, (array) $parsedBody);
}
}
+18 -14
View File
@@ -76,15 +76,18 @@ class XmlParser
private function memberKey(Shape $shape, $name)
{
if (null !== $shape['locationName']) {
return $shape['locationName'];
// Check if locationName came from shape definition
if ($shape instanceof StructureShape && isset($shape['locationName'])) {
$originalDef = $shape->getOriginalDefinition($shape->getName());
if ($originalDef && isset($originalDef['locationName'])
&& $originalDef['locationName'] === $shape['locationName']
) {
return $name;
}
}
if ($shape instanceof ListShape && $shape['flattened']) {
return $shape->getMember()['locationName'] ?: $name;
}
return $name;
return $shape['locationName'] ?? $name;
}
private function parse_list(ListShape $shape, \SimpleXMLElement $value)
@@ -132,7 +135,12 @@ class XmlParser
private function parse_float(Shape $shape, $value)
{
return (float) (string) $value;
$value = (string) $value;
return match ($value) {
'NaN', 'Infinity', '-Infinity' => $value,
default => (float) $value
};
}
private function parse_integer(Shape $shape, $value)
@@ -162,12 +170,8 @@ class XmlParser
private function parse_xml_attribute(Shape $shape, Shape $memberShape, $value)
{
$namespace = $shape['xmlNamespace']['uri']
? $shape['xmlNamespace']['uri']
: '';
$prefix = $shape['xmlNamespace']['prefix']
? $shape['xmlNamespace']['prefix']
: '';
$namespace = $shape['xmlNamespace']['uri'] ?? '';
$prefix = $shape['xmlNamespace']['prefix'] ?? '';
if (!empty($prefix)) {
$prefix .= ':';
}
@@ -45,14 +45,22 @@ class JsonBody
* Builds the JSON body based on an array of arguments.
*
* @param Shape $shape Operation being constructed
* @param array $args Associative array of arguments
* @param array|string $args Associative array of arguments, or a string.
*
* @return string
*/
public function build(Shape $shape, array $args)
public function build(Shape $shape, array|string $args)
{
$result = json_encode($this->format($shape, $args));
return $result == '[]' ? '{}' : $result;
try {
$result = json_encode($this->format($shape, $args), JSON_THROW_ON_ERROR);
} catch (\JsonException $e) {
throw new InvalidJsonException(
'Unable to encode JSON document ' . $shape->getName() . ': ' .
$e->getMessage() . PHP_EOL
);
}
return $result === '[]' ? '{}' : $result;
}
private function format(Shape $shape, $value)
@@ -60,7 +68,7 @@ class JsonBody
switch ($shape['type']) {
case 'structure':
$data = [];
if (isset($shape['document']) && $shape['document']) {
if ($shape['document'] ?? false) {
return $value;
}
foreach ($value as $k => $v) {
@@ -62,23 +62,26 @@ class JsonRpcSerializer
$operationName = $command->getName();
$operation = $this->api->getOperation($operationName);
$commandArgs = $command->toArray();
$body = $this->jsonFormatter->build($operation->getInput(), $commandArgs);
$headers = [
'X-Amz-Target' => $this->api->getMetadata('targetPrefix') . '.' . $operationName,
'Content-Type' => $this->contentType
];
'Content-Type' => $this->contentType,
'Content-Length' => strlen($body)
];
if ($endpoint instanceof RulesetEndpoint) {
$this->setEndpointV2RequestOptions($endpoint, $headers);
}
$requestUri = $operation['http']['requestUri'] ?? null;
$absoluteUri = str_ends_with($this->endpoint, '/')
? $this->endpoint : $this->endpoint . $requestUri;
return new Request(
$operation['http']['method'],
$this->endpoint,
$absoluteUri,
$headers,
$this->jsonFormatter->build(
$operation->getInput(),
$commandArgs
)
$body
);
}
}
@@ -98,7 +98,8 @@ class QueryParamBuilder
if (!$this->isFlat($shape)) {
$locationName = $shape->getMember()['locationName'] ?: 'member';
$prefix .= ".$locationName";
} elseif ($name = $this->queryName($items)) {
// flattened lists can also model a `locationName`
} elseif ($name = $shape['locationName'] ?? $this->queryName($items)) {
$parts = explode('.', $prefix);
$parts[count($parts) - 1] = $name;
$prefix = implode('.', $parts);
@@ -36,9 +36,7 @@ class QuerySerializer
* containing "method", "uri", "headers", and "body" key value pairs.
*
* @param CommandInterface $command Command to serialize into a request.
* @param $endpointProvider Provider used for dynamic endpoint resolution.
* @param $clientArgs Client arguments used for dynamic endpoint resolution.
*
* @param null $endpoint Endpoint resolved using EndpointProviderV2
* @return RequestInterface
*/
public function __invoke(
@@ -66,14 +64,17 @@ class QuerySerializer
'Content-Length' => strlen($body),
'Content-Type' => 'application/x-www-form-urlencoded'
];
$requestUri = $operation['http']['requestUri'] ?? null;
if ($endpoint instanceof RulesetEndpoint) {
$this->setEndpointV2RequestOptions($endpoint, $headers);
}
$absoluteUri = str_ends_with($this->endpoint, '/')
? $this->endpoint : $this->endpoint . $requestUri;
return new Request(
'POST',
$this->endpoint,
$absoluteUri,
$headers,
$body
);
@@ -31,12 +31,11 @@ class RestJsonSerializer extends RestSerializer
$this->jsonFormatter = $jsonFormatter ?: new JsonBody($api);
}
protected function payload(StructureShape $member, array $value, array &$opts)
protected function payload(StructureShape $member, array|string $value, array &$opts)
{
$body = isset($value) ?
((string) $this->jsonFormatter->build($member, $value))
: "{}";
$opts['headers']['Content-Type'] = $this->contentType;
$body = $this->jsonFormatter->build($member, $value);
$opts['headers']['Content-Length'] = strlen($body);
$opts['body'] = $body;
}
}
@@ -1,6 +1,7 @@
<?php
namespace Aws\Api\Serializer;
use Aws\Api\ListShape;
use Aws\Api\MapShape;
use Aws\Api\Service;
use Aws\Api\Operation;
@@ -10,11 +11,13 @@ use Aws\Api\TimestampShape;
use Aws\CommandInterface;
use Aws\EndpointV2\EndpointV2SerializerTrait;
use Aws\EndpointV2\Ruleset\RulesetEndpoint;
use DateTimeInterface;
use GuzzleHttp\Psr7;
use GuzzleHttp\Psr7\Request;
use GuzzleHttp\Psr7\Uri;
use GuzzleHttp\Psr7\UriResolver;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\UriInterface;
/**
* Serializes HTTP locations like header, uri, payload, etc...
@@ -22,17 +25,27 @@ use Psr\Http\Message\RequestInterface;
*/
abstract class RestSerializer
{
use EndpointV2SerializerTrait;
private const TEMPLATE_STRING_REGEX = '/\{([^\}]+)\}/';
private static array $excludeContentType = [
's3' => true,
'glacier' => true
];
/** @var Service */
private $api;
private Service $api;
/** @var Uri */
private $endpoint;
/** @var bool */
private $isUseEndpointV2;
use EndpointV2SerializerTrait;
/**
* @param Service $api Service API description
* @param string $endpoint Endpoint to connect to
* @param Service $api Service API description
* @param string $endpoint Endpoint to connect to
*/
public function __construct(Service $api, $endpoint)
{
@@ -42,21 +55,21 @@ abstract class RestSerializer
/**
* @param CommandInterface $command Command to serialize into a request.
* @param $clientArgs Client arguments used for dynamic endpoint resolution.
*
* @param mixed|null $endpoint
* @return RequestInterface
*/
public function __invoke(
CommandInterface $command,
$endpoint = null
mixed $endpoint = null
)
{
$operation = $this->api->getOperation($command->getName());
$commandArgs = $command->toArray();
$opts = $this->serialize($operation, $commandArgs);
$headers = isset($opts['headers']) ? $opts['headers'] : [];
$headers = $opts['headers'] ?? [];
if ($endpoint instanceof RulesetEndpoint) {
$this->isUseEndpointV2 = true;
$this->setEndpointV2RequestOptions($endpoint, $headers);
}
@@ -66,16 +79,16 @@ abstract class RestSerializer
$operation['http']['method'],
$uri,
$headers,
isset($opts['body']) ? $opts['body'] : null
$opts['body'] ?? null
);
}
/**
* Modifies a hash of request options for a payload body.
*
* @param StructureShape $member Member to serialize
* @param array $value Value to serialize
* @param array $opts Request options to modify.
* @param StructureShape $member Member to serialize
* @param array $value Value to serialize
* @param array $opts Request options to modify.
*/
abstract protected function payload(
StructureShape $member,
@@ -99,20 +112,20 @@ abstract class RestSerializer
$location = $member['location'];
if (!$payload && !$location) {
$bodyMembers[$name] = $value;
} elseif ($location == 'header') {
} elseif ($location === 'header') {
$this->applyHeader($name, $member, $value, $opts);
} elseif ($location == 'querystring') {
} elseif ($location === 'querystring') {
$this->applyQuery($name, $member, $value, $opts);
} elseif ($location == 'headers') {
} elseif ($location === 'headers') {
$this->applyHeaderMap($name, $member, $value, $opts);
}
}
}
if (isset($bodyMembers)) {
$this->payload($operation->getInput(), $bodyMembers, $opts);
$this->payload($input, $bodyMembers, $opts);
} else if (!isset($opts['body']) && $this->hasPayloadParam($input, $payload)) {
$this->payload($operation->getInput(), [], $opts);
$this->payload($input, [], $opts);
}
return $opts;
@@ -126,12 +139,32 @@ abstract class RestSerializer
$m = $input->getMember($name);
$type = $m->getType();
if ($m['streaming'] ||
($m['type'] == 'string' || $m['type'] == 'blob')
($type === 'string' || $type === 'blob')
) {
// This path skips setting the content-type header usually done in
// RestJsonSerializer and RestXmlSerializer.certain S3 and glacier
// operations determine content type in Middleware::ContentType()
if (!isset(self::$excludeContentType[$this->api->getServiceName()])) {
switch ($type) {
case 'string':
$opts['headers']['Content-Type'] = 'text/plain';
break;
case 'blob':
$opts['headers']['Content-Type'] = 'application/octet-stream';
break;
}
}
$body = $args[$name];
if (!$m['streaming'] && is_string($body)) {
$opts['headers']['Content-Length'] = strlen($body);
}
// Streaming bodies or payloads that are strings are
// always just a stream of data.
$opts['body'] = Psr7\Utils::streamFor($args[$name]);
$opts['body'] = Psr7\Utils::streamFor($body);
return;
}
@@ -140,13 +173,29 @@ abstract class RestSerializer
private function applyHeader($name, Shape $member, $value, array &$opts)
{
if ($member->getType() === 'timestamp') {
$timestampFormat = !empty($member['timestampFormat'])
? $member['timestampFormat']
: 'rfc822';
$value = TimestampShape::format($value, $timestampFormat);
} elseif ($member->getType() === 'boolean') {
$value = $value ? 'true' : 'false';
// Handle lists by recursively applying header logic to each element
if ($member instanceof ListShape) {
$listMember = $member->getMember();
$headerValues = [];
foreach ($value as $listValue) {
$tempOpts = ['headers' => []];
$this->applyHeader('temp', $listMember, $listValue, $tempOpts);
$convertedValue = $tempOpts['headers']['temp'];
$headerValues[] = $convertedValue;
}
$value = $headerValues;
} elseif (!is_null($value)) {
switch ($member->getType()) {
case 'timestamp':
$timestampFormat = $member['timestampFormat'] ?? 'rfc822';
$value = $this->formatTimestamp($value, $timestampFormat);
break;
case 'boolean':
$value = $this->formatBoolean($value);
break;
}
}
if ($member['jsonvalue']) {
@@ -179,149 +228,259 @@ abstract class RestSerializer
$opts['query'] = isset($opts['query']) && is_array($opts['query'])
? $opts['query'] + $value
: $value;
} elseif ($value !== null) {
$type = $member->getType();
if ($type === 'boolean') {
$value = $value ? 'true' : 'false';
} elseif ($type === 'timestamp') {
$timestampFormat = !empty($member['timestampFormat'])
? $member['timestampFormat']
: 'iso8601';
$value = TimestampShape::format($value, $timestampFormat);
} elseif ($member instanceof ListShape) {
$listMember = $member->getMember();
$paramName = $member['locationName'] ?: $name;
foreach ($value as $listValue) {
// Recursively call applyQuery for each list element
$tempOpts = ['query' => []];
$this->applyQuery('temp', $listMember, $listValue, $tempOpts);
$opts['query'][$paramName][] = $tempOpts['query']['temp'];
}
} elseif (!is_null($value)) {
switch ($member->getType()) {
case 'timestamp':
$timestampFormat = $member['timestampFormat'] ?? 'iso8601';
$value = $this->formatTimestamp($value, $timestampFormat);
break;
case 'boolean':
$value = $this->formatBoolean($value);
break;
}
$opts['query'][$member['locationName'] ?: $name] = $value;
}
}
private function buildEndpoint(Operation $operation, array $args, array $opts)
private function buildEndpoint(
Operation $operation,
array $args,
array $opts
): UriInterface
{
// Expand `requestUri` field members
$relativeUri = $this->expandUriTemplate($operation, $args);
// Add query members to relativeUri
if (!empty($opts['query'])) {
$relativeUri = $this->appendQuery($opts['query'], $relativeUri);
}
// Special case - S3 keys that need path preservation
if ($this->api->getServiceName() === 's3'
&& isset($args['Key'])
&& $this->shouldPreservePath($args['Key'])
) {
return new Uri($this->endpoint . $relativeUri);
}
return $this->resolveUri($relativeUri, $opts);
}
/**
* Expands `requestUri` members
*
* @param Operation $operation
* @param array $args
*
* @return string
*/
private function expandUriTemplate(Operation $operation, array $args): string
{
$isModifiedModel = $this->api->isModifiedModel();
$serviceName = $this->api->getServiceName();
// Create an associative array of variable definitions used in expansions
$varDefinitions = $this->getVarDefinitions($operation, $args);
$relative = preg_replace_callback(
'/\{([^\}]+)\}/',
function (array $matches) use ($varDefinitions) {
$isGreedy = substr($matches[1], -1, 1) == '+';
$k = $isGreedy ? substr($matches[1], 0, -1) : $matches[1];
if (!isset($varDefinitions[$k])) {
return preg_replace_callback(
self::TEMPLATE_STRING_REGEX,
static function (array $matches) use ($varDefinitions) {
$isGreedy = str_ends_with($matches[1], '+');
$varName = $isGreedy ? substr($matches[1], 0, -1) : $matches[1];
if (!isset($varDefinitions[$varName])) {
return '';
}
$value = $varDefinitions[$varName];
if ($isGreedy) {
return str_replace('%2F', '/', rawurlencode($varDefinitions[$k]));
return str_replace('%2F', '/', rawurlencode($value));
}
return rawurlencode($varDefinitions[$k]);
return rawurlencode($value);
},
$operation['http']['requestUri']
);
}
// Add the query string variables or appending to one if needed.
if (!empty($opts['query'])) {
$relative = $this->appendQuery($opts['query'], $relative);
}
$path = $this->endpoint->getPath();
if ($isModifiedModel && $serviceName === 's3') {
if (substr($path, -1) === '/' && $relative[0] === '/') {
$path = rtrim($path, '/');
}
$relative = $path . $relative;
if (strpos($relative, '../') !== false
|| substr($relative, -2) === '..'
) {
if ($relative[0] !== '/') {
$relative = '/' . $relative;
/**
* Checks for path-like key names. If detected, traditional
* URI resolution is bypassed.
*
* @param string $key
* @return bool
*/
private function shouldPreservePath(string $key): bool
{
// Keys with dot segments
if (str_contains($key, '.')) {
$segments = explode('/', $key);
foreach ($segments as $segment) {
if ($segment === '.' || $segment === '..') {
return true;
}
return new Uri($this->endpoint->withPath('') . $relative);
}
}
if ((!empty($relative) && $relative !== '/')
&& !$isModifiedModel
&& $serviceName !== 's3'
) {
$this->normalizePath($path);
// Keys starting with slash
if (str_starts_with($key, '/')) {
return true;
}
// If endpoint has path, remove leading '/' to preserve URI resolution.
if ($path && $relative[0] === '/') {
$relative = substr($relative, 1);
return false;
}
/**
* @param string $relativeUri
* @param array $opts
*
* @return UriInterface
*/
private function resolveUri(string $relativeUri, array $opts): UriInterface
{
$basePath = $this->endpoint->getPath();
// Only process if we have a non-empty base path
if (!empty($basePath) && $basePath !== '/') {
// if relative is just '/', we want just the base path without trailing slash
if ($relativeUri === '/' || empty($relativeUri)) {
// Remove trailing slash if present
return $this->endpoint->withPath(rtrim($basePath, '/'));
}
// if relative is '/?query', we want base path without trailing slash + query
// for now, this is only seen with S3 GetBucketLocation after processing the model
if (empty($opts['query'])
&& str_starts_with($relativeUri, '/?')
) {
$query = substr($relativeUri, 2); // Remove '/?'
return $this->endpoint->withQuery($query);
}
// Ensure base path has trailing slash
if (!str_ends_with($basePath, '/')) {
$this->endpoint = $this->endpoint->withPath($basePath . '/');
}
// Remove leading slash from relative path to make it relative
if (str_starts_with($relativeUri, '/')) {
$relativeUri = substr($relativeUri, 1);
}
}
//Append path to endpoint when leading '//...'
// present as uri cannot be properly resolved
if ($isModifiedModel && strpos($relative, '//') === 0) {
return new Uri($this->endpoint . $relative);
}
// Expand path place holders using Amazon's slightly different URI
// template syntax.
return UriResolver::resolve($this->endpoint, new Uri($relative));
return UriResolver::resolve($this->endpoint, new Uri($relativeUri));
}
/**
* @param StructureShape $input
* @param $payload
*
* @return bool
*/
private function hasPayloadParam(StructureShape $input, $payload)
{
if ($payload) {
$potentiallyEmptyTypes = ['blob','string'];
if ($this->api->getMetadata('protocol') == 'rest-xml') {
if ($this->api->getProtocol() === 'rest-xml') {
$potentiallyEmptyTypes[] = 'structure';
}
$payloadMember = $input->getMember($payload);
if (in_array($payloadMember['type'], $potentiallyEmptyTypes)) {
//unions may also be empty/unset
if (!empty($payloadMember['union'])
|| in_array($payloadMember['type'], $potentiallyEmptyTypes)
) {
return false;
}
}
foreach ($input->getMembers() as $member) {
if (!isset($member['location'])) {
return true;
}
}
return false;
}
private function appendQuery($query, $endpoint)
/**
* @param $query
* @param $relativeUri
*
* @return string
*/
private function appendQuery($query, $relativeUri): string
{
$append = Psr7\Query::build($query);
return $endpoint .= strpos($endpoint, '?') !== false ? "&{$append}" : "?{$append}";
return $relativeUri
. (str_contains($relativeUri, '?') ? "&{$append}" : "?{$append}");
}
private function getVarDefinitions($command, $args)
/**
* @param CommandInterface $command
* @param array $args
*
* @return array
*/
private function getVarDefinitions(
Operation $operation,
array $args
): array
{
$varDefinitions = [];
foreach ($command->getInput()->getMembers() as $name => $member) {
if ($member['location'] == 'uri') {
$varDefinitions[$member['locationName'] ?: $name] =
isset($args[$name])
? $args[$name]
: null;
foreach ($operation->getInput()->getMembers() as $name => $member) {
if ($member['location'] === 'uri') {
$value = $args[$name] ?? null;
if (!is_null($value)) {
switch ($member->getType()) {
case 'timestamp':
$timestampFormat = $member['timestampFormat'] ?? 'iso8601';
$value = $this->formatTimestamp($value, $timestampFormat);
break;
case 'boolean':
$value = $this->formatBoolean($value);
break;
}
}
$varDefinitions[$member['locationName'] ?: $name] = $value;
}
}
return $varDefinitions;
}
/**
* Appends trailing slash to non-empty paths with at least one segment
* to ensure proper URI resolution
* @param DateTimeInterface|string|int $value
* @param string $timestampFormat
*
* @param string $path
*
* @return void
* @return string
*/
private function normalizePath(string $path): void
private function formatTimestamp(
DateTimeInterface|string|int $value,
string $timestampFormat
): string
{
if (!empty($path) && $path !== '/' && substr($path, -1) !== '/') {
$this->endpoint = $this->endpoint->withPath($path . '/');
}
return TimestampShape::format($value, $timestampFormat);
}
/**
* @param $value
*
* @return string
*/
private function formatBoolean($value): string
{
return $value ? 'true' : 'false';
}
}
@@ -29,7 +29,9 @@ class RestXmlSerializer extends RestSerializer
protected function payload(StructureShape $member, array $value, array &$opts)
{
$opts['headers']['Content-Type'] = 'application/xml';
$opts['body'] = $this->getXmlBody($member, $value);
$body = $this->getXmlBody($member, $value);
$opts['headers']['Content-Length'] = strlen($body);
$opts['body'] = $body;
}
/**
@@ -14,8 +14,8 @@ use XMLWriter;
*/
class XmlBody
{
/** @var \Aws\Api\Service */
private $api;
/** @var Service */
private Service $api;
/**
* @param Service $api API being used to create the XML body.
@@ -38,7 +38,10 @@ class XmlBody
$xml = new XMLWriter();
$xml->openMemory();
$xml->startDocument('1.0', 'UTF-8');
$this->format($shape, $shape['locationName'] ?: $shape['name'], $args, $xml);
$rootElementName = $this->determineRootElementName($shape);
$this->format($shape, $rootElementName, $args, $xml);
$xml->endDocument();
return $xml->outputMemory();
@@ -51,7 +54,7 @@ class XmlBody
if ($ns = $shape['xmlNamespace']) {
$xml->writeAttribute(
isset($ns['prefix']) ? "xmlns:{$ns['prefix']}" : 'xmlns',
$shape['xmlNamespace']['uri']
$ns['uri']
);
}
}
@@ -93,9 +96,19 @@ class XmlBody
$this->startElement($shape, $name, $xml);
foreach ($this->getStructureMembers($shape, $value) as $k => $definition) {
// Default to member name
$elementName = $k;
// Only use locationName for non-structure members
if (!($definition['member'] instanceof StructureShape)
&& $definition['member']['locationName']
) {
$elementName = $definition['member']['locationName'];
}
$this->format(
$definition['member'],
$definition['member']['locationName'] ?: $k,
$elementName,
$definition['value'],
$xml
);
@@ -157,11 +170,13 @@ class XmlBody
array $value,
XMLWriter $xml
) {
$xmlEntry = $shape['flattened'] ? $shape['locationName'] : 'entry';
$xmlEntry = $shape['flattened'] ? $name : 'entry';
$xmlKey = $shape->getKey()['locationName'] ?: 'key';
$xmlValue = $shape->getValue()['locationName'] ?: 'value';
$this->startElement($shape, $name, $xml);
if (!$shape['flattened']) {
$this->startElement($shape, $name, $xml);
}
foreach ($value as $key => $v) {
$this->startElement($shape, $xmlEntry, $xml);
@@ -170,7 +185,9 @@ class XmlBody
$xml->endElement();
}
$xml->endElement();
if (!$shape['flattened']) {
$xml->endElement();
}
}
private function add_blob(Shape $shape, $name, $value, XMLWriter $xml)
@@ -217,4 +234,23 @@ class XmlBody
$this->defaultShape($shape, $name, $value, $xml);
}
}
private function determineRootElementName(Shape $shape): string
{
$shapeName = $shape->getName();
// Look up the shape definition first
if ($shapeName && $shapeMap = $shape->getShapeMap()) {
if (isset($shapeMap[$shapeName]['locationName'])) {
return $shapeMap[$shapeName]['locationName'];
}
}
// Fall back to shape's current locationName
if ($shape['locationName']) {
return $shape['locationName'];
}
return $shapeName;
}
}
+42 -1
View File
@@ -4,7 +4,7 @@ namespace Aws\Api;
/**
* Builds shape based on shape references.
*/
class ShapeMap
class ShapeMap implements \ArrayAccess
{
/** @var array */
private $definitions;
@@ -65,4 +65,45 @@ class ShapeMap
return $result;
}
/**
* @param mixed $offset
* @return bool
*/
public function offsetExists(mixed $offset): bool
{
return isset($this->definitions[$offset]);
}
/**
* @param mixed $offset
* @return mixed
*/
public function offsetGet(mixed $offset): mixed
{
return $this->definitions[$offset] ?? null;
}
/**
* @param mixed $offset
* @param mixed $value
* @throws \BadMethodCallException
*/
public function offsetSet(mixed $offset, mixed $value): void
{
throw new \BadMethodCallException(
'ShapeMap is read-only and cannot be modified.'
);
}
/**
* @param mixed $offset
* @throws \BadMethodCallException
*/
public function offsetUnset(mixed $offset): void
{
throw new \BadMethodCallException(
'ShapeMap is read-only and cannot be modified.'
);
}
}
@@ -67,6 +67,32 @@ class StructureShape extends Shape
return $members[$name];
}
/**
* Used to look up the shape's original definition.
* ShapeMap::resolve() merges properties from both
* member and target shape definitions, causing certain
* properties like `locationName` to be overwritten.
*
* @return ShapeMap
* @internal This method is for internal use only and should not be used
* by external code. It may be changed or removed without notice.
*/
public function getShapeMap(): ShapeMap
{
return $this->shapeMap;
}
/**
* Used to look up a shape's original definition.
*
* @param string $name
*
* @return array|null
*/
public function getOriginalDefinition(string $name): ?array
{
return $this->shapeMap[$name] ?? null;
}
private function generateMembersHash()
{
+1 -11
View File
@@ -248,17 +248,7 @@ class Validator
private function checkArray($arr)
{
return $this->isIndexed($arr) || $this->isAssociative($arr);
}
private function isAssociative($arr)
{
return count(array_filter(array_keys($arr), "is_string")) == count($arr);
}
private function isIndexed(array $arr)
{
return $arr == array_values($arr);
return array_is_list($arr) || Aws\is_associative($arr);
}
private function checkCanString($value)
@@ -25,6 +25,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createRouteAsync(array $args = [])
* @method \Aws\Result createRouteResponse(array $args = [])
* @method \GuzzleHttp\Promise\Promise createRouteResponseAsync(array $args = [])
* @method \Aws\Result createRoutingRule(array $args = [])
* @method \GuzzleHttp\Promise\Promise createRoutingRuleAsync(array $args = [])
* @method \Aws\Result createStage(array $args = [])
* @method \GuzzleHttp\Promise\Promise createStageAsync(array $args = [])
* @method \Aws\Result createVpcLink(array $args = [])
@@ -57,6 +59,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deleteRouteResponseAsync(array $args = [])
* @method \Aws\Result deleteRouteSettings(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteRouteSettingsAsync(array $args = [])
* @method \Aws\Result deleteRoutingRule(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteRoutingRuleAsync(array $args = [])
* @method \Aws\Result deleteStage(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteStageAsync(array $args = [])
* @method \Aws\Result deleteVpcLink(array $args = [])
@@ -107,6 +111,10 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getRouteResponsesAsync(array $args = [])
* @method \Aws\Result getRoutes(array $args = [])
* @method \GuzzleHttp\Promise\Promise getRoutesAsync(array $args = [])
* @method \Aws\Result getRoutingRule(array $args = [])
* @method \GuzzleHttp\Promise\Promise getRoutingRuleAsync(array $args = [])
* @method \Aws\Result listRoutingRules(array $args = [])
* @method \GuzzleHttp\Promise\Promise listRoutingRulesAsync(array $args = [])
* @method \Aws\Result getStage(array $args = [])
* @method \GuzzleHttp\Promise\Promise getStageAsync(array $args = [])
* @method \Aws\Result getStages(array $args = [])
@@ -119,6 +127,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getVpcLinksAsync(array $args = [])
* @method \Aws\Result importApi(array $args = [])
* @method \GuzzleHttp\Promise\Promise importApiAsync(array $args = [])
* @method \Aws\Result putRoutingRule(array $args = [])
* @method \GuzzleHttp\Promise\Promise putRoutingRuleAsync(array $args = [])
* @method \Aws\Result reimportApi(array $args = [])
* @method \GuzzleHttp\Promise\Promise reimportApiAsync(array $args = [])
* @method \Aws\Result tagResource(array $args = [])
@@ -7,6 +7,8 @@ use Aws\AwsClient;
* This client is used to interact with the **Amazon CloudWatch Application Signals** service.
* @method \Aws\Result batchGetServiceLevelObjectiveBudgetReport(array $args = [])
* @method \GuzzleHttp\Promise\Promise batchGetServiceLevelObjectiveBudgetReportAsync(array $args = [])
* @method \Aws\Result batchUpdateExclusionWindows(array $args = [])
* @method \GuzzleHttp\Promise\Promise batchUpdateExclusionWindowsAsync(array $args = [])
* @method \Aws\Result createServiceLevelObjective(array $args = [])
* @method \GuzzleHttp\Promise\Promise createServiceLevelObjectiveAsync(array $args = [])
* @method \Aws\Result deleteServiceLevelObjective(array $args = [])
@@ -19,6 +21,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listServiceDependenciesAsync(array $args = [])
* @method \Aws\Result listServiceDependents(array $args = [])
* @method \GuzzleHttp\Promise\Promise listServiceDependentsAsync(array $args = [])
* @method \Aws\Result listServiceLevelObjectiveExclusionWindows(array $args = [])
* @method \GuzzleHttp\Promise\Promise listServiceLevelObjectiveExclusionWindowsAsync(array $args = [])
* @method \Aws\Result listServiceLevelObjectives(array $args = [])
* @method \GuzzleHttp\Promise\Promise listServiceLevelObjectivesAsync(array $args = [])
* @method \Aws\Result listServiceOperations(array $args = [])
@@ -13,9 +13,9 @@ interface AuthSchemeResolverInterface
* Selects an auth scheme for request signing.
*
* @param array $authSchemes a priority-ordered list of authentication schemes.
* @param IdentityInterface $identity Credentials to be used in request signing.
* @param array $args
*
* @return string
* @return string|null
*/
public function selectAuthScheme(
array $authSchemes,
@@ -2,6 +2,7 @@
namespace Aws\Auth;
use Aws\Api\Service;
use Aws\Auth\Exception\UnresolvedAuthSchemeException;
use Aws\CommandInterface;
use Closure;
use GuzzleHttp\Promise\Promise;
@@ -27,38 +28,50 @@ class AuthSelectionMiddleware
/** @var Service */
private $api;
/** @var array|null */
private ?array $configuredAuthSchemes;
/**
* Create a middleware wrapper function
*
* @param AuthSchemeResolverInterface $authResolver
* @param Service $api
* @param array|null $configuredAuthSchemes
*
* @return Closure
*/
public static function wrap(
AuthSchemeResolverInterface $authResolver,
Service $api
Service $api,
?array $configuredAuthSchemes
): Closure
{
return function (callable $handler) use ($authResolver, $api) {
return new self($handler, $authResolver, $api);
return function (callable $handler) use (
$authResolver,
$api,
$configuredAuthSchemes
) {
return new self($handler, $authResolver, $api, $configuredAuthSchemes);
};
}
/**
* @param callable $nextHandler
* @param $authResolver
* @param callable $identityProvider
* @param AuthSchemeResolverInterface $authResolver
* @param Service $api
* @param array|null $configuredAuthSchemes
*/
public function __construct(
callable $nextHandler,
AuthSchemeResolverInterface $authResolver,
Service $api
Service $api,
?array $configuredAuthSchemes = null
)
{
$this->nextHandler = $nextHandler;
$this->authResolver = $authResolver;
$this->api = $api;
$this->configuredAuthSchemes = $configuredAuthSchemes;
}
/**
@@ -84,16 +97,63 @@ class AuthSelectionMiddleware
$resolver = $this->authResolver;
}
$selectedAuthScheme = $resolver->selectAuthScheme(
$resolvableAuth,
['unsigned_payload' => $unsignedPayload]
);
try {
$authSchemeList = $this->buildAuthSchemeList(
$resolvableAuth,
$command['@context']['auth_scheme_preference']
?? null,
);
$selectedAuthScheme = $resolver->selectAuthScheme(
$authSchemeList,
['unsigned_payload' => $unsignedPayload]
);
if (!empty($selectedAuthScheme)) {
$command['@context']['signature_version'] = $selectedAuthScheme;
if (!empty($selectedAuthScheme)) {
$command['@context']['signature_version'] = $selectedAuthScheme;
}
} catch (UnresolvedAuthSchemeException $ignored) {
// There was an error resolving auth
// The signature version will fall back to the modeled `signatureVersion`
// or auth schemes resolved during endpoint resolution
}
}
return $nextHandler($command);
}
/**
* Prioritizes auth schemes according to user preference order.
* User-preferred schemes that are available will be placed first,
* followed by remaining available schemes.
*
* @param array $resolvableAuthSchemeList Available auth schemes
* @param array|null $commandConfiguredAuthSchemes Command-level preferences (overrides config)
*
* @return array Reordered auth schemes with user preferences first
*/
private function buildAuthSchemeList(
array $resolvableAuthSchemeList,
?array $commandConfiguredAuthSchemes,
): array
{
$userConfiguredAuthSchemes = $commandConfiguredAuthSchemes
?? $this->configuredAuthSchemes;
if (empty($userConfiguredAuthSchemes)) {
return $resolvableAuthSchemeList;
}
$prioritizedAuthSchemes = array_intersect(
$userConfiguredAuthSchemes,
$resolvableAuthSchemeList
);
// Get remaining schemes not in user preferences
$remainingAuthSchemes = array_diff(
$resolvableAuthSchemeList,
$prioritizedAuthSchemes
);
return array_merge($prioritizedAuthSchemes, $remainingAuthSchemes);
}
}
+11 -4
View File
@@ -272,7 +272,7 @@ class AwsClient implements AwsClientInterface
if ($this->isUseEndpointV2()) {
$this->addEndpointV2Middleware();
}
$this->addAuthSelectionMiddleware();
$this->addAuthSelectionMiddleware($config['config']);
if (!is_null($this->api->getMetadata('awsQueryCompatible'))) {
$this->addQueryCompatibleInputMiddleware($this->api);
@@ -303,6 +303,12 @@ class AwsClient implements AwsClientInterface
return $fn();
}
public function getToken()
{
$fn = $this->tokenProvider;
return $fn();
}
public function getEndpoint()
{
@@ -540,7 +546,7 @@ class AwsClient implements AwsClientInterface
Middleware::mapRequest(function (RequestInterface $r) {
return $r->withHeader(
'x-amzn-query-mode',
true
"true"
);
}),
'x-amzn-query-mode-header'
@@ -589,14 +595,15 @@ class AwsClient implements AwsClientInterface
);
}
private function addAuthSelectionMiddleware()
private function addAuthSelectionMiddleware(array $args)
{
$list = $this->getHandlerList();
$list->prependBuild(
AuthSelectionMiddleware::wrap(
$this->authSchemeResolver,
$this->getApi()
$this->getApi(),
$args['auth_scheme_preference'] ?? null
),
'auth-selection'
);
@@ -0,0 +1,27 @@
<?php
namespace Aws\BCMDashboards;
use Aws\AwsClient;
/**
* This client is used to interact with the **AWS Billing and Cost Management Dashboards** service.
* @method \Aws\Result createDashboard(array $args = [])
* @method \GuzzleHttp\Promise\Promise createDashboardAsync(array $args = [])
* @method \Aws\Result deleteDashboard(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteDashboardAsync(array $args = [])
* @method \Aws\Result getDashboard(array $args = [])
* @method \GuzzleHttp\Promise\Promise getDashboardAsync(array $args = [])
* @method \Aws\Result getResourcePolicy(array $args = [])
* @method \GuzzleHttp\Promise\Promise getResourcePolicyAsync(array $args = [])
* @method \Aws\Result listDashboards(array $args = [])
* @method \GuzzleHttp\Promise\Promise listDashboardsAsync(array $args = [])
* @method \Aws\Result listTagsForResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
* @method \Aws\Result tagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
* @method \Aws\Result untagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
* @method \Aws\Result updateDashboard(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateDashboardAsync(array $args = [])
*/
class BCMDashboardsClient extends AwsClient {}
@@ -0,0 +1,9 @@
<?php
namespace Aws\BCMDashboards\Exception;
use Aws\Exception\AwsException;
/**
* Represents an error interacting with the **AWS Billing and Cost Management Dashboards** service.
*/
class BCMDashboardsException extends AwsException {}
@@ -0,0 +1,11 @@
<?php
namespace Aws\BCMRecommendedActions;
use Aws\AwsClient;
/**
* This client is used to interact with the **AWS Billing and Cost Management Recommended Actions** service.
* @method \Aws\Result listRecommendedActions(array $args = [])
* @method \GuzzleHttp\Promise\Promise listRecommendedActionsAsync(array $args = [])
*/
class BCMRecommendedActionsClient extends AwsClient {}
@@ -0,0 +1,9 @@
<?php
namespace Aws\BCMRecommendedActions\Exception;
use Aws\Exception\AwsException;
/**
* Represents an error interacting with the **AWS Billing and Cost Management Recommended Actions** service.
*/
class BCMRecommendedActionsException extends AwsException {}
@@ -5,6 +5,8 @@ use Aws\AwsClient;
/**
* This client is used to interact with the **AWS Backup** service.
* @method \Aws\Result associateBackupVaultMpaApprovalTeam(array $args = [])
* @method \GuzzleHttp\Promise\Promise associateBackupVaultMpaApprovalTeamAsync(array $args = [])
* @method \Aws\Result cancelLegalHold(array $args = [])
* @method \GuzzleHttp\Promise\Promise cancelLegalHoldAsync(array $args = [])
* @method \Aws\Result createBackupPlan(array $args = [])
@@ -21,6 +23,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createLogicallyAirGappedBackupVaultAsync(array $args = [])
* @method \Aws\Result createReportPlan(array $args = [])
* @method \GuzzleHttp\Promise\Promise createReportPlanAsync(array $args = [])
* @method \Aws\Result createRestoreAccessBackupVault(array $args = [])
* @method \GuzzleHttp\Promise\Promise createRestoreAccessBackupVaultAsync(array $args = [])
* @method \Aws\Result createRestoreTestingPlan(array $args = [])
* @method \GuzzleHttp\Promise\Promise createRestoreTestingPlanAsync(array $args = [])
* @method \Aws\Result createRestoreTestingSelection(array $args = [])
@@ -69,6 +73,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise describeReportPlanAsync(array $args = [])
* @method \Aws\Result describeRestoreJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeRestoreJobAsync(array $args = [])
* @method \Aws\Result disassociateBackupVaultMpaApprovalTeam(array $args = [])
* @method \GuzzleHttp\Promise\Promise disassociateBackupVaultMpaApprovalTeamAsync(array $args = [])
* @method \Aws\Result disassociateRecoveryPoint(array $args = [])
* @method \GuzzleHttp\Promise\Promise disassociateRecoveryPointAsync(array $args = [])
* @method \Aws\Result disassociateRecoveryPointFromParent(array $args = [])
@@ -141,6 +147,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listReportJobsAsync(array $args = [])
* @method \Aws\Result listReportPlans(array $args = [])
* @method \GuzzleHttp\Promise\Promise listReportPlansAsync(array $args = [])
* @method \Aws\Result listRestoreAccessBackupVaults(array $args = [])
* @method \GuzzleHttp\Promise\Promise listRestoreAccessBackupVaultsAsync(array $args = [])
* @method \Aws\Result listRestoreJobSummaries(array $args = [])
* @method \GuzzleHttp\Promise\Promise listRestoreJobSummariesAsync(array $args = [])
* @method \Aws\Result listRestoreJobs(array $args = [])
@@ -161,6 +169,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise putBackupVaultNotificationsAsync(array $args = [])
* @method \Aws\Result putRestoreValidationResult(array $args = [])
* @method \GuzzleHttp\Promise\Promise putRestoreValidationResultAsync(array $args = [])
* @method \Aws\Result revokeRestoreAccessBackupVault(array $args = [])
* @method \GuzzleHttp\Promise\Promise revokeRestoreAccessBackupVaultAsync(array $args = [])
* @method \Aws\Result startBackupJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise startBackupJobAsync(array $args = [])
* @method \Aws\Result startCopyJob(array $args = [])
@@ -15,6 +15,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createJobQueueAsync(array $args = [])
* @method \Aws\Result createSchedulingPolicy(array $args = [])
* @method \GuzzleHttp\Promise\Promise createSchedulingPolicyAsync(array $args = [])
* @method \Aws\Result createServiceEnvironment(array $args = [])
* @method \GuzzleHttp\Promise\Promise createServiceEnvironmentAsync(array $args = [])
* @method \Aws\Result deleteComputeEnvironment(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteComputeEnvironmentAsync(array $args = [])
* @method \Aws\Result deleteConsumableResource(array $args = [])
@@ -23,6 +25,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deleteJobQueueAsync(array $args = [])
* @method \Aws\Result deleteSchedulingPolicy(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteSchedulingPolicyAsync(array $args = [])
* @method \Aws\Result deleteServiceEnvironment(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteServiceEnvironmentAsync(array $args = [])
* @method \Aws\Result deregisterJobDefinition(array $args = [])
* @method \GuzzleHttp\Promise\Promise deregisterJobDefinitionAsync(array $args = [])
* @method \Aws\Result describeComputeEnvironments(array $args = [])
@@ -37,6 +41,10 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise describeJobsAsync(array $args = [])
* @method \Aws\Result describeSchedulingPolicies(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeSchedulingPoliciesAsync(array $args = [])
* @method \Aws\Result describeServiceEnvironments(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeServiceEnvironmentsAsync(array $args = [])
* @method \Aws\Result describeServiceJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeServiceJobAsync(array $args = [])
* @method \Aws\Result getJobQueueSnapshot(array $args = [])
* @method \GuzzleHttp\Promise\Promise getJobQueueSnapshotAsync(array $args = [])
* @method \Aws\Result listConsumableResources(array $args = [])
@@ -47,16 +55,22 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listJobsByConsumableResourceAsync(array $args = [])
* @method \Aws\Result listSchedulingPolicies(array $args = [])
* @method \GuzzleHttp\Promise\Promise listSchedulingPoliciesAsync(array $args = [])
* @method \Aws\Result listServiceJobs(array $args = [])
* @method \GuzzleHttp\Promise\Promise listServiceJobsAsync(array $args = [])
* @method \Aws\Result listTagsForResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
* @method \Aws\Result registerJobDefinition(array $args = [])
* @method \GuzzleHttp\Promise\Promise registerJobDefinitionAsync(array $args = [])
* @method \Aws\Result submitJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise submitJobAsync(array $args = [])
* @method \Aws\Result submitServiceJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise submitServiceJobAsync(array $args = [])
* @method \Aws\Result tagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
* @method \Aws\Result terminateJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise terminateJobAsync(array $args = [])
* @method \Aws\Result terminateServiceJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise terminateServiceJobAsync(array $args = [])
* @method \Aws\Result untagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
* @method \Aws\Result updateComputeEnvironment(array $args = [])
@@ -67,5 +81,7 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise updateJobQueueAsync(array $args = [])
* @method \Aws\Result updateSchedulingPolicy(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateSchedulingPolicyAsync(array $args = [])
* @method \Aws\Result updateServiceEnvironment(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateServiceEnvironmentAsync(array $args = [])
*/
class BatchClient extends AwsClient {}
@@ -7,8 +7,22 @@ use Aws\AwsClient;
* This client is used to interact with the **Amazon Bedrock** service.
* @method \Aws\Result batchDeleteEvaluationJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise batchDeleteEvaluationJobAsync(array $args = [])
* @method \Aws\Result cancelAutomatedReasoningPolicyBuildWorkflow(array $args = [])
* @method \GuzzleHttp\Promise\Promise cancelAutomatedReasoningPolicyBuildWorkflowAsync(array $args = [])
* @method \Aws\Result createAutomatedReasoningPolicy(array $args = [])
* @method \GuzzleHttp\Promise\Promise createAutomatedReasoningPolicyAsync(array $args = [])
* @method \Aws\Result createAutomatedReasoningPolicyTestCase(array $args = [])
* @method \GuzzleHttp\Promise\Promise createAutomatedReasoningPolicyTestCaseAsync(array $args = [])
* @method \Aws\Result createAutomatedReasoningPolicyVersion(array $args = [])
* @method \GuzzleHttp\Promise\Promise createAutomatedReasoningPolicyVersionAsync(array $args = [])
* @method \Aws\Result createCustomModel(array $args = [])
* @method \GuzzleHttp\Promise\Promise createCustomModelAsync(array $args = [])
* @method \Aws\Result createCustomModelDeployment(array $args = [])
* @method \GuzzleHttp\Promise\Promise createCustomModelDeploymentAsync(array $args = [])
* @method \Aws\Result createEvaluationJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise createEvaluationJobAsync(array $args = [])
* @method \Aws\Result createFoundationModelAgreement(array $args = [])
* @method \GuzzleHttp\Promise\Promise createFoundationModelAgreementAsync(array $args = [])
* @method \Aws\Result createGuardrail(array $args = [])
* @method \GuzzleHttp\Promise\Promise createGuardrailAsync(array $args = [])
* @method \Aws\Result createGuardrailVersion(array $args = [])
@@ -29,8 +43,18 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createPromptRouterAsync(array $args = [])
* @method \Aws\Result createProvisionedModelThroughput(array $args = [])
* @method \GuzzleHttp\Promise\Promise createProvisionedModelThroughputAsync(array $args = [])
* @method \Aws\Result deleteAutomatedReasoningPolicy(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteAutomatedReasoningPolicyAsync(array $args = [])
* @method \Aws\Result deleteAutomatedReasoningPolicyBuildWorkflow(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteAutomatedReasoningPolicyBuildWorkflowAsync(array $args = [])
* @method \Aws\Result deleteAutomatedReasoningPolicyTestCase(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteAutomatedReasoningPolicyTestCaseAsync(array $args = [])
* @method \Aws\Result deleteCustomModel(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteCustomModelAsync(array $args = [])
* @method \Aws\Result deleteCustomModelDeployment(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteCustomModelDeploymentAsync(array $args = [])
* @method \Aws\Result deleteFoundationModelAgreement(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteFoundationModelAgreementAsync(array $args = [])
* @method \Aws\Result deleteGuardrail(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteGuardrailAsync(array $args = [])
* @method \Aws\Result deleteImportedModel(array $args = [])
@@ -47,12 +71,32 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deleteProvisionedModelThroughputAsync(array $args = [])
* @method \Aws\Result deregisterMarketplaceModelEndpoint(array $args = [])
* @method \GuzzleHttp\Promise\Promise deregisterMarketplaceModelEndpointAsync(array $args = [])
* @method \Aws\Result exportAutomatedReasoningPolicyVersion(array $args = [])
* @method \GuzzleHttp\Promise\Promise exportAutomatedReasoningPolicyVersionAsync(array $args = [])
* @method \Aws\Result getAutomatedReasoningPolicy(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAutomatedReasoningPolicyAsync(array $args = [])
* @method \Aws\Result getAutomatedReasoningPolicyAnnotations(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAutomatedReasoningPolicyAnnotationsAsync(array $args = [])
* @method \Aws\Result getAutomatedReasoningPolicyBuildWorkflow(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAutomatedReasoningPolicyBuildWorkflowAsync(array $args = [])
* @method \Aws\Result getAutomatedReasoningPolicyBuildWorkflowResultAssets(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAutomatedReasoningPolicyBuildWorkflowResultAssetsAsync(array $args = [])
* @method \Aws\Result getAutomatedReasoningPolicyNextScenario(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAutomatedReasoningPolicyNextScenarioAsync(array $args = [])
* @method \Aws\Result getAutomatedReasoningPolicyTestCase(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAutomatedReasoningPolicyTestCaseAsync(array $args = [])
* @method \Aws\Result getAutomatedReasoningPolicyTestResult(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAutomatedReasoningPolicyTestResultAsync(array $args = [])
* @method \Aws\Result getCustomModel(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCustomModelAsync(array $args = [])
* @method \Aws\Result getCustomModelDeployment(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCustomModelDeploymentAsync(array $args = [])
* @method \Aws\Result getEvaluationJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise getEvaluationJobAsync(array $args = [])
* @method \Aws\Result getFoundationModel(array $args = [])
* @method \GuzzleHttp\Promise\Promise getFoundationModelAsync(array $args = [])
* @method \Aws\Result getFoundationModelAvailability(array $args = [])
* @method \GuzzleHttp\Promise\Promise getFoundationModelAvailabilityAsync(array $args = [])
* @method \Aws\Result getGuardrail(array $args = [])
* @method \GuzzleHttp\Promise\Promise getGuardrailAsync(array $args = [])
* @method \Aws\Result getImportedModel(array $args = [])
@@ -75,10 +119,24 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getPromptRouterAsync(array $args = [])
* @method \Aws\Result getProvisionedModelThroughput(array $args = [])
* @method \GuzzleHttp\Promise\Promise getProvisionedModelThroughputAsync(array $args = [])
* @method \Aws\Result getUseCaseForModelAccess(array $args = [])
* @method \GuzzleHttp\Promise\Promise getUseCaseForModelAccessAsync(array $args = [])
* @method \Aws\Result listAutomatedReasoningPolicies(array $args = [])
* @method \GuzzleHttp\Promise\Promise listAutomatedReasoningPoliciesAsync(array $args = [])
* @method \Aws\Result listAutomatedReasoningPolicyBuildWorkflows(array $args = [])
* @method \GuzzleHttp\Promise\Promise listAutomatedReasoningPolicyBuildWorkflowsAsync(array $args = [])
* @method \Aws\Result listAutomatedReasoningPolicyTestCases(array $args = [])
* @method \GuzzleHttp\Promise\Promise listAutomatedReasoningPolicyTestCasesAsync(array $args = [])
* @method \Aws\Result listAutomatedReasoningPolicyTestResults(array $args = [])
* @method \GuzzleHttp\Promise\Promise listAutomatedReasoningPolicyTestResultsAsync(array $args = [])
* @method \Aws\Result listCustomModelDeployments(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCustomModelDeploymentsAsync(array $args = [])
* @method \Aws\Result listCustomModels(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCustomModelsAsync(array $args = [])
* @method \Aws\Result listEvaluationJobs(array $args = [])
* @method \GuzzleHttp\Promise\Promise listEvaluationJobsAsync(array $args = [])
* @method \Aws\Result listFoundationModelAgreementOffers(array $args = [])
* @method \GuzzleHttp\Promise\Promise listFoundationModelAgreementOffersAsync(array $args = [])
* @method \Aws\Result listFoundationModels(array $args = [])
* @method \GuzzleHttp\Promise\Promise listFoundationModelsAsync(array $args = [])
* @method \Aws\Result listGuardrails(array $args = [])
@@ -105,8 +163,14 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
* @method \Aws\Result putModelInvocationLoggingConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise putModelInvocationLoggingConfigurationAsync(array $args = [])
* @method \Aws\Result putUseCaseForModelAccess(array $args = [])
* @method \GuzzleHttp\Promise\Promise putUseCaseForModelAccessAsync(array $args = [])
* @method \Aws\Result registerMarketplaceModelEndpoint(array $args = [])
* @method \GuzzleHttp\Promise\Promise registerMarketplaceModelEndpointAsync(array $args = [])
* @method \Aws\Result startAutomatedReasoningPolicyBuildWorkflow(array $args = [])
* @method \GuzzleHttp\Promise\Promise startAutomatedReasoningPolicyBuildWorkflowAsync(array $args = [])
* @method \Aws\Result startAutomatedReasoningPolicyTestWorkflow(array $args = [])
* @method \GuzzleHttp\Promise\Promise startAutomatedReasoningPolicyTestWorkflowAsync(array $args = [])
* @method \Aws\Result stopEvaluationJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise stopEvaluationJobAsync(array $args = [])
* @method \Aws\Result stopModelCustomizationJob(array $args = [])
@@ -117,6 +181,12 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
* @method \Aws\Result untagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
* @method \Aws\Result updateAutomatedReasoningPolicy(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateAutomatedReasoningPolicyAsync(array $args = [])
* @method \Aws\Result updateAutomatedReasoningPolicyAnnotations(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateAutomatedReasoningPolicyAnnotationsAsync(array $args = [])
* @method \Aws\Result updateAutomatedReasoningPolicyTestCase(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateAutomatedReasoningPolicyTestCaseAsync(array $args = [])
* @method \Aws\Result updateGuardrail(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateGuardrailAsync(array $args = [])
* @method \Aws\Result updateMarketplaceModelEndpoint(array $args = [])
@@ -0,0 +1,61 @@
<?php
namespace Aws\BedrockAgentCore;
use Aws\AwsClient;
/**
* This client is used to interact with the **Amazon Bedrock AgentCore Data Plane Fronting Layer** service.
* @method \Aws\Result createEvent(array $args = [])
* @method \GuzzleHttp\Promise\Promise createEventAsync(array $args = [])
* @method \Aws\Result deleteEvent(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteEventAsync(array $args = [])
* @method \Aws\Result deleteMemoryRecord(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteMemoryRecordAsync(array $args = [])
* @method \Aws\Result getBrowserSession(array $args = [])
* @method \GuzzleHttp\Promise\Promise getBrowserSessionAsync(array $args = [])
* @method \Aws\Result getCodeInterpreterSession(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCodeInterpreterSessionAsync(array $args = [])
* @method \Aws\Result getEvent(array $args = [])
* @method \GuzzleHttp\Promise\Promise getEventAsync(array $args = [])
* @method \Aws\Result getMemoryRecord(array $args = [])
* @method \GuzzleHttp\Promise\Promise getMemoryRecordAsync(array $args = [])
* @method \Aws\Result getResourceApiKey(array $args = [])
* @method \GuzzleHttp\Promise\Promise getResourceApiKeyAsync(array $args = [])
* @method \Aws\Result getResourceOauth2Token(array $args = [])
* @method \GuzzleHttp\Promise\Promise getResourceOauth2TokenAsync(array $args = [])
* @method \Aws\Result getWorkloadAccessToken(array $args = [])
* @method \GuzzleHttp\Promise\Promise getWorkloadAccessTokenAsync(array $args = [])
* @method \Aws\Result getWorkloadAccessTokenForJWT(array $args = [])
* @method \GuzzleHttp\Promise\Promise getWorkloadAccessTokenForJWTAsync(array $args = [])
* @method \Aws\Result getWorkloadAccessTokenForUserId(array $args = [])
* @method \GuzzleHttp\Promise\Promise getWorkloadAccessTokenForUserIdAsync(array $args = [])
* @method \Aws\Result invokeAgentRuntime(array $args = [])
* @method \GuzzleHttp\Promise\Promise invokeAgentRuntimeAsync(array $args = [])
* @method \Aws\Result invokeCodeInterpreter(array $args = [])
* @method \GuzzleHttp\Promise\Promise invokeCodeInterpreterAsync(array $args = [])
* @method \Aws\Result listActors(array $args = [])
* @method \GuzzleHttp\Promise\Promise listActorsAsync(array $args = [])
* @method \Aws\Result listBrowserSessions(array $args = [])
* @method \GuzzleHttp\Promise\Promise listBrowserSessionsAsync(array $args = [])
* @method \Aws\Result listCodeInterpreterSessions(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCodeInterpreterSessionsAsync(array $args = [])
* @method \Aws\Result listEvents(array $args = [])
* @method \GuzzleHttp\Promise\Promise listEventsAsync(array $args = [])
* @method \Aws\Result listMemoryRecords(array $args = [])
* @method \GuzzleHttp\Promise\Promise listMemoryRecordsAsync(array $args = [])
* @method \Aws\Result listSessions(array $args = [])
* @method \GuzzleHttp\Promise\Promise listSessionsAsync(array $args = [])
* @method \Aws\Result retrieveMemoryRecords(array $args = [])
* @method \GuzzleHttp\Promise\Promise retrieveMemoryRecordsAsync(array $args = [])
* @method \Aws\Result startBrowserSession(array $args = [])
* @method \GuzzleHttp\Promise\Promise startBrowserSessionAsync(array $args = [])
* @method \Aws\Result startCodeInterpreterSession(array $args = [])
* @method \GuzzleHttp\Promise\Promise startCodeInterpreterSessionAsync(array $args = [])
* @method \Aws\Result stopBrowserSession(array $args = [])
* @method \GuzzleHttp\Promise\Promise stopBrowserSessionAsync(array $args = [])
* @method \Aws\Result stopCodeInterpreterSession(array $args = [])
* @method \GuzzleHttp\Promise\Promise stopCodeInterpreterSessionAsync(array $args = [])
* @method \Aws\Result updateBrowserStream(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateBrowserStreamAsync(array $args = [])
*/
class BedrockAgentCoreClient extends AwsClient {}
@@ -0,0 +1,9 @@
<?php
namespace Aws\BedrockAgentCore\Exception;
use Aws\Exception\AwsException;
/**
* Represents an error interacting with the **Amazon Bedrock AgentCore Data Plane Fronting Layer** service.
*/
class BedrockAgentCoreException extends AwsException {}
@@ -0,0 +1,117 @@
<?php
namespace Aws\BedrockAgentCoreControl;
use Aws\AwsClient;
/**
* This client is used to interact with the **Amazon Bedrock Agent Core Control Plane Fronting Layer** service.
* @method \Aws\Result createAgentRuntime(array $args = [])
* @method \GuzzleHttp\Promise\Promise createAgentRuntimeAsync(array $args = [])
* @method \Aws\Result createAgentRuntimeEndpoint(array $args = [])
* @method \GuzzleHttp\Promise\Promise createAgentRuntimeEndpointAsync(array $args = [])
* @method \Aws\Result createApiKeyCredentialProvider(array $args = [])
* @method \GuzzleHttp\Promise\Promise createApiKeyCredentialProviderAsync(array $args = [])
* @method \Aws\Result createBrowser(array $args = [])
* @method \GuzzleHttp\Promise\Promise createBrowserAsync(array $args = [])
* @method \Aws\Result createCodeInterpreter(array $args = [])
* @method \GuzzleHttp\Promise\Promise createCodeInterpreterAsync(array $args = [])
* @method \Aws\Result createGateway(array $args = [])
* @method \GuzzleHttp\Promise\Promise createGatewayAsync(array $args = [])
* @method \Aws\Result createGatewayTarget(array $args = [])
* @method \GuzzleHttp\Promise\Promise createGatewayTargetAsync(array $args = [])
* @method \Aws\Result createMemory(array $args = [])
* @method \GuzzleHttp\Promise\Promise createMemoryAsync(array $args = [])
* @method \Aws\Result createOauth2CredentialProvider(array $args = [])
* @method \GuzzleHttp\Promise\Promise createOauth2CredentialProviderAsync(array $args = [])
* @method \Aws\Result createWorkloadIdentity(array $args = [])
* @method \GuzzleHttp\Promise\Promise createWorkloadIdentityAsync(array $args = [])
* @method \Aws\Result deleteAgentRuntime(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteAgentRuntimeAsync(array $args = [])
* @method \Aws\Result deleteAgentRuntimeEndpoint(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteAgentRuntimeEndpointAsync(array $args = [])
* @method \Aws\Result deleteApiKeyCredentialProvider(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteApiKeyCredentialProviderAsync(array $args = [])
* @method \Aws\Result deleteBrowser(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteBrowserAsync(array $args = [])
* @method \Aws\Result deleteCodeInterpreter(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteCodeInterpreterAsync(array $args = [])
* @method \Aws\Result deleteGateway(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteGatewayAsync(array $args = [])
* @method \Aws\Result deleteGatewayTarget(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteGatewayTargetAsync(array $args = [])
* @method \Aws\Result deleteMemory(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteMemoryAsync(array $args = [])
* @method \Aws\Result deleteOauth2CredentialProvider(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteOauth2CredentialProviderAsync(array $args = [])
* @method \Aws\Result deleteWorkloadIdentity(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteWorkloadIdentityAsync(array $args = [])
* @method \Aws\Result getAgentRuntime(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAgentRuntimeAsync(array $args = [])
* @method \Aws\Result getAgentRuntimeEndpoint(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAgentRuntimeEndpointAsync(array $args = [])
* @method \Aws\Result getApiKeyCredentialProvider(array $args = [])
* @method \GuzzleHttp\Promise\Promise getApiKeyCredentialProviderAsync(array $args = [])
* @method \Aws\Result getBrowser(array $args = [])
* @method \GuzzleHttp\Promise\Promise getBrowserAsync(array $args = [])
* @method \Aws\Result getCodeInterpreter(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCodeInterpreterAsync(array $args = [])
* @method \Aws\Result getGateway(array $args = [])
* @method \GuzzleHttp\Promise\Promise getGatewayAsync(array $args = [])
* @method \Aws\Result getGatewayTarget(array $args = [])
* @method \GuzzleHttp\Promise\Promise getGatewayTargetAsync(array $args = [])
* @method \Aws\Result getMemory(array $args = [])
* @method \GuzzleHttp\Promise\Promise getMemoryAsync(array $args = [])
* @method \Aws\Result getOauth2CredentialProvider(array $args = [])
* @method \GuzzleHttp\Promise\Promise getOauth2CredentialProviderAsync(array $args = [])
* @method \Aws\Result getTokenVault(array $args = [])
* @method \GuzzleHttp\Promise\Promise getTokenVaultAsync(array $args = [])
* @method \Aws\Result getWorkloadIdentity(array $args = [])
* @method \GuzzleHttp\Promise\Promise getWorkloadIdentityAsync(array $args = [])
* @method \Aws\Result listAgentRuntimeEndpoints(array $args = [])
* @method \GuzzleHttp\Promise\Promise listAgentRuntimeEndpointsAsync(array $args = [])
* @method \Aws\Result listAgentRuntimeVersions(array $args = [])
* @method \GuzzleHttp\Promise\Promise listAgentRuntimeVersionsAsync(array $args = [])
* @method \Aws\Result listAgentRuntimes(array $args = [])
* @method \GuzzleHttp\Promise\Promise listAgentRuntimesAsync(array $args = [])
* @method \Aws\Result listApiKeyCredentialProviders(array $args = [])
* @method \GuzzleHttp\Promise\Promise listApiKeyCredentialProvidersAsync(array $args = [])
* @method \Aws\Result listBrowsers(array $args = [])
* @method \GuzzleHttp\Promise\Promise listBrowsersAsync(array $args = [])
* @method \Aws\Result listCodeInterpreters(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCodeInterpretersAsync(array $args = [])
* @method \Aws\Result listGatewayTargets(array $args = [])
* @method \GuzzleHttp\Promise\Promise listGatewayTargetsAsync(array $args = [])
* @method \Aws\Result listGateways(array $args = [])
* @method \GuzzleHttp\Promise\Promise listGatewaysAsync(array $args = [])
* @method \Aws\Result listMemories(array $args = [])
* @method \GuzzleHttp\Promise\Promise listMemoriesAsync(array $args = [])
* @method \Aws\Result listOauth2CredentialProviders(array $args = [])
* @method \GuzzleHttp\Promise\Promise listOauth2CredentialProvidersAsync(array $args = [])
* @method \Aws\Result listTagsForResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
* @method \Aws\Result listWorkloadIdentities(array $args = [])
* @method \GuzzleHttp\Promise\Promise listWorkloadIdentitiesAsync(array $args = [])
* @method \Aws\Result setTokenVaultCMK(array $args = [])
* @method \GuzzleHttp\Promise\Promise setTokenVaultCMKAsync(array $args = [])
* @method \Aws\Result tagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
* @method \Aws\Result untagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
* @method \Aws\Result updateAgentRuntime(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateAgentRuntimeAsync(array $args = [])
* @method \Aws\Result updateAgentRuntimeEndpoint(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateAgentRuntimeEndpointAsync(array $args = [])
* @method \Aws\Result updateApiKeyCredentialProvider(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateApiKeyCredentialProviderAsync(array $args = [])
* @method \Aws\Result updateGateway(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateGatewayAsync(array $args = [])
* @method \Aws\Result updateGatewayTarget(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateGatewayTargetAsync(array $args = [])
* @method \Aws\Result updateMemory(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateMemoryAsync(array $args = [])
* @method \Aws\Result updateOauth2CredentialProvider(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateOauth2CredentialProviderAsync(array $args = [])
* @method \Aws\Result updateWorkloadIdentity(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateWorkloadIdentityAsync(array $args = [])
*/
class BedrockAgentCoreControlClient extends AwsClient {}
@@ -0,0 +1,9 @@
<?php
namespace Aws\BedrockAgentCoreControl\Exception;
use Aws\Exception\AwsException;
/**
* Represents an error interacting with the **Amazon Bedrock Agent Core Control Plane Fronting Layer** service.
*/
class BedrockAgentCoreControlException extends AwsException {}
@@ -19,6 +19,10 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise generateQueryAsync(array $args = [])
* @method \Aws\Result getAgentMemory(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAgentMemoryAsync(array $args = [])
* @method \Aws\Result getExecutionFlowSnapshot(array $args = [])
* @method \GuzzleHttp\Promise\Promise getExecutionFlowSnapshotAsync(array $args = [])
* @method \Aws\Result getFlowExecution(array $args = [])
* @method \GuzzleHttp\Promise\Promise getFlowExecutionAsync(array $args = [])
* @method \Aws\Result getInvocationStep(array $args = [])
* @method \GuzzleHttp\Promise\Promise getInvocationStepAsync(array $args = [])
* @method \Aws\Result getSession(array $args = [])
@@ -29,6 +33,10 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise invokeFlowAsync(array $args = [])
* @method \Aws\Result invokeInlineAgent(array $args = [])
* @method \GuzzleHttp\Promise\Promise invokeInlineAgentAsync(array $args = [])
* @method \Aws\Result listFlowExecutionEvents(array $args = [])
* @method \GuzzleHttp\Promise\Promise listFlowExecutionEventsAsync(array $args = [])
* @method \Aws\Result listFlowExecutions(array $args = [])
* @method \GuzzleHttp\Promise\Promise listFlowExecutionsAsync(array $args = [])
* @method \Aws\Result listInvocationSteps(array $args = [])
* @method \GuzzleHttp\Promise\Promise listInvocationStepsAsync(array $args = [])
* @method \Aws\Result listInvocations(array $args = [])
@@ -49,6 +57,10 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise retrieveAndGenerateAsync(array $args = [])
* @method \Aws\Result retrieveAndGenerateStream(array $args = [])
* @method \GuzzleHttp\Promise\Promise retrieveAndGenerateStreamAsync(array $args = [])
* @method \Aws\Result startFlowExecution(array $args = [])
* @method \GuzzleHttp\Promise\Promise startFlowExecutionAsync(array $args = [])
* @method \Aws\Result stopFlowExecution(array $args = [])
* @method \GuzzleHttp\Promise\Promise stopFlowExecutionAsync(array $args = [])
* @method \Aws\Result tagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
* @method \Aws\Result untagResource(array $args = [])
@@ -11,6 +11,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise converseAsync(array $args = [])
* @method \Aws\Result converseStream(array $args = [])
* @method \GuzzleHttp\Promise\Promise converseStreamAsync(array $args = [])
* @method \Aws\Result countTokens(array $args = [])
* @method \GuzzleHttp\Promise\Promise countTokensAsync(array $args = [])
* @method \Aws\Result getAsyncInvoke(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAsyncInvokeAsync(array $args = [])
* @method \Aws\Result invokeModel(array $args = [])
@@ -15,6 +15,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createAnalysisTemplateAsync(array $args = [])
* @method \Aws\Result createCollaboration(array $args = [])
* @method \GuzzleHttp\Promise\Promise createCollaborationAsync(array $args = [])
* @method \Aws\Result createCollaborationChangeRequest(array $args = [])
* @method \GuzzleHttp\Promise\Promise createCollaborationChangeRequestAsync(array $args = [])
* @method \Aws\Result createConfiguredAudienceModelAssociation(array $args = [])
* @method \GuzzleHttp\Promise\Promise createConfiguredAudienceModelAssociationAsync(array $args = [])
* @method \Aws\Result createConfiguredTable(array $args = [])
@@ -63,6 +65,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getCollaborationAsync(array $args = [])
* @method \Aws\Result getCollaborationAnalysisTemplate(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCollaborationAnalysisTemplateAsync(array $args = [])
* @method \Aws\Result getCollaborationChangeRequest(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCollaborationChangeRequestAsync(array $args = [])
* @method \Aws\Result getCollaborationConfiguredAudienceModelAssociation(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCollaborationConfiguredAudienceModelAssociationAsync(array $args = [])
* @method \Aws\Result getCollaborationIdNamespaceAssociation(array $args = [])
@@ -87,6 +91,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getMembershipAsync(array $args = [])
* @method \Aws\Result getPrivacyBudgetTemplate(array $args = [])
* @method \GuzzleHttp\Promise\Promise getPrivacyBudgetTemplateAsync(array $args = [])
* @method \Aws\Result getProtectedJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise getProtectedJobAsync(array $args = [])
* @method \Aws\Result getProtectedQuery(array $args = [])
* @method \GuzzleHttp\Promise\Promise getProtectedQueryAsync(array $args = [])
* @method \Aws\Result getSchema(array $args = [])
@@ -97,6 +103,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listAnalysisTemplatesAsync(array $args = [])
* @method \Aws\Result listCollaborationAnalysisTemplates(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCollaborationAnalysisTemplatesAsync(array $args = [])
* @method \Aws\Result listCollaborationChangeRequests(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCollaborationChangeRequestsAsync(array $args = [])
* @method \Aws\Result listCollaborationConfiguredAudienceModelAssociations(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCollaborationConfiguredAudienceModelAssociationsAsync(array $args = [])
* @method \Aws\Result listCollaborationIdNamespaceAssociations(array $args = [])
@@ -125,6 +133,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listPrivacyBudgetTemplatesAsync(array $args = [])
* @method \Aws\Result listPrivacyBudgets(array $args = [])
* @method \GuzzleHttp\Promise\Promise listPrivacyBudgetsAsync(array $args = [])
* @method \Aws\Result listProtectedJobs(array $args = [])
* @method \GuzzleHttp\Promise\Promise listProtectedJobsAsync(array $args = [])
* @method \Aws\Result listProtectedQueries(array $args = [])
* @method \GuzzleHttp\Promise\Promise listProtectedQueriesAsync(array $args = [])
* @method \Aws\Result listSchemas(array $args = [])
@@ -135,6 +145,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise populateIdMappingTableAsync(array $args = [])
* @method \Aws\Result previewPrivacyImpact(array $args = [])
* @method \GuzzleHttp\Promise\Promise previewPrivacyImpactAsync(array $args = [])
* @method \Aws\Result startProtectedJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise startProtectedJobAsync(array $args = [])
* @method \Aws\Result startProtectedQuery(array $args = [])
* @method \GuzzleHttp\Promise\Promise startProtectedQueryAsync(array $args = [])
* @method \Aws\Result tagResource(array $args = [])
@@ -163,6 +175,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise updateMembershipAsync(array $args = [])
* @method \Aws\Result updatePrivacyBudgetTemplate(array $args = [])
* @method \GuzzleHttp\Promise\Promise updatePrivacyBudgetTemplateAsync(array $args = [])
* @method \Aws\Result updateProtectedJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateProtectedJobAsync(array $args = [])
* @method \Aws\Result updateProtectedQuery(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateProtectedQueryAsync(array $args = [])
*/
@@ -99,6 +99,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
* @method \Aws\Result listTrainedModelInferenceJobs(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTrainedModelInferenceJobsAsync(array $args = [])
* @method \Aws\Result listTrainedModelVersions(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTrainedModelVersionsAsync(array $args = [])
* @method \Aws\Result listTrainedModels(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTrainedModelsAsync(array $args = [])
* @method \Aws\Result listTrainingDatasets(array $args = [])
+44 -1
View File
@@ -34,6 +34,7 @@ use Aws\Retry\ConfigurationProvider as RetryConfigProvider;
use Aws\Signature\SignatureProvider;
use Aws\Token\Token;
use Aws\Token\TokenInterface;
use Aws\Token\BedrockTokenProvider;
use Aws\Token\TokenProvider;
use GuzzleHttp\Promise\PromiseInterface;
use InvalidArgumentException as IAE;
@@ -206,6 +207,13 @@ class ClientResolver
'fn' => [__CLASS__, '_apply_credentials'],
'default' => [__CLASS__, '_default_credential_provider'],
],
'auth_scheme_preference' => [
'type' => 'value',
'valid' => ['string', 'array'],
'doc' => 'Comma-separated list of authentication scheme preferences in priority order. Configure via environment variable `AWS_AUTH_SCHEME_PREFERENCE`, INI config file `auth_scheme_preference`, or client constructor parameter `auth_scheme_preference` (string or array).\nExample: `AWS_AUTH_SCHEME_PREFERENCE=aws.auth#sigv4a,aws.auth#sigv4,smithy.api#httpBearerAuth`',
'default' => self::DEFAULT_FROM_ENV_INI,
'fn' => [__CLASS__, '_apply_auth_scheme_preference'],
],
'token' => [
'type' => 'value',
'valid' => [TokenInterface::class, CacheInterface::class, 'array', 'bool', 'callable'],
@@ -704,8 +712,17 @@ class ClientResolver
}
}
public static function _default_token_provider(array $args)
public static function _default_token_provider(array &$args)
{
if (($args['config']['signing_name'] ?? '') === 'bedrock') {
// Checks for env value, if present, sets auth_scheme_preference
// to bearer auth and returns a provider
$provider = BedrockTokenProvider::createIfAvailable($args);
if (!is_null($provider)) {
return $provider;
}
}
return TokenProvider::defaultProvider($args);
}
@@ -1122,6 +1139,32 @@ class ClientResolver
return new AuthSchemeResolver($args['credentials'], $args['token']);
}
public static function _apply_auth_scheme_preference(
string|array|null &$value,
array &$args
): void
{
// Not provided user's preference auth scheme list
if (empty($value)) {
$value = null;
$args['config']['auth_scheme_preference'] = $value;
return;
}
// Normalize it as an array
if (is_string($value)) {
$value = explode(',', $value);
}
// Let`s trim each value to remove break lines, spaces and/or tabs
foreach ($value as &$val) {
$val = trim($val);
}
// Assign user's preferred auth scheme list
$args['auth_scheme_preference'] = $value;
}
public static function _default_signature_version(array &$args)
{
if (isset($args['config']['signature_version'])) {
@@ -100,16 +100,26 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise updatePublicKeyAsync(array $args = []) (supported in versions 2017-10-30, 2018-06-18, 2018-11-05, 2019-03-26, 2020-05-31)
* @method \Aws\Result associateAlias(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise associateAliasAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result associateDistributionTenantWebACL(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise associateDistributionTenantWebACLAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result associateDistributionWebACL(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise associateDistributionWebACLAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result copyDistribution(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise copyDistributionAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result createAnycastIpList(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise createAnycastIpListAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result createCachePolicy(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise createCachePolicyAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result createConnectionGroup(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise createConnectionGroupAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result createContinuousDeploymentPolicy(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise createContinuousDeploymentPolicyAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result createDistributionTenant(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise createDistributionTenantAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result createFunction(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise createFunctionAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result createInvalidationForDistributionTenant(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise createInvalidationForDistributionTenantAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result createKeyGroup(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise createKeyGroupAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result createKeyValueStore(array $args = []) (supported in versions 2020-05-31)
@@ -130,8 +140,12 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deleteAnycastIpListAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result deleteCachePolicy(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise deleteCachePolicyAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result deleteConnectionGroup(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise deleteConnectionGroupAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result deleteContinuousDeploymentPolicy(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise deleteContinuousDeploymentPolicyAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result deleteDistributionTenant(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise deleteDistributionTenantAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result deleteFunction(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise deleteFunctionAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result deleteKeyGroup(array $args = []) (supported in versions 2020-05-31)
@@ -154,22 +168,38 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise describeFunctionAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result describeKeyValueStore(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise describeKeyValueStoreAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result disassociateDistributionTenantWebACL(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise disassociateDistributionTenantWebACLAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result disassociateDistributionWebACL(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise disassociateDistributionWebACLAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result getAnycastIpList(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise getAnycastIpListAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result getCachePolicy(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise getCachePolicyAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result getCachePolicyConfig(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise getCachePolicyConfigAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result getConnectionGroup(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise getConnectionGroupAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result getConnectionGroupByRoutingEndpoint(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise getConnectionGroupByRoutingEndpointAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result getContinuousDeploymentPolicy(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise getContinuousDeploymentPolicyAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result getContinuousDeploymentPolicyConfig(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise getContinuousDeploymentPolicyConfigAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result getDistributionTenant(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise getDistributionTenantAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result getDistributionTenantByDomain(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise getDistributionTenantByDomainAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result getFunction(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise getFunctionAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result getInvalidationForDistributionTenant(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise getInvalidationForDistributionTenantAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result getKeyGroup(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise getKeyGroupAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result getKeyGroupConfig(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise getKeyGroupConfigAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result getManagedCertificateDetails(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise getManagedCertificateDetailsAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result getMonitoringSubscription(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise getMonitoringSubscriptionAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result getOriginAccessControl(array $args = []) (supported in versions 2020-05-31)
@@ -194,12 +224,20 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listCachePoliciesAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result listConflictingAliases(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise listConflictingAliasesAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result listConnectionGroups(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise listConnectionGroupsAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result listContinuousDeploymentPolicies(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise listContinuousDeploymentPoliciesAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result listDistributionTenants(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise listDistributionTenantsAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result listDistributionTenantsByCustomization(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise listDistributionTenantsByCustomizationAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result listDistributionsByAnycastIpListId(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise listDistributionsByAnycastIpListIdAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result listDistributionsByCachePolicyId(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise listDistributionsByCachePolicyIdAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result listDistributionsByConnectionMode(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise listDistributionsByConnectionModeAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result listDistributionsByKeyGroup(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise listDistributionsByKeyGroupAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result listDistributionsByOriginRequestPolicyId(array $args = []) (supported in versions 2020-05-31)
@@ -210,8 +248,12 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listDistributionsByResponseHeadersPolicyIdAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result listDistributionsByVpcOriginId(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise listDistributionsByVpcOriginIdAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result listDomainConflicts(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise listDomainConflictsAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result listFunctions(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise listFunctionsAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result listInvalidationsForDistributionTenant(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise listInvalidationsForDistributionTenantAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result listKeyGroups(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise listKeyGroupsAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result listKeyValueStores(array $args = []) (supported in versions 2020-05-31)
@@ -232,10 +274,16 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise testFunctionAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result updateCachePolicy(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise updateCachePolicyAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result updateConnectionGroup(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise updateConnectionGroupAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result updateContinuousDeploymentPolicy(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise updateContinuousDeploymentPolicyAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result updateDistributionTenant(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise updateDistributionTenantAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result updateDistributionWithStagingConfig(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise updateDistributionWithStagingConfigAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result updateDomainAssociation(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise updateDomainAssociationAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result updateFunction(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise updateFunctionAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result updateKeyGroup(array $args = []) (supported in versions 2020-05-31)
@@ -252,6 +300,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise updateResponseHeadersPolicyAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result updateVpcOrigin(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise updateVpcOriginAsync(array $args = []) (supported in versions 2020-05-31)
* @method \Aws\Result verifyDnsConfiguration(array $args = []) (supported in versions 2020-05-31)
* @method \GuzzleHttp\Promise\Promise verifyDnsConfigurationAsync(array $args = []) (supported in versions 2020-05-31)
*/
class CloudFrontClient extends AwsClient
{
@@ -44,6 +44,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getChannelAsync(array $args = [])
* @method \Aws\Result getDashboard(array $args = [])
* @method \GuzzleHttp\Promise\Promise getDashboardAsync(array $args = [])
* @method \Aws\Result getEventConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise getEventConfigurationAsync(array $args = [])
* @method \Aws\Result getEventDataStore(array $args = [])
* @method \GuzzleHttp\Promise\Promise getEventDataStoreAsync(array $args = [])
* @method \Aws\Result getEventSelectors(array $args = [])
@@ -82,6 +84,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listTrailsAsync(array $args = [])
* @method \Aws\Result lookupEvents(array $args = [])
* @method \GuzzleHttp\Promise\Promise lookupEventsAsync(array $args = [])
* @method \Aws\Result putEventConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise putEventConfigurationAsync(array $args = [])
* @method \Aws\Result putEventSelectors(array $args = [])
* @method \GuzzleHttp\Promise\Promise putEventSelectorsAsync(array $args = [])
* @method \Aws\Result putInsightSelectors(array $args = [])
@@ -16,6 +16,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deleteInsightRulesAsync(array $args = [])
* @method \Aws\Result deleteMetricStream(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteMetricStreamAsync(array $args = [])
* @method \Aws\Result describeAlarmContributors(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeAlarmContributorsAsync(array $args = [])
* @method \Aws\Result describeAlarmHistory(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeAlarmHistoryAsync(array $args = [])
* @method \Aws\Result describeAlarms(array $args = [])
@@ -112,6 +112,8 @@ use Generator;
* @method \GuzzleHttp\Promise\Promise getLogEventsAsync(array $args = [])
* @method \Aws\Result getLogGroupFields(array $args = [])
* @method \GuzzleHttp\Promise\Promise getLogGroupFieldsAsync(array $args = [])
* @method \Aws\Result getLogObject(array $args = [])
* @method \GuzzleHttp\Promise\Promise getLogObjectAsync(array $args = [])
* @method \Aws\Result getLogRecord(array $args = [])
* @method \GuzzleHttp\Promise\Promise getLogRecordAsync(array $args = [])
* @method \Aws\Result getQueryResults(array $args = [])
@@ -124,6 +126,8 @@ use Generator;
* @method \GuzzleHttp\Promise\Promise listIntegrationsAsync(array $args = [])
* @method \Aws\Result listLogAnomalyDetectors(array $args = [])
* @method \GuzzleHttp\Promise\Promise listLogAnomalyDetectorsAsync(array $args = [])
* @method \Aws\Result listLogGroups(array $args = [])
* @method \GuzzleHttp\Promise\Promise listLogGroupsAsync(array $args = [])
* @method \Aws\Result listLogGroupsForQuery(array $args = [])
* @method \GuzzleHttp\Promise\Promise listLogGroupsForQueryAsync(array $args = [])
* @method \Aws\Result listTagsForResource(array $args = [])
@@ -11,6 +11,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise batchGetBuildBatchesAsync(array $args = [])
* @method \Aws\Result batchGetBuilds(array $args = [])
* @method \GuzzleHttp\Promise\Promise batchGetBuildsAsync(array $args = [])
* @method \Aws\Result batchGetCommandExecutions(array $args = [])
* @method \GuzzleHttp\Promise\Promise batchGetCommandExecutionsAsync(array $args = [])
* @method \Aws\Result batchGetFleets(array $args = [])
* @method \GuzzleHttp\Promise\Promise batchGetFleetsAsync(array $args = [])
* @method \Aws\Result batchGetProjects(array $args = [])
@@ -19,6 +21,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise batchGetReportGroupsAsync(array $args = [])
* @method \Aws\Result batchGetReports(array $args = [])
* @method \GuzzleHttp\Promise\Promise batchGetReportsAsync(array $args = [])
* @method \Aws\Result batchGetSandboxes(array $args = [])
* @method \GuzzleHttp\Promise\Promise batchGetSandboxesAsync(array $args = [])
* @method \Aws\Result createFleet(array $args = [])
* @method \GuzzleHttp\Promise\Promise createFleetAsync(array $args = [])
* @method \Aws\Result createProject(array $args = [])
@@ -63,6 +67,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listBuildsAsync(array $args = [])
* @method \Aws\Result listBuildsForProject(array $args = [])
* @method \GuzzleHttp\Promise\Promise listBuildsForProjectAsync(array $args = [])
* @method \Aws\Result listCommandExecutionsForSandbox(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCommandExecutionsForSandboxAsync(array $args = [])
* @method \Aws\Result listCuratedEnvironmentImages(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCuratedEnvironmentImagesAsync(array $args = [])
* @method \Aws\Result listFleets(array $args = [])
@@ -75,6 +81,10 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listReportsAsync(array $args = [])
* @method \Aws\Result listReportsForReportGroup(array $args = [])
* @method \GuzzleHttp\Promise\Promise listReportsForReportGroupAsync(array $args = [])
* @method \Aws\Result listSandboxes(array $args = [])
* @method \GuzzleHttp\Promise\Promise listSandboxesAsync(array $args = [])
* @method \Aws\Result listSandboxesForProject(array $args = [])
* @method \GuzzleHttp\Promise\Promise listSandboxesForProjectAsync(array $args = [])
* @method \Aws\Result listSharedProjects(array $args = [])
* @method \GuzzleHttp\Promise\Promise listSharedProjectsAsync(array $args = [])
* @method \Aws\Result listSharedReportGroups(array $args = [])
@@ -91,10 +101,18 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise startBuildAsync(array $args = [])
* @method \Aws\Result startBuildBatch(array $args = [])
* @method \GuzzleHttp\Promise\Promise startBuildBatchAsync(array $args = [])
* @method \Aws\Result startCommandExecution(array $args = [])
* @method \GuzzleHttp\Promise\Promise startCommandExecutionAsync(array $args = [])
* @method \Aws\Result startSandbox(array $args = [])
* @method \GuzzleHttp\Promise\Promise startSandboxAsync(array $args = [])
* @method \Aws\Result startSandboxConnection(array $args = [])
* @method \GuzzleHttp\Promise\Promise startSandboxConnectionAsync(array $args = [])
* @method \Aws\Result stopBuild(array $args = [])
* @method \GuzzleHttp\Promise\Promise stopBuildAsync(array $args = [])
* @method \Aws\Result stopBuildBatch(array $args = [])
* @method \GuzzleHttp\Promise\Promise stopBuildBatchAsync(array $args = [])
* @method \Aws\Result stopSandbox(array $args = [])
* @method \GuzzleHttp\Promise\Promise stopSandboxAsync(array $args = [])
* @method \Aws\Result updateFleet(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateFleetAsync(array $args = [])
* @method \Aws\Result updateProject(array $args = [])
@@ -42,6 +42,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listActionExecutionsAsync(array $args = [])
* @method \Aws\Result listActionTypes(array $args = [])
* @method \GuzzleHttp\Promise\Promise listActionTypesAsync(array $args = [])
* @method \Aws\Result listDeployActionExecutionTargets(array $args = [])
* @method \GuzzleHttp\Promise\Promise listDeployActionExecutionTargetsAsync(array $args = [])
* @method \Aws\Result listPipelineExecutions(array $args = [])
* @method \GuzzleHttp\Promise\Promise listPipelineExecutionsAsync(array $args = [])
* @method \Aws\Result listPipelines(array $args = [])
@@ -80,6 +80,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createManagedLoginBrandingAsync(array $args = [])
* @method \Aws\Result createResourceServer(array $args = [])
* @method \GuzzleHttp\Promise\Promise createResourceServerAsync(array $args = [])
* @method \Aws\Result createTerms(array $args = [])
* @method \GuzzleHttp\Promise\Promise createTermsAsync(array $args = [])
* @method \Aws\Result createUserImportJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise createUserImportJobAsync(array $args = [])
* @method \Aws\Result createUserPool(array $args = [])
@@ -96,6 +98,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deleteManagedLoginBrandingAsync(array $args = [])
* @method \Aws\Result deleteResourceServer(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteResourceServerAsync(array $args = [])
* @method \Aws\Result deleteTerms(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteTermsAsync(array $args = [])
* @method \Aws\Result deleteUser(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteUserAsync(array $args = [])
* @method \Aws\Result deleteUserAttributes(array $args = [])
@@ -118,6 +122,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise describeResourceServerAsync(array $args = [])
* @method \Aws\Result describeRiskConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeRiskConfigurationAsync(array $args = [])
* @method \Aws\Result describeTerms(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeTermsAsync(array $args = [])
* @method \Aws\Result describeUserImportJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeUserImportJobAsync(array $args = [])
* @method \Aws\Result describeUserPool(array $args = [])
@@ -142,6 +148,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getLogDeliveryConfigurationAsync(array $args = [])
* @method \Aws\Result getSigningCertificate(array $args = [])
* @method \GuzzleHttp\Promise\Promise getSigningCertificateAsync(array $args = [])
* @method \Aws\Result getTokensFromRefreshToken(array $args = [])
* @method \GuzzleHttp\Promise\Promise getTokensFromRefreshTokenAsync(array $args = [])
* @method \Aws\Result getUICustomization(array $args = [])
* @method \GuzzleHttp\Promise\Promise getUICustomizationAsync(array $args = [])
* @method \Aws\Result getUser(array $args = [])
@@ -166,6 +174,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listResourceServersAsync(array $args = [])
* @method \Aws\Result listTagsForResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
* @method \Aws\Result listTerms(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTermsAsync(array $args = [])
* @method \Aws\Result listUserImportJobs(array $args = [])
* @method \GuzzleHttp\Promise\Promise listUserImportJobsAsync(array $args = [])
* @method \Aws\Result listUserPoolClients(array $args = [])
@@ -220,6 +230,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise updateManagedLoginBrandingAsync(array $args = [])
* @method \Aws\Result updateResourceServer(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateResourceServerAsync(array $args = [])
* @method \Aws\Result updateTerms(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateTermsAsync(array $args = [])
* @method \Aws\Result updateUserAttributes(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateUserAttributesAsync(array $args = [])
* @method \Aws\Result updateUserPool(array $args = [])
@@ -68,7 +68,7 @@ class ConfigurationResolver
*
* @return null | mixed
*/
public static function env($key, $expectedType)
public static function env($key, $expectedType = 'string')
{
// Use config from environment variables, if available
$envValue = getenv(self::$envPrefix . strtoupper($key));
@@ -203,6 +203,7 @@ class ConfigurationResolver
) {
$value = intVal($value);
}
return $value;
}
@@ -249,6 +249,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getAttachedFileAsync(array $args = [])
* @method \Aws\Result getContactAttributes(array $args = [])
* @method \GuzzleHttp\Promise\Promise getContactAttributesAsync(array $args = [])
* @method \Aws\Result getContactMetrics(array $args = [])
* @method \GuzzleHttp\Promise\Promise getContactMetricsAsync(array $args = [])
* @method \Aws\Result getCurrentMetricData(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCurrentMetricDataAsync(array $args = [])
* @method \Aws\Result getCurrentUserData(array $args = [])
@@ -29,6 +29,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getCampaignStateBatchAsync(array $args = [])
* @method \Aws\Result getConnectInstanceConfig(array $args = [])
* @method \GuzzleHttp\Promise\Promise getConnectInstanceConfigAsync(array $args = [])
* @method \Aws\Result getInstanceCommunicationLimits(array $args = [])
* @method \GuzzleHttp\Promise\Promise getInstanceCommunicationLimitsAsync(array $args = [])
* @method \Aws\Result getInstanceOnboardingJobStatus(array $args = [])
* @method \GuzzleHttp\Promise\Promise getInstanceOnboardingJobStatusAsync(array $args = [])
* @method \Aws\Result listCampaigns(array $args = [])
@@ -41,6 +43,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise pauseCampaignAsync(array $args = [])
* @method \Aws\Result putConnectInstanceIntegration(array $args = [])
* @method \GuzzleHttp\Promise\Promise putConnectInstanceIntegrationAsync(array $args = [])
* @method \Aws\Result putInstanceCommunicationLimits(array $args = [])
* @method \GuzzleHttp\Promise\Promise putInstanceCommunicationLimitsAsync(array $args = [])
* @method \Aws\Result putOutboundRequestBatch(array $args = [])
* @method \GuzzleHttp\Promise\Promise putOutboundRequestBatchAsync(array $args = [])
* @method \Aws\Result putProfileOutboundRequestBatch(array $args = [])
@@ -25,6 +25,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createRelatedItemAsync(array $args = [])
* @method \Aws\Result createTemplate(array $args = [])
* @method \GuzzleHttp\Promise\Promise createTemplateAsync(array $args = [])
* @method \Aws\Result deleteCase(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteCaseAsync(array $args = [])
* @method \Aws\Result deleteCaseRule(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteCaseRuleAsync(array $args = [])
* @method \Aws\Result deleteDomain(array $args = [])
@@ -33,6 +35,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deleteFieldAsync(array $args = [])
* @method \Aws\Result deleteLayout(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteLayoutAsync(array $args = [])
* @method \Aws\Result deleteRelatedItem(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteRelatedItemAsync(array $args = [])
* @method \Aws\Result deleteTemplate(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteTemplateAsync(array $args = [])
* @method \Aws\Result getCase(array $args = [])
@@ -9,6 +9,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getControlAsync(array $args = [])
* @method \Aws\Result listCommonControls(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCommonControlsAsync(array $args = [])
* @method \Aws\Result listControlMappings(array $args = [])
* @method \GuzzleHttp\Promise\Promise listControlMappingsAsync(array $args = [])
* @method \Aws\Result listControls(array $args = [])
* @method \GuzzleHttp\Promise\Promise listControlsAsync(array $args = [])
* @method \Aws\Result listDomains(array $args = [])
@@ -31,10 +31,14 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getCommitmentPurchaseAnalysisAsync(array $args = [])
* @method \Aws\Result getCostAndUsage(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCostAndUsageAsync(array $args = [])
* @method \Aws\Result getCostAndUsageComparisons(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCostAndUsageComparisonsAsync(array $args = [])
* @method \Aws\Result getCostAndUsageWithResources(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCostAndUsageWithResourcesAsync(array $args = [])
* @method \Aws\Result getCostCategories(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCostCategoriesAsync(array $args = [])
* @method \Aws\Result getCostComparisonDrivers(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCostComparisonDriversAsync(array $args = [])
* @method \Aws\Result getCostForecast(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCostForecastAsync(array $args = [])
* @method \Aws\Result getDimensionValues(array $args = [])
@@ -52,6 +52,7 @@ class CredentialProvider
const ENV_SESSION = 'AWS_SESSION_TOKEN';
const ENV_TOKEN_FILE = 'AWS_WEB_IDENTITY_TOKEN_FILE';
const ENV_SHARED_CREDENTIALS_FILE = 'AWS_SHARED_CREDENTIALS_FILE';
public const REFRESH_WINDOW = 60;
/**
* Create a default credential provider that
@@ -224,10 +225,14 @@ class CredentialProvider
return $creds;
}
// Refresh expired credentials.
if (!$creds->isExpired()) {
// Check if credentials are expired or will expire in 1 minute
$needsRefresh = $creds->getExpiration() - time() <= self::REFRESH_WINDOW;
// Refresh if expired or expiring soon
if (!$needsRefresh && !$creds->isExpired()) {
return $creds;
}
// Refresh the result and forward the promise.
return $result = $provider($creds);
})
@@ -5,8 +5,6 @@ use Aws\Exception\CryptoException;
use GuzzleHttp\Psr7;
use GuzzleHttp\Psr7\StreamDecoratorTrait;
use Psr\Http\Message\StreamInterface;
use Aws\Crypto\Polyfill\AesGcm;
use Aws\Crypto\Polyfill\Key;
/**
* @internal Represents a stream of data to be gcm decrypted.
@@ -81,31 +79,22 @@ class AesGcmDecryptingStream implements AesStreamInterface
public function createStream()
{
if (version_compare(PHP_VERSION, '7.1', '<')) {
return Psr7\Utils::streamFor(AesGcm::decrypt(
(string) $this->cipherText,
$this->initializationVector,
new Key($this->key),
$this->aad,
$this->tag,
$this->keySize
));
} else {
$result = \openssl_decrypt(
(string)$this->cipherText,
$this->getOpenSslName(),
$this->key,
OPENSSL_RAW_DATA,
$this->initializationVector,
$this->tag,
$this->aad
);
if ($result === false) {
throw new CryptoException('The requested object could not be'
. ' decrypted due to an invalid authentication tag.');
}
return Psr7\Utils::streamFor($result);
$result = \openssl_decrypt(
(string)$this->cipherText,
$this->getOpenSslName(),
$this->key,
OPENSSL_RAW_DATA,
$this->initializationVector,
$this->tag,
$this->aad
);
if ($result === false) {
throw new CryptoException('The requested object could not be '
. 'decrypted due to an invalid authentication tag.');
}
return Psr7\Utils::streamFor($result);
}
public function isWritable(): bool
@@ -1,12 +1,9 @@
<?php
namespace Aws\Crypto;
use Aws\Crypto\Polyfill\AesGcm;
use Aws\Crypto\Polyfill\Key;
use GuzzleHttp\Psr7;
use GuzzleHttp\Psr7\StreamDecoratorTrait;
use Psr\Http\Message\StreamInterface;
use \RuntimeException;
/**
* @internal Represents a stream of data to be gcm encrypted.
@@ -95,27 +92,16 @@ class AesGcmEncryptingStream implements AesStreamInterface, AesStreamInterfaceV2
public function createStream()
{
if (version_compare(PHP_VERSION, '7.1', '<')) {
return Psr7\Utils::streamFor(AesGcm::encrypt(
(string) $this->plaintext,
$this->initializationVector,
new Key($this->key),
$this->aad,
$this->tag,
$this->keySize
));
} else {
return Psr7\Utils::streamFor(\openssl_encrypt(
(string)$this->plaintext,
$this->getOpenSslName(),
$this->key,
OPENSSL_RAW_DATA,
$this->initializationVector,
$this->tag,
$this->aad,
$this->tagLength
));
}
return Psr7\Utils::streamFor(\openssl_encrypt(
(string)$this->plaintext,
$this->getOpenSslName(),
$this->key,
OPENSSL_RAW_DATA,
$this->initializationVector,
$this->tag,
$this->aad,
$this->tagLength
));
}
/**
@@ -1,226 +0,0 @@
<?php
namespace Aws\Crypto\Polyfill;
use Aws\Exception\CryptoPolyfillException;
use InvalidArgumentException;
use RangeException;
/**
* Class AesGcm
*
* This provides a polyfill for AES-GCM encryption/decryption, with caveats:
*
* 1. Only 96-bit nonces are supported.
* 2. Only 128-bit authentication tags are supported. (i.e. non-truncated)
*
* Supports AES key sizes of 128-bit, 192-bit, and 256-bit.
*/
class AesGcm
{
use NeedsTrait;
/** @var Key $aesKey */
private $aesKey;
/** @var int $keySize */
private $keySize;
/** @var int $blockSize */
protected $blockSize = 8192;
/**
* AesGcm constructor.
*
* @param Key $aesKey
* @param int $keySize
* @param int $blockSize
*
* @throws CryptoPolyfillException
* @throws InvalidArgumentException
* @throws RangeException
*/
public function __construct(Key $aesKey, $keySize = 256, $blockSize = 8192)
{
/* Preconditions: */
self::needs(
\in_array($keySize, [128, 192, 256], true),
"Key size must be 128, 192, or 256 bits; {$keySize} given",
InvalidArgumentException::class
);
self::needs(
\is_int($blockSize) && $blockSize > 0 && $blockSize <= PHP_INT_MAX,
'Block size must be a positive integer.',
RangeException::class
);
self::needs(
$aesKey->length() << 3 === $keySize,
'Incorrect key size; expected ' . $keySize . ' bits, got ' . ($aesKey->length() << 3) . ' bits.'
);
$this->aesKey = $aesKey;
$this->keySize = $keySize;
}
/**
* Encryption interface for AES-GCM
*
* @param string $plaintext Message to be encrypted
* @param string $nonce Number to be used ONCE
* @param Key $key AES Key
* @param string $aad Additional authenticated data
* @param string &$tag Reference to variable to hold tag
* @param int $keySize Key size (bits)
* @param int $blockSize Block size (bytes) -- How much memory to buffer
* @return string
* @throws InvalidArgumentException
*/
public static function encrypt(
$plaintext,
$nonce,
Key $key,
$aad,
&$tag,
$keySize = 256,
$blockSize = 8192
) {
self::needs(
self::strlen($nonce) === 12,
'Nonce must be exactly 12 bytes',
InvalidArgumentException::class
);
$encryptor = new AesGcm($key, $keySize, $blockSize);
list($aadLength, $gmac) = $encryptor->gmacInit($nonce, $aad);
$ciphertext = \openssl_encrypt(
$plaintext,
"aes-{$encryptor->keySize}-ctr",
$key->get(),
OPENSSL_NO_PADDING | OPENSSL_RAW_DATA,
$nonce . "\x00\x00\x00\x02"
);
/* Calculate auth tag in a streaming fashion to minimize memory usage: */
$ciphertextLength = self::strlen($ciphertext);
for ($i = 0; $i < $ciphertextLength; $i += $encryptor->blockSize) {
$cBlock = new ByteArray(self::substr($ciphertext, $i, $encryptor->blockSize));
$gmac->update($cBlock);
}
$tag = $gmac->finish($aadLength, $ciphertextLength)->toString();
return $ciphertext;
}
/**
* Decryption interface for AES-GCM
*
* @param string $ciphertext Ciphertext to decrypt
* @param string $nonce Number to be used ONCE
* @param Key $key AES key
* @param string $aad Additional authenticated data
* @param string $tag Authentication tag
* @param int $keySize Key size (bits)
* @param int $blockSize Block size (bytes) -- How much memory to buffer
* @return string Plaintext
*
* @throws CryptoPolyfillException
* @throws InvalidArgumentException
*/
public static function decrypt(
$ciphertext,
$nonce,
Key $key,
$aad,
&$tag,
$keySize = 256,
$blockSize = 8192
) {
/* Precondition: */
self::needs(
self::strlen($nonce) === 12,
'Nonce must be exactly 12 bytes',
InvalidArgumentException::class
);
$encryptor = new AesGcm($key, $keySize, $blockSize);
list($aadLength, $gmac) = $encryptor->gmacInit($nonce, $aad);
/* Calculate auth tag in a streaming fashion to minimize memory usage: */
$ciphertextLength = self::strlen($ciphertext);
for ($i = 0; $i < $ciphertextLength; $i += $encryptor->blockSize) {
$cBlock = new ByteArray(self::substr($ciphertext, $i, $encryptor->blockSize));
$gmac->update($cBlock);
}
/* Validate auth tag in constant-time: */
$calc = $gmac->finish($aadLength, $ciphertextLength);
$expected = new ByteArray($tag);
self::needs($calc->equals($expected), 'Invalid authentication tag');
/* Return plaintext if auth tag check succeeded: */
return \openssl_decrypt(
$ciphertext,
"aes-{$encryptor->keySize}-ctr",
$key->get(),
OPENSSL_NO_PADDING | OPENSSL_RAW_DATA,
$nonce . "\x00\x00\x00\x02"
);
}
/**
* Initialize a Gmac object with the nonce and this object's key.
*
* @param string $nonce Must be exactly 12 bytes long.
* @param string|null $aad
* @return array
*/
protected function gmacInit($nonce, $aad = null)
{
$gmac = new Gmac(
$this->aesKey,
$nonce . "\x00\x00\x00\x01",
$this->keySize
);
$aadBlock = new ByteArray($aad);
$aadLength = $aadBlock->count();
$gmac->update($aadBlock);
$gmac->flush();
return [$aadLength, $gmac];
}
/**
* Calculate the length of a string.
*
* Uses the appropriate PHP function without being brittle to
* mbstring.func_overload.
*
* @param string $string
* @return int
*/
protected static function strlen($string)
{
if (\is_callable('\\mb_strlen')) {
return (int) \mb_strlen($string, '8bit');
}
return (int) \strlen($string);
}
/**
* Return a substring of the provided string.
*
* Uses the appropriate PHP function without being brittle to
* mbstring.func_overload.
*
* @param string $string
* @param int $offset
* @param int|null $length
* @return string
*/
protected static function substr($string, $offset = 0, $length = null)
{
if (\is_callable('\\mb_substr')) {
return \mb_substr($string, $offset, $length, '8bit');
} elseif (!\is_null($length)) {
return \substr($string, $offset, $length);
}
return \substr($string, $offset);
}
}
@@ -1,258 +0,0 @@
<?php
namespace Aws\Crypto\Polyfill;
/**
* Class ByteArray
*/
class ByteArray extends \SplFixedArray
{
use NeedsTrait;
/**
* ByteArray constructor.
*
* @param int|string|int[] $size
* If you pass in an integer, it creates a ByteArray of that size.
* If you pass in a string or array, it converts it to an array of
* integers between 0 and 255.
* @throws \InvalidArgumentException
*/
public function __construct($size = 0)
{
$arr = null;
// Integer? This behaves just like SplFixedArray.
if (\is_array($size)) {
// Array? We need to pass the count to parent::__construct() then populate
$arr = $size;
$size = \count($arr);
} elseif (\is_string($size)) {
// We need to avoid mbstring.func_overload
if (\is_callable('\\mb_str_split')) {
$tmp = \mb_str_split($size, 1, '8bit');
} else {
$tmp = \str_split($size, 1);
}
// Let's convert each character to an 8-bit integer and store in $arr
$arr = [];
if (!empty($tmp)) {
foreach ($tmp as $t) {
if (strlen($t) < 1) {
continue;
}
$arr []= \unpack('C', $t)[1] & 0xff;
}
}
$size = \count($arr);
} elseif ($size instanceof ByteArray) {
$arr = $size->toArray();
$size = $size->count();
} elseif (!\is_int($size)) {
throw new \InvalidArgumentException(
'Argument must be an integer, string, or array of integers.'
);
}
parent::__construct($size);
if (!empty($arr)) {
// Populate this object with values from constructor argument
foreach ($arr as $i => $v) {
$this->offsetSet($i, $v);
}
} else {
// Initialize to zero.
for ($i = 0; $i < $size; ++$i) {
$this->offsetSet($i, 0);
}
}
}
/**
* Encode an integer into a byte array. 32-bit (unsigned), big endian byte order.
*
* @param int $num
* @return self
*/
public static function enc32be($num)
{
return new ByteArray(\pack('N', $num));
}
/**
* @param ByteArray $other
* @return bool
*/
public function equals(ByteArray $other)
{
if ($this->count() !== $other->count()) {
return false;
}
$d = 0;
for ($i = $this->count() - 1; $i >= 0; --$i) {
$d |= $this[$i] ^ $other[$i];
}
return $d === 0;
}
/**
* @param ByteArray $array
* @return ByteArray
*/
public function exclusiveOr(ByteArray $array)
{
self::needs(
$this->count() === $array->count(),
'Both ByteArrays must be equal size for exclusiveOr()'
);
$out = clone $this;
for ($i = 0; $i < $this->count(); ++$i) {
$out[$i] = $array[$i] ^ $out[$i];
}
return $out;
}
/**
* Returns a new ByteArray incremented by 1 (big endian byte order).
*
* @param int $increase
* @return self
*/
public function getIncremented($increase = 1)
{
$clone = clone $this;
$index = $clone->count();
while ($index > 0) {
--$index;
$tmp = ($clone[$index] + $increase) & PHP_INT_MAX;
$clone[$index] = $tmp & 0xff;
$increase = $tmp >> 8;
}
return $clone;
}
/**
* Sets a value. See SplFixedArray for more.
*
* @param int $index
* @param int $newval
* @return void
*/
#[\ReturnTypeWillChange]
public function offsetSet($index, $newval)
{
parent::offsetSet($index, $newval & 0xff);
}
/**
* Return a copy of this ByteArray, bitshifted to the right by 1.
* Used in Gmac.
*
* @return self
*/
public function rshift()
{
$out = clone $this;
for ($j = $this->count() - 1; $j > 0; --$j) {
$out[$j] = (($out[$j - 1] & 1) << 7) | ($out[$j] >> 1);
}
$out[0] >>= 1;
return $out;
}
/**
* Constant-time conditional select. This is meant to read like a ternary operator.
*
* $z = ByteArray::select(1, $x, $y); // $z is equal to $x
* $z = ByteArray::select(0, $x, $y); // $z is equal to $y
*
* @param int $select
* @param ByteArray $left
* @param ByteArray $right
* @return ByteArray
*/
public static function select($select, ByteArray $left, ByteArray $right)
{
self::needs(
$left->count() === $right->count(),
'Both ByteArrays must be equal size for select()'
);
$rightLength = $right->count();
$out = clone $right;
$mask = (-($select & 1)) & 0xff;
for ($i = 0; $i < $rightLength; $i++) {
$out[$i] = $out[$i] ^ (($left[$i] ^ $right[$i]) & $mask);
}
return $out;
}
/**
* Overwrite values of this ByteArray based on a separate ByteArray, with
* a given starting offset and length.
*
* See JavaScript's Uint8Array.set() for more information.
*
* @param ByteArray $input
* @param int $offset
* @param int|null $length
* @return self
*/
public function set(ByteArray $input, $offset = 0, $length = null)
{
self::needs(
is_int($offset) && $offset >= 0,
'Offset must be a positive integer or zero'
);
if (is_null($length)) {
$length = $input->count();
}
$i = 0; $j = $offset;
while ($i < $length && $j < $this->count()) {
$this[$j] = $input[$i];
++$i;
++$j;
}
return $this;
}
/**
* Returns a slice of this ByteArray.
*
* @param int $start
* @param null $length
* @return self
*/
public function slice($start = 0, $length = null)
{
return new ByteArray(\array_slice($this->toArray(), $start, $length));
}
/**
* Mutates the current state and sets all values to zero.
*
* @return void
*/
public function zeroize()
{
for ($i = $this->count() - 1; $i >= 0; --$i) {
$this->offsetSet($i, 0);
}
}
/**
* Converts the ByteArray to a raw binary string.
*
* @return string
*/
public function toString()
{
$count = $this->count();
if ($count === 0) {
return '';
}
$args = $this->toArray();
\array_unshift($args, \str_repeat('C', $count));
// constant-time, PHP <5.6 equivalent to pack('C*', ...$args);
return \call_user_func_array('\\pack', $args);
}
}
@@ -1,221 +0,0 @@
<?php
namespace Aws\Crypto\Polyfill;
/**
* Class Gmac
*/
class Gmac
{
use NeedsTrait;
const BLOCK_SIZE = 16;
/** @var ByteArray $buf */
protected $buf;
/** @var int $bufLength */
protected $bufLength = 0;
/** @var ByteArray $h */
protected $h;
/** @var ByteArray $hf */
protected $hf;
/** @var Key $key */
protected $key;
/** @var ByteArray $x */
protected $x;
/**
* Gmac constructor.
*
* @param Key $aesKey
* @param string $nonce
* @param int $keySize
*/
public function __construct(Key $aesKey, $nonce, $keySize = 256)
{
$this->buf = new ByteArray(16);
$this->h = new ByteArray(
\openssl_encrypt(
\str_repeat("\0", 16),
"aes-{$keySize}-ecb",
$aesKey->get(),
OPENSSL_RAW_DATA | OPENSSL_NO_PADDING
)
);
$this->key = $aesKey;
$this->x = new ByteArray(16);
$this->hf = new ByteArray(
\openssl_encrypt(
$nonce,
"aes-{$keySize}-ecb",
$aesKey->get(),
OPENSSL_RAW_DATA | OPENSSL_NO_PADDING
)
);
}
/**
* Update the object with some data.
*
* This method mutates this Gmac object.
*
* @param ByteArray $blocks
* @return self
*/
public function update(ByteArray $blocks)
{
if (($blocks->count() + $this->bufLength) < self::BLOCK_SIZE) {
// Write to internal buffer until we reach enough to write.
$this->buf->set($blocks, $this->bufLength);
$this->bufLength += $blocks->count();
return $this;
}
// Process internal buffer first.
if ($this->bufLength > 0) {
// 0 <= state.buf_len < BLOCK_SIZE is an invariant
$tmp = new ByteArray(self::BLOCK_SIZE);
$tmp->set($this->buf->slice(0, $this->bufLength));
$remainingBlockLength = self::BLOCK_SIZE - $this->bufLength;
$tmp->set($blocks->slice(0, $remainingBlockLength), $this->bufLength);
$blocks = $blocks->slice($remainingBlockLength);
$this->bufLength = 0;
$this->x = $this->blockMultiply($this->x->exclusiveOr($tmp), $this->h);
}
// Process full blocks.
$numBlocks = $blocks->count() >> 4;
for ($i = 0; $i < $numBlocks; ++$i) {
$tmp = $blocks->slice($i << 4, self::BLOCK_SIZE);
$this->x = $this->blockMultiply($this->x->exclusiveOr($tmp), $this->h);
}
$last = $numBlocks << 4;
// Zero-fill buffer
for ($i = 0; $i < 16; ++$i) {
$this->buf[$i] = 0;
}
// Feed leftover into buffer.
if ($last < $blocks->count()) {
$tmp = $blocks->slice($last);
$this->buf->set($tmp);
$this->bufLength += ($blocks->count() - $last);
}
return $this;
}
/**
* Finish processing the authentication tag.
*
* This method mutates this Gmac object (effectively resetting it).
*
* @param int $aadLength
* @param int $ciphertextLength
* @return ByteArray
*/
public function finish($aadLength, $ciphertextLength)
{
$lengthBlock = new ByteArray(16);
$state = $this->flush();
// AES-GCM expects bit lengths, not byte lengths.
$lengthBlock->set(ByteArray::enc32be($aadLength >> 29), 0);
$lengthBlock->set(ByteArray::enc32be($aadLength << 3), 4);
$lengthBlock->set(ByteArray::enc32be($ciphertextLength >> 29), 8);
$lengthBlock->set(ByteArray::enc32be($ciphertextLength << 3), 12);
$state->update($lengthBlock);
$output = $state->x->exclusiveOr($state->hf);
// Zeroize the internal values as a best-effort.
$state->buf->zeroize();
$state->x->zeroize();
$state->h->zeroize();
$state->hf->zeroize();
return $output;
}
/**
* Get a specific bit from the provided array, at the given index.
*
* [01234567], 8+[01234567], 16+[01234567], ...
*
* @param ByteArray $x
* @param int $i
* @return int
*/
protected function bit(ByteArray $x, $i)
{
$byte = $i >> 3;
return ($x[$byte] >> ((7 - $i) & 7)) & 1;
}
/**
* Galois Field Multiplication
*
* This function is the critical path that must be constant-time in order to
* avoid timing side-channels against AES-GCM.
*
* The contents of each are always calculated, regardless of the branching
* condition, to prevent another kind of timing leak.
*
* @param ByteArray $x
* @param ByteArray $y
* @return ByteArray
*/
protected function blockMultiply(ByteArray $x, ByteArray $y)
{
static $fieldPolynomial = null;
if (!$fieldPolynomial) {
$fieldPolynomial = new ByteArray([
0xe1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
]);
}
self::needs($x->count() === 16, 'Argument 1 must be a ByteArray of exactly 16 bytes');
self::needs($y->count() === 16, 'Argument 2 must be a ByteArray of exactly 16 bytes');
$v = clone $y;
$z = new ByteArray(16);
for ($i = 0; $i < 128; ++$i) {
// if ($b) $z = $z->exclusiveOr($v);
$b = $this->bit($x, $i);
$z = ByteArray::select(
$b,
$z->exclusiveOr($v),
$z
);
// if ($b) $v = $v->exclusiveOr($fieldPolynomial);
$b = $v[15] & 1;
$v = $v->rshift();
$v = ByteArray::select(
$b,
$v->exclusiveOr($fieldPolynomial),
$v
);
}
return $z;
}
/**
* Finish processing any leftover bytes in the internal buffer.
*
* @return self
*/
public function flush()
{
if ($this->bufLength !== 0) {
$this->x = $this->blockMultiply(
$this->x->exclusiveOr($this->buf),
$this->h
);
$this->bufLength = 0;
}
return $this;
}
}
@@ -1,75 +0,0 @@
<?php
namespace Aws\Crypto\Polyfill;
/**
* Class Key
*
* Wraps a string to keep it hidden from stack traces.
*/
class Key
{
/**
* @var string $internalString
*/
private $internalString;
/**
* Hide contents of
*
* @return array
*/
public function __debugInfo()
{
return [];
}
/**
* Key constructor.
* @param string $str
*/
public function __construct($str)
{
$this->internalString = $str;
}
/**
* Defense in depth:
*
* PHP 7.2 includes the Sodium cryptography library, which (among other things)
* exposes a function called sodium_memzero() that we can use to zero-fill strings
* to minimize the risk of sensitive cryptographic materials persisting in memory.
*
* If this function is not available, we XOR the string in-place with itself as a
* best-effort attempt.
*/
public function __destruct()
{
if (extension_loaded('sodium') && function_exists('sodium_memzero')) {
try {
\sodium_memzero($this->internalString);
} catch (\SodiumException $ex) {
// This is a best effort, but does not provide the same guarantees as sodium_memzero():
$this->internalString ^= $this->internalString;
}
}
}
/**
* @return string
*/
public function get()
{
return $this->internalString;
}
/**
* @return int
*/
public function length()
{
if (\is_callable('\\mb_strlen')) {
return (int) \mb_strlen($this->internalString, '8bit');
}
return (int) \strlen($this->internalString);
}
}
@@ -1,37 +0,0 @@
<?php
namespace Aws\Crypto\Polyfill;
use Aws\Exception\CryptoPolyfillException;
/**
* Trait NeedsTrait
*/
trait NeedsTrait
{
/**
* Preconditions, postconditions, and loop invariants are very
* useful for safe programing. They also document the specifications.
* This function is to help simplify the semantic burden of parsing
* these constructions.
*
* Instead of constructions like
* if (!(GOOD CONDITION)) {
* throw new \Exception('condition not true');
* }
*
* you can write:
* needs(GOOD CONDITION, 'condition not true');
* @param $condition
* @param $errorMessage
* @param null $exceptionClass
*/
public static function needs($condition, $errorMessage, $exceptionClass = null)
{
if (!$condition) {
if (!$exceptionClass) {
$exceptionClass = CryptoPolyfillException::class;
}
throw new $exceptionClass($errorMessage);
}
}
}
@@ -15,6 +15,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createCalculatedAttributeDefinitionAsync(array $args = [])
* @method \Aws\Result createDomain(array $args = [])
* @method \GuzzleHttp\Promise\Promise createDomainAsync(array $args = [])
* @method \Aws\Result createDomainLayout(array $args = [])
* @method \GuzzleHttp\Promise\Promise createDomainLayoutAsync(array $args = [])
* @method \Aws\Result createEventStream(array $args = [])
* @method \GuzzleHttp\Promise\Promise createEventStreamAsync(array $args = [])
* @method \Aws\Result createEventTrigger(array $args = [])
@@ -29,10 +31,14 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createSegmentEstimateAsync(array $args = [])
* @method \Aws\Result createSegmentSnapshot(array $args = [])
* @method \GuzzleHttp\Promise\Promise createSegmentSnapshotAsync(array $args = [])
* @method \Aws\Result createUploadJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise createUploadJobAsync(array $args = [])
* @method \Aws\Result deleteCalculatedAttributeDefinition(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteCalculatedAttributeDefinitionAsync(array $args = [])
* @method \Aws\Result deleteDomain(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteDomainAsync(array $args = [])
* @method \Aws\Result deleteDomainLayout(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteDomainLayoutAsync(array $args = [])
* @method \Aws\Result deleteEventStream(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteEventStreamAsync(array $args = [])
* @method \Aws\Result deleteEventTrigger(array $args = [])
@@ -61,6 +67,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getCalculatedAttributeForProfileAsync(array $args = [])
* @method \Aws\Result getDomain(array $args = [])
* @method \GuzzleHttp\Promise\Promise getDomainAsync(array $args = [])
* @method \Aws\Result getDomainLayout(array $args = [])
* @method \GuzzleHttp\Promise\Promise getDomainLayoutAsync(array $args = [])
* @method \Aws\Result getEventStream(array $args = [])
* @method \GuzzleHttp\Promise\Promise getEventStreamAsync(array $args = [])
* @method \Aws\Result getEventTrigger(array $args = [])
@@ -85,6 +93,10 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getSegmentSnapshotAsync(array $args = [])
* @method \Aws\Result getSimilarProfiles(array $args = [])
* @method \GuzzleHttp\Promise\Promise getSimilarProfilesAsync(array $args = [])
* @method \Aws\Result getUploadJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise getUploadJobAsync(array $args = [])
* @method \Aws\Result getUploadJobPath(array $args = [])
* @method \GuzzleHttp\Promise\Promise getUploadJobPathAsync(array $args = [])
* @method \Aws\Result getWorkflow(array $args = [])
* @method \GuzzleHttp\Promise\Promise getWorkflowAsync(array $args = [])
* @method \Aws\Result getWorkflowSteps(array $args = [])
@@ -95,6 +107,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listCalculatedAttributeDefinitionsAsync(array $args = [])
* @method \Aws\Result listCalculatedAttributesForProfile(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCalculatedAttributesForProfileAsync(array $args = [])
* @method \Aws\Result listDomainLayouts(array $args = [])
* @method \GuzzleHttp\Promise\Promise listDomainLayoutsAsync(array $args = [])
* @method \Aws\Result listDomains(array $args = [])
* @method \GuzzleHttp\Promise\Promise listDomainsAsync(array $args = [])
* @method \Aws\Result listEventStreams(array $args = [])
@@ -121,6 +135,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listSegmentDefinitionsAsync(array $args = [])
* @method \Aws\Result listTagsForResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
* @method \Aws\Result listUploadJobs(array $args = [])
* @method \GuzzleHttp\Promise\Promise listUploadJobsAsync(array $args = [])
* @method \Aws\Result listWorkflows(array $args = [])
* @method \GuzzleHttp\Promise\Promise listWorkflowsAsync(array $args = [])
* @method \Aws\Result mergeProfiles(array $args = [])
@@ -133,6 +149,10 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise putProfileObjectTypeAsync(array $args = [])
* @method \Aws\Result searchProfiles(array $args = [])
* @method \GuzzleHttp\Promise\Promise searchProfilesAsync(array $args = [])
* @method \Aws\Result startUploadJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise startUploadJobAsync(array $args = [])
* @method \Aws\Result stopUploadJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise stopUploadJobAsync(array $args = [])
* @method \Aws\Result tagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
* @method \Aws\Result untagResource(array $args = [])
@@ -141,6 +161,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise updateCalculatedAttributeDefinitionAsync(array $args = [])
* @method \Aws\Result updateDomain(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateDomainAsync(array $args = [])
* @method \Aws\Result updateDomainLayout(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateDomainLayoutAsync(array $args = [])
* @method \Aws\Result updateEventTrigger(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateEventTriggerAsync(array $args = [])
* @method \Aws\Result updateProfile(array $args = [])
+2 -4
View File
@@ -7,14 +7,12 @@ use Aws\AwsClient;
* This client is used to interact with the **Amazon Aurora DSQL** service.
* @method \Aws\Result createCluster(array $args = [])
* @method \GuzzleHttp\Promise\Promise createClusterAsync(array $args = [])
* @method \Aws\Result createMultiRegionClusters(array $args = [])
* @method \GuzzleHttp\Promise\Promise createMultiRegionClustersAsync(array $args = [])
* @method \Aws\Result deleteCluster(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteClusterAsync(array $args = [])
* @method \Aws\Result deleteMultiRegionClusters(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteMultiRegionClustersAsync(array $args = [])
* @method \Aws\Result getCluster(array $args = [])
* @method \GuzzleHttp\Promise\Promise getClusterAsync(array $args = [])
* @method \Aws\Result getVpcEndpointServiceName(array $args = [])
* @method \GuzzleHttp\Promise\Promise getVpcEndpointServiceNameAsync(array $args = [])
* @method \Aws\Result listClusters(array $args = [])
* @method \GuzzleHttp\Promise\Promise listClustersAsync(array $args = [])
* @method \Aws\Result listTagsForResource(array $args = [])
@@ -5,8 +5,6 @@ use Aws\AwsClient;
/**
* This client is used to interact with the **AWS DataSync** service.
* @method \Aws\Result addStorageSystem(array $args = [])
* @method \GuzzleHttp\Promise\Promise addStorageSystemAsync(array $args = [])
* @method \Aws\Result cancelTaskExecution(array $args = [])
* @method \GuzzleHttp\Promise\Promise cancelTaskExecutionAsync(array $args = [])
* @method \Aws\Result createAgent(array $args = [])
@@ -43,8 +41,6 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deleteTaskAsync(array $args = [])
* @method \Aws\Result describeAgent(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeAgentAsync(array $args = [])
* @method \Aws\Result describeDiscoveryJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeDiscoveryJobAsync(array $args = [])
* @method \Aws\Result describeLocationAzureBlob(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeLocationAzureBlobAsync(array $args = [])
* @method \Aws\Result describeLocationEfs(array $args = [])
@@ -67,48 +63,28 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise describeLocationS3Async(array $args = [])
* @method \Aws\Result describeLocationSmb(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeLocationSmbAsync(array $args = [])
* @method \Aws\Result describeStorageSystem(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeStorageSystemAsync(array $args = [])
* @method \Aws\Result describeStorageSystemResourceMetrics(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeStorageSystemResourceMetricsAsync(array $args = [])
* @method \Aws\Result describeStorageSystemResources(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeStorageSystemResourcesAsync(array $args = [])
* @method \Aws\Result describeTask(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeTaskAsync(array $args = [])
* @method \Aws\Result describeTaskExecution(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeTaskExecutionAsync(array $args = [])
* @method \Aws\Result generateRecommendations(array $args = [])
* @method \GuzzleHttp\Promise\Promise generateRecommendationsAsync(array $args = [])
* @method \Aws\Result listAgents(array $args = [])
* @method \GuzzleHttp\Promise\Promise listAgentsAsync(array $args = [])
* @method \Aws\Result listDiscoveryJobs(array $args = [])
* @method \GuzzleHttp\Promise\Promise listDiscoveryJobsAsync(array $args = [])
* @method \Aws\Result listLocations(array $args = [])
* @method \GuzzleHttp\Promise\Promise listLocationsAsync(array $args = [])
* @method \Aws\Result listStorageSystems(array $args = [])
* @method \GuzzleHttp\Promise\Promise listStorageSystemsAsync(array $args = [])
* @method \Aws\Result listTagsForResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
* @method \Aws\Result listTaskExecutions(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTaskExecutionsAsync(array $args = [])
* @method \Aws\Result listTasks(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTasksAsync(array $args = [])
* @method \Aws\Result removeStorageSystem(array $args = [])
* @method \GuzzleHttp\Promise\Promise removeStorageSystemAsync(array $args = [])
* @method \Aws\Result startDiscoveryJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise startDiscoveryJobAsync(array $args = [])
* @method \Aws\Result startTaskExecution(array $args = [])
* @method \GuzzleHttp\Promise\Promise startTaskExecutionAsync(array $args = [])
* @method \Aws\Result stopDiscoveryJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise stopDiscoveryJobAsync(array $args = [])
* @method \Aws\Result tagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
* @method \Aws\Result untagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
* @method \Aws\Result updateAgent(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateAgentAsync(array $args = [])
* @method \Aws\Result updateDiscoveryJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateDiscoveryJobAsync(array $args = [])
* @method \Aws\Result updateLocationAzureBlob(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateLocationAzureBlobAsync(array $args = [])
* @method \Aws\Result updateLocationEfs(array $args = [])
@@ -131,8 +107,6 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise updateLocationS3Async(array $args = [])
* @method \Aws\Result updateLocationSmb(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateLocationSmbAsync(array $args = [])
* @method \Aws\Result updateStorageSystem(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateStorageSystemAsync(array $args = [])
* @method \Aws\Result updateTask(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateTaskAsync(array $args = [])
* @method \Aws\Result updateTaskExecution(array $args = [])
@@ -15,10 +15,14 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise addPolicyGrantAsync(array $args = [])
* @method \Aws\Result associateEnvironmentRole(array $args = [])
* @method \GuzzleHttp\Promise\Promise associateEnvironmentRoleAsync(array $args = [])
* @method \Aws\Result associateGovernedTerms(array $args = [])
* @method \GuzzleHttp\Promise\Promise associateGovernedTermsAsync(array $args = [])
* @method \Aws\Result cancelMetadataGenerationRun(array $args = [])
* @method \GuzzleHttp\Promise\Promise cancelMetadataGenerationRunAsync(array $args = [])
* @method \Aws\Result cancelSubscription(array $args = [])
* @method \GuzzleHttp\Promise\Promise cancelSubscriptionAsync(array $args = [])
* @method \Aws\Result createAccountPool(array $args = [])
* @method \GuzzleHttp\Promise\Promise createAccountPoolAsync(array $args = [])
* @method \Aws\Result createAsset(array $args = [])
* @method \GuzzleHttp\Promise\Promise createAssetAsync(array $args = [])
* @method \Aws\Result createAssetFilter(array $args = [])
@@ -43,6 +47,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createEnvironmentAsync(array $args = [])
* @method \Aws\Result createEnvironmentAction(array $args = [])
* @method \GuzzleHttp\Promise\Promise createEnvironmentActionAsync(array $args = [])
* @method \Aws\Result createEnvironmentBlueprint(array $args = [])
* @method \GuzzleHttp\Promise\Promise createEnvironmentBlueprintAsync(array $args = [])
* @method \Aws\Result createEnvironmentProfile(array $args = [])
* @method \GuzzleHttp\Promise\Promise createEnvironmentProfileAsync(array $args = [])
* @method \Aws\Result createFormType(array $args = [])
@@ -71,6 +77,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createSubscriptionTargetAsync(array $args = [])
* @method \Aws\Result createUserProfile(array $args = [])
* @method \GuzzleHttp\Promise\Promise createUserProfileAsync(array $args = [])
* @method \Aws\Result deleteAccountPool(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteAccountPoolAsync(array $args = [])
* @method \Aws\Result deleteAsset(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteAssetAsync(array $args = [])
* @method \Aws\Result deleteAssetFilter(array $args = [])
@@ -91,6 +99,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deleteEnvironmentAsync(array $args = [])
* @method \Aws\Result deleteEnvironmentAction(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteEnvironmentActionAsync(array $args = [])
* @method \Aws\Result deleteEnvironmentBlueprint(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteEnvironmentBlueprintAsync(array $args = [])
* @method \Aws\Result deleteEnvironmentBlueprintConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteEnvironmentBlueprintConfigurationAsync(array $args = [])
* @method \Aws\Result deleteEnvironmentProfile(array $args = [])
@@ -121,6 +131,10 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deleteTimeSeriesDataPointsAsync(array $args = [])
* @method \Aws\Result disassociateEnvironmentRole(array $args = [])
* @method \GuzzleHttp\Promise\Promise disassociateEnvironmentRoleAsync(array $args = [])
* @method \Aws\Result disassociateGovernedTerms(array $args = [])
* @method \GuzzleHttp\Promise\Promise disassociateGovernedTermsAsync(array $args = [])
* @method \Aws\Result getAccountPool(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAccountPoolAsync(array $args = [])
* @method \Aws\Result getAsset(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAssetAsync(array $args = [])
* @method \Aws\Result getAssetFilter(array $args = [])
@@ -189,6 +203,10 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getTimeSeriesDataPointAsync(array $args = [])
* @method \Aws\Result getUserProfile(array $args = [])
* @method \GuzzleHttp\Promise\Promise getUserProfileAsync(array $args = [])
* @method \Aws\Result listAccountPools(array $args = [])
* @method \GuzzleHttp\Promise\Promise listAccountPoolsAsync(array $args = [])
* @method \Aws\Result listAccountsInAccountPool(array $args = [])
* @method \GuzzleHttp\Promise\Promise listAccountsInAccountPoolAsync(array $args = [])
* @method \Aws\Result listAssetFilters(array $args = [])
* @method \GuzzleHttp\Promise\Promise listAssetFiltersAsync(array $args = [])
* @method \Aws\Result listAssetRevisions(array $args = [])
@@ -285,6 +303,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
* @method \Aws\Result untagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
* @method \Aws\Result updateAccountPool(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateAccountPoolAsync(array $args = [])
* @method \Aws\Result updateAssetFilter(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateAssetFilterAsync(array $args = [])
* @method \Aws\Result updateConnection(array $args = [])
@@ -299,6 +319,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise updateEnvironmentAsync(array $args = [])
* @method \Aws\Result updateEnvironmentAction(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateEnvironmentActionAsync(array $args = [])
* @method \Aws\Result updateEnvironmentBlueprint(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateEnvironmentBlueprintAsync(array $args = [])
* @method \Aws\Result updateEnvironmentProfile(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateEnvironmentProfileAsync(array $args = [])
* @method \Aws\Result updateGlossary(array $args = [])
@@ -26,6 +26,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createConditionalForwarderAsync(array $args = [])
* @method \Aws\Result createDirectory(array $args = [])
* @method \GuzzleHttp\Promise\Promise createDirectoryAsync(array $args = [])
* @method \Aws\Result createHybridAD(array $args = [])
* @method \GuzzleHttp\Promise\Promise createHybridADAsync(array $args = [])
* @method \Aws\Result createLogSubscription(array $args = [])
* @method \GuzzleHttp\Promise\Promise createLogSubscriptionAsync(array $args = [])
* @method \Aws\Result createMicrosoftAD(array $args = [])
@@ -34,6 +36,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createSnapshotAsync(array $args = [])
* @method \Aws\Result createTrust(array $args = [])
* @method \GuzzleHttp\Promise\Promise createTrustAsync(array $args = [])
* @method \Aws\Result deleteADAssessment(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteADAssessmentAsync(array $args = [])
* @method \Aws\Result deleteConditionalForwarder(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteConditionalForwarderAsync(array $args = [])
* @method \Aws\Result deleteDirectory(array $args = [])
@@ -48,6 +52,10 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deregisterCertificateAsync(array $args = [])
* @method \Aws\Result deregisterEventTopic(array $args = [])
* @method \GuzzleHttp\Promise\Promise deregisterEventTopicAsync(array $args = [])
* @method \Aws\Result describeADAssessment(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeADAssessmentAsync(array $args = [])
* @method \Aws\Result describeCAEnrollmentPolicy(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeCAEnrollmentPolicyAsync(array $args = [])
* @method \Aws\Result describeCertificate(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeCertificateAsync(array $args = [])
* @method \Aws\Result describeClientAuthenticationSettings(array $args = [])
@@ -62,6 +70,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise describeDomainControllersAsync(array $args = [])
* @method \Aws\Result describeEventTopics(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeEventTopicsAsync(array $args = [])
* @method \Aws\Result describeHybridADUpdate(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeHybridADUpdateAsync(array $args = [])
* @method \Aws\Result describeLDAPSSettings(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeLDAPSSettingsAsync(array $args = [])
* @method \Aws\Result describeRegions(array $args = [])
@@ -76,6 +86,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise describeTrustsAsync(array $args = [])
* @method \Aws\Result describeUpdateDirectory(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeUpdateDirectoryAsync(array $args = [])
* @method \Aws\Result disableCAEnrollmentPolicy(array $args = [])
* @method \GuzzleHttp\Promise\Promise disableCAEnrollmentPolicyAsync(array $args = [])
* @method \Aws\Result disableClientAuthentication(array $args = [])
* @method \GuzzleHttp\Promise\Promise disableClientAuthenticationAsync(array $args = [])
* @method \Aws\Result disableDirectoryDataAccess(array $args = [])
@@ -86,6 +98,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise disableRadiusAsync(array $args = [])
* @method \Aws\Result disableSso(array $args = [])
* @method \GuzzleHttp\Promise\Promise disableSsoAsync(array $args = [])
* @method \Aws\Result enableCAEnrollmentPolicy(array $args = [])
* @method \GuzzleHttp\Promise\Promise enableCAEnrollmentPolicyAsync(array $args = [])
* @method \Aws\Result enableClientAuthentication(array $args = [])
* @method \GuzzleHttp\Promise\Promise enableClientAuthenticationAsync(array $args = [])
* @method \Aws\Result enableDirectoryDataAccess(array $args = [])
@@ -100,6 +114,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getDirectoryLimitsAsync(array $args = [])
* @method \Aws\Result getSnapshotLimits(array $args = [])
* @method \GuzzleHttp\Promise\Promise getSnapshotLimitsAsync(array $args = [])
* @method \Aws\Result listADAssessments(array $args = [])
* @method \GuzzleHttp\Promise\Promise listADAssessmentsAsync(array $args = [])
* @method \Aws\Result listCertificates(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCertificatesAsync(array $args = [])
* @method \Aws\Result listIpRoutes(array $args = [])
@@ -128,6 +144,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise restoreFromSnapshotAsync(array $args = [])
* @method \Aws\Result shareDirectory(array $args = [])
* @method \GuzzleHttp\Promise\Promise shareDirectoryAsync(array $args = [])
* @method \Aws\Result startADAssessment(array $args = [])
* @method \GuzzleHttp\Promise\Promise startADAssessmentAsync(array $args = [])
* @method \Aws\Result startSchemaExtension(array $args = [])
* @method \GuzzleHttp\Promise\Promise startSchemaExtensionAsync(array $args = [])
* @method \Aws\Result unshareDirectory(array $args = [])
@@ -136,6 +154,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise updateConditionalForwarderAsync(array $args = [])
* @method \Aws\Result updateDirectorySetup(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateDirectorySetupAsync(array $args = [])
* @method \Aws\Result updateHybridAD(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateHybridADAsync(array $args = [])
* @method \Aws\Result updateNumberOfDomainControllers(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateNumberOfDomainControllersAsync(array $args = [])
* @method \Aws\Result updateRadius(array $args = [])
+4
View File
@@ -61,6 +61,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise describeIdentityProviderConfigAsync(array $args = [])
* @method \Aws\Result describeInsight(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeInsightAsync(array $args = [])
* @method \Aws\Result describeInsightsRefresh(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeInsightsRefreshAsync(array $args = [])
* @method \Aws\Result describeNodegroup(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeNodegroupAsync(array $args = [])
* @method \Aws\Result describePodIdentityAssociation(array $args = [])
@@ -99,6 +101,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listUpdatesAsync(array $args = [])
* @method \Aws\Result registerCluster(array $args = [])
* @method \GuzzleHttp\Promise\Promise registerClusterAsync(array $args = [])
* @method \Aws\Result startInsightsRefresh(array $args = [])
* @method \GuzzleHttp\Promise\Promise startInsightsRefreshAsync(array $args = [])
* @method \Aws\Result tagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
* @method \Aws\Result untagResource(array $args = [])
+72
View File
@@ -472,6 +472,8 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise associateIpamResourceDiscoveryAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result associateNatGatewayAddress(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise associateNatGatewayAddressAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result associateRouteServer(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise associateRouteServerAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result associateSecurityGroupVpc(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise associateSecurityGroupVpcAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result associateSubnetCidrBlock(array $args = []) (supported in versions 2016-11-15)
@@ -520,12 +522,16 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise createDefaultSubnetAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createDefaultVpc(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createDefaultVpcAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createDelegateMacVolumeOwnershipTask(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createDelegateMacVolumeOwnershipTaskAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createEgressOnlyInternetGateway(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createEgressOnlyInternetGatewayAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createFleet(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createFleetAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createFpgaImage(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createFpgaImageAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createImageUsageReport(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createImageUsageReportAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createInstanceConnectEndpoint(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createInstanceConnectEndpointAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createInstanceEventWindow(array $args = []) (supported in versions 2016-11-15)
@@ -552,6 +558,12 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise createLocalGatewayRouteTableVirtualInterfaceGroupAssociationAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createLocalGatewayRouteTableVpcAssociation(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createLocalGatewayRouteTableVpcAssociationAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createLocalGatewayVirtualInterface(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createLocalGatewayVirtualInterfaceAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createLocalGatewayVirtualInterfaceGroup(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createLocalGatewayVirtualInterfaceGroupAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createMacSystemIntegrityProtectionModificationTask(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createMacSystemIntegrityProtectionModificationTaskAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createManagedPrefixList(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createManagedPrefixListAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createNetworkInsightsAccessScope(array $args = []) (supported in versions 2016-11-15)
@@ -566,6 +578,12 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise createReplaceRootVolumeTaskAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createRestoreImageTask(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createRestoreImageTaskAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createRouteServer(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createRouteServerAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createRouteServerEndpoint(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createRouteServerEndpointAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createRouteServerPeer(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createRouteServerPeerAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createSnapshots(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise createSnapshotsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result createStoreImageTask(array $args = []) (supported in versions 2016-11-15)
@@ -632,6 +650,8 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise deleteFleetsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result deleteFpgaImage(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise deleteFpgaImageAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result deleteImageUsageReport(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise deleteImageUsageReportAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result deleteInstanceConnectEndpoint(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise deleteInstanceConnectEndpointAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result deleteInstanceEventWindow(array $args = []) (supported in versions 2016-11-15)
@@ -658,6 +678,10 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise deleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result deleteLocalGatewayRouteTableVpcAssociation(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise deleteLocalGatewayRouteTableVpcAssociationAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result deleteLocalGatewayVirtualInterface(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise deleteLocalGatewayVirtualInterfaceAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result deleteLocalGatewayVirtualInterfaceGroup(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise deleteLocalGatewayVirtualInterfaceGroupAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result deleteManagedPrefixList(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise deleteManagedPrefixListAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result deleteNetworkInsightsAccessScope(array $args = []) (supported in versions 2016-11-15)
@@ -674,6 +698,12 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise deletePublicIpv4PoolAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result deleteQueuedReservedInstances(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise deleteQueuedReservedInstancesAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result deleteRouteServer(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise deleteRouteServerAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result deleteRouteServerEndpoint(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise deleteRouteServerEndpointAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result deleteRouteServerPeer(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise deleteRouteServerPeerAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result deleteSubnetCidrReservation(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise deleteSubnetCidrReservationAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result deleteTrafficMirrorFilter(array $args = []) (supported in versions 2016-11-15)
@@ -750,6 +780,10 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise describeCapacityBlockExtensionOfferingsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeCapacityBlockOfferings(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeCapacityBlockOfferingsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeCapacityBlockStatus(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeCapacityBlockStatusAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeCapacityBlocks(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeCapacityBlocksAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeCapacityReservationBillingRequests(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeCapacityReservationBillingRequestsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeCapacityReservationFleets(array $args = []) (supported in versions 2016-11-15)
@@ -794,6 +828,12 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise describeFpgaImagesAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeIamInstanceProfileAssociations(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeIamInstanceProfileAssociationsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeImageReferences(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeImageReferencesAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeImageUsageReportEntries(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeImageUsageReportEntriesAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeImageUsageReports(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeImageUsageReportsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeInstanceConnectEndpoints(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeInstanceConnectEndpointsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeInstanceCreditSpecifications(array $args = []) (supported in versions 2016-11-15)
@@ -846,6 +886,8 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise describeLockedSnapshotsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeMacHosts(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeMacHostsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeMacModificationTasks(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeMacModificationTasksAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeManagedPrefixLists(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeManagedPrefixListsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeNetworkInsightsAccessScopeAnalyses(array $args = []) (supported in versions 2016-11-15)
@@ -858,16 +900,26 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise describeNetworkInsightsPathsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeNetworkInterfacePermissions(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeNetworkInterfacePermissionsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeOutpostLags(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeOutpostLagsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describePrincipalIdFormat(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describePrincipalIdFormatAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describePublicIpv4Pools(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describePublicIpv4PoolsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeReplaceRootVolumeTasks(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeReplaceRootVolumeTasksAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeRouteServerEndpoints(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeRouteServerEndpointsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeRouteServerPeers(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeRouteServerPeersAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeRouteServers(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeRouteServersAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeSecurityGroupRules(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeSecurityGroupRulesAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeSecurityGroupVpcAssociations(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeSecurityGroupVpcAssociationsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeServiceLinkVirtualInterfaces(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeServiceLinkVirtualInterfacesAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeSnapshotTierStatus(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise describeSnapshotTierStatusAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result describeStoreImageTasks(array $args = []) (supported in versions 2016-11-15)
@@ -952,6 +1004,8 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise disableImageDeregistrationProtectionAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result disableIpamOrganizationAdminAccount(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise disableIpamOrganizationAdminAccountAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result disableRouteServerPropagation(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise disableRouteServerPropagationAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result disableSerialConsoleAccess(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise disableSerialConsoleAccessAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result disableSnapshotBlockPublicAccess(array $args = []) (supported in versions 2016-11-15)
@@ -974,6 +1028,8 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise disassociateIpamResourceDiscoveryAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result disassociateNatGatewayAddress(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise disassociateNatGatewayAddressAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result disassociateRouteServer(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise disassociateRouteServerAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result disassociateSecurityGroupVpc(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise disassociateSecurityGroupVpcAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result disassociateSubnetCidrBlock(array $args = []) (supported in versions 2016-11-15)
@@ -1012,6 +1068,8 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise enableIpamOrganizationAdminAccountAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result enableReachabilityAnalyzerOrganizationSharing(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise enableReachabilityAnalyzerOrganizationSharingAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result enableRouteServerPropagation(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise enableRouteServerPropagationAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result enableSerialConsoleAccess(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise enableSerialConsoleAccessAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result enableSnapshotBlockPublicAccess(array $args = []) (supported in versions 2016-11-15)
@@ -1028,6 +1086,8 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise exportTransitGatewayRoutesAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result exportVerifiedAccessInstanceClientConfiguration(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise exportVerifiedAccessInstanceClientConfigurationAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result getActiveVpnTunnelStatus(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise getActiveVpnTunnelStatusAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result getAllowedImagesSettings(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise getAllowedImagesSettingsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result getAssociatedEnclaveCertificateIamRoles(array $args = []) (supported in versions 2016-11-15)
@@ -1086,6 +1146,12 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise getNetworkInsightsAccessScopeAnalysisFindingsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result getNetworkInsightsAccessScopeContent(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise getNetworkInsightsAccessScopeContentAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result getRouteServerAssociations(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise getRouteServerAssociationsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result getRouteServerPropagations(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise getRouteServerPropagationsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result getRouteServerRoutingDatabase(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise getRouteServerRoutingDatabaseAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result getSecurityGroupsForVpc(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise getSecurityGroupsForVpcAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result getSerialConsoleAccessStatus(array $args = []) (supported in versions 2016-11-15)
@@ -1150,6 +1216,8 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise modifyFpgaImageAttributeAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result modifyInstanceCapacityReservationAttributes(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise modifyInstanceCapacityReservationAttributesAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result modifyInstanceConnectEndpoint(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise modifyInstanceConnectEndpointAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result modifyInstanceCpuOptions(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise modifyInstanceCpuOptionsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result modifyInstanceCreditSpecification(array $args = []) (supported in versions 2016-11-15)
@@ -1184,6 +1252,10 @@ use Aws\PresignUrlMiddleware;
* @method \GuzzleHttp\Promise\Promise modifyManagedPrefixListAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result modifyPrivateDnsNameOptions(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise modifyPrivateDnsNameOptionsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result modifyPublicIpDnsNameOptions(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise modifyPublicIpDnsNameOptionsAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result modifyRouteServer(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise modifyRouteServerAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result modifySecurityGroupRules(array $args = []) (supported in versions 2016-11-15)
* @method \GuzzleHttp\Promise\Promise modifySecurityGroupRulesAsync(array $args = []) (supported in versions 2016-11-15)
* @method \Aws\Result modifySnapshotTier(array $args = []) (supported in versions 2016-11-15)
+2
View File
@@ -94,6 +94,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise runTaskAsync(array $args = [])
* @method \Aws\Result startTask(array $args = [])
* @method \GuzzleHttp\Promise\Promise startTaskAsync(array $args = [])
* @method \Aws\Result stopServiceDeployment(array $args = [])
* @method \GuzzleHttp\Promise\Promise stopServiceDeploymentAsync(array $args = [])
* @method \Aws\Result stopTask(array $args = [])
* @method \GuzzleHttp\Promise\Promise stopTaskAsync(array $args = [])
* @method \Aws\Result submitAttachmentStateChanges(array $args = [])
+8
View File
@@ -16,6 +16,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise addTagsAsync(array $args = [])
* @method \Aws\Result cancelSteps(array $args = [])
* @method \GuzzleHttp\Promise\Promise cancelStepsAsync(array $args = [])
* @method \Aws\Result createPersistentAppUI(array $args = [])
* @method \GuzzleHttp\Promise\Promise createPersistentAppUIAsync(array $args = [])
* @method \Aws\Result createSecurityConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise createSecurityConfigurationAsync(array $args = [])
* @method \Aws\Result createStudio(array $args = [])
@@ -34,6 +36,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise describeJobFlowsAsync(array $args = [])
* @method \Aws\Result describeNotebookExecution(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeNotebookExecutionAsync(array $args = [])
* @method \Aws\Result describePersistentAppUI(array $args = [])
* @method \GuzzleHttp\Promise\Promise describePersistentAppUIAsync(array $args = [])
* @method \Aws\Result describeReleaseLabel(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeReleaseLabelAsync(array $args = [])
* @method \Aws\Result describeSecurityConfiguration(array $args = [])
@@ -50,6 +54,10 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getClusterSessionCredentialsAsync(array $args = [])
* @method \Aws\Result getManagedScalingPolicy(array $args = [])
* @method \GuzzleHttp\Promise\Promise getManagedScalingPolicyAsync(array $args = [])
* @method \Aws\Result getOnClusterAppUIPresignedURL(array $args = [])
* @method \GuzzleHttp\Promise\Promise getOnClusterAppUIPresignedURLAsync(array $args = [])
* @method \Aws\Result getPersistentAppUIPresignedURL(array $args = [])
* @method \GuzzleHttp\Promise\Promise getPersistentAppUIPresignedURLAsync(array $args = [])
* @method \Aws\Result getStudioSessionMapping(array $args = [])
* @method \GuzzleHttp\Promise\Promise getStudioSessionMappingAsync(array $args = [])
* @method \Aws\Result listBootstrapActions(array $args = [])
@@ -27,6 +27,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deletePolicyStatementAsync(array $args = [])
* @method \Aws\Result deleteSchemaMapping(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteSchemaMappingAsync(array $args = [])
* @method \Aws\Result generateMatchId(array $args = [])
* @method \GuzzleHttp\Promise\Promise generateMatchIdAsync(array $args = [])
* @method \Aws\Result getIdMappingJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise getIdMappingJobAsync(array $args = [])
* @method \Aws\Result getIdMappingWorkflow(array $args = [])
+35
View File
@@ -0,0 +1,35 @@
<?php
namespace Aws\Evs;
use Aws\AwsClient;
/**
* This client is used to interact with the **Amazon Elastic VMware Service** service.
* @method \Aws\Result associateEipToVlan(array $args = [])
* @method \GuzzleHttp\Promise\Promise associateEipToVlanAsync(array $args = [])
* @method \Aws\Result createEnvironment(array $args = [])
* @method \GuzzleHttp\Promise\Promise createEnvironmentAsync(array $args = [])
* @method \Aws\Result createEnvironmentHost(array $args = [])
* @method \GuzzleHttp\Promise\Promise createEnvironmentHostAsync(array $args = [])
* @method \Aws\Result deleteEnvironment(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteEnvironmentAsync(array $args = [])
* @method \Aws\Result deleteEnvironmentHost(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteEnvironmentHostAsync(array $args = [])
* @method \Aws\Result disassociateEipFromVlan(array $args = [])
* @method \GuzzleHttp\Promise\Promise disassociateEipFromVlanAsync(array $args = [])
* @method \Aws\Result getEnvironment(array $args = [])
* @method \GuzzleHttp\Promise\Promise getEnvironmentAsync(array $args = [])
* @method \Aws\Result listEnvironmentHosts(array $args = [])
* @method \GuzzleHttp\Promise\Promise listEnvironmentHostsAsync(array $args = [])
* @method \Aws\Result listEnvironmentVlans(array $args = [])
* @method \GuzzleHttp\Promise\Promise listEnvironmentVlansAsync(array $args = [])
* @method \Aws\Result listEnvironments(array $args = [])
* @method \GuzzleHttp\Promise\Promise listEnvironmentsAsync(array $args = [])
* @method \Aws\Result listTagsForResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
* @method \Aws\Result tagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
* @method \Aws\Result untagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
*/
class EvsClient extends AwsClient {}
@@ -0,0 +1,9 @@
<?php
namespace Aws\Evs\Exception;
use Aws\Exception\AwsException;
/**
* Represents an error interacting with the **Amazon Elastic VMware Service** service.
*/
class EvsException extends AwsException {}
@@ -11,6 +11,7 @@ use Aws\ResultInterface;
use JmesPath\Env as JmesPath;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\RequestInterface;
use Throwable;
/**
* Represents an AWS exception that is thrown when a command fails.
@@ -39,35 +40,29 @@ class AwsException extends \RuntimeException implements
/**
* @param string $message Exception message
* @param string $message Exception message
* @param CommandInterface $command
* @param array $context Exception context
* @param \Exception $previous Previous exception (if any)
* @param array $context Exception context
* @param Throwable|null $previous Previous exception (if any)
*/
public function __construct(
$message,
CommandInterface $command,
array $context = [],
?\Exception $previous = null
?Throwable $previous = null
) {
$this->data = isset($context['body']) ? $context['body'] : [];
$this->data = $context['body'] ?? [];
$this->command = $command;
$this->response = isset($context['response']) ? $context['response'] : null;
$this->request = isset($context['request']) ? $context['request'] : null;
$this->requestId = isset($context['request_id'])
? $context['request_id']
: null;
$this->errorType = isset($context['type']) ? $context['type'] : null;
$this->errorCode = isset($context['code']) ? $context['code'] : null;
$this->errorShape = isset($context['error_shape']) ? $context['error_shape'] : null;
$this->response = $context['response'] ?? null;
$this->request = $context['request'] ?? null;
$this->requestId = $context['request_id'] ?? null;
$this->errorType = $context['type'] ?? null;
$this->errorCode = $context['code'] ?? null;
$this->errorShape = $context['error_shape'] ?? null;
$this->connectionError = !empty($context['connection_error']);
$this->result = isset($context['result']) ? $context['result'] : null;
$this->transferInfo = isset($context['transfer_stats'])
? $context['transfer_stats']
: [];
$this->errorMessage = isset($context['message'])
? $context['message']
: null;
$this->result = $context['result'] ?? null;
$this->transferInfo = $context['transfer_stats'] ?? [];
$this->errorMessage = $context['message'] ?? null;
$this->monitoringEvents = [];
$this->maxRetriesExceeded = false;
parent::__construct($message, 0, $previous);
@@ -220,9 +215,7 @@ class AwsException extends \RuntimeException implements
return $this->transferInfo;
}
return isset($this->transferInfo[$name])
? $this->transferInfo[$name]
: null;
return $this->transferInfo[$name] ?? null;
}
/**
+6
View File
@@ -13,6 +13,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise copyBackupAsync(array $args = [])
* @method \Aws\Result copySnapshotAndUpdateVolume(array $args = [])
* @method \GuzzleHttp\Promise\Promise copySnapshotAndUpdateVolumeAsync(array $args = [])
* @method \Aws\Result createAndAttachS3AccessPoint(array $args = [])
* @method \GuzzleHttp\Promise\Promise createAndAttachS3AccessPointAsync(array $args = [])
* @method \Aws\Result createBackup(array $args = [])
* @method \GuzzleHttp\Promise\Promise createBackupAsync(array $args = [])
* @method \Aws\Result createDataRepositoryAssociation(array $args = [])
@@ -59,6 +61,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise describeFileSystemAliasesAsync(array $args = [])
* @method \Aws\Result describeFileSystems(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeFileSystemsAsync(array $args = [])
* @method \Aws\Result describeS3AccessPointAttachments(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeS3AccessPointAttachmentsAsync(array $args = [])
* @method \Aws\Result describeSharedVpcConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeSharedVpcConfigurationAsync(array $args = [])
* @method \Aws\Result describeSnapshots(array $args = [])
@@ -67,6 +71,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise describeStorageVirtualMachinesAsync(array $args = [])
* @method \Aws\Result describeVolumes(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeVolumesAsync(array $args = [])
* @method \Aws\Result detachAndDeleteS3AccessPoint(array $args = [])
* @method \GuzzleHttp\Promise\Promise detachAndDeleteS3AccessPointAsync(array $args = [])
* @method \Aws\Result disassociateFileSystemAliases(array $args = [])
* @method \GuzzleHttp\Promise\Promise disassociateFileSystemAliasesAsync(array $args = [])
* @method \Aws\Result listTagsForResource(array $args = [])
@@ -5,7 +5,15 @@ use Aws\AwsClient;
/**
* This client is used to interact with the **AWS Free Tier** service.
* @method \Aws\Result getAccountActivity(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAccountActivityAsync(array $args = [])
* @method \Aws\Result getAccountPlanState(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAccountPlanStateAsync(array $args = [])
* @method \Aws\Result getFreeTierUsage(array $args = [])
* @method \GuzzleHttp\Promise\Promise getFreeTierUsageAsync(array $args = [])
* @method \Aws\Result listAccountActivities(array $args = [])
* @method \GuzzleHttp\Promise\Promise listAccountActivitiesAsync(array $args = [])
* @method \Aws\Result upgradeAccountPlan(array $args = [])
* @method \GuzzleHttp\Promise\Promise upgradeAccountPlanAsync(array $args = [])
*/
class FreeTierClient extends AwsClient {}
@@ -71,6 +71,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createDatabaseAsync(array $args = [])
* @method \Aws\Result createDevEndpoint(array $args = [])
* @method \GuzzleHttp\Promise\Promise createDevEndpointAsync(array $args = [])
* @method \Aws\Result createGlueIdentityCenterConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise createGlueIdentityCenterConfigurationAsync(array $args = [])
* @method \Aws\Result createIntegration(array $args = [])
* @method \GuzzleHttp\Promise\Promise createIntegrationAsync(array $args = [])
* @method \Aws\Result createIntegrationResourceProperty(array $args = [])
@@ -131,6 +133,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deleteDatabaseAsync(array $args = [])
* @method \Aws\Result deleteDevEndpoint(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteDevEndpointAsync(array $args = [])
* @method \Aws\Result deleteGlueIdentityCenterConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteGlueIdentityCenterConfigurationAsync(array $args = [])
* @method \Aws\Result deleteIntegration(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteIntegrationAsync(array $args = [])
* @method \Aws\Result deleteIntegrationTableProperties(array $args = [])
@@ -241,6 +245,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getDevEndpointsAsync(array $args = [])
* @method \Aws\Result getEntityRecords(array $args = [])
* @method \GuzzleHttp\Promise\Promise getEntityRecordsAsync(array $args = [])
* @method \Aws\Result getGlueIdentityCenterConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise getGlueIdentityCenterConfigurationAsync(array $args = [])
* @method \Aws\Result getIntegrationResourceProperty(array $args = [])
* @method \GuzzleHttp\Promise\Promise getIntegrationResourcePropertyAsync(array $args = [])
* @method \Aws\Result getIntegrationTableProperties(array $args = [])
@@ -481,6 +487,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise updateDatabaseAsync(array $args = [])
* @method \Aws\Result updateDevEndpoint(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateDevEndpointAsync(array $args = [])
* @method \Aws\Result updateGlueIdentityCenterConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateGlueIdentityCenterConfigurationAsync(array $args = [])
* @method \Aws\Result updateIntegrationResourceProperty(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateIntegrationResourcePropertyAsync(array $args = [])
* @method \Aws\Result updateIntegrationTableProperties(array $args = [])
@@ -25,8 +25,12 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createPublishingDestinationAsync(array $args = [])
* @method \Aws\Result createSampleFindings(array $args = [])
* @method \GuzzleHttp\Promise\Promise createSampleFindingsAsync(array $args = [])
* @method \Aws\Result createThreatEntitySet(array $args = [])
* @method \GuzzleHttp\Promise\Promise createThreatEntitySetAsync(array $args = [])
* @method \Aws\Result createThreatIntelSet(array $args = [])
* @method \GuzzleHttp\Promise\Promise createThreatIntelSetAsync(array $args = [])
* @method \Aws\Result createTrustedEntitySet(array $args = [])
* @method \GuzzleHttp\Promise\Promise createTrustedEntitySetAsync(array $args = [])
* @method \Aws\Result declineInvitations(array $args = [])
* @method \GuzzleHttp\Promise\Promise declineInvitationsAsync(array $args = [])
* @method \Aws\Result deleteDetector(array $args = [])
@@ -43,8 +47,12 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deleteMembersAsync(array $args = [])
* @method \Aws\Result deletePublishingDestination(array $args = [])
* @method \GuzzleHttp\Promise\Promise deletePublishingDestinationAsync(array $args = [])
* @method \Aws\Result deleteThreatEntitySet(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteThreatEntitySetAsync(array $args = [])
* @method \Aws\Result deleteThreatIntelSet(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteThreatIntelSetAsync(array $args = [])
* @method \Aws\Result deleteTrustedEntitySet(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteTrustedEntitySetAsync(array $args = [])
* @method \Aws\Result describeMalwareScans(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeMalwareScansAsync(array $args = [])
* @method \Aws\Result describeOrganizationConfiguration(array $args = [])
@@ -91,8 +99,12 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getOrganizationStatisticsAsync(array $args = [])
* @method \Aws\Result getRemainingFreeTrialDays(array $args = [])
* @method \GuzzleHttp\Promise\Promise getRemainingFreeTrialDaysAsync(array $args = [])
* @method \Aws\Result getThreatEntitySet(array $args = [])
* @method \GuzzleHttp\Promise\Promise getThreatEntitySetAsync(array $args = [])
* @method \Aws\Result getThreatIntelSet(array $args = [])
* @method \GuzzleHttp\Promise\Promise getThreatIntelSetAsync(array $args = [])
* @method \Aws\Result getTrustedEntitySet(array $args = [])
* @method \GuzzleHttp\Promise\Promise getTrustedEntitySetAsync(array $args = [])
* @method \Aws\Result getUsageStatistics(array $args = [])
* @method \GuzzleHttp\Promise\Promise getUsageStatisticsAsync(array $args = [])
* @method \Aws\Result inviteMembers(array $args = [])
@@ -119,8 +131,12 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listPublishingDestinationsAsync(array $args = [])
* @method \Aws\Result listTagsForResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
* @method \Aws\Result listThreatEntitySets(array $args = [])
* @method \GuzzleHttp\Promise\Promise listThreatEntitySetsAsync(array $args = [])
* @method \Aws\Result listThreatIntelSets(array $args = [])
* @method \GuzzleHttp\Promise\Promise listThreatIntelSetsAsync(array $args = [])
* @method \Aws\Result listTrustedEntitySets(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTrustedEntitySetsAsync(array $args = [])
* @method \Aws\Result startMalwareScan(array $args = [])
* @method \GuzzleHttp\Promise\Promise startMalwareScanAsync(array $args = [])
* @method \Aws\Result startMonitoringMembers(array $args = [])
@@ -151,7 +167,11 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise updateOrganizationConfigurationAsync(array $args = [])
* @method \Aws\Result updatePublishingDestination(array $args = [])
* @method \GuzzleHttp\Promise\Promise updatePublishingDestinationAsync(array $args = [])
* @method \Aws\Result updateThreatEntitySet(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateThreatEntitySetAsync(array $args = [])
* @method \Aws\Result updateThreatIntelSet(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateThreatIntelSetAsync(array $args = [])
* @method \Aws\Result updateTrustedEntitySet(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateTrustedEntitySetAsync(array $args = [])
*/
class GuardDutyClient extends AwsClient {}
@@ -0,0 +1,89 @@
<?php
namespace Aws\Handler\Guzzle;
use Exception;
use GuzzleHttp\Exception\ConnectException;
use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Utils;
use GuzzleHttp\Promise;
use GuzzleHttp\Client;
use GuzzleHttp\ClientInterface;
use GuzzleHttp\TransferStats;
use Psr\Http\Message\RequestInterface as Psr7Request;
/**
* A request handler that sends PSR-7-compatible requests with Guzzle.
*/
class GuzzleHandler
{
/** @var ClientInterface */
private $client;
/**
* @param ClientInterface $client
*/
public function __construct(?ClientInterface $client = null)
{
$this->client = $client ?: new Client();
}
/**
* @param Psr7Request $request
* @param array $options
*
* @return Promise\Promise
*/
public function __invoke(Psr7Request $request, array $options = [])
{
$request = $request->withHeader(
'User-Agent',
$request->getHeaderLine('User-Agent')
. ' ' . Utils::defaultUserAgent()
);
return $this->client->sendAsync($request, $this->parseOptions($options))
->otherwise(
static function ($e) {
$error = [
'exception' => $e,
'connection_error' => $e instanceof ConnectException,
'response' => null,
];
if (
($e instanceof RequestException)
&& $e->getResponse()
) {
$error['response'] = $e->getResponse();
}
return new Promise\RejectedPromise($error);
}
);
}
private function parseOptions(array $options)
{
if (isset($options['http_stats_receiver'])) {
$fn = $options['http_stats_receiver'];
unset($options['http_stats_receiver']);
$prev = isset($options['on_stats'])
? $options['on_stats']
: null;
$options['on_stats'] = static function (
TransferStats $stats
) use ($fn, $prev) {
if (is_callable($prev)) {
$prev($stats);
}
$transferStats = ['total_time' => $stats->getTransferTime()];
$transferStats += $stats->getHandlerStats();
$fn($transferStats);
};
}
return $options;
}
}
@@ -1,88 +1,11 @@
<?php
namespace Aws\Handler\GuzzleV6;
use Exception;
use GuzzleHttp\Exception\ConnectException;
use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Promise;
use GuzzleHttp\Client;
use GuzzleHttp\ClientInterface;
use GuzzleHttp\TransferStats;
use Psr\Http\Message\RequestInterface as Psr7Request;
trigger_error(sprintf(
'Using the "%s" class is deprecated, use "%s" instead.',
__NAMESPACE__ . '\GuzzleHandler',
\Aws\Handler\Guzzle\GuzzleHandler::class
), E_USER_DEPRECATED);
/**
* A request handler that sends PSR-7-compatible requests with Guzzle 6.
*/
class GuzzleHandler
{
/** @var ClientInterface */
private $client;
/**
* @param ClientInterface $client
*/
public function __construct(?ClientInterface $client = null)
{
$this->client = $client ?: new Client();
}
/**
* @param Psr7Request $request
* @param array $options
*
* @return Promise\Promise
*/
public function __invoke(Psr7Request $request, array $options = [])
{
$request = $request->withHeader(
'User-Agent',
$request->getHeaderLine('User-Agent')
. ' ' . \GuzzleHttp\default_user_agent()
);
return $this->client->sendAsync($request, $this->parseOptions($options))
->otherwise(
static function ($e) {
$error = [
'exception' => $e,
'connection_error' => $e instanceof ConnectException,
'response' => null,
];
if (
($e instanceof RequestException)
&& $e->getResponse()
) {
$error['response'] = $e->getResponse();
}
return new Promise\RejectedPromise($error);
}
);
}
private function parseOptions(array $options)
{
if (isset($options['http_stats_receiver'])) {
$fn = $options['http_stats_receiver'];
unset($options['http_stats_receiver']);
$prev = isset($options['on_stats'])
? $options['on_stats']
: null;
$options['on_stats'] = static function (
TransferStats $stats
) use ($fn, $prev) {
if (is_callable($prev)) {
$prev($stats);
}
$transferStats = ['total_time' => $stats->getTransferTime()];
$transferStats += $stats->getHandlerStats();
$fn($transferStats);
};
}
return $options;
}
}
class_alias(\Aws\Handler\Guzzle\GuzzleHandler::class, __NAMESPACE__ . '\GuzzleHandler');
@@ -53,6 +53,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listIngestConfigurationsAsync(array $args = [])
* @method \Aws\Result listParticipantEvents(array $args = [])
* @method \GuzzleHttp\Promise\Promise listParticipantEventsAsync(array $args = [])
* @method \Aws\Result listParticipantReplicas(array $args = [])
* @method \GuzzleHttp\Promise\Promise listParticipantReplicasAsync(array $args = [])
* @method \Aws\Result listParticipants(array $args = [])
* @method \GuzzleHttp\Promise\Promise listParticipantsAsync(array $args = [])
* @method \Aws\Result listPublicKeys(array $args = [])
@@ -67,8 +69,12 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
* @method \Aws\Result startComposition(array $args = [])
* @method \GuzzleHttp\Promise\Promise startCompositionAsync(array $args = [])
* @method \Aws\Result startParticipantReplication(array $args = [])
* @method \GuzzleHttp\Promise\Promise startParticipantReplicationAsync(array $args = [])
* @method \Aws\Result stopComposition(array $args = [])
* @method \GuzzleHttp\Promise\Promise stopCompositionAsync(array $args = [])
* @method \Aws\Result stopParticipantReplication(array $args = [])
* @method \GuzzleHttp\Promise\Promise stopParticipantReplicationAsync(array $args = [])
* @method \Aws\Result tagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
* @method \Aws\Result untagResource(array $args = [])
@@ -11,8 +11,10 @@ class IdempotencyTokenMiddleware
{
/** @var Service */
private $service;
/** @var string */
private $bytesGenerator;
/** @var callable */
private $nextHandler;
@@ -23,7 +25,7 @@ class IdempotencyTokenMiddleware
* One of following functions needs to be available
* in order to generate random bytes used for UUID
* (SDK will attempt to utilize function in following order):
* - random_bytes (requires PHP 7.0 or above)
* - random_bytes (requires PHP 7.0 or above)
* - openssl_random_pseudo_bytes (requires 'openssl' module enabled)
* - mcrypt_create_iv (requires 'mcrypt' module enabled)
*
@@ -10,7 +10,6 @@ use Aws\Api\Service;
*/
class InputValidationMiddleware
{
/** @var callable */
private $nextHandler;
@@ -58,7 +57,7 @@ class InputValidationMiddleware
if (!empty($input['required'])) {
foreach ($input['required'] as $key => $member) {
if (in_array($member, $this->mandatoryAttributeList)) {
$argument = is_string($cmd[$member]) ? trim($cmd[$member]) : $cmd[$member];
$argument = is_string($cmd[$member]) ? trim($cmd[$member]) : $cmd[$member];
if ($argument === '' || $argument === null) {
$commandName = $cmd->getName();
throw new \InvalidArgumentException(
@@ -7,6 +7,10 @@ use Aws\AwsClient;
* This client is used to interact with the **Inspector2** service.
* @method \Aws\Result associateMember(array $args = [])
* @method \GuzzleHttp\Promise\Promise associateMemberAsync(array $args = [])
* @method \Aws\Result batchAssociateCodeSecurityScanConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise batchAssociateCodeSecurityScanConfigurationAsync(array $args = [])
* @method \Aws\Result batchDisassociateCodeSecurityScanConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise batchDisassociateCodeSecurityScanConfigurationAsync(array $args = [])
* @method \Aws\Result batchGetAccountStatus(array $args = [])
* @method \GuzzleHttp\Promise\Promise batchGetAccountStatusAsync(array $args = [])
* @method \Aws\Result batchGetCodeSnippet(array $args = [])
@@ -25,6 +29,10 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise cancelSbomExportAsync(array $args = [])
* @method \Aws\Result createCisScanConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise createCisScanConfigurationAsync(array $args = [])
* @method \Aws\Result createCodeSecurityIntegration(array $args = [])
* @method \GuzzleHttp\Promise\Promise createCodeSecurityIntegrationAsync(array $args = [])
* @method \Aws\Result createCodeSecurityScanConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise createCodeSecurityScanConfigurationAsync(array $args = [])
* @method \Aws\Result createFilter(array $args = [])
* @method \GuzzleHttp\Promise\Promise createFilterAsync(array $args = [])
* @method \Aws\Result createFindingsReport(array $args = [])
@@ -33,6 +41,10 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createSbomExportAsync(array $args = [])
* @method \Aws\Result deleteCisScanConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteCisScanConfigurationAsync(array $args = [])
* @method \Aws\Result deleteCodeSecurityIntegration(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteCodeSecurityIntegrationAsync(array $args = [])
* @method \Aws\Result deleteCodeSecurityScanConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteCodeSecurityScanConfigurationAsync(array $args = [])
* @method \Aws\Result deleteFilter(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteFilterAsync(array $args = [])
* @method \Aws\Result describeOrganizationConfiguration(array $args = [])
@@ -51,6 +63,14 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getCisScanReportAsync(array $args = [])
* @method \Aws\Result getCisScanResultDetails(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCisScanResultDetailsAsync(array $args = [])
* @method \Aws\Result getClustersForImage(array $args = [])
* @method \GuzzleHttp\Promise\Promise getClustersForImageAsync(array $args = [])
* @method \Aws\Result getCodeSecurityIntegration(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCodeSecurityIntegrationAsync(array $args = [])
* @method \Aws\Result getCodeSecurityScan(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCodeSecurityScanAsync(array $args = [])
* @method \Aws\Result getCodeSecurityScanConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCodeSecurityScanConfigurationAsync(array $args = [])
* @method \Aws\Result getConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise getConfigurationAsync(array $args = [])
* @method \Aws\Result getDelegatedAdminAccount(array $args = [])
@@ -75,6 +95,12 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listCisScanResultsAggregatedByTargetResourceAsync(array $args = [])
* @method \Aws\Result listCisScans(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCisScansAsync(array $args = [])
* @method \Aws\Result listCodeSecurityIntegrations(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCodeSecurityIntegrationsAsync(array $args = [])
* @method \Aws\Result listCodeSecurityScanConfigurationAssociations(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCodeSecurityScanConfigurationAssociationsAsync(array $args = [])
* @method \Aws\Result listCodeSecurityScanConfigurations(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCodeSecurityScanConfigurationsAsync(array $args = [])
* @method \Aws\Result listCoverage(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCoverageAsync(array $args = [])
* @method \Aws\Result listCoverageStatistics(array $args = [])
@@ -103,6 +129,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise sendCisSessionTelemetryAsync(array $args = [])
* @method \Aws\Result startCisSession(array $args = [])
* @method \GuzzleHttp\Promise\Promise startCisSessionAsync(array $args = [])
* @method \Aws\Result startCodeSecurityScan(array $args = [])
* @method \GuzzleHttp\Promise\Promise startCodeSecurityScanAsync(array $args = [])
* @method \Aws\Result stopCisSession(array $args = [])
* @method \GuzzleHttp\Promise\Promise stopCisSessionAsync(array $args = [])
* @method \Aws\Result tagResource(array $args = [])
@@ -111,6 +139,10 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
* @method \Aws\Result updateCisScanConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateCisScanConfigurationAsync(array $args = [])
* @method \Aws\Result updateCodeSecurityIntegration(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateCodeSecurityIntegrationAsync(array $args = [])
* @method \Aws\Result updateCodeSecurityScanConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateCodeSecurityScanConfigurationAsync(array $args = [])
* @method \Aws\Result updateConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateConfigurationAsync(array $args = [])
* @method \Aws\Result updateEc2DeepInspectionConfiguration(array $args = [])
@@ -13,6 +13,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deleteInvoiceUnitAsync(array $args = [])
* @method \Aws\Result getInvoiceUnit(array $args = [])
* @method \GuzzleHttp\Promise\Promise getInvoiceUnitAsync(array $args = [])
* @method \Aws\Result listInvoiceSummaries(array $args = [])
* @method \GuzzleHttp\Promise\Promise listInvoiceSummariesAsync(array $args = [])
* @method \Aws\Result listInvoiceUnits(array $args = [])
* @method \GuzzleHttp\Promise\Promise listInvoiceUnitsAsync(array $args = [])
* @method \Aws\Result listTagsForResource(array $args = [])
@@ -5,6 +5,12 @@ use Aws\AwsClient;
/**
* This client is used to interact with the **Managed integrations for AWS IoT Device Management** service.
* @method \Aws\Result createAccountAssociation(array $args = [])
* @method \GuzzleHttp\Promise\Promise createAccountAssociationAsync(array $args = [])
* @method \Aws\Result createCloudConnector(array $args = [])
* @method \GuzzleHttp\Promise\Promise createCloudConnectorAsync(array $args = [])
* @method \Aws\Result createConnectorDestination(array $args = [])
* @method \GuzzleHttp\Promise\Promise createConnectorDestinationAsync(array $args = [])
* @method \Aws\Result createCredentialLocker(array $args = [])
* @method \GuzzleHttp\Promise\Promise createCredentialLockerAsync(array $args = [])
* @method \Aws\Result createDestination(array $args = [])
@@ -21,6 +27,12 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createOtaTaskConfigurationAsync(array $args = [])
* @method \Aws\Result createProvisioningProfile(array $args = [])
* @method \GuzzleHttp\Promise\Promise createProvisioningProfileAsync(array $args = [])
* @method \Aws\Result deleteAccountAssociation(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteAccountAssociationAsync(array $args = [])
* @method \Aws\Result deleteCloudConnector(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteCloudConnectorAsync(array $args = [])
* @method \Aws\Result deleteConnectorDestination(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteConnectorDestinationAsync(array $args = [])
* @method \Aws\Result deleteCredentialLocker(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteCredentialLockerAsync(array $args = [])
* @method \Aws\Result deleteDestination(array $args = [])
@@ -37,6 +49,14 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deleteOtaTaskConfigurationAsync(array $args = [])
* @method \Aws\Result deleteProvisioningProfile(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteProvisioningProfileAsync(array $args = [])
* @method \Aws\Result deregisterAccountAssociation(array $args = [])
* @method \GuzzleHttp\Promise\Promise deregisterAccountAssociationAsync(array $args = [])
* @method \Aws\Result getAccountAssociation(array $args = [])
* @method \GuzzleHttp\Promise\Promise getAccountAssociationAsync(array $args = [])
* @method \Aws\Result getCloudConnector(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCloudConnectorAsync(array $args = [])
* @method \Aws\Result getConnectorDestination(array $args = [])
* @method \GuzzleHttp\Promise\Promise getConnectorDestinationAsync(array $args = [])
* @method \Aws\Result getCredentialLocker(array $args = [])
* @method \GuzzleHttp\Promise\Promise getCredentialLockerAsync(array $args = [])
* @method \Aws\Result getCustomEndpoint(array $args = [])
@@ -73,12 +93,24 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise getRuntimeLogConfigurationAsync(array $args = [])
* @method \Aws\Result getSchemaVersion(array $args = [])
* @method \GuzzleHttp\Promise\Promise getSchemaVersionAsync(array $args = [])
* @method \Aws\Result listAccountAssociations(array $args = [])
* @method \GuzzleHttp\Promise\Promise listAccountAssociationsAsync(array $args = [])
* @method \Aws\Result listCloudConnectors(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCloudConnectorsAsync(array $args = [])
* @method \Aws\Result listConnectorDestinations(array $args = [])
* @method \GuzzleHttp\Promise\Promise listConnectorDestinationsAsync(array $args = [])
* @method \Aws\Result listCredentialLockers(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCredentialLockersAsync(array $args = [])
* @method \Aws\Result listDestinations(array $args = [])
* @method \GuzzleHttp\Promise\Promise listDestinationsAsync(array $args = [])
* @method \Aws\Result listDeviceDiscoveries(array $args = [])
* @method \GuzzleHttp\Promise\Promise listDeviceDiscoveriesAsync(array $args = [])
* @method \Aws\Result listDiscoveredDevices(array $args = [])
* @method \GuzzleHttp\Promise\Promise listDiscoveredDevicesAsync(array $args = [])
* @method \Aws\Result listEventLogConfigurations(array $args = [])
* @method \GuzzleHttp\Promise\Promise listEventLogConfigurationsAsync(array $args = [])
* @method \Aws\Result listManagedThingAccountAssociations(array $args = [])
* @method \GuzzleHttp\Promise\Promise listManagedThingAccountAssociationsAsync(array $args = [])
* @method \Aws\Result listManagedThingSchemas(array $args = [])
* @method \GuzzleHttp\Promise\Promise listManagedThingSchemasAsync(array $args = [])
* @method \Aws\Result listManagedThings(array $args = [])
@@ -95,20 +127,38 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listProvisioningProfilesAsync(array $args = [])
* @method \Aws\Result listSchemaVersions(array $args = [])
* @method \GuzzleHttp\Promise\Promise listSchemaVersionsAsync(array $args = [])
* @method \Aws\Result listTagsForResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
* @method \Aws\Result putDefaultEncryptionConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise putDefaultEncryptionConfigurationAsync(array $args = [])
* @method \Aws\Result putHubConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise putHubConfigurationAsync(array $args = [])
* @method \Aws\Result putRuntimeLogConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise putRuntimeLogConfigurationAsync(array $args = [])
* @method \Aws\Result registerAccountAssociation(array $args = [])
* @method \GuzzleHttp\Promise\Promise registerAccountAssociationAsync(array $args = [])
* @method \Aws\Result registerCustomEndpoint(array $args = [])
* @method \GuzzleHttp\Promise\Promise registerCustomEndpointAsync(array $args = [])
* @method \Aws\Result resetRuntimeLogConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise resetRuntimeLogConfigurationAsync(array $args = [])
* @method \Aws\Result sendConnectorEvent(array $args = [])
* @method \GuzzleHttp\Promise\Promise sendConnectorEventAsync(array $args = [])
* @method \Aws\Result sendManagedThingCommand(array $args = [])
* @method \GuzzleHttp\Promise\Promise sendManagedThingCommandAsync(array $args = [])
* @method \Aws\Result startAccountAssociationRefresh(array $args = [])
* @method \GuzzleHttp\Promise\Promise startAccountAssociationRefreshAsync(array $args = [])
* @method \Aws\Result startDeviceDiscovery(array $args = [])
* @method \GuzzleHttp\Promise\Promise startDeviceDiscoveryAsync(array $args = [])
* @method \Aws\Result tagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
* @method \Aws\Result untagResource(array $args = [])
* @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
* @method \Aws\Result updateAccountAssociation(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateAccountAssociationAsync(array $args = [])
* @method \Aws\Result updateCloudConnector(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateCloudConnectorAsync(array $args = [])
* @method \Aws\Result updateConnectorDestination(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateConnectorDestinationAsync(array $args = [])
* @method \Aws\Result updateDestination(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateDestinationAsync(array $args = [])
* @method \Aws\Result updateEventLogConfiguration(array $args = [])
@@ -31,6 +31,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise createAssetModelCompositeModelAsync(array $args = [])
* @method \Aws\Result createBulkImportJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise createBulkImportJobAsync(array $args = [])
* @method \Aws\Result createComputationModel(array $args = [])
* @method \GuzzleHttp\Promise\Promise createComputationModelAsync(array $args = [])
* @method \Aws\Result createDashboard(array $args = [])
* @method \GuzzleHttp\Promise\Promise createDashboardAsync(array $args = [])
* @method \Aws\Result createDataset(array $args = [])
@@ -49,6 +51,10 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise deleteAssetModelAsync(array $args = [])
* @method \Aws\Result deleteAssetModelCompositeModel(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteAssetModelCompositeModelAsync(array $args = [])
* @method \Aws\Result deleteAssetModelInterfaceRelationship(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteAssetModelInterfaceRelationshipAsync(array $args = [])
* @method \Aws\Result deleteComputationModel(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteComputationModelAsync(array $args = [])
* @method \Aws\Result deleteDashboard(array $args = [])
* @method \GuzzleHttp\Promise\Promise deleteDashboardAsync(array $args = [])
* @method \Aws\Result deleteDataset(array $args = [])
@@ -73,16 +79,24 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise describeAssetModelAsync(array $args = [])
* @method \Aws\Result describeAssetModelCompositeModel(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeAssetModelCompositeModelAsync(array $args = [])
* @method \Aws\Result describeAssetModelInterfaceRelationship(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeAssetModelInterfaceRelationshipAsync(array $args = [])
* @method \Aws\Result describeAssetProperty(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeAssetPropertyAsync(array $args = [])
* @method \Aws\Result describeBulkImportJob(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeBulkImportJobAsync(array $args = [])
* @method \Aws\Result describeComputationModel(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeComputationModelAsync(array $args = [])
* @method \Aws\Result describeComputationModelExecutionSummary(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeComputationModelExecutionSummaryAsync(array $args = [])
* @method \Aws\Result describeDashboard(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeDashboardAsync(array $args = [])
* @method \Aws\Result describeDataset(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeDatasetAsync(array $args = [])
* @method \Aws\Result describeDefaultEncryptionConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeDefaultEncryptionConfigurationAsync(array $args = [])
* @method \Aws\Result describeExecution(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeExecutionAsync(array $args = [])
* @method \Aws\Result describeGateway(array $args = [])
* @method \GuzzleHttp\Promise\Promise describeGatewayAsync(array $args = [])
* @method \Aws\Result describeGatewayCapabilityConfiguration(array $args = [])
@@ -137,12 +151,22 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listBulkImportJobsAsync(array $args = [])
* @method \Aws\Result listCompositionRelationships(array $args = [])
* @method \GuzzleHttp\Promise\Promise listCompositionRelationshipsAsync(array $args = [])
* @method \Aws\Result listComputationModelDataBindingUsages(array $args = [])
* @method \GuzzleHttp\Promise\Promise listComputationModelDataBindingUsagesAsync(array $args = [])
* @method \Aws\Result listComputationModelResolveToResources(array $args = [])
* @method \GuzzleHttp\Promise\Promise listComputationModelResolveToResourcesAsync(array $args = [])
* @method \Aws\Result listComputationModels(array $args = [])
* @method \GuzzleHttp\Promise\Promise listComputationModelsAsync(array $args = [])
* @method \Aws\Result listDashboards(array $args = [])
* @method \GuzzleHttp\Promise\Promise listDashboardsAsync(array $args = [])
* @method \Aws\Result listDatasets(array $args = [])
* @method \GuzzleHttp\Promise\Promise listDatasetsAsync(array $args = [])
* @method \Aws\Result listExecutions(array $args = [])
* @method \GuzzleHttp\Promise\Promise listExecutionsAsync(array $args = [])
* @method \Aws\Result listGateways(array $args = [])
* @method \GuzzleHttp\Promise\Promise listGatewaysAsync(array $args = [])
* @method \Aws\Result listInterfaceRelationships(array $args = [])
* @method \GuzzleHttp\Promise\Promise listInterfaceRelationshipsAsync(array $args = [])
* @method \Aws\Result listPortals(array $args = [])
* @method \GuzzleHttp\Promise\Promise listPortalsAsync(array $args = [])
* @method \Aws\Result listProjectAssets(array $args = [])
@@ -153,6 +177,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
* @method \Aws\Result listTimeSeries(array $args = [])
* @method \GuzzleHttp\Promise\Promise listTimeSeriesAsync(array $args = [])
* @method \Aws\Result putAssetModelInterfaceRelationship(array $args = [])
* @method \GuzzleHttp\Promise\Promise putAssetModelInterfaceRelationshipAsync(array $args = [])
* @method \Aws\Result putDefaultEncryptionConfiguration(array $args = [])
* @method \GuzzleHttp\Promise\Promise putDefaultEncryptionConfigurationAsync(array $args = [])
* @method \Aws\Result putLoggingOptions(array $args = [])
@@ -173,6 +199,8 @@ use Aws\AwsClient;
* @method \GuzzleHttp\Promise\Promise updateAssetModelCompositeModelAsync(array $args = [])
* @method \Aws\Result updateAssetProperty(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateAssetPropertyAsync(array $args = [])
* @method \Aws\Result updateComputationModel(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateComputationModelAsync(array $args = [])
* @method \Aws\Result updateDashboard(array $args = [])
* @method \GuzzleHttp\Promise\Promise updateDashboardAsync(array $args = [])
* @method \Aws\Result updateDataset(array $args = [])

Some files were not shown because too many files have changed in this diff Show More