Skip to content

Commit 915dcfe

Browse files
authored
Support type definitions which are not available in v3 (#315)
1 parent ac605d5 commit 915dcfe

28 files changed

+995
-96
lines changed

.changeset/angry-apricots-push.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"aws-sdk-js-codemod": minor
3+
---
4+
5+
Support type definitions which are not available in v3
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import AWS = require("aws-sdk");
2+
3+
// Native types
4+
const stringType: AWS.S3.AccountId = "string";
5+
const booleanType: AWS.S3.BucketKeyEnabled = true;
6+
const numberType: AWS.S3.ContentLength = 123;
7+
8+
// Date
9+
const dateType: AWS.S3.CreationDate = new Date();
10+
11+
// Uint8Array
12+
const blobType: AWS.RDSDataService._Blob = new Uint8Array();
13+
14+
// Arrays
15+
const stringArray: AWS.S3.AllowedHeaders = ["string1", "string2"];
16+
const booleanArray: AWS.RDSDataService.BooleanArray = [true, false];
17+
const numberArray: AWS.RDSDataService.LongArray = [123, 456];
18+
const blobArray: AWS.IoTFleetWise.NetworkFilesList = [new Uint8Array()];
19+
const enumArray: AWS.S3.ChecksumAlgorithmList = ["CRC32"];
20+
const structureArray: AWS.S3.Buckets = [{ Name: "bucketName" }];
21+
22+
// Maps
23+
const stringMap: AWS.S3.Metadata = { key: "value" };
24+
const booleanMap: AWS.APIGateway.MapOfStringToBoolean = { key: true };
25+
const numberMap: AWS.SSM.AssociationStatusAggregatedCount = { key: 123 };
26+
const structureMap: AWS.APIGateway.MapOfMethodSnapshot = { key: { apiKeyRequired: true } };
27+
28+
// Nested arrays
29+
const arrayNestedTwice: AWS.SageMakerGeospatial.LinearRing = [[1, 2], [3, 4]];
30+
const arrayNestedThrice: AWS.SageMakerGeospatial.LinearRings = [[[1, 2], [3, 4]], [[4, 5], [6, 7]]];
31+
const arrayNestedFour: AWS.SageMakerGeospatial.LinearRingsList = [
32+
[[[1], [2]], [[3], [4]]],
33+
[[[5], [6]], [[7], [8]]]
34+
];
35+
36+
// Nested maps
37+
const mapNestedTwice: AWS.LexModelsV2.ConditionMap = { key: stringMap };
38+
const mapNestedTwiceStruct: AWS.APIGateway.PathToMapOfMethodSnapshot = { key: structureMap };
39+
40+
// Nested arrays and maps
41+
const mapOfArrays: AWS.NetworkManager.FilterMap = { key: ["value"] };
42+
const mapOfMapOfArrays: AWS.SecurityLake.AllDimensionsMap = { key: mapOfArrays };
43+
const mapOfArrayOfMaps: AWS.DynamoDB.BatchGetResponseMap = { key: [{ key: { S:"A" }}] };
44+
const mapOfArrayOfArrays: AWS.APIGateway.MapOfKeyUsages = { key: [[1], [2]] };
45+
const arrayOfMaps: AWS.SSM.InventoryItemEntryList = [stringMap];
46+
const arrayOfMapOfArrays: AWS.SSM.TargetMaps = [mapOfArrays];
47+
const arrayOfMapOfMapOfArrays: AWS.SecurityLake.RegionSourceTypesAccountsList = [mapOfMapOfArrays];
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import AWS_APIGateway = require("@aws-sdk/client-api-gateway");
2+
import AWS_DynamoDB = require("@aws-sdk/client-dynamodb");
3+
import AWS_S3 = require("@aws-sdk/client-s3");
4+
5+
// Native types
6+
const stringType: string = "string";
7+
const booleanType: boolean = true;
8+
const numberType: number = 123;
9+
10+
// Date
11+
const dateType: Date = new Date();
12+
13+
// Uint8Array
14+
const blobType: Uint8Array = new Uint8Array();
15+
16+
// Arrays
17+
const stringArray: Array<string> = ["string1", "string2"];
18+
const booleanArray: Array<boolean> = [true, false];
19+
const numberArray: Array<number> = [123, 456];
20+
const blobArray: Array<Uint8Array> = [new Uint8Array()];
21+
const enumArray: Array<AWS_S3.ChecksumAlgorithm> = ["CRC32"];
22+
const structureArray: Array<AWS_S3.Bucket> = [{ Name: "bucketName" }];
23+
24+
// Maps
25+
const stringMap: Record<string, string> = { key: "value" };
26+
const booleanMap: Record<string, boolean> = { key: true };
27+
const numberMap: Record<string, number> = { key: 123 };
28+
const structureMap: Record<string, AWS_APIGateway.MethodSnapshot> = { key: { apiKeyRequired: true } };
29+
30+
// Nested arrays
31+
const arrayNestedTwice: Array<Array<number>> = [[1, 2], [3, 4]];
32+
const arrayNestedThrice: Array<Array<Array<number>>> = [[[1, 2], [3, 4]], [[4, 5], [6, 7]]];
33+
const arrayNestedFour: Array<Array<Array<Array<number>>>> = [
34+
[[[1], [2]], [[3], [4]]],
35+
[[[5], [6]], [[7], [8]]]
36+
];
37+
38+
// Nested maps
39+
const mapNestedTwice: Record<string, Record<string, string>> = { key: stringMap };
40+
const mapNestedTwiceStruct: Record<string, Record<string, AWS_APIGateway.MethodSnapshot>> = { key: structureMap };
41+
42+
// Nested arrays and maps
43+
const mapOfArrays: Record<string, Array<string>> = { key: ["value"] };
44+
const mapOfMapOfArrays: Record<string, Record<string, Array<string>>> = { key: mapOfArrays };
45+
const mapOfArrayOfMaps: Record<string, Array<Record<string, AWS_DynamoDB.AttributeValue>>> = { key: [{ key: { S:"A" }}] };
46+
const mapOfArrayOfArrays: Record<string, Array<Array<number>>> = { key: [[1], [2]] };
47+
const arrayOfMaps: Array<Record<string, string>> = [stringMap];
48+
const arrayOfMapOfArrays: Array<Record<string, Array<string>>> = [mapOfArrays];
49+
const arrayOfMapOfMapOfArrays: Array<Record<string, Record<string, Array<string>>>> = [mapOfMapOfArrays];
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import AWS from "aws-sdk";
2+
3+
// Native types
4+
const stringType: AWS.S3.AccountId = "string";
5+
const booleanType: AWS.S3.BucketKeyEnabled = true;
6+
const numberType: AWS.S3.ContentLength = 123;
7+
8+
// Date
9+
const dateType: AWS.S3.CreationDate = new Date();
10+
11+
// Uint8Array
12+
const blobType: AWS.RDSDataService._Blob = new Uint8Array();
13+
14+
// Arrays
15+
const stringArray: AWS.S3.AllowedHeaders = ["string1", "string2"];
16+
const booleanArray: AWS.RDSDataService.BooleanArray = [true, false];
17+
const numberArray: AWS.RDSDataService.LongArray = [123, 456];
18+
const blobArray: AWS.IoTFleetWise.NetworkFilesList = [new Uint8Array()];
19+
const enumArray: AWS.S3.ChecksumAlgorithmList = ["CRC32"];
20+
const structureArray: AWS.S3.Buckets = [{ Name: "bucketName" }];
21+
22+
// Maps
23+
const stringMap: AWS.S3.Metadata = { key: "value" };
24+
const booleanMap: AWS.APIGateway.MapOfStringToBoolean = { key: true };
25+
const numberMap: AWS.SSM.AssociationStatusAggregatedCount = { key: 123 };
26+
const structureMap: AWS.APIGateway.MapOfMethodSnapshot = { key: { apiKeyRequired: true } };
27+
28+
// Nested arrays
29+
const arrayNestedTwice: AWS.SageMakerGeospatial.LinearRing = [[1, 2], [3, 4]];
30+
const arrayNestedThrice: AWS.SageMakerGeospatial.LinearRings = [[[1, 2], [3, 4]], [[4, 5], [6, 7]]];
31+
const arrayNestedFour: AWS.SageMakerGeospatial.LinearRingsList = [
32+
[[[1], [2]], [[3], [4]]],
33+
[[[5], [6]], [[7], [8]]]
34+
];
35+
36+
// Nested maps
37+
const mapNestedTwice: AWS.LexModelsV2.ConditionMap = { key: stringMap };
38+
const mapNestedTwiceStruct: AWS.APIGateway.PathToMapOfMethodSnapshot = { key: structureMap };
39+
40+
// Nested arrays and maps
41+
const mapOfArrays: AWS.NetworkManager.FilterMap = { key: ["value"] };
42+
const mapOfMapOfArrays: AWS.SecurityLake.AllDimensionsMap = { key: mapOfArrays };
43+
const mapOfArrayOfMaps: AWS.DynamoDB.BatchGetResponseMap = { key: [{ key: { S:"A" }}] };
44+
const mapOfArrayOfArrays: AWS.APIGateway.MapOfKeyUsages = { key: [[1], [2]] };
45+
const arrayOfMaps: AWS.SSM.InventoryItemEntryList = [stringMap];
46+
const arrayOfMapOfArrays: AWS.SSM.TargetMaps = [mapOfArrays];
47+
const arrayOfMapOfMapOfArrays: AWS.SecurityLake.RegionSourceTypesAccountsList = [mapOfMapOfArrays];
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import AWS_APIGateway from "@aws-sdk/client-api-gateway";
2+
import AWS_DynamoDB from "@aws-sdk/client-dynamodb";
3+
import AWS_S3 from "@aws-sdk/client-s3";
4+
5+
// Native types
6+
const stringType: string = "string";
7+
const booleanType: boolean = true;
8+
const numberType: number = 123;
9+
10+
// Date
11+
const dateType: Date = new Date();
12+
13+
// Uint8Array
14+
const blobType: Uint8Array = new Uint8Array();
15+
16+
// Arrays
17+
const stringArray: Array<string> = ["string1", "string2"];
18+
const booleanArray: Array<boolean> = [true, false];
19+
const numberArray: Array<number> = [123, 456];
20+
const blobArray: Array<Uint8Array> = [new Uint8Array()];
21+
const enumArray: Array<AWS_S3.ChecksumAlgorithm> = ["CRC32"];
22+
const structureArray: Array<AWS_S3.Bucket> = [{ Name: "bucketName" }];
23+
24+
// Maps
25+
const stringMap: Record<string, string> = { key: "value" };
26+
const booleanMap: Record<string, boolean> = { key: true };
27+
const numberMap: Record<string, number> = { key: 123 };
28+
const structureMap: Record<string, AWS_APIGateway.MethodSnapshot> = { key: { apiKeyRequired: true } };
29+
30+
// Nested arrays
31+
const arrayNestedTwice: Array<Array<number>> = [[1, 2], [3, 4]];
32+
const arrayNestedThrice: Array<Array<Array<number>>> = [[[1, 2], [3, 4]], [[4, 5], [6, 7]]];
33+
const arrayNestedFour: Array<Array<Array<Array<number>>>> = [
34+
[[[1], [2]], [[3], [4]]],
35+
[[[5], [6]], [[7], [8]]]
36+
];
37+
38+
// Nested maps
39+
const mapNestedTwice: Record<string, Record<string, string>> = { key: stringMap };
40+
const mapNestedTwiceStruct: Record<string, Record<string, AWS_APIGateway.MethodSnapshot>> = { key: structureMap };
41+
42+
// Nested arrays and maps
43+
const mapOfArrays: Record<string, Array<string>> = { key: ["value"] };
44+
const mapOfMapOfArrays: Record<string, Record<string, Array<string>>> = { key: mapOfArrays };
45+
const mapOfArrayOfMaps: Record<string, Array<Record<string, AWS_DynamoDB.AttributeValue>>> = { key: [{ key: { S:"A" }}] };
46+
const mapOfArrayOfArrays: Record<string, Array<Array<number>>> = { key: [[1], [2]] };
47+
const arrayOfMaps: Array<Record<string, string>> = [stringMap];
48+
const arrayOfMapOfArrays: Array<Record<string, Array<string>>> = [mapOfArrays];
49+
const arrayOfMapOfMapOfArrays: Array<Record<string, Record<string, Array<string>>>> = [mapOfMapOfArrays];
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
const AWS = require("aws-sdk");
2+
3+
// Native types
4+
const stringType: AWS.S3.AccountId = "string";
5+
const booleanType: AWS.S3.BucketKeyEnabled = true;
6+
const numberType: AWS.S3.ContentLength = 123;
7+
8+
// Date
9+
const dateType: AWS.S3.CreationDate = new Date();
10+
11+
// Uint8Array
12+
const blobType: AWS.RDSDataService._Blob = new Uint8Array();
13+
14+
// Arrays
15+
const stringArray: AWS.S3.AllowedHeaders = ["string1", "string2"];
16+
const booleanArray: AWS.RDSDataService.BooleanArray = [true, false];
17+
const numberArray: AWS.RDSDataService.LongArray = [123, 456];
18+
const blobArray: AWS.IoTFleetWise.NetworkFilesList = [new Uint8Array()];
19+
const enumArray: AWS.S3.ChecksumAlgorithmList = ["CRC32"];
20+
const structureArray: AWS.S3.Buckets = [{ Name: "bucketName" }];
21+
22+
// Maps
23+
const stringMap: AWS.S3.Metadata = { key: "value" };
24+
const booleanMap: AWS.APIGateway.MapOfStringToBoolean = { key: true };
25+
const numberMap: AWS.SSM.AssociationStatusAggregatedCount = { key: 123 };
26+
const structureMap: AWS.APIGateway.MapOfMethodSnapshot = { key: { apiKeyRequired: true } };
27+
28+
// Nested arrays
29+
const arrayNestedTwice: AWS.SageMakerGeospatial.LinearRing = [[1, 2], [3, 4]];
30+
const arrayNestedThrice: AWS.SageMakerGeospatial.LinearRings = [[[1, 2], [3, 4]], [[4, 5], [6, 7]]];
31+
const arrayNestedFour: AWS.SageMakerGeospatial.LinearRingsList = [
32+
[[[1], [2]], [[3], [4]]],
33+
[[[5], [6]], [[7], [8]]]
34+
];
35+
36+
// Nested maps
37+
const mapNestedTwice: AWS.LexModelsV2.ConditionMap = { key: stringMap };
38+
const mapNestedTwiceStruct: AWS.APIGateway.PathToMapOfMethodSnapshot = { key: structureMap };
39+
40+
// Nested arrays and maps
41+
const mapOfArrays: AWS.NetworkManager.FilterMap = { key: ["value"] };
42+
const mapOfMapOfArrays: AWS.SecurityLake.AllDimensionsMap = { key: mapOfArrays };
43+
const mapOfArrayOfMaps: AWS.DynamoDB.BatchGetResponseMap = { key: [{ key: { S:"A" }}] };
44+
const mapOfArrayOfArrays: AWS.APIGateway.MapOfKeyUsages = { key: [[1], [2]] };
45+
const arrayOfMaps: AWS.SSM.InventoryItemEntryList = [stringMap];
46+
const arrayOfMapOfArrays: AWS.SSM.TargetMaps = [mapOfArrays];
47+
const arrayOfMapOfMapOfArrays: AWS.SecurityLake.RegionSourceTypesAccountsList = [mapOfMapOfArrays];
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
const AWS_APIGateway = require("@aws-sdk/client-api-gateway"), AWS_DynamoDB = require("@aws-sdk/client-dynamodb"), AWS_S3 = require("@aws-sdk/client-s3");
2+
3+
// Native types
4+
const stringType: string = "string";
5+
const booleanType: boolean = true;
6+
const numberType: number = 123;
7+
8+
// Date
9+
const dateType: Date = new Date();
10+
11+
// Uint8Array
12+
const blobType: Uint8Array = new Uint8Array();
13+
14+
// Arrays
15+
const stringArray: Array<string> = ["string1", "string2"];
16+
const booleanArray: Array<boolean> = [true, false];
17+
const numberArray: Array<number> = [123, 456];
18+
const blobArray: Array<Uint8Array> = [new Uint8Array()];
19+
const enumArray: Array<AWS_S3.ChecksumAlgorithm> = ["CRC32"];
20+
const structureArray: Array<AWS_S3.Bucket> = [{ Name: "bucketName" }];
21+
22+
// Maps
23+
const stringMap: Record<string, string> = { key: "value" };
24+
const booleanMap: Record<string, boolean> = { key: true };
25+
const numberMap: Record<string, number> = { key: 123 };
26+
const structureMap: Record<string, AWS_APIGateway.MethodSnapshot> = { key: { apiKeyRequired: true } };
27+
28+
// Nested arrays
29+
const arrayNestedTwice: Array<Array<number>> = [[1, 2], [3, 4]];
30+
const arrayNestedThrice: Array<Array<Array<number>>> = [[[1, 2], [3, 4]], [[4, 5], [6, 7]]];
31+
const arrayNestedFour: Array<Array<Array<Array<number>>>> = [
32+
[[[1], [2]], [[3], [4]]],
33+
[[[5], [6]], [[7], [8]]]
34+
];
35+
36+
// Nested maps
37+
const mapNestedTwice: Record<string, Record<string, string>> = { key: stringMap };
38+
const mapNestedTwiceStruct: Record<string, Record<string, AWS_APIGateway.MethodSnapshot>> = { key: structureMap };
39+
40+
// Nested arrays and maps
41+
const mapOfArrays: Record<string, Array<string>> = { key: ["value"] };
42+
const mapOfMapOfArrays: Record<string, Record<string, Array<string>>> = { key: mapOfArrays };
43+
const mapOfArrayOfMaps: Record<string, Array<Record<string, AWS_DynamoDB.AttributeValue>>> = { key: [{ key: { S:"A" }}] };
44+
const mapOfArrayOfArrays: Record<string, Array<Array<number>>> = { key: [[1], [2]] };
45+
const arrayOfMaps: Array<Record<string, string>> = [stringMap];
46+
const arrayOfMapOfArrays: Array<Record<string, Array<string>>> = [mapOfArrays];
47+
const arrayOfMapOfMapOfArrays: Array<Record<string, Record<string, Array<string>>>> = [mapOfMapOfArrays];
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import APIGateway from "aws-sdk/clients/apigateway";
2+
import DynamoDB from "aws-sdk/clients/dynamodb";
3+
import IoTFleetWise from "aws-sdk/clients/iotfleetwise";
4+
import LexModelsV2 from "aws-sdk/clients/lexmodelsv2";
5+
import NetworkManager from "aws-sdk/clients/networkmanager";
6+
import RDSDataService from "aws-sdk/clients/rdsdataservice";
7+
import S3 from "aws-sdk/clients/s3";
8+
import SageMakerGeospatial from "aws-sdk/clients/sagemakergeospatial";
9+
import SecurityLake from "aws-sdk/clients/securitylake";
10+
import SSM from "aws-sdk/clients/ssm";
11+
12+
// Native types
13+
const stringType: S3.AccountId = "string";
14+
const booleanType: S3.BucketKeyEnabled = true;
15+
const numberType: S3.ContentLength = 123;
16+
17+
// Date
18+
const dateType: S3.CreationDate = new Date();
19+
20+
// Uint8Array
21+
const blobType: RDSDataService._Blob = new Uint8Array();
22+
23+
// Arrays
24+
const stringArray: S3.AllowedHeaders = ["string1", "string2"];
25+
const booleanArray: RDSDataService.BooleanArray = [true, false];
26+
const numberArray: RDSDataService.LongArray = [123, 456];
27+
const blobArray: IoTFleetWise.NetworkFilesList = [new Uint8Array()];
28+
const enumArray: S3.ChecksumAlgorithmList = ["CRC32"];
29+
const structureArray: S3.Buckets = [{ Name: "bucketName" }];
30+
31+
// Maps
32+
const stringMap: S3.Metadata = { key: "value" };
33+
const booleanMap: APIGateway.MapOfStringToBoolean = { key: true };
34+
const numberMap: SSM.AssociationStatusAggregatedCount = { key: 123 };
35+
const structureMap: APIGateway.MapOfMethodSnapshot = { key: { apiKeyRequired: true } };
36+
37+
// Nested arrays
38+
const arrayNestedTwice: SageMakerGeospatial.LinearRing = [[1, 2], [3, 4]];
39+
const arrayNestedThrice: SageMakerGeospatial.LinearRings = [[[1, 2], [3, 4]], [[4, 5], [6, 7]]];
40+
const arrayNestedFour: SageMakerGeospatial.LinearRingsList = [
41+
[[[1], [2]], [[3], [4]]],
42+
[[[5], [6]], [[7], [8]]]
43+
];
44+
45+
// Nested maps
46+
const mapNestedTwice: LexModelsV2.ConditionMap = { key: stringMap };
47+
const mapNestedTwiceStruct: APIGateway.PathToMapOfMethodSnapshot = { key: structureMap };
48+
49+
// Nested arrays and maps
50+
const mapOfArrays: NetworkManager.FilterMap = { key: ["value"] };
51+
const mapOfMapOfArrays: SecurityLake.AllDimensionsMap = { key: mapOfArrays };
52+
const mapOfArrayOfMaps: DynamoDB.BatchGetResponseMap = { key: [{ key: { S:"A" }}] };
53+
const mapOfArrayOfArrays: APIGateway.MapOfKeyUsages = { key: [[1], [2]] };
54+
const arrayOfMaps: SSM.InventoryItemEntryList = [stringMap];
55+
const arrayOfMapOfArrays: SSM.TargetMaps = [mapOfArrays];
56+
const arrayOfMapOfMapOfArrays: SecurityLake.RegionSourceTypesAccountsList = [mapOfMapOfArrays];

0 commit comments

Comments
 (0)