44 */
55
66import * as vscode from 'vscode'
7- import { IoTSecureTunneling , Lambda } from 'aws-sdk'
7+ import { Lambda } from 'aws-sdk'
8+ import {
9+ CloseTunnelCommand ,
10+ IoTSecureTunnelingClient ,
11+ ListTunnelsCommand ,
12+ OpenTunnelCommand ,
13+ RotateTunnelAccessTokenCommand ,
14+ } from '@aws-sdk/client-iotsecuretunneling'
815import { getClientId } from '../../shared/telemetry/util'
916import { DefaultLambdaClient } from '../../shared/clients/lambdaClient'
1017import { LocalProxy } from './localProxy'
@@ -61,7 +68,7 @@ export class LdkClient {
6168 private localProxy : LocalProxy | undefined
6269 private static instanceCreating = false
6370 private lambdaClientCache : Map < string , DefaultLambdaClient > = new Map ( )
64- private iotSTClientCache : Map < string , IoTSecureTunneling > = new Map ( )
71+ private iotSTClientCache : Map < string , IoTSecureTunnelingClient > = new Map ( )
6572
6673 constructor ( ) { }
6774
@@ -97,9 +104,9 @@ export class LdkClient {
97104 return this . lambdaClientCache . get ( region ) !
98105 }
99106
100- private async getIoTSTClient ( region : string ) : Promise < IoTSecureTunneling > {
107+ private getIoTSTClient ( region : string ) : IoTSecureTunnelingClient {
101108 if ( ! this . iotSTClientCache . has ( region ) ) {
102- this . iotSTClientCache . set ( region , await getIoTSTClientWithAgent ( region ) )
109+ this . iotSTClientCache . set ( region , getIoTSTClientWithAgent ( region ) )
103110 }
104111 return this . iotSTClientCache . get ( region ) !
105112 }
@@ -124,13 +131,13 @@ export class LdkClient {
124131 const vscodeUuid = getClientId ( globals . globalState )
125132
126133 // Create IoTSecureTunneling client
127- const iotSecureTunneling = await this . getIoTSTClient ( region )
134+ const iotSecureTunneling = this . getIoTSTClient ( region )
128135
129136 // Define tunnel identifier
130137 const tunnelIdentifier = `RemoteDebugging+${ vscodeUuid } `
131138 const timeoutInMinutes = 720
132139 // List existing tunnels
133- const listTunnelsResponse = await iotSecureTunneling . listTunnels ( { } ) . promise ( )
140+ const listTunnelsResponse = await iotSecureTunneling . send ( new ListTunnelsCommand ( { } ) )
134141
135142 // Find tunnel with our identifier
136143 const existingTunnel = listTunnelsResponse . tunnelSummaries ?. find (
@@ -150,20 +157,20 @@ export class LdkClient {
150157 return rotateResponse
151158 } else {
152159 // Close tunnel if less than 15 minutes remaining
153- await iotSecureTunneling
154- . closeTunnel ( {
160+ await iotSecureTunneling . send (
161+ new CloseTunnelCommand ( {
155162 tunnelId : existingTunnel . tunnelId ,
156163 delete : false ,
157164 } )
158- . promise ( )
165+ )
159166
160167 getLogger ( ) . info ( `Closed tunnel ${ existingTunnel . tunnelId } with less than 15 minutes remaining` )
161168 }
162169 }
163170
164171 // Create new tunnel
165- const openTunnelResponse = await iotSecureTunneling
166- . openTunnel ( {
172+ const openTunnelResponse = await iotSecureTunneling . send (
173+ new OpenTunnelCommand ( {
167174 description : tunnelIdentifier ,
168175 timeoutConfig : {
169176 maxLifetimeTimeoutMinutes : timeoutInMinutes , // 12 hours
@@ -172,7 +179,7 @@ export class LdkClient {
172179 services : [ 'WSS' ] ,
173180 } ,
174181 } )
175- . promise ( )
182+ )
176183
177184 getLogger ( ) . info ( `Created new tunnel with ID: ${ openTunnelResponse . tunnelId } ` )
178185
@@ -189,13 +196,13 @@ export class LdkClient {
189196 // Refresh tunnel tokens
190197 async refreshTunnelTokens ( tunnelId : string , region : string ) : Promise < TunnelInfo | undefined > {
191198 try {
192- const iotSecureTunneling = await this . getIoTSTClient ( region )
193- const rotateResponse = await iotSecureTunneling
194- . rotateTunnelAccessToken ( {
199+ const iotSecureTunneling = this . getIoTSTClient ( region )
200+ const rotateResponse = await iotSecureTunneling . send (
201+ new RotateTunnelAccessTokenCommand ( {
195202 tunnelId : tunnelId ,
196203 clientMode : 'ALL' ,
197204 } )
198- . promise ( )
205+ )
199206
200207 return {
201208 tunnelID : tunnelId ,
0 commit comments