Description
V5 Development Tracker
This issue is for tracking the changes being made for V5 of the AWS Tools for PowerShell. Development of V5 is happening in the v5-development
branch in this repository. V5 is an evolutionary major version change with minimal breaking changes so existing code can upgrade to V5 with low effort.
Breaking changes
- The monolithic AWSPowerShell module's minimum supported PowerShell version will be updated to 5.1. This is to match the AWS SDK for .NET new minimum of .NET Framework 4.7.2.
- The types adopted from the AWS SDK for .NET will use the SDK's new nullable changes. For example, properties of type int will change to Nullable[int]. Some cmdlet output will change to return $null instead of empty collections.
- The AWSHistory variable used for accessing the whole AWS API response will be removed in favor of using the -Select * feature, which has been added to AWS SDK for .NET 4.
- The AWS_PROFILE environment variable will be used when resolving credentials for a cmdlet.
- Consistent Auto-Iteration: All paginated cmdlets will auto-iterate all data for V5.
- S3 cmdlets
Copy-S3Object
,Get-S3Object
,Get-S3ObjectV2
,Read-S3Object
,Remove-S3Object
,Set-S3ACL
andWrite-S3Object
no longer remove leading spaces, forward(/) and backslashes() from theKey
andKeyPrefix
parameter.
To see information about additional changes that have been implemented for V5, see the details about each preview that follow the sections about installation.
Installing AWSPowerShell Preview Modules
Install-Module AWSPowerShell -AllowPrerelease -Repository PSGallery -Force
Installing AWS Tools Preview Modules
Install-Module -Name AWS.Tools.Common -AllowPrerelease -Repository PSGallery -Force
Install-Module -Name AWS.Tools.S3 -AllowPrerelease -Repository PSGallery -Force
Import AWS Tools for PowerShell Modules
Please note that you are required to import AWS.Tools.Common by invoking Import-Module -Name AWS.Tools.Common before importing any other AWS.Tools service modules. Normally, AWS.Tools.Common is automatically imported when importing a service module but there is a PowerShellGet bug preventing preview modules from specifying other preview modules as RequiredModules.
Import-Module -Name AWS.Tools.Common
Import-Module -Name AWS.Tools.S3
PS> Get-Module
ModuleType Version PreRelease Name
---------- ------- ---------- ----
Binary 5.0.0 preview001 AWS.Tools.Common
Binary 5.0.0 preview001 AWS.Tools.S3
5.0.0-preview001
- The AWSPowerShell module’s minimum supported PowerShell version has been updated to 5.1. This is to match the AWS SDK for .NET new minimum of .NET Framework 4.7.2.
- The types adopted from the AWS SDK for .NET will use the SDK’s new nullable changes. For example, properties of type int will change to Nullable[int]. Some cmdlet output will change to return $null instead of empty collections.
- The AWSHistory variable, which is used to access the whole AWS API response, is removed in favor of using the -Select * feature.
- Removed obsolete -PassThru parameter from cmdlets.
- Get-DDBStream, Get-DDBStreamList cmdlets have been moved from DynamoDBV2 module to a new module DynamoDBStreams and renamed to Get-DDBSStream, Get-DDBSStreamList.
- Created Get-S3BucketACL, Set-S3BucketACL, Get-S3ObjectACL, Set-S3ObjectACL cmdlets and deprecated Get-S3ACL and Set-S3ACL
- Preview builds of AWS Tools for PowerShell are intended for developer testing/feedback and should not be installed in production environments.
- Please note that you are required to import AWS.Tools.Common before importing any other AWS.Tools service modules.
- Please use PowerShellGet commands (Install-Module, Update-Module, and Uninstall-Module) to install, update, and remove preview build modules.
- AWS.Tools.Installer may fail to install or update modules while preview build modules are installed. A backlog item has been created to address this bug.
5.0.0-preview002
- Added support for cmdlet execution cancellation using CTRL + C
- Sensitive data output to the host is redacted by default with the ability to opt-out
- AWS Tools for PowerShell now use AWS .NET SDK 4.0.0.0 and leverage its new features and improvements. For more details checkout
5.0.0-preview003
-
Enhanced
Start-SSMSession
cmdlet with interactive session capabilities via Session Manager plugin, and added a new DisablePluginInvocation parameter for legacy behavior support. This behavior now aligns with the AWS CLI behavior.- Example:
Start-SSMSession -Target 'i-1234567890abcdef0' -DisablePluginInvocation
- Example:
-
S3 cmdlets
Copy-S3Object
,Get-S3Object
,Get-S3ObjectV2
,Read-S3Object
,Remove-S3Object
,Set-S3ACL
andWrite-S3Object
remove leading spaces, forward(/) and backslashes() from theKey
andKeyPrefix
parameter. This behavior is changed in V5 to not clean the keys by default. To enable legacy behavior, useEnableLegacyKeyCleaning
parameter.- Example:
Write-S3Object -BucketName 'my-bucket' -Key 'my/path/file.txt' -File 'local/file.txt' -EnableLegacyKeyCleaning
- Example:
-
Updated credential resolution mechanism by removing resolution logic from PowerShell. PowerShell SDK relies on .NET SDK for credential resolution. This change inherits several mechanisms that .NET SDK supports. e.g support for
AWS_PROFILE
environment variable. -
Deprecated and removed obsolete components:
- Removed
Invoke-LMFunctionAsync
cmdlet - Removed
Get-EC2ImageByName
cmdlet - Removed
CalculateContentMD5Header
parameter fromWrite-S3Object
- Removed
-
Added comprehensive
DryRun
parameter support across many EC2 APIs, removing previous exclusions.- Example:
New-EC2Instance -ImageId 'ami-12345678' -InstanceType 't2.micro' -DryRun $true
- Example:
-
Modified
Get-CWAlarm
output to return both Metric and Composite CloudWatch alarms by default, and fixedAlarmType
parameter behavior to filter alarms.- Example:
Get-CWAlarm -AlarmType 'CompositeAlarm'
- Example:
-
Removed dependency from
LitJson
library, replaced withSystem.Text.Json
. -
AWS Tools for PowerShell now use AWS .NET SDK 4.0.0.0 and leverage its new features and improvements. For more details checkout
5.0.0-preview004
- We've updated to leverage the GA release of AWS SDK for .NET v4, bringing you the latest features and improvements to enhance developer experience. For details checkout
- Improved
Invoke-AWSSSOLogin
cmdlet to better handle profiles with source profiles. Now supports SSO login flow even when the specified profile doesn't have all required SSO properties, but its source profile does.
5.0.0-preview005
- Added Auto-Iteration support for over 1000 cmdlets.
- Added new cmdlets
Set-AWSAutoIterationMode
andGet-AWSAutoIterationMode
. - Since cmdlets that support pagination and didn't auto-iterate in V4 will start auto-iterating by default in V5, this could be a breaking change if the code is expecting paged data. To preserve the V4 behavior, run
Set-AWSAutoIterationMode -IterationMode v4
at the beginning of the script. - AWS Tools for PowerShell now use AWS .NET SDK 4.0.22.0 and leverage its new features and improvements. For more details checkout https://github.com/aws/aws-sdk-net/blob/main/changelogs/SDK.CHANGELOG.2025.md#40220-2025-05-29-1831-utc