Skip to content

Commit 1bb9677

Browse files
author
awstools
committed
feat(client-ecs): This release adds support for Transport Layer Security (TLS) and Configurable Timeout to ECS Service Connect. TLS facilitates privacy and data security for inter-service communications, while Configurable Timeout allows customized per-request timeout and idle timeout for Service Connect services.
1 parent f85d075 commit 1bb9677

File tree

7 files changed

+243
-3
lines changed

7 files changed

+243
-3
lines changed

clients/client-ecs/src/commands/CreateServiceCommand.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,17 @@ export interface CreateServiceCommandOutput extends CreateServiceResponse, __Met
215215
* },
216216
* ],
217217
* ingressPortOverride: Number("int"),
218+
* timeout: { // TimeoutConfiguration
219+
* idleTimeoutSeconds: Number("int"),
220+
* perRequestTimeoutSeconds: Number("int"),
221+
* },
222+
* tls: { // ServiceConnectTlsConfiguration
223+
* issuerCertificateAuthority: { // ServiceConnectTlsCertificateAuthority
224+
* awsPcaAuthorityArn: "STRING_VALUE",
225+
* },
226+
* kmsKey: "STRING_VALUE",
227+
* roleArn: "STRING_VALUE",
228+
* },
218229
* },
219230
* ],
220231
* logConfiguration: { // LogConfiguration
@@ -426,6 +437,17 @@ export interface CreateServiceCommandOutput extends CreateServiceResponse, __Met
426437
* // },
427438
* // ],
428439
* // ingressPortOverride: Number("int"),
440+
* // timeout: { // TimeoutConfiguration
441+
* // idleTimeoutSeconds: Number("int"),
442+
* // perRequestTimeoutSeconds: Number("int"),
443+
* // },
444+
* // tls: { // ServiceConnectTlsConfiguration
445+
* // issuerCertificateAuthority: { // ServiceConnectTlsCertificateAuthority
446+
* // awsPcaAuthorityArn: "STRING_VALUE",
447+
* // },
448+
* // kmsKey: "STRING_VALUE",
449+
* // roleArn: "STRING_VALUE",
450+
* // },
429451
* // },
430452
* // ],
431453
* // logConfiguration: { // LogConfiguration

clients/client-ecs/src/commands/DeleteServiceCommand.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,17 @@ export interface DeleteServiceCommandOutput extends DeleteServiceResponse, __Met
227227
* // },
228228
* // ],
229229
* // ingressPortOverride: Number("int"),
230+
* // timeout: { // TimeoutConfiguration
231+
* // idleTimeoutSeconds: Number("int"),
232+
* // perRequestTimeoutSeconds: Number("int"),
233+
* // },
234+
* // tls: { // ServiceConnectTlsConfiguration
235+
* // issuerCertificateAuthority: { // ServiceConnectTlsCertificateAuthority
236+
* // awsPcaAuthorityArn: "STRING_VALUE",
237+
* // },
238+
* // kmsKey: "STRING_VALUE",
239+
* // roleArn: "STRING_VALUE",
240+
* // },
230241
* // },
231242
* // ],
232243
* // logConfiguration: { // LogConfiguration

clients/client-ecs/src/commands/DescribeServicesCommand.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,17 @@ export interface DescribeServicesCommandOutput extends DescribeServicesResponse,
212212
* // },
213213
* // ],
214214
* // ingressPortOverride: Number("int"),
215+
* // timeout: { // TimeoutConfiguration
216+
* // idleTimeoutSeconds: Number("int"),
217+
* // perRequestTimeoutSeconds: Number("int"),
218+
* // },
219+
* // tls: { // ServiceConnectTlsConfiguration
220+
* // issuerCertificateAuthority: { // ServiceConnectTlsCertificateAuthority
221+
* // awsPcaAuthorityArn: "STRING_VALUE",
222+
* // },
223+
* // kmsKey: "STRING_VALUE",
224+
* // roleArn: "STRING_VALUE",
225+
* // },
215226
* // },
216227
* // ],
217228
* // logConfiguration: { // LogConfiguration

clients/client-ecs/src/commands/UpdateServiceCommand.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,17 @@ export interface UpdateServiceCommandOutput extends UpdateServiceResponse, __Met
253253
* },
254254
* ],
255255
* ingressPortOverride: Number("int"),
256+
* timeout: { // TimeoutConfiguration
257+
* idleTimeoutSeconds: Number("int"),
258+
* perRequestTimeoutSeconds: Number("int"),
259+
* },
260+
* tls: { // ServiceConnectTlsConfiguration
261+
* issuerCertificateAuthority: { // ServiceConnectTlsCertificateAuthority
262+
* awsPcaAuthorityArn: "STRING_VALUE",
263+
* },
264+
* kmsKey: "STRING_VALUE",
265+
* roleArn: "STRING_VALUE",
266+
* },
256267
* },
257268
* ],
258269
* logConfiguration: { // LogConfiguration
@@ -464,6 +475,17 @@ export interface UpdateServiceCommandOutput extends UpdateServiceResponse, __Met
464475
* // },
465476
* // ],
466477
* // ingressPortOverride: Number("int"),
478+
* // timeout: { // TimeoutConfiguration
479+
* // idleTimeoutSeconds: Number("int"),
480+
* // perRequestTimeoutSeconds: Number("int"),
481+
* // },
482+
* // tls: { // ServiceConnectTlsConfiguration
483+
* // issuerCertificateAuthority: { // ServiceConnectTlsCertificateAuthority
484+
* // awsPcaAuthorityArn: "STRING_VALUE",
485+
* // },
486+
* // kmsKey: "STRING_VALUE",
487+
* // roleArn: "STRING_VALUE",
488+
* // },
467489
* // },
468490
* // ],
469491
* // logConfiguration: { // LogConfiguration

clients/client-ecs/src/models/models_0.ts

Lines changed: 82 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1963,6 +1963,74 @@ export interface ServiceConnectClientAlias {
19631963
dnsName?: string;
19641964
}
19651965

1966+
/**
1967+
* @public
1968+
* <p>An object that represents the timeout configurations for Service Connect.</p>
1969+
* <note>
1970+
* <p>If <code>idleTimeout</code> is set to a time that is less than
1971+
* <code>perRequestTimeout</code>, the connection will close when the
1972+
* <code>idleTimeout</code> is reached and not the
1973+
* <code>perRequestTimeout</code>.</p>
1974+
* </note>
1975+
*/
1976+
export interface TimeoutConfiguration {
1977+
/**
1978+
* @public
1979+
* <p>The amount of time in seconds a connection will stay active while idle. A
1980+
* value of <code>0</code> can be set to disable <code>idleTimeout</code>.</p>
1981+
* <p>The <code>idleTimeout</code> default for
1982+
* <code>HTTP</code>/<code>HTTP2</code>/<code>GRPC</code> is 5 minutes.</p>
1983+
* <p>The <code>idleTimeout</code> default for <code>TCP</code> is 1 hour.</p>
1984+
*/
1985+
idleTimeoutSeconds?: number;
1986+
1987+
/**
1988+
* @public
1989+
* <p>The amount of time waiting for the upstream to respond with a complete response
1990+
* per request. A value of <code>0</code> can be set to disable <code>perRequestTimeout</code>.
1991+
* <code>perRequestTimeout</code> can only be set if Service Connect <code>appProtocol</code>
1992+
* isn't <code>TCP</code>. Only <code>idleTimeout</code> is allowed for <code>TCP</code>
1993+
* <code>appProtocol</code>.</p>
1994+
*/
1995+
perRequestTimeoutSeconds?: number;
1996+
}
1997+
1998+
/**
1999+
* @public
2000+
* <p>An object that represents the Amazon Web Services Private Certificate Authority certificate.</p>
2001+
*/
2002+
export interface ServiceConnectTlsCertificateAuthority {
2003+
/**
2004+
* @public
2005+
* <p>The ARN of the Amazon Web Services Private Certificate Authority certificate.</p>
2006+
*/
2007+
awsPcaAuthorityArn?: string;
2008+
}
2009+
2010+
/**
2011+
* @public
2012+
* <p>An object that represents the configuration for Service Connect TLS.</p>
2013+
*/
2014+
export interface ServiceConnectTlsConfiguration {
2015+
/**
2016+
* @public
2017+
* <p>The signer certificate authority.</p>
2018+
*/
2019+
issuerCertificateAuthority: ServiceConnectTlsCertificateAuthority | undefined;
2020+
2021+
/**
2022+
* @public
2023+
* <p>The Amazon Web Services Key Management Service key.</p>
2024+
*/
2025+
kmsKey?: string;
2026+
2027+
/**
2028+
* @public
2029+
* <p>The Amazon Resource Name (ARN) of the IAM role that's associated with the Service Connect TLS.</p>
2030+
*/
2031+
roleArn?: string;
2032+
}
2033+
19662034
/**
19672035
* @public
19682036
* <p>The Service Connect service object configuration. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html">Service Connect</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>
@@ -2010,6 +2078,18 @@ export interface ServiceConnectService {
20102078
* Service Connect proxy.</p>
20112079
*/
20122080
ingressPortOverride?: number;
2081+
2082+
/**
2083+
* @public
2084+
* <p>A reference to an object that represents the configured timeouts for Service Connect.</p>
2085+
*/
2086+
timeout?: TimeoutConfiguration;
2087+
2088+
/**
2089+
* @public
2090+
* <p>An object that represents the configuration for Service Connect TLS.</p>
2091+
*/
2092+
tls?: ServiceConnectTlsConfiguration;
20132093
}
20142094

20152095
/**
@@ -6752,9 +6832,9 @@ export interface Volume {
67526832
* task definition revision may only have one volume configured at launch in the volume
67536833
* configuration.</p>
67546834
* <p>To configure a volume at launch time, use this task definition revision and specify a
6755-
* <code>volumeConfigurations</code> object when calling the
6835+
* <code>volumeConfigurations</code> object when calling the
67566836
* <code>CreateService</code>, <code>UpdateService</code>, <code>RunTask</code> or
6757-
* <code>StartTask</code> APIs.</p>
6837+
* <code>StartTask</code> APIs.</p>
67586838
*/
67596839
configuredAtLaunch?: boolean;
67606840
}

clients/client-ecs/src/protocols/Aws_json1_1.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,8 @@ import {
315315
ServiceConnectClientAlias,
316316
ServiceConnectConfiguration,
317317
ServiceConnectService,
318+
ServiceConnectTlsCertificateAuthority,
319+
ServiceConnectTlsConfiguration,
318320
ServiceEvent,
319321
ServiceField,
320322
ServiceManagedEBSVolumeConfiguration,
@@ -346,6 +348,7 @@ import {
346348
TaskSetField,
347349
TaskSetNotFoundException,
348350
TaskVolumeConfiguration,
351+
TimeoutConfiguration,
349352
Tmpfs,
350353
Ulimit,
351354
UnsupportedFeatureException,
@@ -5082,6 +5085,10 @@ const se_Scale = (input: Scale, context: __SerdeContext): any => {
50825085

50835086
// se_ServiceConnectServiceList omitted.
50845087

5088+
// se_ServiceConnectTlsCertificateAuthority omitted.
5089+
5090+
// se_ServiceConnectTlsConfiguration omitted.
5091+
50855092
// se_ServiceFieldList omitted.
50865093

50875094
// se_ServiceManagedEBSVolumeConfiguration omitted.
@@ -5156,6 +5163,8 @@ const se_SubmitTaskStateChangeRequest = (input: SubmitTaskStateChangeRequest, co
51565163

51575164
// se_TaskVolumeConfigurations omitted.
51585165

5166+
// se_TimeoutConfiguration omitted.
5167+
51595168
// se_Tmpfs omitted.
51605169

51615170
// se_TmpfsList omitted.
@@ -5917,6 +5926,10 @@ const de_Service = (output: any, context: __SerdeContext): Service => {
59175926

59185927
// de_ServiceConnectServiceResourceList omitted.
59195928

5929+
// de_ServiceConnectTlsCertificateAuthority omitted.
5930+
5931+
// de_ServiceConnectTlsConfiguration omitted.
5932+
59205933
/**
59215934
* deserializeAws_json1_1ServiceEvent
59225935
*/
@@ -6169,6 +6182,8 @@ const de_TaskSets = (output: any, context: __SerdeContext): TaskSet[] => {
61696182
return retVal;
61706183
};
61716184

6185+
// de_TimeoutConfiguration omitted.
6186+
61726187
// de_Tmpfs omitted.
61736188

61746189
// de_TmpfsList omitted.

codegen/sdk-codegen/aws-models/ecs.json

Lines changed: 80 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5537,6 +5537,15 @@
55375537
"smithy.api#default": 0
55385538
}
55395539
},
5540+
"com.amazonaws.ecs#Duration": {
5541+
"type": "integer",
5542+
"traits": {
5543+
"smithy.api#range": {
5544+
"min": 0,
5545+
"max": 2147483647
5546+
}
5547+
}
5548+
},
55405549
"com.amazonaws.ecs#EBSKMSKeyId": {
55415550
"type": "string"
55425551
},
@@ -9974,6 +9983,15 @@
99749983
"traits": {
99759984
"smithy.api#documentation": "<p>The port number for the Service Connect proxy to listen on.</p>\n <p>Use the value of this field to bypass the proxy for traffic on the port number\n\t\t\tspecified in the named <code>portMapping</code> in the task definition of this\n\t\t\tapplication, and then use it in your VPC security groups to allow traffic into the proxy\n\t\t\tfor this Amazon ECS service.</p>\n <p>In <code>awsvpc</code> mode and Fargate, the default value is the container port\n\t\t\tnumber. The container port number is in the <code>portMapping</code> in the task\n\t\t\tdefinition. In bridge mode, the default value is the ephemeral port of the\n\t\t\tService Connect proxy.</p>"
99769985
}
9986+
},
9987+
"timeout": {
9988+
"target": "com.amazonaws.ecs#TimeoutConfiguration",
9989+
"traits": {
9990+
"smithy.api#documentation": "<p>A reference to an object that represents the configured timeouts for Service Connect.</p>"
9991+
}
9992+
},
9993+
"tls": {
9994+
"target": "com.amazonaws.ecs#ServiceConnectTlsConfiguration"
99779995
}
99789996
},
99799997
"traits": {
@@ -10012,6 +10030,47 @@
1001210030
"target": "com.amazonaws.ecs#ServiceConnectServiceResource"
1001310031
}
1001410032
},
10033+
"com.amazonaws.ecs#ServiceConnectTlsCertificateAuthority": {
10034+
"type": "structure",
10035+
"members": {
10036+
"awsPcaAuthorityArn": {
10037+
"target": "com.amazonaws.ecs#String",
10038+
"traits": {
10039+
"smithy.api#documentation": "<p>The ARN of the Amazon Web Services Private Certificate Authority certificate.</p>"
10040+
}
10041+
}
10042+
},
10043+
"traits": {
10044+
"smithy.api#documentation": "<p>An object that represents the Amazon Web Services Private Certificate Authority certificate.</p>"
10045+
}
10046+
},
10047+
"com.amazonaws.ecs#ServiceConnectTlsConfiguration": {
10048+
"type": "structure",
10049+
"members": {
10050+
"issuerCertificateAuthority": {
10051+
"target": "com.amazonaws.ecs#ServiceConnectTlsCertificateAuthority",
10052+
"traits": {
10053+
"smithy.api#documentation": "<p>The signer certificate authority.</p>",
10054+
"smithy.api#required": {}
10055+
}
10056+
},
10057+
"kmsKey": {
10058+
"target": "com.amazonaws.ecs#String",
10059+
"traits": {
10060+
"smithy.api#documentation": "<p>The Amazon Web Services Key Management Service key.</p>"
10061+
}
10062+
},
10063+
"roleArn": {
10064+
"target": "com.amazonaws.ecs#String",
10065+
"traits": {
10066+
"smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the IAM role that's associated with the Service Connect TLS.</p>"
10067+
}
10068+
}
10069+
},
10070+
"traits": {
10071+
"smithy.api#documentation": "<p>An object that represents the configuration for Service Connect TLS.</p>"
10072+
}
10073+
},
1001510074
"com.amazonaws.ecs#ServiceEvent": {
1001610075
"type": "structure",
1001710076
"members": {
@@ -12028,6 +12087,26 @@
1202812087
"target": "com.amazonaws.ecs#Task"
1202912088
}
1203012089
},
12090+
"com.amazonaws.ecs#TimeoutConfiguration": {
12091+
"type": "structure",
12092+
"members": {
12093+
"idleTimeoutSeconds": {
12094+
"target": "com.amazonaws.ecs#Duration",
12095+
"traits": {
12096+
"smithy.api#documentation": "<p>The amount of time in seconds a connection will stay active while idle. A \n\t\t\tvalue of <code>0</code> can be set to disable <code>idleTimeout</code>.</p>\n <p>The <code>idleTimeout</code> default for\n\t\t\t<code>HTTP</code>/<code>HTTP2</code>/<code>GRPC</code> is 5 minutes.</p>\n <p>The <code>idleTimeout</code> default for <code>TCP</code> is 1 hour.</p>"
12097+
}
12098+
},
12099+
"perRequestTimeoutSeconds": {
12100+
"target": "com.amazonaws.ecs#Duration",
12101+
"traits": {
12102+
"smithy.api#documentation": "<p>The amount of time waiting for the upstream to respond with a complete response \n\t\t\tper request. A value of <code>0</code> can be set to disable <code>perRequestTimeout</code>. \n\t\t\t<code>perRequestTimeout</code> can only be set if Service Connect <code>appProtocol</code> \n\t\t\tisn't <code>TCP</code>. Only <code>idleTimeout</code> is allowed for <code>TCP</code>\n <code>appProtocol</code>.</p>"
12103+
}
12104+
}
12105+
},
12106+
"traits": {
12107+
"smithy.api#documentation": "<p>An object that represents the timeout configurations for Service Connect.</p>\n <note>\n <p>If <code>idleTimeout</code> is set to a time that is less than\n\t\t\t\t<code>perRequestTimeout</code>, the connection will close when the\n\t\t\t\t<code>idleTimeout</code> is reached and not the\n\t\t\t\t<code>perRequestTimeout</code>.</p>\n </note>"
12108+
}
12109+
},
1203112110
"com.amazonaws.ecs#Timestamp": {
1203212111
"type": "timestamp"
1203312112
},
@@ -13247,7 +13326,7 @@
1324713326
"configuredAtLaunch": {
1324813327
"target": "com.amazonaws.ecs#BoxedBoolean",
1324913328
"traits": {
13250-
"smithy.api#documentation": "<p>Indicates whether the volume should be configured at launch time. This is used to\n\t\t\tcreate Amazon EBS volumes for standalone tasks or tasks created as part of a service. Each\n\t\t\ttask definition revision may only have one volume configured at launch in the volume\n\t\t\tconfiguration.</p>\n <p>To configure a volume at launch time, use this task definition revision and specify a\n\t\t\t\t<code>volumeConfigurations</code> object when calling the\n\t\t\t<code>CreateService</code>, <code>UpdateService</code>, <code>RunTask</code> or\n\t\t\t\t<code>StartTask</code> APIs.</p>"
13329+
"smithy.api#documentation": "<p>Indicates whether the volume should be configured at launch time. This is used to\n\t\t\tcreate Amazon EBS volumes for standalone tasks or tasks created as part of a service. Each\n\t\t\ttask definition revision may only have one volume configured at launch in the volume\n\t\t\tconfiguration.</p>\n <p>To configure a volume at launch time, use this task definition revision and specify a\n\t\t\t<code>volumeConfigurations</code> object when calling the\n\t\t\t<code>CreateService</code>, <code>UpdateService</code>, <code>RunTask</code> or\n\t\t\t<code>StartTask</code> APIs.</p>"
1325113330
}
1325213331
}
1325313332
},

0 commit comments

Comments
 (0)