labunix's blog

labunixのラボUnix

AWS CLIコマンドのすべてのパラメータファイルを「--generate-cli-skeleton 」で生成してみる。

■AWS CLIコマンドのすべてのパラメータファイルを「--generate-cli-skeleton 」で生成してみる。
 まずは前回と同様に。

 AWSのEC2イメージを調査して、最新のAMIイメージIDを取得してみた。
 https://labunix.hateblo.jp/entry/20210206/1612545305

■前回の最新のAMIイメージIDを取得するために、「--generate-cli-skelton」を指定する。

$ aws ec2 describe-images --generate-cli-skeleton > aws_ec2_describe-images.json

■編集は意外と面倒なので、必要な項目としてFiltersとDryRunに絞る。

$ cat aws_ec2_describe-images.json | \
    lsec -sep '^    \042' "Name|DryRun" | \
    awk 'BEGIN{print "{"}{gsub("true","false",$0);print}END{Print "}"}' > custom_aws_ec2_describe-images.json

$ sdiff *aws_ec2_describe-images.json
{								{
    "ExecutableUsers": [				      <
        ""						      <
    ],							      <
    "Filters": [						    "Filters": [
        {							        {
            "Name": "",						            "Name": "",
            "Values": [						            "Values": [
                ""						                ""
            ]							            ]
        }							        }
    ],								    ],
    "ImageIds": [					      |	    "DryRun": false
        ""						      <
    ],							      <
    "Owners": [						      <
        ""						      <
    ],							      <
    "DryRun": true					      <
}								}

■NameとValuesを編集する。

$ cp custom{,2}_aws_ec2_describe-images.json
$ sdiff -l custom{,2}_aws_ec2_describe-images.json
{							      (
    "Filters": [					      (
        {						      (
            "Name": "",					      |	            "Name": "name",
            "Values": [					      (
                ""					      |	                "amzn2-ami-hvm-*x86_64-gp2"
            ]						      (
        }						      (
    ],							      (
    "DryRun": false					      (
}							      (

■呼び出すには「--cli-input-json」を付けて実行。
 「file://」でカレントディレクトリに配置したjsonファイルを指定する。
 jsonファイルは、「--filters "Name=name,Values=amzn2-ami-hvm-*x86_64-gp2"」と同じ意味。

$ pwd
/home/labunix

$ aws ec2 describe-images --cli-input-json file://custom2_aws_ec2_describe-images.json

■最新のAMIイメージIDを取得する。

$ aws ec2 describe-images --cli-input-json file://custom2_aws_ec2_describe-images.json \
  --query 'sort_by(Images[].{YMD:CreationDate,Name:Name,ImageId:ImageId,OwnerId:OwnerId},&YMD)|reverse(@) | [0].ImageId' \
  --output text
ami-01aab85a5e4a5a0fe

■前回の「--query」処理はクライアント側の処理なので、jqでも書ける。

 普通にソートすると1つ目は最古。

$ aws ec2 describe-images --cli-input-json file://custom2_aws_ec2_describe-images.json | \
  jq -r '.Images | sort_by(.CreationDate) | .[0].CreationDate'
2017-12-13T05:30:54.000Z

 reverseしたソートの1つ目は最新。

$ aws ec2 describe-images --cli-input-json file://custom2_aws_ec2_describe-images.json | \
  jq -r '.Images | sort_by(.CreationDate) | reverse | .[0].CreationDate'
2021-01-26T07:39:01.000Z

 reverseしなくても最後=「-1」にマッチするのは最新。

$ aws ec2 describe-images --cli-input-json file://custom2_aws_ec2_describe-images.json | \
  jq -r '.Images | sort_by(.CreationDate) | .[-1].CreationDate'
2021-01-26T07:39:01.000Z

$ aws ec2 describe-images --cli-input-json file://custom2_aws_ec2_describe-images.json | \
  jq -r '.Images | sort_by(.CreationDate) | .[-1].ImageId'
ami-01aab85a5e4a5a0fe

■サーバ側で処理させるオプションを知るためにjsonに書き出してみるのは良さそう。
 そのためには以下でできた「aws-allsubcmd.txt」を使う。

 awscliのすべてのコマンドとサブコマンドを一覧してみる。
 https://labunix.hateblo.jp/entry/20210117/1610827122

$ mv aws-allsubcmd.txt{,.bak}
$  ./aws-subcmd-list aws | \
   awk '!/help/{print "./aws-subcmd-list aws "$1" | awk \047{print \042aws "$1"\042,$1}\047"}' | sh > ~/aws-allsubcmd.txt 

$ diff -s aws-allsubcmd.txt{,.bak}
ファイル aws-allsubcmd.txt と aws-allsubcmd.txt.bak は同一です

■すべてのコマンドとサブコマンドに「--generate-cli-skeleton」を付与してjsonファイルに書き出し。
 「aws configure file:」以外は取得できた。

$ awk '{print $0":"$0}' aws-allsubcmd.txt | awk -F: '{gsub(" ","_",$2);print $1" --generate-cli-skeleton > "$2".json 2>&1"}' | sh

$ sort -V aws-allsubcmd.txt > all-jsonlist_from.txt 
$ ls aws_*.json | awk '{gsub("_"," ",$0);print substr($0,1,length($0)-5) | "sort -V"}' > all-jsonlist_to.txt
$ sdiff -s all-jsonlist_*
aws configure file:					      <

$ wc -l all-jsonlist_*
  9383 all-jsonlist_from.txt
  9382 all-jsonlist_to.txt
 18765 合計

■先頭に「{」があれば成功しているものとして、行数を末尾に付与して出力。
 413のサブコマンドが「--generate-cli-skeleton」に対応していない様子。

$ awk '{if($0 ~ /^{/){gsub("_"," ",FILENAME);print substr(FILENAME,1,length(FILENAME)-5) | "sort -V"}}' aws_*.json > all-jsonlist_success.txt

$ sdiff -s all-jsonlist_{to,success}.txt | wc -l
413

$ wc -l all-jsonlist_{to,success}.txt
  9382 all-jsonlist_to.txt
  8969 all-jsonlist_success.txt
 18351 合計

$ echo $((8969 + 413))
93828382ものファイルをいちいち開きたくないし、一元的に見たいよ〜。
 こうすれば、できます。

$ awk '{if($0 ~ /^{/){print FILENAME,FILENAME}}' aws_*.json | \
    awk '{gsub("_"," ",$1);print "echo \042# "substr($1,1,length($1)-5)"\042;cat "$2 | "sort -V | sh"}' | less

$ awk '{if($0 ~ /^{/){print FILENAME,FILENAME}}' aws_*.json | \
    awk '{gsub("_"," ",$1);print "echo \042# "substr($1,1,length($1)-5)"\042;cat "$2 | "sort -V | sh"}' | wc -l
115591

■一元的にリストできたので、lsecで横断的に検索できる。
 例えばdescribe-imagesで検索すると、appstream、ec2、ecr、ecr-publicのjsonが一元的に見える。
 describe-images自体が類似のキーなので、jsonの要素も似ていてFiltersの有無などの比較も容易にできる。

$ awk '{if($0 ~ /^{/){print FILENAME,FILENAME}}' aws_*.json | \
    awk '{gsub("_"," ",$1);print "echo \042# "substr($1,1,length($1)-5)"\042;cat "$2 | "sort -V | sh"}' | \
    lsec -sep "^#" describe-images
# aws appstream describe-images
{
    "Names": [
        ""
    ],
    "Arns": [
        ""
    ],
    "Type": "PRIVATE",
    "NextToken": "",
    "MaxResults": 0
}
# aws ec2 describe-images
{
    "ExecutableUsers": [
        ""
    ],
    "Filters": [
        {
            "Name": "",
            "Values": [
                ""
            ]
        }
    ],
    "ImageIds": [
        ""
    ],
    "Owners": [
        ""
    ],
    "DryRun": true
}
# aws ecr describe-images
{
    "registryId": "",
    "repositoryName": "",
    "imageIds": [
        {
            "imageDigest": "",
            "imageTag": ""
        }
    ],
    "nextToken": "",
    "maxResults": 0,
    "filter": {
        "tagStatus": "TAGGED"
    }
}
# aws ecr-public describe-images
{
    "registryId": "",
    "repositoryName": "",
    "imageIds": [
        {
            "imageDigest": "",
            "imageTag": ""
        }
    ],
    "nextToken": "",
    "maxResults": 0
}

■ところで失敗した413のコマンド結果はマニュアルかusageが出てくる。

$ diff all-jsonlist_{to,success}.txt | \
    awk -F'<' '/</{gsub(" ","_",$2);print substr($2,2)".json",substr($2,2)".json"}' | \
    awk '{gsub("_"," ",$1); \
      print "echo -n \042# "substr($1,1,length($1)-5)" ### \042;awk \047BEGIN{a=0}{if(/[A-Za-z0-9]/){if(a==0){print $1;a=1}}}\047 "$2}' | \
    sh | nl
     1	# aws accessanalyzer help ### ACCESSANALYZER()
     2	# aws acm help ### ACM()
     3	# aws acm wait ### Unknown
     4	# aws acm-pca help ### ACM-PCA()
     5	# aws acm-pca wait ### Unknown
     6	# aws alexaforbusiness help ### ALEXAFORBUSINESS()
     7	# aws amplifybackend help ### AMPLIFYBACKEND()
     8	# aws amplify help ### AMPLIFY()
     9	# aws amp help ### AMP()
    10	# aws apigatewaymanagementapi help ### APIGATEWAYMANAGEMENTAPI()
    11	# aws apigatewayv2 export-api ### usage:
    12	# aws apigatewayv2 help ### APIGATEWAYV2()
    13	# aws apigateway get-export ### usage:
    14	# aws apigateway get-sdk ### usage:
    15	# aws apigateway help ### APIGATEWAY()
    16	# aws appconfig create-hosted-configuration-version ### usage:
    17	# aws appconfig get-configuration ### usage:
    18	# aws appconfig get-hosted-configuration-version ### usage:
    19	# aws appconfig help ### APPCONFIG()
    20	# aws appflow help ### APPFLOW()
    21	# aws appintegrations help ### APPINTEGRATIONS()
    22	# aws application-autoscaling help ### APPLICATION-AUTOSCALING()
    23	# aws application-insights help ### APPLICATION-INSIGHTS()
    24	# aws appmesh help ### APPMESH()
    25	# aws appstream help ### APPSTREAM()
    26	# aws appstream wait ### Unknown
    27	# aws appsync get-introspection-schema ### usage:
    28	# aws appsync help ### APPSYNC()
    29	# aws athena help ### ATHENA()
    30	# aws auditmanager help ### AUDITMANAGER()
    31	# aws autoscaling help ### AUTOSCALING()
    32	# aws autoscaling-plans help ### AUTOSCALING-PLANS()
    33	# aws backup help ### BACKUP()
    34	# aws batch help ### BATCH()
    35	# aws braket help ### BRAKET()
    36	# aws budgets help ### BUDGETS()
    37	# aws ce help ### CE()
    38	# aws chime help ### CHIME()
    39	# aws cloud9 help ### CLOUD9()
    40	# aws clouddirectory help ### CLOUDDIRECTORY()
    41	# aws cloudformation deploy ### usage:
    42	# aws cloudformation help ### CLOUDFORMATION()
    43	# aws cloudformation package ### usage:
    44	# aws cloudformation wait ### Unknown
    45	# aws cloudfront help ### CLOUDFRONT()
    46	# aws cloudfront sign ### usage:
    47	# aws cloudfront wait ### Unknown
    48	# aws cloudhsmv2 help ### CLOUDHSMV2()
    49	# aws cloudhsm help ### CLOUDHSM()
    50	# aws cloudsearchdomain help ### CLOUDSEARCHDOMAIN()
    51	# aws cloudsearch help ### CLOUDSEARCH()
    52	# aws cloudtrail help ### CLOUDTRAIL()
    53	# aws cloudtrail validate-logs ### usage:
    54	# aws cloudwatch help ### CLOUDWATCH()
    55	# aws cloudwatch wait ### Unknown
    56	# aws codeartifact get-package-version-asset ### usage:
    57	# aws codeartifact help ### CODEARTIFACT()
    58	# aws codeartifact login ### usage:
    59	# aws codebuild help ### CODEBUILD()
    60	# aws codecommit credential-helper ### Unknown
    61	# aws codecommit help ### CODECOMMIT()
    62	# aws codeguruprofiler get-profile ### usage:
    63	# aws codeguruprofiler help ### CODEGURUPROFILER()
    64	# aws codeguru-reviewer help ### CODEGURU-REVIEWER()
    65	# aws codepipeline help ### CODEPIPELINE()
    66	# aws codestar help ### CODESTAR()
    67	# aws codestar-connections help ### CODESTAR-CONNECTIONS()
    68	# aws codestar-notifications help ### CODESTAR-NOTIFICATIONS()
    69	# aws cognito-identity help ### COGNITO-IDENTITY()
    70	# aws cognito-idp help ### COGNITO-IDP()
    71	# aws cognito-sync help ### COGNITO-SYNC()
    72	# aws comprehendmedical help ### COMPREHENDMEDICAL()
    73	# aws comprehend help ### COMPREHEND()
    74	# aws compute-optimizer help ### COMPUTE-OPTIMIZER()
    75	# aws configservice get-status ### Unknown
    76	# aws configservice help ### CONFIGSERVICE()
    77	# aws configservice subscribe ### usage:
    78	# aws configure add-model ### usage:
    79	# aws configure get ### usage:
    80	# aws configure import ### usage:
    81	# aws configure list ### Unknown
    82	# aws configure list-profiles ### Unknown
    83	# aws configure set ### usage:
    84	# aws configure sso ### Unknown
    85	# aws connectparticipant help ### CONNECTPARTICIPANT()
    86	# aws connect help ### CONNECT()
    87	# aws connect-contact-lens help ### CONNECT-CONTACT-LENS()
    88	# aws cur help ### CUR()
    89	# aws customer-profiles help ### CUSTOMER-PROFILES()
    90	# aws databrew help ### DATABREW()
    91	# aws dataexchange help ### DATAEXCHANGE()
    92	# aws datapipeline create-default-roles ### Unknown
    93	# aws datapipeline help ### DATAPIPELINE()
    94	# aws datapipeline list-runs ### usage:
    95	# aws datasync help ### DATASYNC()
    96	# aws dax help ### DAX()
    97	# aws ddb put ### usage:
    98	# aws ddb select ### usage:
    99	# aws deploy deregister ### usage:
   100	# aws deploy help ### DEPLOY()
   101	# aws deploy install ### usage:
   102	# aws deploy push ### usage:
   103	# aws deploy register ### usage:
   104	# aws deploy uninstall ### Unknown
   105	# aws deploy wait ### Unknown
   106	# aws detective It ### usage:
   107	# aws detective help ### DETECTIVE()
   108	# aws devicefarm help ### DEVICEFARM()
   109	# aws devops-guru help ### DEVOPS-GURU()
   110	# aws directconnect help ### DIRECTCONNECT()
   111	# aws discovery help ### DISCOVERY()
   112	# aws dlm create-default-role ### Unknown
   113	# aws dlm help ### DLM()
   114	# aws dms help ### DMS()
   115	# aws dms wait ### Unknown
   116	# aws docdb help ### DOCDB()
   117	# aws docdb wait ### Unknown
   118	# aws ds help ### DS()
   119	# aws dynamodbstreams help ### DYNAMODBSTREAMS()
   120	# aws dynamodb help ### DYNAMODB()
   121	# aws dynamodb wait ### Unknown
   122	# aws dynamodb wizard ### Unknown
   123	# aws ebs get-snapshot-block ### usage:
   124	# aws ebs help ### EBS()
   125	# aws ec2 describe-local-gateway-route-table-virtual-interface-group-associa- ### usage:
   126	# aws ec2 help ### EC2()
   127	# aws ec2 tions ### usage:
   128	# aws ec2 wait ### Unknown
   129	# aws ec2-instance-connect help ### EC2-INSTANCE-CONNECT()
   130	# aws ecr get-login-password ### Unknown
   131	# aws ecr help ### ECR()
   132	# aws ecr wait ### Unknown
   133	# aws ecr-public get-login-password ### Unknown
   134	# aws ecr-public help ### ECR-PUBLIC()
   135	# aws ecs deploy ### usage:
   136	# aws ecs help ### ECS()
   137	# aws ecs wait ### Unknown
   138	# aws efs help ### EFS()
   139	# aws eks get-token ### usage:
   140	# aws eks help ### EKS()
   141	# aws eks update-kubeconfig ### usage:
   142	# aws eks wait ### Unknown
   143	# aws elasticache help ### ELASTICACHE()
   144	# aws elasticache wait ### Unknown
   145	# aws elasticbeanstalk help ### ELASTICBEANSTALK()
   146	# aws elasticbeanstalk wait ### Unknown
   147	# aws elastictranscoder help ### ELASTICTRANSCODER()
   148	# aws elastictranscoder wait ### Unknown
   149	# aws elastic-inference help ### ELASTIC-INFERENCE()
   150	# aws elbv2 help ### ELBV2()
   151	# aws elbv2 wait ### Unknown
   152	# aws elb help ### ELB()
   153	# aws elb wait ### Unknown
   154	# aws emr add-instance-groups ### usage:
   155	# aws emr add-steps ### usage:
   156	# aws emr create-cluster ### Unknown
   157	# aws emr create-default-roles ### Unknown
   158	# aws emr create-hbase-backup ### usage:
   159	# aws emr describe-cluster ### usage:
   160	# aws emr disable-hbase-backups ### usage:
   161	# aws emr get ### usage:
   162	# aws emr help ### EMR()
   163	# aws emr install-applications ### usage:
   164	# aws emr modify-cluster-attributes ### usage:
   165	# aws emr put ### usage:
   166	# aws emr restore-from-hbase-backup ### usage:
   167	# aws emr schedule-hbase-backup ### usage:
   168	# aws emr socks ### usage:
   169	# aws emr ssh ### usage:
   170	# aws emr terminate-clusters ### usage:
   171	# aws emr wait ### Unknown
   172	# aws emr-containers help ### EMR-CONTAINERS()
   173	# aws emr-containers update-role-trust-policy ### usage:
   174	# aws es help ### ES()
   175	# aws events help ### EVENTS()
   176	# aws events wizard ### Unknown
   177	# aws firehose help ### FIREHOSE()
   178	# aws fms help ### FMS()
   179	# aws forecastquery help ### FORECASTQUERY()
   180	# aws forecast help ### FORECAST()
   181	# aws frauddetector help ### FRAUDDETECTOR()
   182	# aws fsx help ### FSX()
   183	# aws gamelift get-game-session-log ### usage:
   184	# aws gamelift help ### GAMELIFT()
   185	# aws gamelift upload-build ### usage:
   186	# aws glacier get-job-output ### usage:
   187	# aws glacier help ### GLACIER()
   188	# aws glacier wait ### Unknown
   189	# aws globalaccelerator help ### GLOBALACCELERATOR()
   190	# aws glue help ### GLUE()
   191	# aws greengrassv2 devices. ### usage:
   192	# aws greengrassv2 help ### GREENGRASSV2()
   193	# aws greengrassv2 operations ### usage:
   194	# aws greengrass help ### GREENGRASS()
   195	# aws groundstation help ### GROUNDSTATION()
   196	# aws guardduty help ### GUARDDUTY()
   197	# aws healthlake help ### HEALTHLAKE()
   198	# aws health help ### HEALTH()
   199	# aws history list ### Unknown
   200	# aws history show ### Unknown
   201	# aws honeycode help ### HONEYCODE()
   202	# aws iam create-virtual-mfa-device ### usage:
   203	# aws iam help ### IAM()
   204	# aws iam wait ### Unknown
   205	# aws iam wizard ### Unknown
   206	# aws identitystore help ### IDENTITYSTORE()
   207	# aws imagebuilder help ### IMAGEBUILDER()
   208	# aws importexport help ### IMPORTEXPORT()
   209	# aws inspector help ### INSPECTOR()
   210	# aws iot1click-devices help ### IOT1CLICK-DEVICES()
   211	# aws iot1click-projects help ### IOT1CLICK-PROJECTS()
   212	# aws iotanalytics help ### IOTANALYTICS()
   213	# aws iotdeviceadvisor help ### IOTDEVICEADVISOR()
   214	# aws iotevents help ### IOTEVENTS()
   215	# aws iotevents-data help ### IOTEVENTS-DATA()
   216	# aws iotfleethub help ### IOTFLEETHUB()
   217	# aws iotsecuretunneling help ### IOTSECURETUNNELING()
   218	# aws iotsitewise help ### IOTSITEWISE()
   219	# aws iotsitewise wait ### Unknown
   220	# aws iotthingsgraph help ### IOTTHINGSGRAPH()
   221	# aws iotwireless help ### IOTWIRELESS()
   222	# aws iot help ### IOT()
   223	# aws iot-data delete-thing-shadow ### usage:
   224	# aws iot-data get-thing-shadow ### usage:
   225	# aws iot-data help ### IOT-DATA()
   226	# aws iot-data update-thing-shadow ### usage:
   227	# aws iot-jobs-data help ### IOT-JOBS-DATA()
   228	# aws ivs Un- ### usage:
   229	# aws ivs help ### IVS()
   230	# aws ivs us- ### usage:
   231	# aws kafka help ### KAFKA()
   232	# aws kendra help ### KENDRA()
   233	# aws kinesisanalyticsv2 help ### KINESISANALYTICSV2()
   234	# aws kinesisanalytics help ### KINESISANALYTICS()
   235	# aws kinesisvideo help ### KINESISVIDEO()
   236	# aws kinesis help ### KINESIS()
   237	# aws kinesis wait ### Unknown
   238	# aws kinesis-video-archived-media get-clip ### usage:
   239	# aws kinesis-video-archived-media get-media-for-fragment-list ### usage:
   240	# aws kinesis-video-archived-media help ### KINESIS-VIDEO-ARCHIVED-MEDIA()
   241	# aws kinesis-video-media get-media ### usage:
   242	# aws kinesis-video-media help ### KINESIS-VIDEO-MEDIA()
   243	# aws kinesis-video-signaling help ### KINESIS-VIDEO-SIGNALING()
   244	# aws kms help ### KMS()
   245	# aws lakeformation help ### LAKEFORMATION()
   246	# aws lambda help ### LAMBDA()
   247	# aws lambda invoke ### usage:
   248	# aws lambda wait ### Unknown
   249	# aws lambda wizard ### Unknown
   250	# aws lex-models help ### LEX-MODELS()
   251	# aws lex-runtime help ### LEX-RUNTIME()
   252	# aws lex-runtime post-content ### usage:
   253	# aws lex-runtime put-session ### usage:
   254	# aws license-manager help ### LICENSE-MANAGER()
   255	# aws lightsail help ### LIGHTSAIL()
   256	# aws lightsail push-container-image ### usage:
   257	# aws location get-map-glyphs ### usage:
   258	# aws location get-map-sprites ### usage:
   259	# aws location get-map-style-descriptor ### usage:
   260	# aws location get-map-tile ### usage:
   261	# aws location help ### LOCATION()
   262	# aws logs help ### LOGS()
   263	# aws logs tail ### usage:
   264	# aws lookoutvision de- ### usage:
   265	# aws lookoutvision er- ### usage:
   266	# aws lookoutvision help ### LOOKOUTVISION()
   267	# aws lookoutvision rors. ### usage:
   268	# aws machinelearning help ### MACHINELEARNING()
   269	# aws machinelearning wait ### Unknown
   270	# aws macie2 help ### MACIE2()
   271	# aws macie help ### MACIE()
   272	# aws managedblockchain help ### MANAGEDBLOCKCHAIN()
   273	# aws marketplacecommerceanalytics help ### MARKETPLACECOMMERCEANALYTICS()
   274	# aws marketplace-catalog help ### MARKETPLACE-CATALOG()
   275	# aws marketplace-entitlement help ### MARKETPLACE-ENTITLEMENT()
   276	# aws mediaconnect help ### MEDIACONNECT()
   277	# aws mediaconvert help ### MEDIACONVERT()
   278	# aws medialive describe-input-device-thumbnail ### usage:
   279	# aws medialive help ### MEDIALIVE()
   280	# aws medialive wait ### Unknown
   281	# aws mediapackage help ### MEDIAPACKAGE()
   282	# aws mediapackage-vod help ### MEDIAPACKAGE-VOD()
   283	# aws mediastore help ### MEDIASTORE()
   284	# aws mediastore-data get-object ### usage:
   285	# aws mediastore-data help ### MEDIASTORE-DATA()
   286	# aws mediatailor help ### MEDIATAILOR()
   287	# aws meteringmarketplace help ### METERINGMARKETPLACE()
   288	# aws mgh help ### MGH()
   289	# aws migrationhub-config help ### MIGRATIONHUB-CONFIG()
   290	# aws mobile help ### MOBILE()
   291	# aws mq help ### MQ()
   292	# aws mturk help ### MTURK()
   293	# aws mwaa help ### MWAA()
   294	# aws neptune help ### NEPTUNE()
   295	# aws neptune wait ### Unknown
   296	# aws networkmanager help ### NETWORKMANAGER()
   297	# aws network-firewall help ### NETWORK-FIREWALL()
   298	# aws opsworks help ### OPSWORKS()
   299	# aws opsworks register ### usage:
   300	# aws opsworks wait ### Unknown
   301	# aws opsworks-cm help ### OPSWORKS-CM()
   302	# aws opsworks-cm wait ### Unknown
   303	# aws organizations help ### ORGANIZATIONS()
   304	# aws outposts help ### OUTPOSTS()
   305	# aws personalize help ### PERSONALIZE()
   306	# aws personalize-events help ### PERSONALIZE-EVENTS()
   307	# aws personalize-runtime help ### PERSONALIZE-RUNTIME()
   308	# aws pinpoint help ### PINPOINT()
   309	# aws pinpoint-email help ### PINPOINT-EMAIL()
   310	# aws pinpoint-sms-voice help ### PINPOINT-SMS-VOICE()
   311	# aws pi help ### PI()
   312	# aws polly help ### POLLY()
   313	# aws polly synthesize-speech ### usage:
   314	# aws pricing help ### PRICING()
   315	# aws qldb help ### QLDB()
   316	# aws qldb-session help ### QLDB-SESSION()
   317	# aws quicksight help ### QUICKSIGHT()
   318	# aws ram help ### RAM()
   319	# aws rds generate-db-auth-token ### usage:
   320	# aws rds help ### RDS()
   321	# aws rds wait ### Unknown
   322	# aws rds-data help ### RDS-DATA()
   323	# aws redshift help ### REDSHIFT()
   324	# aws redshift wait ### Unknown
   325	# aws redshift-data help ### REDSHIFT-DATA()
   326	# aws rekognition help ### REKOGNITION()
   327	# aws rekognition wait ### Unknown
   328	# aws resourcegroupstaggingapi help ### RESOURCEGROUPSTAGGINGAPI()
   329	# aws resource-groups help ### RESOURCE-GROUPS()
   330	# aws robomaker help ### ROBOMAKER()
   331	# aws route53domains help ### ROUTE53DOMAINS()
   332	# aws route53resolver help ### ROUTE53RESOLVER()
   333	# aws route53 help ### ROUTE53()
   334	# aws route53 wait ### Unknown
   335	# aws s3api get-object ### usage:
   336	# aws s3api get-object-torrent ### usage:
   337	# aws s3api help ### S3API()
   338	# aws s3api select-object-content ### usage:
   339	# aws s3api wait ### Unknown
   340	# aws s3control help ### S3CONTROL()
   341	# aws s3outposts help ### S3OUTPOSTS()
   342	# aws s3 cp ### usage:
   343	# aws s3 ls ### Unknown
   344	# aws s3 mb ### usage:
   345	# aws s3 mv ### usage:
   346	# aws s3 presign ### usage:
   347	# aws s3 rb ### usage:
   348	# aws s3 rm ### usage:
   349	# aws s3 sync ### usage:
   350	# aws s3 website ### usage:
   351	# aws sagemaker help ### SAGEMAKER()
   352	# aws sagemaker wait ### Unknown
   353	# aws sagemaker-a2i-runtime help ### SAGEMAKER-A2I-RUNTIME()
   354	# aws sagemaker-edge help ### SAGEMAKER-EDGE()
   355	# aws sagemaker-featurestore-runtime help ### SAGEMAKER-FEATURESTORE-RUNTIME()
   356	# aws sagemaker-runtime help ### SAGEMAKER-RUNTIME()
   357	# aws sagemaker-runtime invoke-endpoint ### usage:
   358	# aws savingsplans help ### SAVINGSPLANS()
   359	# aws schemas get-code-binding-source ### usage:
   360	# aws schemas help ### SCHEMAS()
   361	# aws schemas wait ### Unknown
   362	# aws sdb help ### SDB()
   363	# aws secretsmanager help ### SECRETSMANAGER()
   364	# aws securityhub help ### SECURITYHUB()
   365	# aws serverlessrepo help ### SERVERLESSREPO()
   366	# aws servicecatalog generate ### Unknown
   367	# aws servicecatalog help ### SERVICECATALOG()
   368	# aws servicecatalog-appregistry help ### SERVICECATALOG-APPREGISTRY()
   369	# aws servicediscovery help ### SERVICEDISCOVERY()
   370	# aws service-quotas help ### SERVICE-QUOTAS()
   371	# aws sesv2 help ### SESV2()
   372	# aws ses help ### SES()
   373	# aws ses wait ### Unknown
   374	# aws shield help ### SHIELD()
   375	# aws signer help ### SIGNER()
   376	# aws signer wait ### Unknown
   377	# aws sms help ### SMS()
   378	# aws snowball help ### SNOWBALL()
   379	# aws sns help ### SNS()
   380	# aws sqs help ### SQS()
   381	# aws ssm help ### SSM()
   382	# aws ssm wait ### Unknown
   383	# aws sso help ### SSO()
   384	# aws sso login ### Unknown
   385	# aws sso logout ### Unknown
   386	# aws sso-admin help ### SSO-ADMIN()
   387	# aws sso-oidc help ### SSO-OIDC()
   388	# aws stepfunctions help ### STEPFUNCTIONS()
   389	# aws storagegateway help ### STORAGEGATEWAY()
   390	# aws sts help ### STS()
   391	# aws support help ### SUPPORT()
   392	# aws swf help ### SWF()
   393	# aws synthetics help ### SYNTHETICS()
   394	# aws textract help ### TEXTRACT()
   395	# aws timestream-query help ### TIMESTREAM-QUERY()
   396	# aws timestream-write help ### TIMESTREAM-WRITE()
   397	# aws transcribe help ### TRANSCRIBE()
   398	# aws transfer help ### TRANSFER()
   399	# aws translate help ### TRANSLATE()
   400	# aws wafv2 before. ### usage:
   401	# aws wafv2 help ### WAFV2()
   402	# aws waf and ### usage:
   403	# aws waf help ### WAF()
   404	# aws waf-regional and ### usage:
   405	# aws waf-regional help ### WAF-REGIONAL()
   406	# aws wellarchitected help ### WELLARCHITECTED()
   407	# aws workdocs help ### WORKDOCS()
   408	# aws worklink help ### WORKLINK()
   409	# aws workmailmessageflow get-raw-message-content ### usage:
   410	# aws workmailmessageflow help ### WORKMAILMESSAGEFLOW()
   411	# aws workmail help ### WORKMAIL()
   412	# aws workspaces help ### WORKSPACES()
   413	# aws xray help ### XRAY()