aws-sdk-appmesh 1.33.0 → 1.37.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -13,14 +13,9 @@ module Aws::AppMesh
13
13
  # An object that represents the access logging information for a virtual
14
14
  # node.
15
15
  #
16
- # @note When making an API call, you may pass AccessLog
17
- # data as a hash:
16
+ # @note AccessLog is a union - when making an API calls you must set exactly one of the members.
18
17
  #
19
- # {
20
- # file: {
21
- # path: "FilePath", # required
22
- # },
23
- # }
18
+ # @note AccessLog is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of AccessLog corresponding to the set member.
24
19
  #
25
20
  # @!attribute [rw] file
26
21
  # The file object to send virtual node access logs to.
@@ -29,13 +24,18 @@ module Aws::AppMesh
29
24
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/AccessLog AWS API Documentation
30
25
  #
31
26
  class AccessLog < Struct.new(
32
- :file)
27
+ :file,
28
+ :unknown)
33
29
  SENSITIVE = []
34
30
  include Aws::Structure
31
+ include Aws::Structure::Union
32
+
33
+ class File < AccessLog; end
34
+ class Unknown < AccessLog; end
35
35
  end
36
36
 
37
- # An object that represents the AWS Cloud Map attribute information for
38
- # your virtual node.
37
+ # An object that represents the Cloud Map attribute information for your
38
+ # virtual node.
39
39
  #
40
40
  # <note markdown="1"> AWS Cloud Map is not available in the eu-south-1 Region.
41
41
  #
@@ -50,15 +50,15 @@ module Aws::AppMesh
50
50
  # }
51
51
  #
52
52
  # @!attribute [rw] key
53
- # The name of an AWS Cloud Map service instance attribute key. Any AWS
54
- # Cloud Map service instance that contains the specified key and value
55
- # is returned.
53
+ # The name of an Cloud Map service instance attribute key. Any Cloud
54
+ # Map service instance that contains the specified key and value is
55
+ # returned.
56
56
  # @return [String]
57
57
  #
58
58
  # @!attribute [rw] value
59
- # The value of an AWS Cloud Map service instance attribute key. Any
60
- # AWS Cloud Map service instance that contains the specified key and
61
- # value is returned.
59
+ # The value of an Cloud Map service instance attribute key. Any Cloud
60
+ # Map service instance that contains the specified key and value is
61
+ # returned.
62
62
  # @return [String]
63
63
  #
64
64
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/AwsCloudMapInstanceAttribute AWS API Documentation
@@ -70,10 +70,10 @@ module Aws::AppMesh
70
70
  include Aws::Structure
71
71
  end
72
72
 
73
- # An object that represents the AWS Cloud Map service discovery
74
- # information for your virtual node.
73
+ # An object that represents the Cloud Map service discovery information
74
+ # for your virtual node.
75
75
  #
76
- # <note markdown="1"> AWS Cloud Map is not available in the eu-south-1 Region.
76
+ # <note markdown="1"> Cloud Map is not available in the eu-south-1 Region.
77
77
  #
78
78
  # </note>
79
79
  #
@@ -99,11 +99,11 @@ module Aws::AppMesh
99
99
  # @return [Array<Types::AwsCloudMapInstanceAttribute>]
100
100
  #
101
101
  # @!attribute [rw] namespace_name
102
- # The name of the AWS Cloud Map namespace to use.
102
+ # The name of the Cloud Map namespace to use.
103
103
  # @return [String]
104
104
  #
105
105
  # @!attribute [rw] service_name
106
- # The name of the AWS Cloud Map service to use.
106
+ # The name of the Cloud Map service to use.
107
107
  # @return [String]
108
108
  #
109
109
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/AwsCloudMapServiceDiscovery AWS API Documentation
@@ -119,30 +119,9 @@ module Aws::AppMesh
119
119
  # An object that represents the backends that a virtual node is expected
120
120
  # to send outbound traffic to.
121
121
  #
122
- # @note When making an API call, you may pass Backend
123
- # data as a hash:
122
+ # @note Backend is a union - when making an API calls you must set exactly one of the members.
124
123
  #
125
- # {
126
- # virtual_service: {
127
- # client_policy: {
128
- # tls: {
129
- # enforce: false,
130
- # ports: [1],
131
- # validation: { # required
132
- # trust: { # required
133
- # acm: {
134
- # certificate_authority_arns: ["Arn"], # required
135
- # },
136
- # file: {
137
- # certificate_chain: "FilePath", # required
138
- # },
139
- # },
140
- # },
141
- # },
142
- # },
143
- # virtual_service_name: "ServiceName", # required
144
- # },
145
- # }
124
+ # @note Backend is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of Backend corresponding to the set member.
146
125
  #
147
126
  # @!attribute [rw] virtual_service
148
127
  # Specifies a virtual service to use as a backend.
@@ -151,9 +130,14 @@ module Aws::AppMesh
151
130
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/Backend AWS API Documentation
152
131
  #
153
132
  class Backend < Struct.new(
154
- :virtual_service)
133
+ :virtual_service,
134
+ :unknown)
155
135
  SENSITIVE = []
156
136
  include Aws::Structure
137
+ include Aws::Structure::Union
138
+
139
+ class VirtualService < Backend; end
140
+ class Unknown < Backend; end
157
141
  end
158
142
 
159
143
  # An object that represents the default properties for a backend.
@@ -164,9 +148,23 @@ module Aws::AppMesh
164
148
  # {
165
149
  # client_policy: {
166
150
  # tls: {
151
+ # certificate: {
152
+ # file: {
153
+ # certificate_chain: "FilePath", # required
154
+ # private_key: "FilePath", # required
155
+ # },
156
+ # sds: {
157
+ # secret_name: "SdsSecretName", # required
158
+ # },
159
+ # },
167
160
  # enforce: false,
168
161
  # ports: [1],
169
162
  # validation: { # required
163
+ # subject_alternative_names: {
164
+ # match: { # required
165
+ # exact: ["SubjectAlternativeName"], # required
166
+ # },
167
+ # },
170
168
  # trust: { # required
171
169
  # acm: {
172
170
  # certificate_authority_arns: ["Arn"], # required
@@ -174,6 +172,9 @@ module Aws::AppMesh
174
172
  # file: {
175
173
  # certificate_chain: "FilePath", # required
176
174
  # },
175
+ # sds: {
176
+ # secret_name: "SdsSecretName", # required
177
+ # },
177
178
  # },
178
179
  # },
179
180
  # },
@@ -213,9 +214,23 @@ module Aws::AppMesh
213
214
  #
214
215
  # {
215
216
  # tls: {
217
+ # certificate: {
218
+ # file: {
219
+ # certificate_chain: "FilePath", # required
220
+ # private_key: "FilePath", # required
221
+ # },
222
+ # sds: {
223
+ # secret_name: "SdsSecretName", # required
224
+ # },
225
+ # },
216
226
  # enforce: false,
217
227
  # ports: [1],
218
228
  # validation: { # required
229
+ # subject_alternative_names: {
230
+ # match: { # required
231
+ # exact: ["SubjectAlternativeName"], # required
232
+ # },
233
+ # },
219
234
  # trust: { # required
220
235
  # acm: {
221
236
  # certificate_authority_arns: ["Arn"], # required
@@ -223,6 +238,9 @@ module Aws::AppMesh
223
238
  # file: {
224
239
  # certificate_chain: "FilePath", # required
225
240
  # },
241
+ # sds: {
242
+ # secret_name: "SdsSecretName", # required
243
+ # },
226
244
  # },
227
245
  # },
228
246
  # },
@@ -248,9 +266,23 @@ module Aws::AppMesh
248
266
  # data as a hash:
249
267
  #
250
268
  # {
269
+ # certificate: {
270
+ # file: {
271
+ # certificate_chain: "FilePath", # required
272
+ # private_key: "FilePath", # required
273
+ # },
274
+ # sds: {
275
+ # secret_name: "SdsSecretName", # required
276
+ # },
277
+ # },
251
278
  # enforce: false,
252
279
  # ports: [1],
253
280
  # validation: { # required
281
+ # subject_alternative_names: {
282
+ # match: { # required
283
+ # exact: ["SubjectAlternativeName"], # required
284
+ # },
285
+ # },
254
286
  # trust: { # required
255
287
  # acm: {
256
288
  # certificate_authority_arns: ["Arn"], # required
@@ -258,10 +290,18 @@ module Aws::AppMesh
258
290
  # file: {
259
291
  # certificate_chain: "FilePath", # required
260
292
  # },
293
+ # sds: {
294
+ # secret_name: "SdsSecretName", # required
295
+ # },
261
296
  # },
262
297
  # },
263
298
  # }
264
299
  #
300
+ # @!attribute [rw] certificate
301
+ # A reference to an object that represents a client's TLS
302
+ # certificate.
303
+ # @return [Types::ClientTlsCertificate]
304
+ #
265
305
  # @!attribute [rw] enforce
266
306
  # Whether the policy is enforced. The default is `True`, if a value
267
307
  # isn't specified.
@@ -278,6 +318,7 @@ module Aws::AppMesh
278
318
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ClientPolicyTls AWS API Documentation
279
319
  #
280
320
  class ClientPolicyTls < Struct.new(
321
+ :certificate,
281
322
  :enforce,
282
323
  :ports,
283
324
  :validation)
@@ -285,6 +326,43 @@ module Aws::AppMesh
285
326
  include Aws::Structure
286
327
  end
287
328
 
329
+ # An object that represents the client's certificate.
330
+ #
331
+ # @note ClientTlsCertificate is a union - when making an API calls you must set exactly one of the members.
332
+ #
333
+ # @note ClientTlsCertificate is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of ClientTlsCertificate corresponding to the set member.
334
+ #
335
+ # @!attribute [rw] file
336
+ # An object that represents a local file certificate. The certificate
337
+ # must meet specific requirements and you must have proxy
338
+ # authorization enabled. For more information, see [Transport Layer
339
+ # Security (TLS)][1].
340
+ #
341
+ #
342
+ #
343
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html
344
+ # @return [Types::ListenerTlsFileCertificate]
345
+ #
346
+ # @!attribute [rw] sds
347
+ # A reference to an object that represents a client's TLS Secret
348
+ # Discovery Service certificate.
349
+ # @return [Types::ListenerTlsSdsCertificate]
350
+ #
351
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ClientTlsCertificate AWS API Documentation
352
+ #
353
+ class ClientTlsCertificate < Struct.new(
354
+ :file,
355
+ :sds,
356
+ :unknown)
357
+ SENSITIVE = []
358
+ include Aws::Structure
359
+ include Aws::Structure::Union
360
+
361
+ class File < ClientTlsCertificate; end
362
+ class Sds < ClientTlsCertificate; end
363
+ class Unknown < ClientTlsCertificate; end
364
+ end
365
+
288
366
  # The request contains a client token that was used for a previous
289
367
  # update resource call with different specifications. Try the request
290
368
  # again with a new client token.
@@ -311,6 +389,11 @@ module Aws::AppMesh
311
389
  # spec: { # required
312
390
  # grpc_route: {
313
391
  # action: { # required
392
+ # rewrite: {
393
+ # hostname: {
394
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
395
+ # },
396
+ # },
314
397
  # target: { # required
315
398
  # virtual_service: { # required
316
399
  # virtual_service_name: "ResourceName", # required
@@ -318,11 +401,43 @@ module Aws::AppMesh
318
401
  # },
319
402
  # },
320
403
  # match: { # required
404
+ # hostname: {
405
+ # exact: "ExactHostName",
406
+ # suffix: "SuffixHostname",
407
+ # },
408
+ # metadata: [
409
+ # {
410
+ # invert: false,
411
+ # match: {
412
+ # exact: "HeaderMatch",
413
+ # prefix: "HeaderMatch",
414
+ # range: {
415
+ # end: 1, # required
416
+ # start: 1, # required
417
+ # },
418
+ # regex: "HeaderMatch",
419
+ # suffix: "HeaderMatch",
420
+ # },
421
+ # name: "HeaderName", # required
422
+ # },
423
+ # ],
321
424
  # service_name: "ServiceName",
322
425
  # },
323
426
  # },
324
427
  # http2_route: {
325
428
  # action: { # required
429
+ # rewrite: {
430
+ # hostname: {
431
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
432
+ # },
433
+ # path: {
434
+ # exact: "HttpPathExact",
435
+ # },
436
+ # prefix: {
437
+ # default_prefix: "ENABLED", # accepts ENABLED, DISABLED
438
+ # value: "HttpGatewayRoutePrefix",
439
+ # },
440
+ # },
326
441
  # target: { # required
327
442
  # virtual_service: { # required
328
443
  # virtual_service_name: "ResourceName", # required
@@ -330,11 +445,56 @@ module Aws::AppMesh
330
445
  # },
331
446
  # },
332
447
  # match: { # required
333
- # prefix: "String", # required
448
+ # headers: [
449
+ # {
450
+ # invert: false,
451
+ # match: {
452
+ # exact: "HeaderMatch",
453
+ # prefix: "HeaderMatch",
454
+ # range: {
455
+ # end: 1, # required
456
+ # start: 1, # required
457
+ # },
458
+ # regex: "HeaderMatch",
459
+ # suffix: "HeaderMatch",
460
+ # },
461
+ # name: "HeaderName", # required
462
+ # },
463
+ # ],
464
+ # hostname: {
465
+ # exact: "ExactHostName",
466
+ # suffix: "SuffixHostname",
467
+ # },
468
+ # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
469
+ # path: {
470
+ # exact: "HttpPathExact",
471
+ # regex: "HttpPathRegex",
472
+ # },
473
+ # prefix: "String",
474
+ # query_parameters: [
475
+ # {
476
+ # match: {
477
+ # exact: "String",
478
+ # },
479
+ # name: "QueryParameterName", # required
480
+ # },
481
+ # ],
334
482
  # },
335
483
  # },
336
484
  # http_route: {
337
485
  # action: { # required
486
+ # rewrite: {
487
+ # hostname: {
488
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
489
+ # },
490
+ # path: {
491
+ # exact: "HttpPathExact",
492
+ # },
493
+ # prefix: {
494
+ # default_prefix: "ENABLED", # accepts ENABLED, DISABLED
495
+ # value: "HttpGatewayRoutePrefix",
496
+ # },
497
+ # },
338
498
  # target: { # required
339
499
  # virtual_service: { # required
340
500
  # virtual_service_name: "ResourceName", # required
@@ -342,9 +502,43 @@ module Aws::AppMesh
342
502
  # },
343
503
  # },
344
504
  # match: { # required
345
- # prefix: "String", # required
505
+ # headers: [
506
+ # {
507
+ # invert: false,
508
+ # match: {
509
+ # exact: "HeaderMatch",
510
+ # prefix: "HeaderMatch",
511
+ # range: {
512
+ # end: 1, # required
513
+ # start: 1, # required
514
+ # },
515
+ # regex: "HeaderMatch",
516
+ # suffix: "HeaderMatch",
517
+ # },
518
+ # name: "HeaderName", # required
519
+ # },
520
+ # ],
521
+ # hostname: {
522
+ # exact: "ExactHostName",
523
+ # suffix: "SuffixHostname",
524
+ # },
525
+ # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
526
+ # path: {
527
+ # exact: "HttpPathExact",
528
+ # regex: "HttpPathRegex",
529
+ # },
530
+ # prefix: "String",
531
+ # query_parameters: [
532
+ # {
533
+ # match: {
534
+ # exact: "String",
535
+ # },
536
+ # name: "QueryParameterName", # required
537
+ # },
538
+ # ],
346
539
  # },
347
540
  # },
541
+ # priority: 1,
348
542
  # },
349
543
  # tags: [
350
544
  # {
@@ -594,7 +788,19 @@ module Aws::AppMesh
594
788
  # },
595
789
  # ],
596
790
  # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
597
- # prefix: "String", # required
791
+ # path: {
792
+ # exact: "HttpPathExact",
793
+ # regex: "HttpPathRegex",
794
+ # },
795
+ # prefix: "String",
796
+ # query_parameters: [
797
+ # {
798
+ # match: {
799
+ # exact: "String",
800
+ # },
801
+ # name: "QueryParameterName", # required
802
+ # },
803
+ # ],
598
804
  # scheme: "http", # accepts http, https
599
805
  # },
600
806
  # retry_policy: {
@@ -644,7 +850,19 @@ module Aws::AppMesh
644
850
  # },
645
851
  # ],
646
852
  # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
647
- # prefix: "String", # required
853
+ # path: {
854
+ # exact: "HttpPathExact",
855
+ # regex: "HttpPathRegex",
856
+ # },
857
+ # prefix: "String",
858
+ # query_parameters: [
859
+ # {
860
+ # match: {
861
+ # exact: "String",
862
+ # },
863
+ # name: "QueryParameterName", # required
864
+ # },
865
+ # ],
648
866
  # scheme: "http", # accepts http, https
649
867
  # },
650
868
  # retry_policy: {
@@ -782,9 +1000,23 @@ module Aws::AppMesh
782
1000
  # backend_defaults: {
783
1001
  # client_policy: {
784
1002
  # tls: {
1003
+ # certificate: {
1004
+ # file: {
1005
+ # certificate_chain: "FilePath", # required
1006
+ # private_key: "FilePath", # required
1007
+ # },
1008
+ # sds: {
1009
+ # secret_name: "VirtualGatewaySdsSecretName", # required
1010
+ # },
1011
+ # },
785
1012
  # enforce: false,
786
1013
  # ports: [1],
787
1014
  # validation: { # required
1015
+ # subject_alternative_names: {
1016
+ # match: { # required
1017
+ # exact: ["SubjectAlternativeName"], # required
1018
+ # },
1019
+ # },
788
1020
  # trust: { # required
789
1021
  # acm: {
790
1022
  # certificate_authority_arns: ["Arn"], # required
@@ -792,6 +1024,9 @@ module Aws::AppMesh
792
1024
  # file: {
793
1025
  # certificate_chain: "FilePath", # required
794
1026
  # },
1027
+ # sds: {
1028
+ # secret_name: "VirtualGatewaySdsSecretName", # required
1029
+ # },
795
1030
  # },
796
1031
  # },
797
1032
  # },
@@ -833,8 +1068,26 @@ module Aws::AppMesh
833
1068
  # certificate_chain: "FilePath", # required
834
1069
  # private_key: "FilePath", # required
835
1070
  # },
1071
+ # sds: {
1072
+ # secret_name: "VirtualGatewaySdsSecretName", # required
1073
+ # },
836
1074
  # },
837
1075
  # mode: "STRICT", # required, accepts STRICT, PERMISSIVE, DISABLED
1076
+ # validation: {
1077
+ # subject_alternative_names: {
1078
+ # match: { # required
1079
+ # exact: ["SubjectAlternativeName"], # required
1080
+ # },
1081
+ # },
1082
+ # trust: { # required
1083
+ # file: {
1084
+ # certificate_chain: "FilePath", # required
1085
+ # },
1086
+ # sds: {
1087
+ # secret_name: "VirtualGatewaySdsSecretName", # required
1088
+ # },
1089
+ # },
1090
+ # },
838
1091
  # },
839
1092
  # },
840
1093
  # ],
@@ -937,9 +1190,23 @@ module Aws::AppMesh
937
1190
  # backend_defaults: {
938
1191
  # client_policy: {
939
1192
  # tls: {
1193
+ # certificate: {
1194
+ # file: {
1195
+ # certificate_chain: "FilePath", # required
1196
+ # private_key: "FilePath", # required
1197
+ # },
1198
+ # sds: {
1199
+ # secret_name: "SdsSecretName", # required
1200
+ # },
1201
+ # },
940
1202
  # enforce: false,
941
1203
  # ports: [1],
942
1204
  # validation: { # required
1205
+ # subject_alternative_names: {
1206
+ # match: { # required
1207
+ # exact: ["SubjectAlternativeName"], # required
1208
+ # },
1209
+ # },
943
1210
  # trust: { # required
944
1211
  # acm: {
945
1212
  # certificate_authority_arns: ["Arn"], # required
@@ -947,6 +1214,9 @@ module Aws::AppMesh
947
1214
  # file: {
948
1215
  # certificate_chain: "FilePath", # required
949
1216
  # },
1217
+ # sds: {
1218
+ # secret_name: "SdsSecretName", # required
1219
+ # },
950
1220
  # },
951
1221
  # },
952
1222
  # },
@@ -957,9 +1227,23 @@ module Aws::AppMesh
957
1227
  # virtual_service: {
958
1228
  # client_policy: {
959
1229
  # tls: {
1230
+ # certificate: {
1231
+ # file: {
1232
+ # certificate_chain: "FilePath", # required
1233
+ # private_key: "FilePath", # required
1234
+ # },
1235
+ # sds: {
1236
+ # secret_name: "SdsSecretName", # required
1237
+ # },
1238
+ # },
960
1239
  # enforce: false,
961
1240
  # ports: [1],
962
1241
  # validation: { # required
1242
+ # subject_alternative_names: {
1243
+ # match: { # required
1244
+ # exact: ["SubjectAlternativeName"], # required
1245
+ # },
1246
+ # },
963
1247
  # trust: { # required
964
1248
  # acm: {
965
1249
  # certificate_authority_arns: ["Arn"], # required
@@ -967,6 +1251,9 @@ module Aws::AppMesh
967
1251
  # file: {
968
1252
  # certificate_chain: "FilePath", # required
969
1253
  # },
1254
+ # sds: {
1255
+ # secret_name: "SdsSecretName", # required
1256
+ # },
970
1257
  # },
971
1258
  # },
972
1259
  # },
@@ -1064,8 +1351,26 @@ module Aws::AppMesh
1064
1351
  # certificate_chain: "FilePath", # required
1065
1352
  # private_key: "FilePath", # required
1066
1353
  # },
1354
+ # sds: {
1355
+ # secret_name: "SdsSecretName", # required
1356
+ # },
1067
1357
  # },
1068
1358
  # mode: "STRICT", # required, accepts STRICT, PERMISSIVE, DISABLED
1359
+ # validation: {
1360
+ # subject_alternative_names: {
1361
+ # match: { # required
1362
+ # exact: ["SubjectAlternativeName"], # required
1363
+ # },
1364
+ # },
1365
+ # trust: { # required
1366
+ # file: {
1367
+ # certificate_chain: "FilePath", # required
1368
+ # },
1369
+ # sds: {
1370
+ # secret_name: "SdsSecretName", # required
1371
+ # },
1372
+ # },
1373
+ # },
1069
1374
  # },
1070
1375
  # },
1071
1376
  # ],
@@ -1089,6 +1394,7 @@ module Aws::AppMesh
1089
1394
  # },
1090
1395
  # dns: {
1091
1396
  # hostname: "Hostname", # required
1397
+ # response_type: "LOADBALANCER", # accepts LOADBALANCER, ENDPOINTS
1092
1398
  # },
1093
1399
  # },
1094
1400
  # },
@@ -1582,9 +1888,7 @@ module Aws::AppMesh
1582
1888
  include Aws::Structure
1583
1889
  end
1584
1890
 
1585
- # <zonbook />
1586
- #
1587
- # <xhtml />
1891
+ # Deletes a virtual node input.
1588
1892
  #
1589
1893
  # @note When making an API call, you may pass DeleteVirtualNodeInput
1590
1894
  # data as a hash:
@@ -2161,16 +2465,22 @@ module Aws::AppMesh
2161
2465
  #
2162
2466
  # {
2163
2467
  # hostname: "Hostname", # required
2468
+ # response_type: "LOADBALANCER", # accepts LOADBALANCER, ENDPOINTS
2164
2469
  # }
2165
2470
  #
2166
2471
  # @!attribute [rw] hostname
2167
2472
  # Specifies the DNS service discovery hostname for the virtual node.
2168
2473
  # @return [String]
2169
2474
  #
2475
+ # @!attribute [rw] response_type
2476
+ # Specifies the DNS response type for the virtual node.
2477
+ # @return [String]
2478
+ #
2170
2479
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DnsServiceDiscovery AWS API Documentation
2171
2480
  #
2172
2481
  class DnsServiceDiscovery < Struct.new(
2173
- :hostname)
2482
+ :hostname,
2483
+ :response_type)
2174
2484
  SENSITIVE = []
2175
2485
  include Aws::Structure
2176
2486
  end
@@ -2214,9 +2524,10 @@ module Aws::AppMesh
2214
2524
  # @!attribute [rw] type
2215
2525
  # The egress filter type. By default, the type is `DROP_ALL`, which
2216
2526
  # allows egress only from virtual nodes to other defined resources in
2217
- # the service mesh (and any traffic to `*.amazonaws.com` for AWS API
2218
- # calls). You can set the egress filter type to `ALLOW_ALL` to allow
2219
- # egress to any endpoint inside or outside of the service mesh.
2527
+ # the service mesh (and any traffic to `*.amazonaws.com` for Amazon
2528
+ # Web Services API calls). You can set the egress filter type to
2529
+ # `ALLOW_ALL` to allow egress to any endpoint inside or outside of the
2530
+ # service mesh.
2220
2531
  # @return [String]
2221
2532
  #
2222
2533
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/EgressFilter AWS API Documentation
@@ -2311,6 +2622,54 @@ module Aws::AppMesh
2311
2622
  include Aws::Structure
2312
2623
  end
2313
2624
 
2625
+ # An object representing the gateway route host name to match.
2626
+ #
2627
+ # @note When making an API call, you may pass GatewayRouteHostnameMatch
2628
+ # data as a hash:
2629
+ #
2630
+ # {
2631
+ # exact: "ExactHostName",
2632
+ # suffix: "SuffixHostname",
2633
+ # }
2634
+ #
2635
+ # @!attribute [rw] exact
2636
+ # The exact host name to match on.
2637
+ # @return [String]
2638
+ #
2639
+ # @!attribute [rw] suffix
2640
+ # The specified ending characters of the host name to match on.
2641
+ # @return [String]
2642
+ #
2643
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GatewayRouteHostnameMatch AWS API Documentation
2644
+ #
2645
+ class GatewayRouteHostnameMatch < Struct.new(
2646
+ :exact,
2647
+ :suffix)
2648
+ SENSITIVE = []
2649
+ include Aws::Structure
2650
+ end
2651
+
2652
+ # An object representing the gateway route host name to rewrite.
2653
+ #
2654
+ # @note When making an API call, you may pass GatewayRouteHostnameRewrite
2655
+ # data as a hash:
2656
+ #
2657
+ # {
2658
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
2659
+ # }
2660
+ #
2661
+ # @!attribute [rw] default_target_hostname
2662
+ # The default target host name to write to.
2663
+ # @return [String]
2664
+ #
2665
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GatewayRouteHostnameRewrite AWS API Documentation
2666
+ #
2667
+ class GatewayRouteHostnameRewrite < Struct.new(
2668
+ :default_target_hostname)
2669
+ SENSITIVE = []
2670
+ include Aws::Structure
2671
+ end
2672
+
2314
2673
  # An object that represents a gateway route returned by a list
2315
2674
  # operation.
2316
2675
  #
@@ -2392,6 +2751,11 @@ module Aws::AppMesh
2392
2751
  # {
2393
2752
  # grpc_route: {
2394
2753
  # action: { # required
2754
+ # rewrite: {
2755
+ # hostname: {
2756
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
2757
+ # },
2758
+ # },
2395
2759
  # target: { # required
2396
2760
  # virtual_service: { # required
2397
2761
  # virtual_service_name: "ResourceName", # required
@@ -2399,11 +2763,43 @@ module Aws::AppMesh
2399
2763
  # },
2400
2764
  # },
2401
2765
  # match: { # required
2402
- # service_name: "ServiceName",
2403
- # },
2766
+ # hostname: {
2767
+ # exact: "ExactHostName",
2768
+ # suffix: "SuffixHostname",
2769
+ # },
2770
+ # metadata: [
2771
+ # {
2772
+ # invert: false,
2773
+ # match: {
2774
+ # exact: "HeaderMatch",
2775
+ # prefix: "HeaderMatch",
2776
+ # range: {
2777
+ # end: 1, # required
2778
+ # start: 1, # required
2779
+ # },
2780
+ # regex: "HeaderMatch",
2781
+ # suffix: "HeaderMatch",
2782
+ # },
2783
+ # name: "HeaderName", # required
2784
+ # },
2785
+ # ],
2786
+ # service_name: "ServiceName",
2787
+ # },
2404
2788
  # },
2405
2789
  # http2_route: {
2406
2790
  # action: { # required
2791
+ # rewrite: {
2792
+ # hostname: {
2793
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
2794
+ # },
2795
+ # path: {
2796
+ # exact: "HttpPathExact",
2797
+ # },
2798
+ # prefix: {
2799
+ # default_prefix: "ENABLED", # accepts ENABLED, DISABLED
2800
+ # value: "HttpGatewayRoutePrefix",
2801
+ # },
2802
+ # },
2407
2803
  # target: { # required
2408
2804
  # virtual_service: { # required
2409
2805
  # virtual_service_name: "ResourceName", # required
@@ -2411,11 +2807,56 @@ module Aws::AppMesh
2411
2807
  # },
2412
2808
  # },
2413
2809
  # match: { # required
2414
- # prefix: "String", # required
2810
+ # headers: [
2811
+ # {
2812
+ # invert: false,
2813
+ # match: {
2814
+ # exact: "HeaderMatch",
2815
+ # prefix: "HeaderMatch",
2816
+ # range: {
2817
+ # end: 1, # required
2818
+ # start: 1, # required
2819
+ # },
2820
+ # regex: "HeaderMatch",
2821
+ # suffix: "HeaderMatch",
2822
+ # },
2823
+ # name: "HeaderName", # required
2824
+ # },
2825
+ # ],
2826
+ # hostname: {
2827
+ # exact: "ExactHostName",
2828
+ # suffix: "SuffixHostname",
2829
+ # },
2830
+ # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
2831
+ # path: {
2832
+ # exact: "HttpPathExact",
2833
+ # regex: "HttpPathRegex",
2834
+ # },
2835
+ # prefix: "String",
2836
+ # query_parameters: [
2837
+ # {
2838
+ # match: {
2839
+ # exact: "String",
2840
+ # },
2841
+ # name: "QueryParameterName", # required
2842
+ # },
2843
+ # ],
2415
2844
  # },
2416
2845
  # },
2417
2846
  # http_route: {
2418
2847
  # action: { # required
2848
+ # rewrite: {
2849
+ # hostname: {
2850
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
2851
+ # },
2852
+ # path: {
2853
+ # exact: "HttpPathExact",
2854
+ # },
2855
+ # prefix: {
2856
+ # default_prefix: "ENABLED", # accepts ENABLED, DISABLED
2857
+ # value: "HttpGatewayRoutePrefix",
2858
+ # },
2859
+ # },
2419
2860
  # target: { # required
2420
2861
  # virtual_service: { # required
2421
2862
  # virtual_service_name: "ResourceName", # required
@@ -2423,9 +2864,43 @@ module Aws::AppMesh
2423
2864
  # },
2424
2865
  # },
2425
2866
  # match: { # required
2426
- # prefix: "String", # required
2867
+ # headers: [
2868
+ # {
2869
+ # invert: false,
2870
+ # match: {
2871
+ # exact: "HeaderMatch",
2872
+ # prefix: "HeaderMatch",
2873
+ # range: {
2874
+ # end: 1, # required
2875
+ # start: 1, # required
2876
+ # },
2877
+ # regex: "HeaderMatch",
2878
+ # suffix: "HeaderMatch",
2879
+ # },
2880
+ # name: "HeaderName", # required
2881
+ # },
2882
+ # ],
2883
+ # hostname: {
2884
+ # exact: "ExactHostName",
2885
+ # suffix: "SuffixHostname",
2886
+ # },
2887
+ # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
2888
+ # path: {
2889
+ # exact: "HttpPathExact",
2890
+ # regex: "HttpPathRegex",
2891
+ # },
2892
+ # prefix: "String",
2893
+ # query_parameters: [
2894
+ # {
2895
+ # match: {
2896
+ # exact: "String",
2897
+ # },
2898
+ # name: "QueryParameterName", # required
2899
+ # },
2900
+ # ],
2427
2901
  # },
2428
2902
  # },
2903
+ # priority: 1,
2429
2904
  # }
2430
2905
  #
2431
2906
  # @!attribute [rw] grpc_route
@@ -2442,12 +2917,17 @@ module Aws::AppMesh
2442
2917
  # route.
2443
2918
  # @return [Types::HttpGatewayRoute]
2444
2919
  #
2920
+ # @!attribute [rw] priority
2921
+ # The ordering of the gateway routes spec.
2922
+ # @return [Integer]
2923
+ #
2445
2924
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GatewayRouteSpec AWS API Documentation
2446
2925
  #
2447
2926
  class GatewayRouteSpec < Struct.new(
2448
2927
  :grpc_route,
2449
2928
  :http2_route,
2450
- :http_route)
2929
+ :http_route,
2930
+ :priority)
2451
2931
  SENSITIVE = []
2452
2932
  include Aws::Structure
2453
2933
  end
@@ -2518,6 +2998,11 @@ module Aws::AppMesh
2518
2998
  #
2519
2999
  # {
2520
3000
  # action: { # required
3001
+ # rewrite: {
3002
+ # hostname: {
3003
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
3004
+ # },
3005
+ # },
2521
3006
  # target: { # required
2522
3007
  # virtual_service: { # required
2523
3008
  # virtual_service_name: "ResourceName", # required
@@ -2525,6 +3010,26 @@ module Aws::AppMesh
2525
3010
  # },
2526
3011
  # },
2527
3012
  # match: { # required
3013
+ # hostname: {
3014
+ # exact: "ExactHostName",
3015
+ # suffix: "SuffixHostname",
3016
+ # },
3017
+ # metadata: [
3018
+ # {
3019
+ # invert: false,
3020
+ # match: {
3021
+ # exact: "HeaderMatch",
3022
+ # prefix: "HeaderMatch",
3023
+ # range: {
3024
+ # end: 1, # required
3025
+ # start: 1, # required
3026
+ # },
3027
+ # regex: "HeaderMatch",
3028
+ # suffix: "HeaderMatch",
3029
+ # },
3030
+ # name: "HeaderName", # required
3031
+ # },
3032
+ # ],
2528
3033
  # service_name: "ServiceName",
2529
3034
  # },
2530
3035
  # }
@@ -2554,6 +3059,11 @@ module Aws::AppMesh
2554
3059
  # data as a hash:
2555
3060
  #
2556
3061
  # {
3062
+ # rewrite: {
3063
+ # hostname: {
3064
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
3065
+ # },
3066
+ # },
2557
3067
  # target: { # required
2558
3068
  # virtual_service: { # required
2559
3069
  # virtual_service_name: "ResourceName", # required
@@ -2561,6 +3071,10 @@ module Aws::AppMesh
2561
3071
  # },
2562
3072
  # }
2563
3073
  #
3074
+ # @!attribute [rw] rewrite
3075
+ # The gateway route action to rewrite.
3076
+ # @return [Types::GrpcGatewayRouteRewrite]
3077
+ #
2564
3078
  # @!attribute [rw] target
2565
3079
  # An object that represents the target that traffic is routed to when
2566
3080
  # a request matches the gateway route.
@@ -2569,6 +3083,7 @@ module Aws::AppMesh
2569
3083
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GrpcGatewayRouteAction AWS API Documentation
2570
3084
  #
2571
3085
  class GrpcGatewayRouteAction < Struct.new(
3086
+ :rewrite,
2572
3087
  :target)
2573
3088
  SENSITIVE = []
2574
3089
  include Aws::Structure
@@ -2581,9 +3096,37 @@ module Aws::AppMesh
2581
3096
  # data as a hash:
2582
3097
  #
2583
3098
  # {
3099
+ # hostname: {
3100
+ # exact: "ExactHostName",
3101
+ # suffix: "SuffixHostname",
3102
+ # },
3103
+ # metadata: [
3104
+ # {
3105
+ # invert: false,
3106
+ # match: {
3107
+ # exact: "HeaderMatch",
3108
+ # prefix: "HeaderMatch",
3109
+ # range: {
3110
+ # end: 1, # required
3111
+ # start: 1, # required
3112
+ # },
3113
+ # regex: "HeaderMatch",
3114
+ # suffix: "HeaderMatch",
3115
+ # },
3116
+ # name: "HeaderName", # required
3117
+ # },
3118
+ # ],
2584
3119
  # service_name: "ServiceName",
2585
3120
  # }
2586
3121
  #
3122
+ # @!attribute [rw] hostname
3123
+ # The gateway route host name to be matched on.
3124
+ # @return [Types::GatewayRouteHostnameMatch]
3125
+ #
3126
+ # @!attribute [rw] metadata
3127
+ # The gateway route metadata to be matched on.
3128
+ # @return [Array<Types::GrpcGatewayRouteMetadata>]
3129
+ #
2587
3130
  # @!attribute [rw] service_name
2588
3131
  # The fully qualified domain name for the service to match from the
2589
3132
  # request.
@@ -2592,14 +3135,140 @@ module Aws::AppMesh
2592
3135
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GrpcGatewayRouteMatch AWS API Documentation
2593
3136
  #
2594
3137
  class GrpcGatewayRouteMatch < Struct.new(
3138
+ :hostname,
3139
+ :metadata,
2595
3140
  :service_name)
2596
3141
  SENSITIVE = []
2597
3142
  include Aws::Structure
2598
3143
  end
2599
3144
 
3145
+ # An object representing the metadata of the gateway route.
3146
+ #
3147
+ # @note When making an API call, you may pass GrpcGatewayRouteMetadata
3148
+ # data as a hash:
3149
+ #
3150
+ # {
3151
+ # invert: false,
3152
+ # match: {
3153
+ # exact: "HeaderMatch",
3154
+ # prefix: "HeaderMatch",
3155
+ # range: {
3156
+ # end: 1, # required
3157
+ # start: 1, # required
3158
+ # },
3159
+ # regex: "HeaderMatch",
3160
+ # suffix: "HeaderMatch",
3161
+ # },
3162
+ # name: "HeaderName", # required
3163
+ # }
3164
+ #
3165
+ # @!attribute [rw] invert
3166
+ # Specify `True` to match anything except the match criteria. The
3167
+ # default value is `False`.
3168
+ # @return [Boolean]
3169
+ #
3170
+ # @!attribute [rw] match
3171
+ # The criteria for determining a metadata match.
3172
+ # @return [Types::GrpcMetadataMatchMethod]
3173
+ #
3174
+ # @!attribute [rw] name
3175
+ # A name for the gateway route metadata.
3176
+ # @return [String]
3177
+ #
3178
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GrpcGatewayRouteMetadata AWS API Documentation
3179
+ #
3180
+ class GrpcGatewayRouteMetadata < Struct.new(
3181
+ :invert,
3182
+ :match,
3183
+ :name)
3184
+ SENSITIVE = []
3185
+ include Aws::Structure
3186
+ end
3187
+
3188
+ # An object that represents the gateway route to rewrite.
3189
+ #
3190
+ # @note When making an API call, you may pass GrpcGatewayRouteRewrite
3191
+ # data as a hash:
3192
+ #
3193
+ # {
3194
+ # hostname: {
3195
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
3196
+ # },
3197
+ # }
3198
+ #
3199
+ # @!attribute [rw] hostname
3200
+ # The host name of the gateway route to rewrite.
3201
+ # @return [Types::GatewayRouteHostnameRewrite]
3202
+ #
3203
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GrpcGatewayRouteRewrite AWS API Documentation
3204
+ #
3205
+ class GrpcGatewayRouteRewrite < Struct.new(
3206
+ :hostname)
3207
+ SENSITIVE = []
3208
+ include Aws::Structure
3209
+ end
3210
+
3211
+ # An object representing the method header to be matched.
3212
+ #
3213
+ # @note GrpcMetadataMatchMethod is a union - when making an API calls you must set exactly one of the members.
3214
+ #
3215
+ # @note GrpcMetadataMatchMethod is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of GrpcMetadataMatchMethod corresponding to the set member.
3216
+ #
3217
+ # @!attribute [rw] exact
3218
+ # The exact method header to be matched on.
3219
+ # @return [String]
3220
+ #
3221
+ # @!attribute [rw] prefix
3222
+ # The specified beginning characters of the method header to be
3223
+ # matched on.
3224
+ # @return [String]
3225
+ #
3226
+ # @!attribute [rw] range
3227
+ # An object that represents the range of values to match on. The first
3228
+ # character of the range is included in the range, though the last
3229
+ # character is not. For example, if the range specified were 1-100,
3230
+ # only values 1-99 would be matched.
3231
+ # @return [Types::MatchRange]
3232
+ #
3233
+ # @!attribute [rw] regex
3234
+ # The regex used to match the method header.
3235
+ # @return [String]
3236
+ #
3237
+ # @!attribute [rw] suffix
3238
+ # The specified ending characters of the method header to match on.
3239
+ # @return [String]
3240
+ #
3241
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GrpcMetadataMatchMethod AWS API Documentation
3242
+ #
3243
+ class GrpcMetadataMatchMethod < Struct.new(
3244
+ :exact,
3245
+ :prefix,
3246
+ :range,
3247
+ :regex,
3248
+ :suffix,
3249
+ :unknown)
3250
+ SENSITIVE = []
3251
+ include Aws::Structure
3252
+ include Aws::Structure::Union
3253
+
3254
+ class Exact < GrpcMetadataMatchMethod; end
3255
+ class Prefix < GrpcMetadataMatchMethod; end
3256
+ class Range < GrpcMetadataMatchMethod; end
3257
+ class Regex < GrpcMetadataMatchMethod; end
3258
+ class Suffix < GrpcMetadataMatchMethod; end
3259
+ class Unknown < GrpcMetadataMatchMethod; end
3260
+ end
3261
+
2600
3262
  # An object that represents a retry policy. Specify at least one value
2601
3263
  # for at least one of the types of `RetryEvents`, a value for
2602
- # `maxRetries`, and a value for `perRetryTimeout`.
3264
+ # `maxRetries`, and a value for `perRetryTimeout`. Both `server-error`
3265
+ # and `gateway-error` under `httpRetryEvents` include the Envoy `reset`
3266
+ # policy. For more information on the `reset` policy, see the [Envoy
3267
+ # documentation][1].
3268
+ #
3269
+ #
3270
+ #
3271
+ # [1]: https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-on
2603
3272
  #
2604
3273
  # @note When making an API call, you may pass GrpcRetryPolicy
2605
3274
  # data as a hash:
@@ -2867,19 +3536,9 @@ module Aws::AppMesh
2867
3536
  # An object that represents the match method. Specify one of the match
2868
3537
  # values.
2869
3538
  #
2870
- # @note When making an API call, you may pass GrpcRouteMetadataMatchMethod
2871
- # data as a hash:
3539
+ # @note GrpcRouteMetadataMatchMethod is a union - when making an API calls you must set exactly one of the members.
2872
3540
  #
2873
- # {
2874
- # exact: "HeaderMatch",
2875
- # prefix: "HeaderMatch",
2876
- # range: {
2877
- # end: 1, # required
2878
- # start: 1, # required
2879
- # },
2880
- # regex: "HeaderMatch",
2881
- # suffix: "HeaderMatch",
2882
- # }
3541
+ # @note GrpcRouteMetadataMatchMethod is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of GrpcRouteMetadataMatchMethod corresponding to the set member.
2883
3542
  #
2884
3543
  # @!attribute [rw] exact
2885
3544
  # The value sent by the client must match the specified value exactly.
@@ -2909,9 +3568,18 @@ module Aws::AppMesh
2909
3568
  :prefix,
2910
3569
  :range,
2911
3570
  :regex,
2912
- :suffix)
3571
+ :suffix,
3572
+ :unknown)
2913
3573
  SENSITIVE = []
2914
3574
  include Aws::Structure
3575
+ include Aws::Structure::Union
3576
+
3577
+ class Exact < GrpcRouteMetadataMatchMethod; end
3578
+ class Prefix < GrpcRouteMetadataMatchMethod; end
3579
+ class Range < GrpcRouteMetadataMatchMethod; end
3580
+ class Regex < GrpcRouteMetadataMatchMethod; end
3581
+ class Suffix < GrpcRouteMetadataMatchMethod; end
3582
+ class Unknown < GrpcRouteMetadataMatchMethod; end
2915
3583
  end
2916
3584
 
2917
3585
  # An object that represents types of timeouts.
@@ -2958,19 +3626,9 @@ module Aws::AppMesh
2958
3626
  # An object that represents the method and value to match with the
2959
3627
  # header value sent in a request. Specify one match method.
2960
3628
  #
2961
- # @note When making an API call, you may pass HeaderMatchMethod
2962
- # data as a hash:
3629
+ # @note HeaderMatchMethod is a union - when making an API calls you must set exactly one of the members.
2963
3630
  #
2964
- # {
2965
- # exact: "HeaderMatch",
2966
- # prefix: "HeaderMatch",
2967
- # range: {
2968
- # end: 1, # required
2969
- # start: 1, # required
2970
- # },
2971
- # regex: "HeaderMatch",
2972
- # suffix: "HeaderMatch",
2973
- # }
3631
+ # @note HeaderMatchMethod is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of HeaderMatchMethod corresponding to the set member.
2974
3632
  #
2975
3633
  # @!attribute [rw] exact
2976
3634
  # The value sent by the client must match the specified value exactly.
@@ -3000,9 +3658,18 @@ module Aws::AppMesh
3000
3658
  :prefix,
3001
3659
  :range,
3002
3660
  :regex,
3003
- :suffix)
3661
+ :suffix,
3662
+ :unknown)
3004
3663
  SENSITIVE = []
3005
3664
  include Aws::Structure
3665
+ include Aws::Structure::Union
3666
+
3667
+ class Exact < HeaderMatchMethod; end
3668
+ class Prefix < HeaderMatchMethod; end
3669
+ class Range < HeaderMatchMethod; end
3670
+ class Regex < HeaderMatchMethod; end
3671
+ class Suffix < HeaderMatchMethod; end
3672
+ class Unknown < HeaderMatchMethod; end
3006
3673
  end
3007
3674
 
3008
3675
  # An object that represents the health check policy for a virtual
@@ -3041,133 +3708,451 @@ module Aws::AppMesh
3041
3708
  # match the port defined in the PortMapping for the listener.
3042
3709
  # @return [Integer]
3043
3710
  #
3044
- # @!attribute [rw] protocol
3045
- # The protocol for the health check request. If you specify `grpc`,
3046
- # then your service must conform to the [GRPC Health Checking
3047
- # Protocol][1].
3711
+ # @!attribute [rw] protocol
3712
+ # The protocol for the health check request. If you specify `grpc`,
3713
+ # then your service must conform to the [GRPC Health Checking
3714
+ # Protocol][1].
3715
+ #
3716
+ #
3717
+ #
3718
+ # [1]: https://github.com/grpc/grpc/blob/master/doc/health-checking.md
3719
+ # @return [String]
3720
+ #
3721
+ # @!attribute [rw] timeout_millis
3722
+ # The amount of time to wait when receiving a response from the health
3723
+ # check, in milliseconds.
3724
+ # @return [Integer]
3725
+ #
3726
+ # @!attribute [rw] unhealthy_threshold
3727
+ # The number of consecutive failed health checks that must occur
3728
+ # before declaring a virtual node unhealthy.
3729
+ # @return [Integer]
3730
+ #
3731
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HealthCheckPolicy AWS API Documentation
3732
+ #
3733
+ class HealthCheckPolicy < Struct.new(
3734
+ :healthy_threshold,
3735
+ :interval_millis,
3736
+ :path,
3737
+ :port,
3738
+ :protocol,
3739
+ :timeout_millis,
3740
+ :unhealthy_threshold)
3741
+ SENSITIVE = []
3742
+ include Aws::Structure
3743
+ end
3744
+
3745
+ # An object that represents an HTTP gateway route.
3746
+ #
3747
+ # @note When making an API call, you may pass HttpGatewayRoute
3748
+ # data as a hash:
3749
+ #
3750
+ # {
3751
+ # action: { # required
3752
+ # rewrite: {
3753
+ # hostname: {
3754
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
3755
+ # },
3756
+ # path: {
3757
+ # exact: "HttpPathExact",
3758
+ # },
3759
+ # prefix: {
3760
+ # default_prefix: "ENABLED", # accepts ENABLED, DISABLED
3761
+ # value: "HttpGatewayRoutePrefix",
3762
+ # },
3763
+ # },
3764
+ # target: { # required
3765
+ # virtual_service: { # required
3766
+ # virtual_service_name: "ResourceName", # required
3767
+ # },
3768
+ # },
3769
+ # },
3770
+ # match: { # required
3771
+ # headers: [
3772
+ # {
3773
+ # invert: false,
3774
+ # match: {
3775
+ # exact: "HeaderMatch",
3776
+ # prefix: "HeaderMatch",
3777
+ # range: {
3778
+ # end: 1, # required
3779
+ # start: 1, # required
3780
+ # },
3781
+ # regex: "HeaderMatch",
3782
+ # suffix: "HeaderMatch",
3783
+ # },
3784
+ # name: "HeaderName", # required
3785
+ # },
3786
+ # ],
3787
+ # hostname: {
3788
+ # exact: "ExactHostName",
3789
+ # suffix: "SuffixHostname",
3790
+ # },
3791
+ # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
3792
+ # path: {
3793
+ # exact: "HttpPathExact",
3794
+ # regex: "HttpPathRegex",
3795
+ # },
3796
+ # prefix: "String",
3797
+ # query_parameters: [
3798
+ # {
3799
+ # match: {
3800
+ # exact: "String",
3801
+ # },
3802
+ # name: "QueryParameterName", # required
3803
+ # },
3804
+ # ],
3805
+ # },
3806
+ # }
3807
+ #
3808
+ # @!attribute [rw] action
3809
+ # An object that represents the action to take if a match is
3810
+ # determined.
3811
+ # @return [Types::HttpGatewayRouteAction]
3812
+ #
3813
+ # @!attribute [rw] match
3814
+ # An object that represents the criteria for determining a request
3815
+ # match.
3816
+ # @return [Types::HttpGatewayRouteMatch]
3817
+ #
3818
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpGatewayRoute AWS API Documentation
3819
+ #
3820
+ class HttpGatewayRoute < Struct.new(
3821
+ :action,
3822
+ :match)
3823
+ SENSITIVE = []
3824
+ include Aws::Structure
3825
+ end
3826
+
3827
+ # An object that represents the action to take if a match is determined.
3828
+ #
3829
+ # @note When making an API call, you may pass HttpGatewayRouteAction
3830
+ # data as a hash:
3831
+ #
3832
+ # {
3833
+ # rewrite: {
3834
+ # hostname: {
3835
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
3836
+ # },
3837
+ # path: {
3838
+ # exact: "HttpPathExact",
3839
+ # },
3840
+ # prefix: {
3841
+ # default_prefix: "ENABLED", # accepts ENABLED, DISABLED
3842
+ # value: "HttpGatewayRoutePrefix",
3843
+ # },
3844
+ # },
3845
+ # target: { # required
3846
+ # virtual_service: { # required
3847
+ # virtual_service_name: "ResourceName", # required
3848
+ # },
3849
+ # },
3850
+ # }
3851
+ #
3852
+ # @!attribute [rw] rewrite
3853
+ # The gateway route action to rewrite.
3854
+ # @return [Types::HttpGatewayRouteRewrite]
3855
+ #
3856
+ # @!attribute [rw] target
3857
+ # An object that represents the target that traffic is routed to when
3858
+ # a request matches the gateway route.
3859
+ # @return [Types::GatewayRouteTarget]
3860
+ #
3861
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpGatewayRouteAction AWS API Documentation
3862
+ #
3863
+ class HttpGatewayRouteAction < Struct.new(
3864
+ :rewrite,
3865
+ :target)
3866
+ SENSITIVE = []
3867
+ include Aws::Structure
3868
+ end
3869
+
3870
+ # An object that represents the HTTP header in the gateway route.
3871
+ #
3872
+ # @note When making an API call, you may pass HttpGatewayRouteHeader
3873
+ # data as a hash:
3874
+ #
3875
+ # {
3876
+ # invert: false,
3877
+ # match: {
3878
+ # exact: "HeaderMatch",
3879
+ # prefix: "HeaderMatch",
3880
+ # range: {
3881
+ # end: 1, # required
3882
+ # start: 1, # required
3883
+ # },
3884
+ # regex: "HeaderMatch",
3885
+ # suffix: "HeaderMatch",
3886
+ # },
3887
+ # name: "HeaderName", # required
3888
+ # }
3889
+ #
3890
+ # @!attribute [rw] invert
3891
+ # Specify `True` to match anything except the match criteria. The
3892
+ # default value is `False`.
3893
+ # @return [Boolean]
3894
+ #
3895
+ # @!attribute [rw] match
3896
+ # An object that represents the method and value to match with the
3897
+ # header value sent in a request. Specify one match method.
3898
+ # @return [Types::HeaderMatchMethod]
3899
+ #
3900
+ # @!attribute [rw] name
3901
+ # A name for the HTTP header in the gateway route that will be matched
3902
+ # on.
3903
+ # @return [String]
3904
+ #
3905
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpGatewayRouteHeader AWS API Documentation
3906
+ #
3907
+ class HttpGatewayRouteHeader < Struct.new(
3908
+ :invert,
3909
+ :match,
3910
+ :name)
3911
+ SENSITIVE = []
3912
+ include Aws::Structure
3913
+ end
3914
+
3915
+ # An object that represents the criteria for determining a request
3916
+ # match.
3917
+ #
3918
+ # @note When making an API call, you may pass HttpGatewayRouteMatch
3919
+ # data as a hash:
3920
+ #
3921
+ # {
3922
+ # headers: [
3923
+ # {
3924
+ # invert: false,
3925
+ # match: {
3926
+ # exact: "HeaderMatch",
3927
+ # prefix: "HeaderMatch",
3928
+ # range: {
3929
+ # end: 1, # required
3930
+ # start: 1, # required
3931
+ # },
3932
+ # regex: "HeaderMatch",
3933
+ # suffix: "HeaderMatch",
3934
+ # },
3935
+ # name: "HeaderName", # required
3936
+ # },
3937
+ # ],
3938
+ # hostname: {
3939
+ # exact: "ExactHostName",
3940
+ # suffix: "SuffixHostname",
3941
+ # },
3942
+ # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
3943
+ # path: {
3944
+ # exact: "HttpPathExact",
3945
+ # regex: "HttpPathRegex",
3946
+ # },
3947
+ # prefix: "String",
3948
+ # query_parameters: [
3949
+ # {
3950
+ # match: {
3951
+ # exact: "String",
3952
+ # },
3953
+ # name: "QueryParameterName", # required
3954
+ # },
3955
+ # ],
3956
+ # }
3957
+ #
3958
+ # @!attribute [rw] headers
3959
+ # The client request headers to match on.
3960
+ # @return [Array<Types::HttpGatewayRouteHeader>]
3961
+ #
3962
+ # @!attribute [rw] hostname
3963
+ # The host name to match on.
3964
+ # @return [Types::GatewayRouteHostnameMatch]
3965
+ #
3966
+ # @!attribute [rw] method
3967
+ # The method to match on.
3968
+ # @return [String]
3969
+ #
3970
+ # @!attribute [rw] path
3971
+ # The path to match on.
3972
+ # @return [Types::HttpPathMatch]
3973
+ #
3974
+ # @!attribute [rw] prefix
3975
+ # Specifies the path to match requests with. This parameter must
3976
+ # always start with `/`, which by itself matches all requests to the
3977
+ # virtual service name. You can also match for path-based routing of
3978
+ # requests. For example, if your virtual service name is
3979
+ # `my-service.local` and you want the route to match requests to
3980
+ # `my-service.local/metrics`, your prefix should be `/metrics`.
3981
+ # @return [String]
3982
+ #
3983
+ # @!attribute [rw] query_parameters
3984
+ # The query parameter to match on.
3985
+ # @return [Array<Types::HttpQueryParameter>]
3986
+ #
3987
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpGatewayRouteMatch AWS API Documentation
3988
+ #
3989
+ class HttpGatewayRouteMatch < Struct.new(
3990
+ :headers,
3991
+ :hostname,
3992
+ :method,
3993
+ :path,
3994
+ :prefix,
3995
+ :query_parameters)
3996
+ SENSITIVE = []
3997
+ include Aws::Structure
3998
+ end
3999
+
4000
+ # An object that represents the path to rewrite.
4001
+ #
4002
+ # @note When making an API call, you may pass HttpGatewayRoutePathRewrite
4003
+ # data as a hash:
4004
+ #
4005
+ # {
4006
+ # exact: "HttpPathExact",
4007
+ # }
4008
+ #
4009
+ # @!attribute [rw] exact
4010
+ # The exact path to rewrite.
4011
+ # @return [String]
4012
+ #
4013
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpGatewayRoutePathRewrite AWS API Documentation
3048
4014
  #
4015
+ class HttpGatewayRoutePathRewrite < Struct.new(
4016
+ :exact)
4017
+ SENSITIVE = []
4018
+ include Aws::Structure
4019
+ end
4020
+
4021
+ # An object representing the beginning characters of the route to
4022
+ # rewrite.
3049
4023
  #
4024
+ # @note When making an API call, you may pass HttpGatewayRoutePrefixRewrite
4025
+ # data as a hash:
3050
4026
  #
3051
- # [1]: https://github.com/grpc/grpc/blob/master/doc/health-checking.md
3052
- # @return [String]
4027
+ # {
4028
+ # default_prefix: "ENABLED", # accepts ENABLED, DISABLED
4029
+ # value: "HttpGatewayRoutePrefix",
4030
+ # }
3053
4031
  #
3054
- # @!attribute [rw] timeout_millis
3055
- # The amount of time to wait when receiving a response from the health
3056
- # check, in milliseconds.
3057
- # @return [Integer]
4032
+ # @!attribute [rw] default_prefix
4033
+ # The default prefix used to replace the incoming route prefix when
4034
+ # rewritten.
4035
+ # @return [String]
3058
4036
  #
3059
- # @!attribute [rw] unhealthy_threshold
3060
- # The number of consecutive failed health checks that must occur
3061
- # before declaring a virtual node unhealthy.
3062
- # @return [Integer]
4037
+ # @!attribute [rw] value
4038
+ # The value used to replace the incoming route prefix when rewritten.
4039
+ # @return [String]
3063
4040
  #
3064
- # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HealthCheckPolicy AWS API Documentation
4041
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpGatewayRoutePrefixRewrite AWS API Documentation
3065
4042
  #
3066
- class HealthCheckPolicy < Struct.new(
3067
- :healthy_threshold,
3068
- :interval_millis,
3069
- :path,
3070
- :port,
3071
- :protocol,
3072
- :timeout_millis,
3073
- :unhealthy_threshold)
4043
+ class HttpGatewayRoutePrefixRewrite < Struct.new(
4044
+ :default_prefix,
4045
+ :value)
3074
4046
  SENSITIVE = []
3075
4047
  include Aws::Structure
3076
4048
  end
3077
4049
 
3078
- # An object that represents an HTTP gateway route.
4050
+ # An object representing the gateway route to rewrite.
3079
4051
  #
3080
- # @note When making an API call, you may pass HttpGatewayRoute
4052
+ # @note When making an API call, you may pass HttpGatewayRouteRewrite
3081
4053
  # data as a hash:
3082
4054
  #
3083
4055
  # {
3084
- # action: { # required
3085
- # target: { # required
3086
- # virtual_service: { # required
3087
- # virtual_service_name: "ResourceName", # required
3088
- # },
3089
- # },
4056
+ # hostname: {
4057
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
3090
4058
  # },
3091
- # match: { # required
3092
- # prefix: "String", # required
4059
+ # path: {
4060
+ # exact: "HttpPathExact",
4061
+ # },
4062
+ # prefix: {
4063
+ # default_prefix: "ENABLED", # accepts ENABLED, DISABLED
4064
+ # value: "HttpGatewayRoutePrefix",
3093
4065
  # },
3094
4066
  # }
3095
4067
  #
3096
- # @!attribute [rw] action
3097
- # An object that represents the action to take if a match is
3098
- # determined.
3099
- # @return [Types::HttpGatewayRouteAction]
4068
+ # @!attribute [rw] hostname
4069
+ # The host name to rewrite.
4070
+ # @return [Types::GatewayRouteHostnameRewrite]
3100
4071
  #
3101
- # @!attribute [rw] match
3102
- # An object that represents the criteria for determining a request
3103
- # match.
3104
- # @return [Types::HttpGatewayRouteMatch]
4072
+ # @!attribute [rw] path
4073
+ # The path to rewrite.
4074
+ # @return [Types::HttpGatewayRoutePathRewrite]
3105
4075
  #
3106
- # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpGatewayRoute AWS API Documentation
4076
+ # @!attribute [rw] prefix
4077
+ # The specified beginning characters to rewrite.
4078
+ # @return [Types::HttpGatewayRoutePrefixRewrite]
3107
4079
  #
3108
- class HttpGatewayRoute < Struct.new(
3109
- :action,
3110
- :match)
4080
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpGatewayRouteRewrite AWS API Documentation
4081
+ #
4082
+ class HttpGatewayRouteRewrite < Struct.new(
4083
+ :hostname,
4084
+ :path,
4085
+ :prefix)
3111
4086
  SENSITIVE = []
3112
4087
  include Aws::Structure
3113
4088
  end
3114
4089
 
3115
- # An object that represents the action to take if a match is determined.
4090
+ # An object representing the path to match in the request.
3116
4091
  #
3117
- # @note When making an API call, you may pass HttpGatewayRouteAction
4092
+ # @note When making an API call, you may pass HttpPathMatch
3118
4093
  # data as a hash:
3119
4094
  #
3120
4095
  # {
3121
- # target: { # required
3122
- # virtual_service: { # required
3123
- # virtual_service_name: "ResourceName", # required
3124
- # },
3125
- # },
4096
+ # exact: "HttpPathExact",
4097
+ # regex: "HttpPathRegex",
3126
4098
  # }
3127
4099
  #
3128
- # @!attribute [rw] target
3129
- # An object that represents the target that traffic is routed to when
3130
- # a request matches the gateway route.
3131
- # @return [Types::GatewayRouteTarget]
4100
+ # @!attribute [rw] exact
4101
+ # The exact path to match on.
4102
+ # @return [String]
3132
4103
  #
3133
- # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpGatewayRouteAction AWS API Documentation
4104
+ # @!attribute [rw] regex
4105
+ # The regex used to match the path.
4106
+ # @return [String]
3134
4107
  #
3135
- class HttpGatewayRouteAction < Struct.new(
3136
- :target)
4108
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpPathMatch AWS API Documentation
4109
+ #
4110
+ class HttpPathMatch < Struct.new(
4111
+ :exact,
4112
+ :regex)
3137
4113
  SENSITIVE = []
3138
4114
  include Aws::Structure
3139
4115
  end
3140
4116
 
3141
- # An object that represents the criteria for determining a request
3142
- # match.
4117
+ # An object that represents the query parameter in the request.
3143
4118
  #
3144
- # @note When making an API call, you may pass HttpGatewayRouteMatch
4119
+ # @note When making an API call, you may pass HttpQueryParameter
3145
4120
  # data as a hash:
3146
4121
  #
3147
4122
  # {
3148
- # prefix: "String", # required
4123
+ # match: {
4124
+ # exact: "String",
4125
+ # },
4126
+ # name: "QueryParameterName", # required
3149
4127
  # }
3150
4128
  #
3151
- # @!attribute [rw] prefix
3152
- # Specifies the path to match requests with. This parameter must
3153
- # always start with `/`, which by itself matches all requests to the
3154
- # virtual service name. You can also match for path-based routing of
3155
- # requests. For example, if your virtual service name is
3156
- # `my-service.local` and you want the route to match requests to
3157
- # `my-service.local/metrics`, your prefix should be `/metrics`.
4129
+ # @!attribute [rw] match
4130
+ # The query parameter to match on.
4131
+ # @return [Types::QueryParameterMatch]
4132
+ #
4133
+ # @!attribute [rw] name
4134
+ # A name for the query parameter that will be matched on.
3158
4135
  # @return [String]
3159
4136
  #
3160
- # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpGatewayRouteMatch AWS API Documentation
4137
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpQueryParameter AWS API Documentation
3161
4138
  #
3162
- class HttpGatewayRouteMatch < Struct.new(
3163
- :prefix)
4139
+ class HttpQueryParameter < Struct.new(
4140
+ :match,
4141
+ :name)
3164
4142
  SENSITIVE = []
3165
4143
  include Aws::Structure
3166
4144
  end
3167
4145
 
3168
4146
  # An object that represents a retry policy. Specify at least one value
3169
4147
  # for at least one of the types of `RetryEvents`, a value for
3170
- # `maxRetries`, and a value for `perRetryTimeout`.
4148
+ # `maxRetries`, and a value for `perRetryTimeout`. Both `server-error`
4149
+ # and `gateway-error` under `httpRetryEvents` include the Envoy `reset`
4150
+ # policy. For more information on the `reset` policy, see the [Envoy
4151
+ # documentation][1].
4152
+ #
4153
+ #
4154
+ #
4155
+ # [1]: https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-on
3171
4156
  #
3172
4157
  # @note When making an API call, you may pass HttpRetryPolicy
3173
4158
  # data as a hash:
@@ -3252,7 +4237,19 @@ module Aws::AppMesh
3252
4237
  # },
3253
4238
  # ],
3254
4239
  # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
3255
- # prefix: "String", # required
4240
+ # path: {
4241
+ # exact: "HttpPathExact",
4242
+ # regex: "HttpPathRegex",
4243
+ # },
4244
+ # prefix: "String",
4245
+ # query_parameters: [
4246
+ # {
4247
+ # match: {
4248
+ # exact: "String",
4249
+ # },
4250
+ # name: "QueryParameterName", # required
4251
+ # },
4252
+ # ],
3256
4253
  # scheme: "http", # accepts http, https
3257
4254
  # },
3258
4255
  # retry_policy: {
@@ -3400,18 +4397,34 @@ module Aws::AppMesh
3400
4397
  # },
3401
4398
  # ],
3402
4399
  # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
3403
- # prefix: "String", # required
4400
+ # path: {
4401
+ # exact: "HttpPathExact",
4402
+ # regex: "HttpPathRegex",
4403
+ # },
4404
+ # prefix: "String",
4405
+ # query_parameters: [
4406
+ # {
4407
+ # match: {
4408
+ # exact: "String",
4409
+ # },
4410
+ # name: "QueryParameterName", # required
4411
+ # },
4412
+ # ],
3404
4413
  # scheme: "http", # accepts http, https
3405
4414
  # }
3406
4415
  #
3407
4416
  # @!attribute [rw] headers
3408
- # An object that represents the client request headers to match on.
4417
+ # The client request headers to match on.
3409
4418
  # @return [Array<Types::HttpRouteHeader>]
3410
4419
  #
3411
4420
  # @!attribute [rw] method
3412
4421
  # The client request method to match on. Specify only one.
3413
4422
  # @return [String]
3414
4423
  #
4424
+ # @!attribute [rw] path
4425
+ # The client request path to match on.
4426
+ # @return [Types::HttpPathMatch]
4427
+ #
3415
4428
  # @!attribute [rw] prefix
3416
4429
  # Specifies the path to match requests with. This parameter must
3417
4430
  # always start with `/`, which by itself matches all requests to the
@@ -3421,8 +4434,13 @@ module Aws::AppMesh
3421
4434
  # `my-service.local/metrics`, your prefix should be `/metrics`.
3422
4435
  # @return [String]
3423
4436
  #
4437
+ # @!attribute [rw] query_parameters
4438
+ # The client request query parameters to match on.
4439
+ # @return [Array<Types::HttpQueryParameter>]
4440
+ #
3424
4441
  # @!attribute [rw] scheme
3425
- # The client request scheme to match on. Specify only one.
4442
+ # The client request scheme to match on. Specify only one. Applicable
4443
+ # only for HTTP2 routes.
3426
4444
  # @return [String]
3427
4445
  #
3428
4446
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpRouteMatch AWS API Documentation
@@ -3430,7 +4448,9 @@ module Aws::AppMesh
3430
4448
  class HttpRouteMatch < Struct.new(
3431
4449
  :headers,
3432
4450
  :method,
4451
+ :path,
3433
4452
  :prefix,
4453
+ :query_parameters,
3434
4454
  :scheme)
3435
4455
  SENSITIVE = []
3436
4456
  include Aws::Structure
@@ -4240,8 +5260,26 @@ module Aws::AppMesh
4240
5260
  # certificate_chain: "FilePath", # required
4241
5261
  # private_key: "FilePath", # required
4242
5262
  # },
5263
+ # sds: {
5264
+ # secret_name: "SdsSecretName", # required
5265
+ # },
4243
5266
  # },
4244
5267
  # mode: "STRICT", # required, accepts STRICT, PERMISSIVE, DISABLED
5268
+ # validation: {
5269
+ # subject_alternative_names: {
5270
+ # match: { # required
5271
+ # exact: ["SubjectAlternativeName"], # required
5272
+ # },
5273
+ # },
5274
+ # trust: { # required
5275
+ # file: {
5276
+ # certificate_chain: "FilePath", # required
5277
+ # },
5278
+ # sds: {
5279
+ # secret_name: "SdsSecretName", # required
5280
+ # },
5281
+ # },
5282
+ # },
4245
5283
  # },
4246
5284
  # }
4247
5285
  #
@@ -4285,47 +5323,9 @@ module Aws::AppMesh
4285
5323
 
4286
5324
  # An object that represents timeouts for different protocols.
4287
5325
  #
4288
- # @note When making an API call, you may pass ListenerTimeout
4289
- # data as a hash:
5326
+ # @note ListenerTimeout is a union - when making an API calls you must set exactly one of the members.
4290
5327
  #
4291
- # {
4292
- # grpc: {
4293
- # idle: {
4294
- # unit: "s", # accepts s, ms
4295
- # value: 1,
4296
- # },
4297
- # per_request: {
4298
- # unit: "s", # accepts s, ms
4299
- # value: 1,
4300
- # },
4301
- # },
4302
- # http: {
4303
- # idle: {
4304
- # unit: "s", # accepts s, ms
4305
- # value: 1,
4306
- # },
4307
- # per_request: {
4308
- # unit: "s", # accepts s, ms
4309
- # value: 1,
4310
- # },
4311
- # },
4312
- # http2: {
4313
- # idle: {
4314
- # unit: "s", # accepts s, ms
4315
- # value: 1,
4316
- # },
4317
- # per_request: {
4318
- # unit: "s", # accepts s, ms
4319
- # value: 1,
4320
- # },
4321
- # },
4322
- # tcp: {
4323
- # idle: {
4324
- # unit: "s", # accepts s, ms
4325
- # value: 1,
4326
- # },
4327
- # },
4328
- # }
5328
+ # @note ListenerTimeout is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of ListenerTimeout corresponding to the set member.
4329
5329
  #
4330
5330
  # @!attribute [rw] grpc
4331
5331
  # An object that represents types of timeouts.
@@ -4349,9 +5349,17 @@ module Aws::AppMesh
4349
5349
  :grpc,
4350
5350
  :http,
4351
5351
  :http2,
4352
- :tcp)
5352
+ :tcp,
5353
+ :unknown)
4353
5354
  SENSITIVE = []
4354
5355
  include Aws::Structure
5356
+ include Aws::Structure::Union
5357
+
5358
+ class Grpc < ListenerTimeout; end
5359
+ class Http < ListenerTimeout; end
5360
+ class Http2 < ListenerTimeout; end
5361
+ class Tcp < ListenerTimeout; end
5362
+ class Unknown < ListenerTimeout; end
4355
5363
  end
4356
5364
 
4357
5365
  # An object that represents the Transport Layer Security (TLS)
@@ -4369,13 +5377,31 @@ module Aws::AppMesh
4369
5377
  # certificate_chain: "FilePath", # required
4370
5378
  # private_key: "FilePath", # required
4371
5379
  # },
5380
+ # sds: {
5381
+ # secret_name: "SdsSecretName", # required
5382
+ # },
4372
5383
  # },
4373
5384
  # mode: "STRICT", # required, accepts STRICT, PERMISSIVE, DISABLED
5385
+ # validation: {
5386
+ # subject_alternative_names: {
5387
+ # match: { # required
5388
+ # exact: ["SubjectAlternativeName"], # required
5389
+ # },
5390
+ # },
5391
+ # trust: { # required
5392
+ # file: {
5393
+ # certificate_chain: "FilePath", # required
5394
+ # },
5395
+ # sds: {
5396
+ # secret_name: "SdsSecretName", # required
5397
+ # },
5398
+ # },
5399
+ # },
4374
5400
  # }
4375
5401
  #
4376
5402
  # @!attribute [rw] certificate
4377
- # A reference to an object that represents a listener's TLS
4378
- # certificate.
5403
+ # A reference to an object that represents a listener's Transport
5404
+ # Layer Security (TLS) certificate.
4379
5405
  # @return [Types::ListenerTlsCertificate]
4380
5406
  #
4381
5407
  # @!attribute [rw] mode
@@ -4389,11 +5415,17 @@ module Aws::AppMesh
4389
5415
  # * ****DISABLED – Listener only accepts connections without TLS.
4390
5416
  # @return [String]
4391
5417
  #
5418
+ # @!attribute [rw] validation
5419
+ # A reference to an object that represents a listener's Transport
5420
+ # Layer Security (TLS) validation context.
5421
+ # @return [Types::ListenerTlsValidationContext]
5422
+ #
4392
5423
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListenerTls AWS API Documentation
4393
5424
  #
4394
5425
  class ListenerTls < Struct.new(
4395
5426
  :certificate,
4396
- :mode)
5427
+ :mode,
5428
+ :validation)
4397
5429
  SENSITIVE = []
4398
5430
  include Aws::Structure
4399
5431
  end
@@ -4429,18 +5461,9 @@ module Aws::AppMesh
4429
5461
  # An object that represents a listener's Transport Layer Security (TLS)
4430
5462
  # certificate.
4431
5463
  #
4432
- # @note When making an API call, you may pass ListenerTlsCertificate
4433
- # data as a hash:
5464
+ # @note ListenerTlsCertificate is a union - when making an API calls you must set exactly one of the members.
4434
5465
  #
4435
- # {
4436
- # acm: {
4437
- # certificate_arn: "Arn", # required
4438
- # },
4439
- # file: {
4440
- # certificate_chain: "FilePath", # required
4441
- # private_key: "FilePath", # required
4442
- # },
4443
- # }
5466
+ # @note ListenerTlsCertificate is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of ListenerTlsCertificate corresponding to the set member.
4444
5467
  #
4445
5468
  # @!attribute [rw] acm
4446
5469
  # A reference to an object that represents an AWS Certicate Manager
@@ -4451,13 +5474,26 @@ module Aws::AppMesh
4451
5474
  # A reference to an object that represents a local file certificate.
4452
5475
  # @return [Types::ListenerTlsFileCertificate]
4453
5476
  #
5477
+ # @!attribute [rw] sds
5478
+ # A reference to an object that represents a listener's Secret
5479
+ # Discovery Service certificate.
5480
+ # @return [Types::ListenerTlsSdsCertificate]
5481
+ #
4454
5482
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListenerTlsCertificate AWS API Documentation
4455
5483
  #
4456
5484
  class ListenerTlsCertificate < Struct.new(
4457
5485
  :acm,
4458
- :file)
5486
+ :file,
5487
+ :sds,
5488
+ :unknown)
4459
5489
  SENSITIVE = []
4460
5490
  include Aws::Structure
5491
+ include Aws::Structure::Union
5492
+
5493
+ class Acm < ListenerTlsCertificate; end
5494
+ class File < ListenerTlsCertificate; end
5495
+ class Sds < ListenerTlsCertificate; end
5496
+ class Unknown < ListenerTlsCertificate; end
4461
5497
  end
4462
5498
 
4463
5499
  # An object that represents a local file certificate. The certificate
@@ -4469,30 +5505,135 @@ module Aws::AppMesh
4469
5505
  #
4470
5506
  # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites
4471
5507
  #
4472
- # @note When making an API call, you may pass ListenerTlsFileCertificate
4473
- # data as a hash:
5508
+ # @note When making an API call, you may pass ListenerTlsFileCertificate
5509
+ # data as a hash:
5510
+ #
5511
+ # {
5512
+ # certificate_chain: "FilePath", # required
5513
+ # private_key: "FilePath", # required
5514
+ # }
5515
+ #
5516
+ # @!attribute [rw] certificate_chain
5517
+ # The certificate chain for the certificate.
5518
+ # @return [String]
5519
+ #
5520
+ # @!attribute [rw] private_key
5521
+ # The private key for a certificate stored on the file system of the
5522
+ # virtual node that the proxy is running on.
5523
+ # @return [String]
5524
+ #
5525
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListenerTlsFileCertificate AWS API Documentation
5526
+ #
5527
+ class ListenerTlsFileCertificate < Struct.new(
5528
+ :certificate_chain,
5529
+ :private_key)
5530
+ SENSITIVE = []
5531
+ include Aws::Structure
5532
+ end
5533
+
5534
+ # An object that represents the listener's Secret Discovery Service
5535
+ # certificate. The proxy must be configured with a local SDS provider
5536
+ # via a Unix Domain Socket. See App Mesh [TLS documentation][1] for more
5537
+ # info.
5538
+ #
5539
+ #
5540
+ #
5541
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html
5542
+ #
5543
+ # @note When making an API call, you may pass ListenerTlsSdsCertificate
5544
+ # data as a hash:
5545
+ #
5546
+ # {
5547
+ # secret_name: "SdsSecretName", # required
5548
+ # }
5549
+ #
5550
+ # @!attribute [rw] secret_name
5551
+ # A reference to an object that represents the name of the secret
5552
+ # requested from the Secret Discovery Service provider representing
5553
+ # Transport Layer Security (TLS) materials like a certificate or
5554
+ # certificate chain.
5555
+ # @return [String]
5556
+ #
5557
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListenerTlsSdsCertificate AWS API Documentation
5558
+ #
5559
+ class ListenerTlsSdsCertificate < Struct.new(
5560
+ :secret_name)
5561
+ SENSITIVE = []
5562
+ include Aws::Structure
5563
+ end
5564
+
5565
+ # An object that represents a listener's Transport Layer Security (TLS)
5566
+ # validation context.
5567
+ #
5568
+ # @note When making an API call, you may pass ListenerTlsValidationContext
5569
+ # data as a hash:
5570
+ #
5571
+ # {
5572
+ # subject_alternative_names: {
5573
+ # match: { # required
5574
+ # exact: ["SubjectAlternativeName"], # required
5575
+ # },
5576
+ # },
5577
+ # trust: { # required
5578
+ # file: {
5579
+ # certificate_chain: "FilePath", # required
5580
+ # },
5581
+ # sds: {
5582
+ # secret_name: "SdsSecretName", # required
5583
+ # },
5584
+ # },
5585
+ # }
5586
+ #
5587
+ # @!attribute [rw] subject_alternative_names
5588
+ # A reference to an object that represents the SANs for a listener's
5589
+ # Transport Layer Security (TLS) validation context.
5590
+ # @return [Types::SubjectAlternativeNames]
5591
+ #
5592
+ # @!attribute [rw] trust
5593
+ # A reference to where to retrieve the trust chain when validating a
5594
+ # peer’s Transport Layer Security (TLS) certificate.
5595
+ # @return [Types::ListenerTlsValidationContextTrust]
5596
+ #
5597
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListenerTlsValidationContext AWS API Documentation
5598
+ #
5599
+ class ListenerTlsValidationContext < Struct.new(
5600
+ :subject_alternative_names,
5601
+ :trust)
5602
+ SENSITIVE = []
5603
+ include Aws::Structure
5604
+ end
5605
+
5606
+ # An object that represents a listener's Transport Layer Security (TLS)
5607
+ # validation context trust.
5608
+ #
5609
+ # @note ListenerTlsValidationContextTrust is a union - when making an API calls you must set exactly one of the members.
4474
5610
  #
4475
- # {
4476
- # certificate_chain: "FilePath", # required
4477
- # private_key: "FilePath", # required
4478
- # }
5611
+ # @note ListenerTlsValidationContextTrust is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of ListenerTlsValidationContextTrust corresponding to the set member.
4479
5612
  #
4480
- # @!attribute [rw] certificate_chain
4481
- # The certificate chain for the certificate.
4482
- # @return [String]
5613
+ # @!attribute [rw] file
5614
+ # An object that represents a Transport Layer Security (TLS)
5615
+ # validation context trust for a local file.
5616
+ # @return [Types::TlsValidationContextFileTrust]
4483
5617
  #
4484
- # @!attribute [rw] private_key
4485
- # The private key for a certificate stored on the file system of the
4486
- # virtual node that the proxy is running on.
4487
- # @return [String]
5618
+ # @!attribute [rw] sds
5619
+ # A reference to an object that represents a listener's Transport
5620
+ # Layer Security (TLS) Secret Discovery Service validation context
5621
+ # trust.
5622
+ # @return [Types::TlsValidationContextSdsTrust]
4488
5623
  #
4489
- # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListenerTlsFileCertificate AWS API Documentation
5624
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListenerTlsValidationContextTrust AWS API Documentation
4490
5625
  #
4491
- class ListenerTlsFileCertificate < Struct.new(
4492
- :certificate_chain,
4493
- :private_key)
5626
+ class ListenerTlsValidationContextTrust < Struct.new(
5627
+ :file,
5628
+ :sds,
5629
+ :unknown)
4494
5630
  SENSITIVE = []
4495
5631
  include Aws::Structure
5632
+ include Aws::Structure::Union
5633
+
5634
+ class File < ListenerTlsValidationContextTrust; end
5635
+ class Sds < ListenerTlsValidationContextTrust; end
5636
+ class Unknown < ListenerTlsValidationContextTrust; end
4496
5637
  end
4497
5638
 
4498
5639
  # An object that represents the logging information for a virtual node.
@@ -4767,6 +5908,27 @@ module Aws::AppMesh
4767
5908
  include Aws::Structure
4768
5909
  end
4769
5910
 
5911
+ # An object representing the query parameter to match.
5912
+ #
5913
+ # @note When making an API call, you may pass QueryParameterMatch
5914
+ # data as a hash:
5915
+ #
5916
+ # {
5917
+ # exact: "String",
5918
+ # }
5919
+ #
5920
+ # @!attribute [rw] exact
5921
+ # The exact query parameter to match on.
5922
+ # @return [String]
5923
+ #
5924
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/QueryParameterMatch AWS API Documentation
5925
+ #
5926
+ class QueryParameterMatch < Struct.new(
5927
+ :exact)
5928
+ SENSITIVE = []
5929
+ include Aws::Structure
5930
+ end
5931
+
4770
5932
  # You can't delete the specified resource because it's in use or
4771
5933
  # required by another resource.
4772
5934
  #
@@ -5036,7 +6198,19 @@ module Aws::AppMesh
5036
6198
  # },
5037
6199
  # ],
5038
6200
  # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
5039
- # prefix: "String", # required
6201
+ # path: {
6202
+ # exact: "HttpPathExact",
6203
+ # regex: "HttpPathRegex",
6204
+ # },
6205
+ # prefix: "String",
6206
+ # query_parameters: [
6207
+ # {
6208
+ # match: {
6209
+ # exact: "String",
6210
+ # },
6211
+ # name: "QueryParameterName", # required
6212
+ # },
6213
+ # ],
5040
6214
  # scheme: "http", # accepts http, https
5041
6215
  # },
5042
6216
  # retry_policy: {
@@ -5086,7 +6260,19 @@ module Aws::AppMesh
5086
6260
  # },
5087
6261
  # ],
5088
6262
  # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
5089
- # prefix: "String", # required
6263
+ # path: {
6264
+ # exact: "HttpPathExact",
6265
+ # regex: "HttpPathRegex",
6266
+ # },
6267
+ # prefix: "String",
6268
+ # query_parameters: [
6269
+ # {
6270
+ # match: {
6271
+ # exact: "String",
6272
+ # },
6273
+ # name: "QueryParameterName", # required
6274
+ # },
6275
+ # ],
5090
6276
  # scheme: "http", # accepts http, https
5091
6277
  # },
5092
6278
  # retry_policy: {
@@ -5178,27 +6364,12 @@ module Aws::AppMesh
5178
6364
  # An object that represents the service discovery information for a
5179
6365
  # virtual node.
5180
6366
  #
5181
- # @note When making an API call, you may pass ServiceDiscovery
5182
- # data as a hash:
6367
+ # @note ServiceDiscovery is a union - when making an API calls you must set exactly one of the members.
5183
6368
  #
5184
- # {
5185
- # aws_cloud_map: {
5186
- # attributes: [
5187
- # {
5188
- # key: "AwsCloudMapInstanceAttributeKey", # required
5189
- # value: "AwsCloudMapInstanceAttributeValue", # required
5190
- # },
5191
- # ],
5192
- # namespace_name: "AwsCloudMapName", # required
5193
- # service_name: "AwsCloudMapName", # required
5194
- # },
5195
- # dns: {
5196
- # hostname: "Hostname", # required
5197
- # },
5198
- # }
6369
+ # @note ServiceDiscovery is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of ServiceDiscovery corresponding to the set member.
5199
6370
  #
5200
6371
  # @!attribute [rw] aws_cloud_map
5201
- # Specifies any AWS Cloud Map information for the virtual node.
6372
+ # Specifies any Cloud Map information for the virtual node.
5202
6373
  # @return [Types::AwsCloudMapServiceDiscovery]
5203
6374
  #
5204
6375
  # @!attribute [rw] dns
@@ -5209,9 +6380,15 @@ module Aws::AppMesh
5209
6380
  #
5210
6381
  class ServiceDiscovery < Struct.new(
5211
6382
  :aws_cloud_map,
5212
- :dns)
6383
+ :dns,
6384
+ :unknown)
5213
6385
  SENSITIVE = []
5214
6386
  include Aws::Structure
6387
+ include Aws::Structure::Union
6388
+
6389
+ class AwsCloudMap < ServiceDiscovery; end
6390
+ class Dns < ServiceDiscovery; end
6391
+ class Unknown < ServiceDiscovery; end
5215
6392
  end
5216
6393
 
5217
6394
  # The request has failed due to a temporary failure of the service.
@@ -5227,6 +6404,53 @@ module Aws::AppMesh
5227
6404
  include Aws::Structure
5228
6405
  end
5229
6406
 
6407
+ # An object that represents the methods by which a subject alternative
6408
+ # name on a peer Transport Layer Security (TLS) certificate can be
6409
+ # matched.
6410
+ #
6411
+ # @note When making an API call, you may pass SubjectAlternativeNameMatchers
6412
+ # data as a hash:
6413
+ #
6414
+ # {
6415
+ # exact: ["SubjectAlternativeName"], # required
6416
+ # }
6417
+ #
6418
+ # @!attribute [rw] exact
6419
+ # The values sent must match the specified values exactly.
6420
+ # @return [Array<String>]
6421
+ #
6422
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/SubjectAlternativeNameMatchers AWS API Documentation
6423
+ #
6424
+ class SubjectAlternativeNameMatchers < Struct.new(
6425
+ :exact)
6426
+ SENSITIVE = []
6427
+ include Aws::Structure
6428
+ end
6429
+
6430
+ # An object that represents the subject alternative names secured by the
6431
+ # certificate.
6432
+ #
6433
+ # @note When making an API call, you may pass SubjectAlternativeNames
6434
+ # data as a hash:
6435
+ #
6436
+ # {
6437
+ # match: { # required
6438
+ # exact: ["SubjectAlternativeName"], # required
6439
+ # },
6440
+ # }
6441
+ #
6442
+ # @!attribute [rw] match
6443
+ # An object that represents the criteria for determining a SANs match.
6444
+ # @return [Types::SubjectAlternativeNameMatchers]
6445
+ #
6446
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/SubjectAlternativeNames AWS API Documentation
6447
+ #
6448
+ class SubjectAlternativeNames < Struct.new(
6449
+ :match)
6450
+ SENSITIVE = []
6451
+ include Aws::Structure
6452
+ end
6453
+
5230
6454
  # Optional metadata that you apply to a resource to assist with
5231
6455
  # categorization and organization. Each tag consists of a key and an
5232
6456
  # optional value, both of which you define. Tag keys can have a maximum
@@ -5398,13 +6622,18 @@ module Aws::AppMesh
5398
6622
  include Aws::Structure
5399
6623
  end
5400
6624
 
5401
- # An object that represents a Transport Layer Security (TLS) validation
5402
- # context.
6625
+ # An object that represents how the proxy will validate its peer during
6626
+ # Transport Layer Security (TLS) negotiation.
5403
6627
  #
5404
6628
  # @note When making an API call, you may pass TlsValidationContext
5405
6629
  # data as a hash:
5406
6630
  #
5407
6631
  # {
6632
+ # subject_alternative_names: {
6633
+ # match: { # required
6634
+ # exact: ["SubjectAlternativeName"], # required
6635
+ # },
6636
+ # },
5408
6637
  # trust: { # required
5409
6638
  # acm: {
5410
6639
  # certificate_authority_arns: ["Arn"], # required
@@ -5412,24 +6641,33 @@ module Aws::AppMesh
5412
6641
  # file: {
5413
6642
  # certificate_chain: "FilePath", # required
5414
6643
  # },
6644
+ # sds: {
6645
+ # secret_name: "SdsSecretName", # required
6646
+ # },
5415
6647
  # },
5416
6648
  # }
5417
6649
  #
6650
+ # @!attribute [rw] subject_alternative_names
6651
+ # A reference to an object that represents the SANs for a Transport
6652
+ # Layer Security (TLS) validation context.
6653
+ # @return [Types::SubjectAlternativeNames]
6654
+ #
5418
6655
  # @!attribute [rw] trust
5419
- # A reference to an object that represents a TLS validation context
5420
- # trust.
6656
+ # A reference to where to retrieve the trust chain when validating a
6657
+ # peer’s Transport Layer Security (TLS) certificate.
5421
6658
  # @return [Types::TlsValidationContextTrust]
5422
6659
  #
5423
6660
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/TlsValidationContext AWS API Documentation
5424
6661
  #
5425
6662
  class TlsValidationContext < Struct.new(
6663
+ :subject_alternative_names,
5426
6664
  :trust)
5427
6665
  SENSITIVE = []
5428
6666
  include Aws::Structure
5429
6667
  end
5430
6668
 
5431
- # An object that represents a TLS validation context trust for an AWS
5432
- # Certicate Manager (ACM) certificate.
6669
+ # An object that represents a Transport Layer Security (TLS) validation
6670
+ # context trust for an Certificate Manager certificate.
5433
6671
  #
5434
6672
  # @note When making an API call, you may pass TlsValidationContextAcmTrust
5435
6673
  # data as a hash:
@@ -5473,38 +6711,74 @@ module Aws::AppMesh
5473
6711
  include Aws::Structure
5474
6712
  end
5475
6713
 
5476
- # An object that represents a Transport Layer Security (TLS) validation
5477
- # context trust.
6714
+ # An object that represents a Transport Layer Security (TLS) Secret
6715
+ # Discovery Service validation context trust. The proxy must be
6716
+ # configured with a local SDS provider via a Unix Domain Socket. See App
6717
+ # Mesh [TLS documentation][1] for more info.
6718
+ #
6719
+ #
5478
6720
  #
5479
- # @note When making an API call, you may pass TlsValidationContextTrust
6721
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html
6722
+ #
6723
+ # @note When making an API call, you may pass TlsValidationContextSdsTrust
5480
6724
  # data as a hash:
5481
6725
  #
5482
6726
  # {
5483
- # acm: {
5484
- # certificate_authority_arns: ["Arn"], # required
5485
- # },
5486
- # file: {
5487
- # certificate_chain: "FilePath", # required
5488
- # },
6727
+ # secret_name: "SdsSecretName", # required
5489
6728
  # }
5490
6729
  #
6730
+ # @!attribute [rw] secret_name
6731
+ # A reference to an object that represents the name of the secret for
6732
+ # a Transport Layer Security (TLS) Secret Discovery Service validation
6733
+ # context trust.
6734
+ # @return [String]
6735
+ #
6736
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/TlsValidationContextSdsTrust AWS API Documentation
6737
+ #
6738
+ class TlsValidationContextSdsTrust < Struct.new(
6739
+ :secret_name)
6740
+ SENSITIVE = []
6741
+ include Aws::Structure
6742
+ end
6743
+
6744
+ # An object that represents a Transport Layer Security (TLS) validation
6745
+ # context trust.
6746
+ #
6747
+ # @note TlsValidationContextTrust is a union - when making an API calls you must set exactly one of the members.
6748
+ #
6749
+ # @note TlsValidationContextTrust is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of TlsValidationContextTrust corresponding to the set member.
6750
+ #
5491
6751
  # @!attribute [rw] acm
5492
- # A reference to an object that represents a TLS validation context
5493
- # trust for an AWS Certicate Manager (ACM) certificate.
6752
+ # A reference to an object that represents a Transport Layer Security
6753
+ # (TLS) validation context trust for an Certificate Manager
6754
+ # certificate.
5494
6755
  # @return [Types::TlsValidationContextAcmTrust]
5495
6756
  #
5496
6757
  # @!attribute [rw] file
5497
- # An object that represents a TLS validation context trust for a local
5498
- # file.
6758
+ # An object that represents a Transport Layer Security (TLS)
6759
+ # validation context trust for a local file.
5499
6760
  # @return [Types::TlsValidationContextFileTrust]
5500
6761
  #
6762
+ # @!attribute [rw] sds
6763
+ # A reference to an object that represents a Transport Layer Security
6764
+ # (TLS) Secret Discovery Service validation context trust.
6765
+ # @return [Types::TlsValidationContextSdsTrust]
6766
+ #
5501
6767
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/TlsValidationContextTrust AWS API Documentation
5502
6768
  #
5503
6769
  class TlsValidationContextTrust < Struct.new(
5504
6770
  :acm,
5505
- :file)
6771
+ :file,
6772
+ :sds,
6773
+ :unknown)
5506
6774
  SENSITIVE = []
5507
6775
  include Aws::Structure
6776
+ include Aws::Structure::Union
6777
+
6778
+ class Acm < TlsValidationContextTrust; end
6779
+ class File < TlsValidationContextTrust; end
6780
+ class Sds < TlsValidationContextTrust; end
6781
+ class Unknown < TlsValidationContextTrust; end
5508
6782
  end
5509
6783
 
5510
6784
  # The maximum request rate permitted by the App Mesh APIs has been
@@ -5586,6 +6860,11 @@ module Aws::AppMesh
5586
6860
  # spec: { # required
5587
6861
  # grpc_route: {
5588
6862
  # action: { # required
6863
+ # rewrite: {
6864
+ # hostname: {
6865
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
6866
+ # },
6867
+ # },
5589
6868
  # target: { # required
5590
6869
  # virtual_service: { # required
5591
6870
  # virtual_service_name: "ResourceName", # required
@@ -5593,11 +6872,43 @@ module Aws::AppMesh
5593
6872
  # },
5594
6873
  # },
5595
6874
  # match: { # required
6875
+ # hostname: {
6876
+ # exact: "ExactHostName",
6877
+ # suffix: "SuffixHostname",
6878
+ # },
6879
+ # metadata: [
6880
+ # {
6881
+ # invert: false,
6882
+ # match: {
6883
+ # exact: "HeaderMatch",
6884
+ # prefix: "HeaderMatch",
6885
+ # range: {
6886
+ # end: 1, # required
6887
+ # start: 1, # required
6888
+ # },
6889
+ # regex: "HeaderMatch",
6890
+ # suffix: "HeaderMatch",
6891
+ # },
6892
+ # name: "HeaderName", # required
6893
+ # },
6894
+ # ],
5596
6895
  # service_name: "ServiceName",
5597
6896
  # },
5598
6897
  # },
5599
6898
  # http2_route: {
5600
6899
  # action: { # required
6900
+ # rewrite: {
6901
+ # hostname: {
6902
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
6903
+ # },
6904
+ # path: {
6905
+ # exact: "HttpPathExact",
6906
+ # },
6907
+ # prefix: {
6908
+ # default_prefix: "ENABLED", # accepts ENABLED, DISABLED
6909
+ # value: "HttpGatewayRoutePrefix",
6910
+ # },
6911
+ # },
5601
6912
  # target: { # required
5602
6913
  # virtual_service: { # required
5603
6914
  # virtual_service_name: "ResourceName", # required
@@ -5605,11 +6916,56 @@ module Aws::AppMesh
5605
6916
  # },
5606
6917
  # },
5607
6918
  # match: { # required
5608
- # prefix: "String", # required
6919
+ # headers: [
6920
+ # {
6921
+ # invert: false,
6922
+ # match: {
6923
+ # exact: "HeaderMatch",
6924
+ # prefix: "HeaderMatch",
6925
+ # range: {
6926
+ # end: 1, # required
6927
+ # start: 1, # required
6928
+ # },
6929
+ # regex: "HeaderMatch",
6930
+ # suffix: "HeaderMatch",
6931
+ # },
6932
+ # name: "HeaderName", # required
6933
+ # },
6934
+ # ],
6935
+ # hostname: {
6936
+ # exact: "ExactHostName",
6937
+ # suffix: "SuffixHostname",
6938
+ # },
6939
+ # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
6940
+ # path: {
6941
+ # exact: "HttpPathExact",
6942
+ # regex: "HttpPathRegex",
6943
+ # },
6944
+ # prefix: "String",
6945
+ # query_parameters: [
6946
+ # {
6947
+ # match: {
6948
+ # exact: "String",
6949
+ # },
6950
+ # name: "QueryParameterName", # required
6951
+ # },
6952
+ # ],
5609
6953
  # },
5610
6954
  # },
5611
6955
  # http_route: {
5612
6956
  # action: { # required
6957
+ # rewrite: {
6958
+ # hostname: {
6959
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
6960
+ # },
6961
+ # path: {
6962
+ # exact: "HttpPathExact",
6963
+ # },
6964
+ # prefix: {
6965
+ # default_prefix: "ENABLED", # accepts ENABLED, DISABLED
6966
+ # value: "HttpGatewayRoutePrefix",
6967
+ # },
6968
+ # },
5613
6969
  # target: { # required
5614
6970
  # virtual_service: { # required
5615
6971
  # virtual_service_name: "ResourceName", # required
@@ -5617,9 +6973,43 @@ module Aws::AppMesh
5617
6973
  # },
5618
6974
  # },
5619
6975
  # match: { # required
5620
- # prefix: "String", # required
6976
+ # headers: [
6977
+ # {
6978
+ # invert: false,
6979
+ # match: {
6980
+ # exact: "HeaderMatch",
6981
+ # prefix: "HeaderMatch",
6982
+ # range: {
6983
+ # end: 1, # required
6984
+ # start: 1, # required
6985
+ # },
6986
+ # regex: "HeaderMatch",
6987
+ # suffix: "HeaderMatch",
6988
+ # },
6989
+ # name: "HeaderName", # required
6990
+ # },
6991
+ # ],
6992
+ # hostname: {
6993
+ # exact: "ExactHostName",
6994
+ # suffix: "SuffixHostname",
6995
+ # },
6996
+ # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
6997
+ # path: {
6998
+ # exact: "HttpPathExact",
6999
+ # regex: "HttpPathRegex",
7000
+ # },
7001
+ # prefix: "String",
7002
+ # query_parameters: [
7003
+ # {
7004
+ # match: {
7005
+ # exact: "String",
7006
+ # },
7007
+ # name: "QueryParameterName", # required
7008
+ # },
7009
+ # ],
5621
7010
  # },
5622
7011
  # },
7012
+ # priority: 1,
5623
7013
  # },
5624
7014
  # virtual_gateway_name: "ResourceName", # required
5625
7015
  # }
@@ -5838,7 +7228,19 @@ module Aws::AppMesh
5838
7228
  # },
5839
7229
  # ],
5840
7230
  # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
5841
- # prefix: "String", # required
7231
+ # path: {
7232
+ # exact: "HttpPathExact",
7233
+ # regex: "HttpPathRegex",
7234
+ # },
7235
+ # prefix: "String",
7236
+ # query_parameters: [
7237
+ # {
7238
+ # match: {
7239
+ # exact: "String",
7240
+ # },
7241
+ # name: "QueryParameterName", # required
7242
+ # },
7243
+ # ],
5842
7244
  # scheme: "http", # accepts http, https
5843
7245
  # },
5844
7246
  # retry_policy: {
@@ -5888,7 +7290,19 @@ module Aws::AppMesh
5888
7290
  # },
5889
7291
  # ],
5890
7292
  # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
5891
- # prefix: "String", # required
7293
+ # path: {
7294
+ # exact: "HttpPathExact",
7295
+ # regex: "HttpPathRegex",
7296
+ # },
7297
+ # prefix: "String",
7298
+ # query_parameters: [
7299
+ # {
7300
+ # match: {
7301
+ # exact: "String",
7302
+ # },
7303
+ # name: "QueryParameterName", # required
7304
+ # },
7305
+ # ],
5892
7306
  # scheme: "http", # accepts http, https
5893
7307
  # },
5894
7308
  # retry_policy: {
@@ -6009,9 +7423,23 @@ module Aws::AppMesh
6009
7423
  # backend_defaults: {
6010
7424
  # client_policy: {
6011
7425
  # tls: {
7426
+ # certificate: {
7427
+ # file: {
7428
+ # certificate_chain: "FilePath", # required
7429
+ # private_key: "FilePath", # required
7430
+ # },
7431
+ # sds: {
7432
+ # secret_name: "VirtualGatewaySdsSecretName", # required
7433
+ # },
7434
+ # },
6012
7435
  # enforce: false,
6013
7436
  # ports: [1],
6014
7437
  # validation: { # required
7438
+ # subject_alternative_names: {
7439
+ # match: { # required
7440
+ # exact: ["SubjectAlternativeName"], # required
7441
+ # },
7442
+ # },
6015
7443
  # trust: { # required
6016
7444
  # acm: {
6017
7445
  # certificate_authority_arns: ["Arn"], # required
@@ -6019,6 +7447,9 @@ module Aws::AppMesh
6019
7447
  # file: {
6020
7448
  # certificate_chain: "FilePath", # required
6021
7449
  # },
7450
+ # sds: {
7451
+ # secret_name: "VirtualGatewaySdsSecretName", # required
7452
+ # },
6022
7453
  # },
6023
7454
  # },
6024
7455
  # },
@@ -6060,8 +7491,26 @@ module Aws::AppMesh
6060
7491
  # certificate_chain: "FilePath", # required
6061
7492
  # private_key: "FilePath", # required
6062
7493
  # },
7494
+ # sds: {
7495
+ # secret_name: "VirtualGatewaySdsSecretName", # required
7496
+ # },
6063
7497
  # },
6064
7498
  # mode: "STRICT", # required, accepts STRICT, PERMISSIVE, DISABLED
7499
+ # validation: {
7500
+ # subject_alternative_names: {
7501
+ # match: { # required
7502
+ # exact: ["SubjectAlternativeName"], # required
7503
+ # },
7504
+ # },
7505
+ # trust: { # required
7506
+ # file: {
7507
+ # certificate_chain: "FilePath", # required
7508
+ # },
7509
+ # sds: {
7510
+ # secret_name: "VirtualGatewaySdsSecretName", # required
7511
+ # },
7512
+ # },
7513
+ # },
6065
7514
  # },
6066
7515
  # },
6067
7516
  # ],
@@ -6148,9 +7597,23 @@ module Aws::AppMesh
6148
7597
  # backend_defaults: {
6149
7598
  # client_policy: {
6150
7599
  # tls: {
7600
+ # certificate: {
7601
+ # file: {
7602
+ # certificate_chain: "FilePath", # required
7603
+ # private_key: "FilePath", # required
7604
+ # },
7605
+ # sds: {
7606
+ # secret_name: "SdsSecretName", # required
7607
+ # },
7608
+ # },
6151
7609
  # enforce: false,
6152
7610
  # ports: [1],
6153
7611
  # validation: { # required
7612
+ # subject_alternative_names: {
7613
+ # match: { # required
7614
+ # exact: ["SubjectAlternativeName"], # required
7615
+ # },
7616
+ # },
6154
7617
  # trust: { # required
6155
7618
  # acm: {
6156
7619
  # certificate_authority_arns: ["Arn"], # required
@@ -6158,6 +7621,9 @@ module Aws::AppMesh
6158
7621
  # file: {
6159
7622
  # certificate_chain: "FilePath", # required
6160
7623
  # },
7624
+ # sds: {
7625
+ # secret_name: "SdsSecretName", # required
7626
+ # },
6161
7627
  # },
6162
7628
  # },
6163
7629
  # },
@@ -6168,9 +7634,23 @@ module Aws::AppMesh
6168
7634
  # virtual_service: {
6169
7635
  # client_policy: {
6170
7636
  # tls: {
7637
+ # certificate: {
7638
+ # file: {
7639
+ # certificate_chain: "FilePath", # required
7640
+ # private_key: "FilePath", # required
7641
+ # },
7642
+ # sds: {
7643
+ # secret_name: "SdsSecretName", # required
7644
+ # },
7645
+ # },
6171
7646
  # enforce: false,
6172
7647
  # ports: [1],
6173
7648
  # validation: { # required
7649
+ # subject_alternative_names: {
7650
+ # match: { # required
7651
+ # exact: ["SubjectAlternativeName"], # required
7652
+ # },
7653
+ # },
6174
7654
  # trust: { # required
6175
7655
  # acm: {
6176
7656
  # certificate_authority_arns: ["Arn"], # required
@@ -6178,6 +7658,9 @@ module Aws::AppMesh
6178
7658
  # file: {
6179
7659
  # certificate_chain: "FilePath", # required
6180
7660
  # },
7661
+ # sds: {
7662
+ # secret_name: "SdsSecretName", # required
7663
+ # },
6181
7664
  # },
6182
7665
  # },
6183
7666
  # },
@@ -6275,8 +7758,26 @@ module Aws::AppMesh
6275
7758
  # certificate_chain: "FilePath", # required
6276
7759
  # private_key: "FilePath", # required
6277
7760
  # },
7761
+ # sds: {
7762
+ # secret_name: "SdsSecretName", # required
7763
+ # },
7764
+ # },
7765
+ # mode: "STRICT", # required, accepts STRICT, PERMISSIVE, DISABLED
7766
+ # validation: {
7767
+ # subject_alternative_names: {
7768
+ # match: { # required
7769
+ # exact: ["SubjectAlternativeName"], # required
7770
+ # },
7771
+ # },
7772
+ # trust: { # required
7773
+ # file: {
7774
+ # certificate_chain: "FilePath", # required
7775
+ # },
7776
+ # sds: {
7777
+ # secret_name: "SdsSecretName", # required
7778
+ # },
7779
+ # },
6278
7780
  # },
6279
- # mode: "STRICT", # required, accepts STRICT, PERMISSIVE, DISABLED
6280
7781
  # },
6281
7782
  # },
6282
7783
  # ],
@@ -6300,6 +7801,7 @@ module Aws::AppMesh
6300
7801
  # },
6301
7802
  # dns: {
6302
7803
  # hostname: "Hostname", # required
7804
+ # response_type: "LOADBALANCER", # accepts LOADBALANCER, ENDPOINTS
6303
7805
  # },
6304
7806
  # },
6305
7807
  # },
@@ -6539,14 +8041,9 @@ module Aws::AppMesh
6539
8041
 
6540
8042
  # The access log configuration for a virtual gateway.
6541
8043
  #
6542
- # @note When making an API call, you may pass VirtualGatewayAccessLog
6543
- # data as a hash:
8044
+ # @note VirtualGatewayAccessLog is a union - when making an API calls you must set exactly one of the members.
6544
8045
  #
6545
- # {
6546
- # file: {
6547
- # path: "FilePath", # required
6548
- # },
6549
- # }
8046
+ # @note VirtualGatewayAccessLog is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of VirtualGatewayAccessLog corresponding to the set member.
6550
8047
  #
6551
8048
  # @!attribute [rw] file
6552
8049
  # The file object to send virtual gateway access logs to.
@@ -6555,9 +8052,14 @@ module Aws::AppMesh
6555
8052
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/VirtualGatewayAccessLog AWS API Documentation
6556
8053
  #
6557
8054
  class VirtualGatewayAccessLog < Struct.new(
6558
- :file)
8055
+ :file,
8056
+ :unknown)
6559
8057
  SENSITIVE = []
6560
8058
  include Aws::Structure
8059
+ include Aws::Structure::Union
8060
+
8061
+ class File < VirtualGatewayAccessLog; end
8062
+ class Unknown < VirtualGatewayAccessLog; end
6561
8063
  end
6562
8064
 
6563
8065
  # An object that represents the default properties for a backend.
@@ -6568,9 +8070,23 @@ module Aws::AppMesh
6568
8070
  # {
6569
8071
  # client_policy: {
6570
8072
  # tls: {
8073
+ # certificate: {
8074
+ # file: {
8075
+ # certificate_chain: "FilePath", # required
8076
+ # private_key: "FilePath", # required
8077
+ # },
8078
+ # sds: {
8079
+ # secret_name: "VirtualGatewaySdsSecretName", # required
8080
+ # },
8081
+ # },
6571
8082
  # enforce: false,
6572
8083
  # ports: [1],
6573
8084
  # validation: { # required
8085
+ # subject_alternative_names: {
8086
+ # match: { # required
8087
+ # exact: ["SubjectAlternativeName"], # required
8088
+ # },
8089
+ # },
6574
8090
  # trust: { # required
6575
8091
  # acm: {
6576
8092
  # certificate_authority_arns: ["Arn"], # required
@@ -6578,6 +8094,9 @@ module Aws::AppMesh
6578
8094
  # file: {
6579
8095
  # certificate_chain: "FilePath", # required
6580
8096
  # },
8097
+ # sds: {
8098
+ # secret_name: "VirtualGatewaySdsSecretName", # required
8099
+ # },
6581
8100
  # },
6582
8101
  # },
6583
8102
  # },
@@ -6603,9 +8122,23 @@ module Aws::AppMesh
6603
8122
  #
6604
8123
  # {
6605
8124
  # tls: {
8125
+ # certificate: {
8126
+ # file: {
8127
+ # certificate_chain: "FilePath", # required
8128
+ # private_key: "FilePath", # required
8129
+ # },
8130
+ # sds: {
8131
+ # secret_name: "VirtualGatewaySdsSecretName", # required
8132
+ # },
8133
+ # },
6606
8134
  # enforce: false,
6607
8135
  # ports: [1],
6608
8136
  # validation: { # required
8137
+ # subject_alternative_names: {
8138
+ # match: { # required
8139
+ # exact: ["SubjectAlternativeName"], # required
8140
+ # },
8141
+ # },
6609
8142
  # trust: { # required
6610
8143
  # acm: {
6611
8144
  # certificate_authority_arns: ["Arn"], # required
@@ -6613,6 +8146,9 @@ module Aws::AppMesh
6613
8146
  # file: {
6614
8147
  # certificate_chain: "FilePath", # required
6615
8148
  # },
8149
+ # sds: {
8150
+ # secret_name: "VirtualGatewaySdsSecretName", # required
8151
+ # },
6616
8152
  # },
6617
8153
  # },
6618
8154
  # },
@@ -6638,9 +8174,23 @@ module Aws::AppMesh
6638
8174
  # data as a hash:
6639
8175
  #
6640
8176
  # {
8177
+ # certificate: {
8178
+ # file: {
8179
+ # certificate_chain: "FilePath", # required
8180
+ # private_key: "FilePath", # required
8181
+ # },
8182
+ # sds: {
8183
+ # secret_name: "VirtualGatewaySdsSecretName", # required
8184
+ # },
8185
+ # },
6641
8186
  # enforce: false,
6642
8187
  # ports: [1],
6643
8188
  # validation: { # required
8189
+ # subject_alternative_names: {
8190
+ # match: { # required
8191
+ # exact: ["SubjectAlternativeName"], # required
8192
+ # },
8193
+ # },
6644
8194
  # trust: { # required
6645
8195
  # acm: {
6646
8196
  # certificate_authority_arns: ["Arn"], # required
@@ -6648,10 +8198,18 @@ module Aws::AppMesh
6648
8198
  # file: {
6649
8199
  # certificate_chain: "FilePath", # required
6650
8200
  # },
8201
+ # sds: {
8202
+ # secret_name: "VirtualGatewaySdsSecretName", # required
8203
+ # },
6651
8204
  # },
6652
8205
  # },
6653
8206
  # }
6654
8207
  #
8208
+ # @!attribute [rw] certificate
8209
+ # A reference to an object that represents a virtual gateway's
8210
+ # client's Transport Layer Security (TLS) certificate.
8211
+ # @return [Types::VirtualGatewayClientTlsCertificate]
8212
+ #
6655
8213
  # @!attribute [rw] enforce
6656
8214
  # Whether the policy is enforced. The default is `True`, if a value
6657
8215
  # isn't specified.
@@ -6662,12 +8220,14 @@ module Aws::AppMesh
6662
8220
  # @return [Array<Integer>]
6663
8221
  #
6664
8222
  # @!attribute [rw] validation
6665
- # A reference to an object that represents a TLS validation context.
8223
+ # A reference to an object that represents a Transport Layer Security
8224
+ # (TLS) validation context.
6666
8225
  # @return [Types::VirtualGatewayTlsValidationContext]
6667
8226
  #
6668
8227
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/VirtualGatewayClientPolicyTls AWS API Documentation
6669
8228
  #
6670
8229
  class VirtualGatewayClientPolicyTls < Struct.new(
8230
+ :certificate,
6671
8231
  :enforce,
6672
8232
  :ports,
6673
8233
  :validation)
@@ -6675,6 +8235,44 @@ module Aws::AppMesh
6675
8235
  include Aws::Structure
6676
8236
  end
6677
8237
 
8238
+ # An object that represents the virtual gateway's client's Transport
8239
+ # Layer Security (TLS) certificate.
8240
+ #
8241
+ # @note VirtualGatewayClientTlsCertificate is a union - when making an API calls you must set exactly one of the members.
8242
+ #
8243
+ # @note VirtualGatewayClientTlsCertificate is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of VirtualGatewayClientTlsCertificate corresponding to the set member.
8244
+ #
8245
+ # @!attribute [rw] file
8246
+ # An object that represents a local file certificate. The certificate
8247
+ # must meet specific requirements and you must have proxy
8248
+ # authorization enabled. For more information, see [ Transport Layer
8249
+ # Security (TLS) ][1].
8250
+ #
8251
+ #
8252
+ #
8253
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html
8254
+ # @return [Types::VirtualGatewayListenerTlsFileCertificate]
8255
+ #
8256
+ # @!attribute [rw] sds
8257
+ # A reference to an object that represents a virtual gateway's
8258
+ # client's Secret Discovery Service certificate.
8259
+ # @return [Types::VirtualGatewayListenerTlsSdsCertificate]
8260
+ #
8261
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/VirtualGatewayClientTlsCertificate AWS API Documentation
8262
+ #
8263
+ class VirtualGatewayClientTlsCertificate < Struct.new(
8264
+ :file,
8265
+ :sds,
8266
+ :unknown)
8267
+ SENSITIVE = []
8268
+ include Aws::Structure
8269
+ include Aws::Structure::Union
8270
+
8271
+ class File < VirtualGatewayClientTlsCertificate; end
8272
+ class Sds < VirtualGatewayClientTlsCertificate; end
8273
+ class Unknown < VirtualGatewayClientTlsCertificate; end
8274
+ end
8275
+
6678
8276
  # An object that represents the type of virtual gateway connection pool.
6679
8277
  #
6680
8278
  # Only one protocol is used at a time and should be the same protocol as
@@ -6683,21 +8281,9 @@ module Aws::AppMesh
6683
8281
  # If not present the default value for `maxPendingRequests` is
6684
8282
  # `2147483647`.
6685
8283
  #
6686
- # @note When making an API call, you may pass VirtualGatewayConnectionPool
6687
- # data as a hash:
8284
+ # @note VirtualGatewayConnectionPool is a union - when making an API calls you must set exactly one of the members.
6688
8285
  #
6689
- # {
6690
- # grpc: {
6691
- # max_requests: 1, # required
6692
- # },
6693
- # http: {
6694
- # max_connections: 1, # required
6695
- # max_pending_requests: 1,
6696
- # },
6697
- # http2: {
6698
- # max_requests: 1, # required
6699
- # },
6700
- # }
8286
+ # @note VirtualGatewayConnectionPool is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of VirtualGatewayConnectionPool corresponding to the set member.
6701
8287
  #
6702
8288
  # @!attribute [rw] grpc
6703
8289
  # An object that represents a type of connection pool.
@@ -6716,9 +8302,16 @@ module Aws::AppMesh
6716
8302
  class VirtualGatewayConnectionPool < Struct.new(
6717
8303
  :grpc,
6718
8304
  :http,
6719
- :http2)
8305
+ :http2,
8306
+ :unknown)
6720
8307
  SENSITIVE = []
6721
8308
  include Aws::Structure
8309
+ include Aws::Structure::Union
8310
+
8311
+ class Grpc < VirtualGatewayConnectionPool; end
8312
+ class Http < VirtualGatewayConnectionPool; end
8313
+ class Http2 < VirtualGatewayConnectionPool; end
8314
+ class Unknown < VirtualGatewayConnectionPool; end
6722
8315
  end
6723
8316
 
6724
8317
  # An object that represents a virtual gateway returned by a describe
@@ -6965,8 +8558,26 @@ module Aws::AppMesh
6965
8558
  # certificate_chain: "FilePath", # required
6966
8559
  # private_key: "FilePath", # required
6967
8560
  # },
8561
+ # sds: {
8562
+ # secret_name: "VirtualGatewaySdsSecretName", # required
8563
+ # },
6968
8564
  # },
6969
8565
  # mode: "STRICT", # required, accepts STRICT, PERMISSIVE, DISABLED
8566
+ # validation: {
8567
+ # subject_alternative_names: {
8568
+ # match: { # required
8569
+ # exact: ["SubjectAlternativeName"], # required
8570
+ # },
8571
+ # },
8572
+ # trust: { # required
8573
+ # file: {
8574
+ # certificate_chain: "FilePath", # required
8575
+ # },
8576
+ # sds: {
8577
+ # secret_name: "VirtualGatewaySdsSecretName", # required
8578
+ # },
8579
+ # },
8580
+ # },
6970
8581
  # },
6971
8582
  # }
6972
8583
  #
@@ -7013,8 +8624,26 @@ module Aws::AppMesh
7013
8624
  # certificate_chain: "FilePath", # required
7014
8625
  # private_key: "FilePath", # required
7015
8626
  # },
8627
+ # sds: {
8628
+ # secret_name: "VirtualGatewaySdsSecretName", # required
8629
+ # },
7016
8630
  # },
7017
8631
  # mode: "STRICT", # required, accepts STRICT, PERMISSIVE, DISABLED
8632
+ # validation: {
8633
+ # subject_alternative_names: {
8634
+ # match: { # required
8635
+ # exact: ["SubjectAlternativeName"], # required
8636
+ # },
8637
+ # },
8638
+ # trust: { # required
8639
+ # file: {
8640
+ # certificate_chain: "FilePath", # required
8641
+ # },
8642
+ # sds: {
8643
+ # secret_name: "VirtualGatewaySdsSecretName", # required
8644
+ # },
8645
+ # },
8646
+ # },
7018
8647
  # }
7019
8648
  #
7020
8649
  # @!attribute [rw] certificate
@@ -7033,16 +8662,22 @@ module Aws::AppMesh
7033
8662
  # * ****DISABLED – Listener only accepts connections without TLS.
7034
8663
  # @return [String]
7035
8664
  #
8665
+ # @!attribute [rw] validation
8666
+ # A reference to an object that represents a virtual gateway's
8667
+ # listener's Transport Layer Security (TLS) validation context.
8668
+ # @return [Types::VirtualGatewayListenerTlsValidationContext]
8669
+ #
7036
8670
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/VirtualGatewayListenerTls AWS API Documentation
7037
8671
  #
7038
8672
  class VirtualGatewayListenerTls < Struct.new(
7039
8673
  :certificate,
7040
- :mode)
8674
+ :mode,
8675
+ :validation)
7041
8676
  SENSITIVE = []
7042
8677
  include Aws::Structure
7043
8678
  end
7044
8679
 
7045
- # An object that represents an AWS Certicate Manager (ACM) certificate.
8680
+ # An object that represents an Certificate Manager certificate.
7046
8681
  #
7047
8682
  # @note When making an API call, you may pass VirtualGatewayListenerTlsAcmCertificate
7048
8683
  # data as a hash:
@@ -7073,35 +8708,39 @@ module Aws::AppMesh
7073
8708
  # An object that represents a listener's Transport Layer Security (TLS)
7074
8709
  # certificate.
7075
8710
  #
7076
- # @note When making an API call, you may pass VirtualGatewayListenerTlsCertificate
7077
- # data as a hash:
8711
+ # @note VirtualGatewayListenerTlsCertificate is a union - when making an API calls you must set exactly one of the members.
7078
8712
  #
7079
- # {
7080
- # acm: {
7081
- # certificate_arn: "Arn", # required
7082
- # },
7083
- # file: {
7084
- # certificate_chain: "FilePath", # required
7085
- # private_key: "FilePath", # required
7086
- # },
7087
- # }
8713
+ # @note VirtualGatewayListenerTlsCertificate is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of VirtualGatewayListenerTlsCertificate corresponding to the set member.
7088
8714
  #
7089
8715
  # @!attribute [rw] acm
7090
- # A reference to an object that represents an AWS Certicate Manager
7091
- # (ACM) certificate.
8716
+ # A reference to an object that represents an Certificate Manager
8717
+ # certificate.
7092
8718
  # @return [Types::VirtualGatewayListenerTlsAcmCertificate]
7093
8719
  #
7094
8720
  # @!attribute [rw] file
7095
8721
  # A reference to an object that represents a local file certificate.
7096
8722
  # @return [Types::VirtualGatewayListenerTlsFileCertificate]
7097
8723
  #
8724
+ # @!attribute [rw] sds
8725
+ # A reference to an object that represents a virtual gateway's
8726
+ # listener's Secret Discovery Service certificate.
8727
+ # @return [Types::VirtualGatewayListenerTlsSdsCertificate]
8728
+ #
7098
8729
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/VirtualGatewayListenerTlsCertificate AWS API Documentation
7099
8730
  #
7100
8731
  class VirtualGatewayListenerTlsCertificate < Struct.new(
7101
8732
  :acm,
7102
- :file)
8733
+ :file,
8734
+ :sds,
8735
+ :unknown)
7103
8736
  SENSITIVE = []
7104
8737
  include Aws::Structure
8738
+ include Aws::Structure::Union
8739
+
8740
+ class Acm < VirtualGatewayListenerTlsCertificate; end
8741
+ class File < VirtualGatewayListenerTlsCertificate; end
8742
+ class Sds < VirtualGatewayListenerTlsCertificate; end
8743
+ class Unknown < VirtualGatewayListenerTlsCertificate; end
7105
8744
  end
7106
8745
 
7107
8746
  # An object that represents a local file certificate. The certificate
@@ -7139,6 +8778,112 @@ module Aws::AppMesh
7139
8778
  include Aws::Structure
7140
8779
  end
7141
8780
 
8781
+ # An object that represents the virtual gateway's listener's Secret
8782
+ # Discovery Service certificate.The proxy must be configured with a
8783
+ # local SDS provider via a Unix Domain Socket. See App Mesh[TLS
8784
+ # documentation][1] for more info.
8785
+ #
8786
+ #
8787
+ #
8788
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html
8789
+ #
8790
+ # @note When making an API call, you may pass VirtualGatewayListenerTlsSdsCertificate
8791
+ # data as a hash:
8792
+ #
8793
+ # {
8794
+ # secret_name: "VirtualGatewaySdsSecretName", # required
8795
+ # }
8796
+ #
8797
+ # @!attribute [rw] secret_name
8798
+ # A reference to an object that represents the name of the secret
8799
+ # secret requested from the Secret Discovery Service provider
8800
+ # representing Transport Layer Security (TLS) materials like a
8801
+ # certificate or certificate chain.
8802
+ # @return [String]
8803
+ #
8804
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/VirtualGatewayListenerTlsSdsCertificate AWS API Documentation
8805
+ #
8806
+ class VirtualGatewayListenerTlsSdsCertificate < Struct.new(
8807
+ :secret_name)
8808
+ SENSITIVE = []
8809
+ include Aws::Structure
8810
+ end
8811
+
8812
+ # An object that represents a virtual gateway's listener's Transport
8813
+ # Layer Security (TLS) validation context.
8814
+ #
8815
+ # @note When making an API call, you may pass VirtualGatewayListenerTlsValidationContext
8816
+ # data as a hash:
8817
+ #
8818
+ # {
8819
+ # subject_alternative_names: {
8820
+ # match: { # required
8821
+ # exact: ["SubjectAlternativeName"], # required
8822
+ # },
8823
+ # },
8824
+ # trust: { # required
8825
+ # file: {
8826
+ # certificate_chain: "FilePath", # required
8827
+ # },
8828
+ # sds: {
8829
+ # secret_name: "VirtualGatewaySdsSecretName", # required
8830
+ # },
8831
+ # },
8832
+ # }
8833
+ #
8834
+ # @!attribute [rw] subject_alternative_names
8835
+ # A reference to an object that represents the SANs for a virtual
8836
+ # gateway listener's Transport Layer Security (TLS) validation
8837
+ # context.
8838
+ # @return [Types::SubjectAlternativeNames]
8839
+ #
8840
+ # @!attribute [rw] trust
8841
+ # A reference to where to retrieve the trust chain when validating a
8842
+ # peer’s Transport Layer Security (TLS) certificate.
8843
+ # @return [Types::VirtualGatewayListenerTlsValidationContextTrust]
8844
+ #
8845
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/VirtualGatewayListenerTlsValidationContext AWS API Documentation
8846
+ #
8847
+ class VirtualGatewayListenerTlsValidationContext < Struct.new(
8848
+ :subject_alternative_names,
8849
+ :trust)
8850
+ SENSITIVE = []
8851
+ include Aws::Structure
8852
+ end
8853
+
8854
+ # An object that represents a virtual gateway's listener's Transport
8855
+ # Layer Security (TLS) validation context trust.
8856
+ #
8857
+ # @note VirtualGatewayListenerTlsValidationContextTrust is a union - when making an API calls you must set exactly one of the members.
8858
+ #
8859
+ # @note VirtualGatewayListenerTlsValidationContextTrust is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of VirtualGatewayListenerTlsValidationContextTrust corresponding to the set member.
8860
+ #
8861
+ # @!attribute [rw] file
8862
+ # An object that represents a Transport Layer Security (TLS)
8863
+ # validation context trust for a local file.
8864
+ # @return [Types::VirtualGatewayTlsValidationContextFileTrust]
8865
+ #
8866
+ # @!attribute [rw] sds
8867
+ # A reference to an object that represents a virtual gateway's
8868
+ # listener's Transport Layer Security (TLS) Secret Discovery Service
8869
+ # validation context trust.
8870
+ # @return [Types::VirtualGatewayTlsValidationContextSdsTrust]
8871
+ #
8872
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/VirtualGatewayListenerTlsValidationContextTrust AWS API Documentation
8873
+ #
8874
+ class VirtualGatewayListenerTlsValidationContextTrust < Struct.new(
8875
+ :file,
8876
+ :sds,
8877
+ :unknown)
8878
+ SENSITIVE = []
8879
+ include Aws::Structure
8880
+ include Aws::Structure::Union
8881
+
8882
+ class File < VirtualGatewayListenerTlsValidationContextTrust; end
8883
+ class Sds < VirtualGatewayListenerTlsValidationContextTrust; end
8884
+ class Unknown < VirtualGatewayListenerTlsValidationContextTrust; end
8885
+ end
8886
+
7142
8887
  # An object that represents logging information.
7143
8888
  #
7144
8889
  # @note When making an API call, you may pass VirtualGatewayLogging
@@ -7268,9 +9013,23 @@ module Aws::AppMesh
7268
9013
  # backend_defaults: {
7269
9014
  # client_policy: {
7270
9015
  # tls: {
9016
+ # certificate: {
9017
+ # file: {
9018
+ # certificate_chain: "FilePath", # required
9019
+ # private_key: "FilePath", # required
9020
+ # },
9021
+ # sds: {
9022
+ # secret_name: "VirtualGatewaySdsSecretName", # required
9023
+ # },
9024
+ # },
7271
9025
  # enforce: false,
7272
9026
  # ports: [1],
7273
9027
  # validation: { # required
9028
+ # subject_alternative_names: {
9029
+ # match: { # required
9030
+ # exact: ["SubjectAlternativeName"], # required
9031
+ # },
9032
+ # },
7274
9033
  # trust: { # required
7275
9034
  # acm: {
7276
9035
  # certificate_authority_arns: ["Arn"], # required
@@ -7278,6 +9037,9 @@ module Aws::AppMesh
7278
9037
  # file: {
7279
9038
  # certificate_chain: "FilePath", # required
7280
9039
  # },
9040
+ # sds: {
9041
+ # secret_name: "VirtualGatewaySdsSecretName", # required
9042
+ # },
7281
9043
  # },
7282
9044
  # },
7283
9045
  # },
@@ -7319,8 +9081,26 @@ module Aws::AppMesh
7319
9081
  # certificate_chain: "FilePath", # required
7320
9082
  # private_key: "FilePath", # required
7321
9083
  # },
9084
+ # sds: {
9085
+ # secret_name: "VirtualGatewaySdsSecretName", # required
9086
+ # },
7322
9087
  # },
7323
9088
  # mode: "STRICT", # required, accepts STRICT, PERMISSIVE, DISABLED
9089
+ # validation: {
9090
+ # subject_alternative_names: {
9091
+ # match: { # required
9092
+ # exact: ["SubjectAlternativeName"], # required
9093
+ # },
9094
+ # },
9095
+ # trust: { # required
9096
+ # file: {
9097
+ # certificate_chain: "FilePath", # required
9098
+ # },
9099
+ # sds: {
9100
+ # secret_name: "VirtualGatewaySdsSecretName", # required
9101
+ # },
9102
+ # },
9103
+ # },
7324
9104
  # },
7325
9105
  # },
7326
9106
  # ],
@@ -7377,6 +9157,11 @@ module Aws::AppMesh
7377
9157
  # data as a hash:
7378
9158
  #
7379
9159
  # {
9160
+ # subject_alternative_names: {
9161
+ # match: { # required
9162
+ # exact: ["SubjectAlternativeName"], # required
9163
+ # },
9164
+ # },
7380
9165
  # trust: { # required
7381
9166
  # acm: {
7382
9167
  # certificate_authority_arns: ["Arn"], # required
@@ -7384,24 +9169,34 @@ module Aws::AppMesh
7384
9169
  # file: {
7385
9170
  # certificate_chain: "FilePath", # required
7386
9171
  # },
9172
+ # sds: {
9173
+ # secret_name: "VirtualGatewaySdsSecretName", # required
9174
+ # },
7387
9175
  # },
7388
9176
  # }
7389
9177
  #
9178
+ # @!attribute [rw] subject_alternative_names
9179
+ # A reference to an object that represents the SANs for a virtual
9180
+ # gateway's listener's Transport Layer Security (TLS) validation
9181
+ # context.
9182
+ # @return [Types::SubjectAlternativeNames]
9183
+ #
7390
9184
  # @!attribute [rw] trust
7391
- # A reference to an object that represents a TLS validation context
7392
- # trust.
9185
+ # A reference to where to retrieve the trust chain when validating a
9186
+ # peer’s Transport Layer Security (TLS) certificate.
7393
9187
  # @return [Types::VirtualGatewayTlsValidationContextTrust]
7394
9188
  #
7395
9189
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/VirtualGatewayTlsValidationContext AWS API Documentation
7396
9190
  #
7397
9191
  class VirtualGatewayTlsValidationContext < Struct.new(
9192
+ :subject_alternative_names,
7398
9193
  :trust)
7399
9194
  SENSITIVE = []
7400
9195
  include Aws::Structure
7401
9196
  end
7402
9197
 
7403
- # An object that represents a TLS validation context trust for an AWS
7404
- # Certicate Manager (ACM) certificate.
9198
+ # An object that represents a Transport Layer Security (TLS) validation
9199
+ # context trust for an Certificate Manager certificate.
7405
9200
  #
7406
9201
  # @note When making an API call, you may pass VirtualGatewayTlsValidationContextAcmTrust
7407
9202
  # data as a hash:
@@ -7445,38 +9240,75 @@ module Aws::AppMesh
7445
9240
  include Aws::Structure
7446
9241
  end
7447
9242
 
7448
- # An object that represents a Transport Layer Security (TLS) validation
7449
- # context trust.
9243
+ # An object that represents a virtual gateway's listener's Transport
9244
+ # Layer Security (TLS) Secret Discovery Service validation context
9245
+ # trust. The proxy must be configured with a local SDS provider via a
9246
+ # Unix Domain Socket. See App Mesh [TLS documentation][1] for more info.
7450
9247
  #
7451
- # @note When making an API call, you may pass VirtualGatewayTlsValidationContextTrust
9248
+ #
9249
+ #
9250
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html
9251
+ #
9252
+ # @note When making an API call, you may pass VirtualGatewayTlsValidationContextSdsTrust
7452
9253
  # data as a hash:
7453
9254
  #
7454
9255
  # {
7455
- # acm: {
7456
- # certificate_authority_arns: ["Arn"], # required
7457
- # },
7458
- # file: {
7459
- # certificate_chain: "FilePath", # required
7460
- # },
9256
+ # secret_name: "VirtualGatewaySdsSecretName", # required
7461
9257
  # }
7462
9258
  #
9259
+ # @!attribute [rw] secret_name
9260
+ # A reference to an object that represents the name of the secret for
9261
+ # a virtual gateway's Transport Layer Security (TLS) Secret Discovery
9262
+ # Service validation context trust.
9263
+ # @return [String]
9264
+ #
9265
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/VirtualGatewayTlsValidationContextSdsTrust AWS API Documentation
9266
+ #
9267
+ class VirtualGatewayTlsValidationContextSdsTrust < Struct.new(
9268
+ :secret_name)
9269
+ SENSITIVE = []
9270
+ include Aws::Structure
9271
+ end
9272
+
9273
+ # An object that represents a Transport Layer Security (TLS) validation
9274
+ # context trust.
9275
+ #
9276
+ # @note VirtualGatewayTlsValidationContextTrust is a union - when making an API calls you must set exactly one of the members.
9277
+ #
9278
+ # @note VirtualGatewayTlsValidationContextTrust is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of VirtualGatewayTlsValidationContextTrust corresponding to the set member.
9279
+ #
7463
9280
  # @!attribute [rw] acm
7464
- # A reference to an object that represents a TLS validation context
7465
- # trust for an AWS Certicate Manager (ACM) certificate.
9281
+ # A reference to an object that represents a Transport Layer Security
9282
+ # (TLS) validation context trust for an Certificate Manager
9283
+ # certificate.
7466
9284
  # @return [Types::VirtualGatewayTlsValidationContextAcmTrust]
7467
9285
  #
7468
9286
  # @!attribute [rw] file
7469
- # An object that represents a TLS validation context trust for a local
7470
- # file.
9287
+ # An object that represents a Transport Layer Security (TLS)
9288
+ # validation context trust for a local file.
7471
9289
  # @return [Types::VirtualGatewayTlsValidationContextFileTrust]
7472
9290
  #
9291
+ # @!attribute [rw] sds
9292
+ # A reference to an object that represents a virtual gateway's
9293
+ # Transport Layer Security (TLS) Secret Discovery Service validation
9294
+ # context trust.
9295
+ # @return [Types::VirtualGatewayTlsValidationContextSdsTrust]
9296
+ #
7473
9297
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/VirtualGatewayTlsValidationContextTrust AWS API Documentation
7474
9298
  #
7475
9299
  class VirtualGatewayTlsValidationContextTrust < Struct.new(
7476
9300
  :acm,
7477
- :file)
9301
+ :file,
9302
+ :sds,
9303
+ :unknown)
7478
9304
  SENSITIVE = []
7479
9305
  include Aws::Structure
9306
+ include Aws::Structure::Union
9307
+
9308
+ class Acm < VirtualGatewayTlsValidationContextTrust; end
9309
+ class File < VirtualGatewayTlsValidationContextTrust; end
9310
+ class Sds < VirtualGatewayTlsValidationContextTrust; end
9311
+ class Unknown < VirtualGatewayTlsValidationContextTrust; end
7480
9312
  end
7481
9313
 
7482
9314
  # An object that represents the type of virtual node connection pool.
@@ -7487,24 +9319,9 @@ module Aws::AppMesh
7487
9319
  # If not present the default value for `maxPendingRequests` is
7488
9320
  # `2147483647`.
7489
9321
  #
7490
- # @note When making an API call, you may pass VirtualNodeConnectionPool
7491
- # data as a hash:
9322
+ # @note VirtualNodeConnectionPool is a union - when making an API calls you must set exactly one of the members.
7492
9323
  #
7493
- # {
7494
- # grpc: {
7495
- # max_requests: 1, # required
7496
- # },
7497
- # http: {
7498
- # max_connections: 1, # required
7499
- # max_pending_requests: 1,
7500
- # },
7501
- # http2: {
7502
- # max_requests: 1, # required
7503
- # },
7504
- # tcp: {
7505
- # max_connections: 1, # required
7506
- # },
7507
- # }
9324
+ # @note VirtualNodeConnectionPool is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of VirtualNodeConnectionPool corresponding to the set member.
7508
9325
  #
7509
9326
  # @!attribute [rw] grpc
7510
9327
  # An object that represents a type of connection pool.
@@ -7528,9 +9345,17 @@ module Aws::AppMesh
7528
9345
  :grpc,
7529
9346
  :http,
7530
9347
  :http2,
7531
- :tcp)
9348
+ :tcp,
9349
+ :unknown)
7532
9350
  SENSITIVE = []
7533
9351
  include Aws::Structure
9352
+ include Aws::Structure::Union
9353
+
9354
+ class Grpc < VirtualNodeConnectionPool; end
9355
+ class Http < VirtualNodeConnectionPool; end
9356
+ class Http2 < VirtualNodeConnectionPool; end
9357
+ class Tcp < VirtualNodeConnectionPool; end
9358
+ class Unknown < VirtualNodeConnectionPool; end
7534
9359
  end
7535
9360
 
7536
9361
  # An object that represents a virtual node returned by a describe
@@ -7737,9 +9562,23 @@ module Aws::AppMesh
7737
9562
  # backend_defaults: {
7738
9563
  # client_policy: {
7739
9564
  # tls: {
9565
+ # certificate: {
9566
+ # file: {
9567
+ # certificate_chain: "FilePath", # required
9568
+ # private_key: "FilePath", # required
9569
+ # },
9570
+ # sds: {
9571
+ # secret_name: "SdsSecretName", # required
9572
+ # },
9573
+ # },
7740
9574
  # enforce: false,
7741
9575
  # ports: [1],
7742
9576
  # validation: { # required
9577
+ # subject_alternative_names: {
9578
+ # match: { # required
9579
+ # exact: ["SubjectAlternativeName"], # required
9580
+ # },
9581
+ # },
7743
9582
  # trust: { # required
7744
9583
  # acm: {
7745
9584
  # certificate_authority_arns: ["Arn"], # required
@@ -7747,6 +9586,9 @@ module Aws::AppMesh
7747
9586
  # file: {
7748
9587
  # certificate_chain: "FilePath", # required
7749
9588
  # },
9589
+ # sds: {
9590
+ # secret_name: "SdsSecretName", # required
9591
+ # },
7750
9592
  # },
7751
9593
  # },
7752
9594
  # },
@@ -7757,9 +9599,23 @@ module Aws::AppMesh
7757
9599
  # virtual_service: {
7758
9600
  # client_policy: {
7759
9601
  # tls: {
9602
+ # certificate: {
9603
+ # file: {
9604
+ # certificate_chain: "FilePath", # required
9605
+ # private_key: "FilePath", # required
9606
+ # },
9607
+ # sds: {
9608
+ # secret_name: "SdsSecretName", # required
9609
+ # },
9610
+ # },
7760
9611
  # enforce: false,
7761
9612
  # ports: [1],
7762
9613
  # validation: { # required
9614
+ # subject_alternative_names: {
9615
+ # match: { # required
9616
+ # exact: ["SubjectAlternativeName"], # required
9617
+ # },
9618
+ # },
7763
9619
  # trust: { # required
7764
9620
  # acm: {
7765
9621
  # certificate_authority_arns: ["Arn"], # required
@@ -7767,6 +9623,9 @@ module Aws::AppMesh
7767
9623
  # file: {
7768
9624
  # certificate_chain: "FilePath", # required
7769
9625
  # },
9626
+ # sds: {
9627
+ # secret_name: "SdsSecretName", # required
9628
+ # },
7770
9629
  # },
7771
9630
  # },
7772
9631
  # },
@@ -7864,8 +9723,26 @@ module Aws::AppMesh
7864
9723
  # certificate_chain: "FilePath", # required
7865
9724
  # private_key: "FilePath", # required
7866
9725
  # },
9726
+ # sds: {
9727
+ # secret_name: "SdsSecretName", # required
9728
+ # },
7867
9729
  # },
7868
9730
  # mode: "STRICT", # required, accepts STRICT, PERMISSIVE, DISABLED
9731
+ # validation: {
9732
+ # subject_alternative_names: {
9733
+ # match: { # required
9734
+ # exact: ["SubjectAlternativeName"], # required
9735
+ # },
9736
+ # },
9737
+ # trust: { # required
9738
+ # file: {
9739
+ # certificate_chain: "FilePath", # required
9740
+ # },
9741
+ # sds: {
9742
+ # secret_name: "SdsSecretName", # required
9743
+ # },
9744
+ # },
9745
+ # },
7869
9746
  # },
7870
9747
  # },
7871
9748
  # ],
@@ -7889,6 +9766,7 @@ module Aws::AppMesh
7889
9766
  # },
7890
9767
  # dns: {
7891
9768
  # hostname: "Hostname", # required
9769
+ # response_type: "LOADBALANCER", # accepts LOADBALANCER, ENDPOINTS
7892
9770
  # },
7893
9771
  # },
7894
9772
  # }
@@ -8166,9 +10044,23 @@ module Aws::AppMesh
8166
10044
  # {
8167
10045
  # client_policy: {
8168
10046
  # tls: {
10047
+ # certificate: {
10048
+ # file: {
10049
+ # certificate_chain: "FilePath", # required
10050
+ # private_key: "FilePath", # required
10051
+ # },
10052
+ # sds: {
10053
+ # secret_name: "SdsSecretName", # required
10054
+ # },
10055
+ # },
8169
10056
  # enforce: false,
8170
10057
  # ports: [1],
8171
10058
  # validation: { # required
10059
+ # subject_alternative_names: {
10060
+ # match: { # required
10061
+ # exact: ["SubjectAlternativeName"], # required
10062
+ # },
10063
+ # },
8172
10064
  # trust: { # required
8173
10065
  # acm: {
8174
10066
  # certificate_authority_arns: ["Arn"], # required
@@ -8176,6 +10068,9 @@ module Aws::AppMesh
8176
10068
  # file: {
8177
10069
  # certificate_chain: "FilePath", # required
8178
10070
  # },
10071
+ # sds: {
10072
+ # secret_name: "SdsSecretName", # required
10073
+ # },
8179
10074
  # },
8180
10075
  # },
8181
10076
  # },
@@ -8239,17 +10134,9 @@ module Aws::AppMesh
8239
10134
 
8240
10135
  # An object that represents the provider for a virtual service.
8241
10136
  #
8242
- # @note When making an API call, you may pass VirtualServiceProvider
8243
- # data as a hash:
10137
+ # @note VirtualServiceProvider is a union - when making an API calls you must set exactly one of the members.
8244
10138
  #
8245
- # {
8246
- # virtual_node: {
8247
- # virtual_node_name: "ResourceName", # required
8248
- # },
8249
- # virtual_router: {
8250
- # virtual_router_name: "ResourceName", # required
8251
- # },
8252
- # }
10139
+ # @note VirtualServiceProvider is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of VirtualServiceProvider corresponding to the set member.
8253
10140
  #
8254
10141
  # @!attribute [rw] virtual_node
8255
10142
  # The virtual node associated with a virtual service.
@@ -8263,9 +10150,15 @@ module Aws::AppMesh
8263
10150
  #
8264
10151
  class VirtualServiceProvider < Struct.new(
8265
10152
  :virtual_node,
8266
- :virtual_router)
10153
+ :virtual_router,
10154
+ :unknown)
8267
10155
  SENSITIVE = []
8268
10156
  include Aws::Structure
10157
+ include Aws::Structure::Union
10158
+
10159
+ class VirtualNode < VirtualServiceProvider; end
10160
+ class VirtualRouter < VirtualServiceProvider; end
10161
+ class Unknown < VirtualServiceProvider; end
8269
10162
  end
8270
10163
 
8271
10164
  # An object that represents a virtual service returned by a list