One of the nice things about the Get-AWSPowerShellVersion
cmdlet is the ListServiceVersionInfo switch parameter. It returns properties for the Service (as in the AWS Service offering name), the Noun Prefix, and API Version. Yes, there really are spaces in those last two property names; however, they’ve been fixed in my function. I had been hoping for an easier way to determine the prefixes used in the AWS cmdlets, and here we have it. I actually considered parsing cmdlet names myself, so a huge thanks to AWS, for making sure that wasn’t necessary.
It’s almost as though this should have been its own cmdlet—a get the version cmdlet and a get the noun prefixes cmdlet. Therefore, I’ve wrapped this command and its parameter in a quick and easy-to-use function for my user base. Copy, paste, and try it out; it’s all yours. Super simple.
Function Get-AWSNounPrefix { <# .SYNOPSIS The function returns the AWS PowerShell cmdlet noun prefixes, along with the corresponding AWS Service. .DESCRIPTION The function returns the AWS PowerShell cmdlet noun prefixes, along with the corresponding AWS Service name. This function utilizes the AWSPowerShell module's Get-AWSPowerShellVersion function. .EXAMPLE -------------------------- EXAMPLE 1 -------------------------- PS > Get-AWSNounPrefix This examples returns all the noun prefixes and their corresponding AWS Service name. .EXAMPLE -------------------------- EXAMPLE 2 -------------------------- PS > Get-AWSNounPrefix | Where-Object NounPrefix -match 'cf' NounPrefix Service APIVersion ---------- ------- ---------- CF Amazon CloudFront 2016-09-29 CFG AWS Config 2014-11-12 CFN AWS CloudFormation 2010-05-15 This example uses the Where-Object cmdlet and the Match operator to filter the results by the NounPrefix. .EXAMPLE -------------------------- EXAMPLE 3 -------------------------- PS > Get-AWSNounPrefix | Where-Object Service -like '*formation*' NounPrefix Service APIVersion ---------- ------- ---------- CFN AWS CloudFormation 2010-05-15 This example uses the Where-Object cmdlet and the Like operator to filter the results by the service name. .EXAMPLE -------------------------- EXAMPLE 4 -------------------------- PS > Get-AWSNounPrefix | Where-Object -Property APIVersion -like '2016*' | Sort-Object -Property APIVersion -Descending NounPrefix Service APIVersion ---------- ------- ---------- SMS Amazon Server Migration Service 2016-10-24 BGT AWS Budgets 2016-10-20 CF Amazon CloudFront 2016-09-29 EC2 Amazon Elastic Compute Cloud 2016-09-15 SNOW AWS Import/Export Snowball 2016-06-30 CGIP Amazon Cognito Identity Provider 2016-04-18 INS Amazon Inspector 2016-02-16 AAS Application Auto Scaling 2016-02-06 MM AWS Marketplace Metering 2016-01-14 DMS AWS Database Migration Service 2016-01-01 This example uses the Where-Object, and Sort-Object cmdlet, to find services updated in 2016 and sorts by the most recently added and updated. .NOTES Name: Get-AWSNounPrefix Author: Tommy Maynard Comments: Current version of AWSPowerShell module at the first, last edit: 3.3.20.0. Last Edit: 11/18/2016 Version 1.0 #> [CmdletBinding()] Param ( ) Begin { $AWSServices = Get-AWSPowerShellVersion -ListServiceVersionInfo | Sort-Object -Property 'Noun Prefix' } # End Begin. Process { Foreach ($AWSService in $AWSServices) { [PSCustomObject]@{ NounPrefix = $AWSService.'Noun Prefix' Service = $AWSService.Service APIVersion = $AWSService.'API Version' } } # End Foreach. } # End Process. End { } # End End. } # End Function: Get-AWSNounPrefix.