Skip to content

V5 Development Tracker #357

Open
Open
@afroz429

Description

@afroz429

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 and Write-S3Object no longer remove leading spaces, forward(/) and backslashes() from the Key and KeyPrefix 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

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
  • S3 cmdlets Copy-S3Object, Get-S3Object, Get-S3ObjectV2, Read-S3Object, Remove-S3Object, Set-S3ACL and Write-S3Object remove leading spaces, forward(/) and backslashes() from the Key and KeyPrefix parameter. This behavior is changed in V5 to not clean the keys by default. To enable legacy behavior, use EnableLegacyKeyCleaning parameter.

    • Example: Write-S3Object -BucketName 'my-bucket' -Key 'my/path/file.txt' -File 'local/file.txt' -EnableLegacyKeyCleaning
  • 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 from Write-S3Object
  • Added comprehensive DryRun parameter support across many EC2 APIs, removing previous exclusions.

    • Example: New-EC2Instance -ImageId 'ami-12345678' -InstanceType 't2.micro' -DryRun $true
  • Modified Get-CWAlarm output to return both Metric and Composite CloudWatch alarms by default, and fixed AlarmType parameter behavior to filter alarms.

    • Example: Get-CWAlarm -AlarmType 'CompositeAlarm'
  • Removed dependency from LitJson library, replaced with System.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 and Get-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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions