aws-sdk-appmesh 1.33.0 → 1.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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