aws-sdk-appmesh 1.34.0 → 1.38.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,47 +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
- # certificate: {
130
- # file: {
131
- # certificate_chain: "FilePath", # required
132
- # private_key: "FilePath", # required
133
- # },
134
- # sds: {
135
- # secret_name: "SdsSecretName", # required
136
- # },
137
- # },
138
- # enforce: false,
139
- # ports: [1],
140
- # validation: { # required
141
- # subject_alternative_names: {
142
- # match: { # required
143
- # exact: ["SubjectAlternativeName"], # required
144
- # },
145
- # },
146
- # trust: { # required
147
- # acm: {
148
- # certificate_authority_arns: ["Arn"], # required
149
- # },
150
- # file: {
151
- # certificate_chain: "FilePath", # required
152
- # },
153
- # sds: {
154
- # secret_name: "SdsSecretName", # required
155
- # },
156
- # },
157
- # },
158
- # },
159
- # },
160
- # virtual_service_name: "ServiceName", # required
161
- # },
162
- # }
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.
163
125
  #
164
126
  # @!attribute [rw] virtual_service
165
127
  # Specifies a virtual service to use as a backend.
@@ -168,9 +130,14 @@ module Aws::AppMesh
168
130
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/Backend AWS API Documentation
169
131
  #
170
132
  class Backend < Struct.new(
171
- :virtual_service)
133
+ :virtual_service,
134
+ :unknown)
172
135
  SENSITIVE = []
173
136
  include Aws::Structure
137
+ include Aws::Structure::Union
138
+
139
+ class VirtualService < Backend; end
140
+ class Unknown < Backend; end
174
141
  end
175
142
 
176
143
  # An object that represents the default properties for a backend.
@@ -361,18 +328,9 @@ module Aws::AppMesh
361
328
 
362
329
  # An object that represents the client's certificate.
363
330
  #
364
- # @note When making an API call, you may pass ClientTlsCertificate
365
- # data as a hash:
331
+ # @note ClientTlsCertificate is a union - when making an API calls you must set exactly one of the members.
366
332
  #
367
- # {
368
- # file: {
369
- # certificate_chain: "FilePath", # required
370
- # private_key: "FilePath", # required
371
- # },
372
- # sds: {
373
- # secret_name: "SdsSecretName", # required
374
- # },
375
- # }
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.
376
334
  #
377
335
  # @!attribute [rw] file
378
336
  # An object that represents a local file certificate. The certificate
@@ -382,7 +340,7 @@ module Aws::AppMesh
382
340
  #
383
341
  #
384
342
  #
385
- # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites
343
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html
386
344
  # @return [Types::ListenerTlsFileCertificate]
387
345
  #
388
346
  # @!attribute [rw] sds
@@ -394,9 +352,15 @@ module Aws::AppMesh
394
352
  #
395
353
  class ClientTlsCertificate < Struct.new(
396
354
  :file,
397
- :sds)
355
+ :sds,
356
+ :unknown)
398
357
  SENSITIVE = []
399
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
400
364
  end
401
365
 
402
366
  # The request contains a client token that was used for a previous
@@ -425,6 +389,11 @@ module Aws::AppMesh
425
389
  # spec: { # required
426
390
  # grpc_route: {
427
391
  # action: { # required
392
+ # rewrite: {
393
+ # hostname: {
394
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
395
+ # },
396
+ # },
428
397
  # target: { # required
429
398
  # virtual_service: { # required
430
399
  # virtual_service_name: "ResourceName", # required
@@ -432,11 +401,43 @@ module Aws::AppMesh
432
401
  # },
433
402
  # },
434
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
+ # ],
435
424
  # service_name: "ServiceName",
436
425
  # },
437
426
  # },
438
427
  # http2_route: {
439
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
+ # },
440
441
  # target: { # required
441
442
  # virtual_service: { # required
442
443
  # virtual_service_name: "ResourceName", # required
@@ -444,11 +445,56 @@ module Aws::AppMesh
444
445
  # },
445
446
  # },
446
447
  # match: { # required
447
- # 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
+ # ],
448
482
  # },
449
483
  # },
450
484
  # http_route: {
451
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
+ # },
452
498
  # target: { # required
453
499
  # virtual_service: { # required
454
500
  # virtual_service_name: "ResourceName", # required
@@ -456,9 +502,43 @@ module Aws::AppMesh
456
502
  # },
457
503
  # },
458
504
  # match: { # required
459
- # 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
+ # ],
460
539
  # },
461
540
  # },
541
+ # priority: 1,
462
542
  # },
463
543
  # tags: [
464
544
  # {
@@ -708,7 +788,19 @@ module Aws::AppMesh
708
788
  # },
709
789
  # ],
710
790
  # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
711
- # 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
+ # ],
712
804
  # scheme: "http", # accepts http, https
713
805
  # },
714
806
  # retry_policy: {
@@ -758,7 +850,19 @@ module Aws::AppMesh
758
850
  # },
759
851
  # ],
760
852
  # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
761
- # 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
+ # ],
762
866
  # scheme: "http", # accepts http, https
763
867
  # },
764
868
  # retry_policy: {
@@ -1290,6 +1394,7 @@ module Aws::AppMesh
1290
1394
  # },
1291
1395
  # dns: {
1292
1396
  # hostname: "Hostname", # required
1397
+ # response_type: "LOADBALANCER", # accepts LOADBALANCER, ENDPOINTS
1293
1398
  # },
1294
1399
  # },
1295
1400
  # },
@@ -1783,9 +1888,7 @@ module Aws::AppMesh
1783
1888
  include Aws::Structure
1784
1889
  end
1785
1890
 
1786
- # <zonbook />
1787
- #
1788
- # <xhtml />
1891
+ # Deletes a virtual node input.
1789
1892
  #
1790
1893
  # @note When making an API call, you may pass DeleteVirtualNodeInput
1791
1894
  # data as a hash:
@@ -2362,16 +2465,22 @@ module Aws::AppMesh
2362
2465
  #
2363
2466
  # {
2364
2467
  # hostname: "Hostname", # required
2468
+ # response_type: "LOADBALANCER", # accepts LOADBALANCER, ENDPOINTS
2365
2469
  # }
2366
2470
  #
2367
2471
  # @!attribute [rw] hostname
2368
2472
  # Specifies the DNS service discovery hostname for the virtual node.
2369
2473
  # @return [String]
2370
2474
  #
2475
+ # @!attribute [rw] response_type
2476
+ # Specifies the DNS response type for the virtual node.
2477
+ # @return [String]
2478
+ #
2371
2479
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DnsServiceDiscovery AWS API Documentation
2372
2480
  #
2373
2481
  class DnsServiceDiscovery < Struct.new(
2374
- :hostname)
2482
+ :hostname,
2483
+ :response_type)
2375
2484
  SENSITIVE = []
2376
2485
  include Aws::Structure
2377
2486
  end
@@ -2415,9 +2524,10 @@ module Aws::AppMesh
2415
2524
  # @!attribute [rw] type
2416
2525
  # The egress filter type. By default, the type is `DROP_ALL`, which
2417
2526
  # allows egress only from virtual nodes to other defined resources in
2418
- # the service mesh (and any traffic to `*.amazonaws.com` for AWS API
2419
- # calls). You can set the egress filter type to `ALLOW_ALL` to allow
2420
- # 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.
2421
2531
  # @return [String]
2422
2532
  #
2423
2533
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/EgressFilter AWS API Documentation
@@ -2512,6 +2622,54 @@ module Aws::AppMesh
2512
2622
  include Aws::Structure
2513
2623
  end
2514
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
+
2515
2673
  # An object that represents a gateway route returned by a list
2516
2674
  # operation.
2517
2675
  #
@@ -2593,6 +2751,11 @@ module Aws::AppMesh
2593
2751
  # {
2594
2752
  # grpc_route: {
2595
2753
  # action: { # required
2754
+ # rewrite: {
2755
+ # hostname: {
2756
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
2757
+ # },
2758
+ # },
2596
2759
  # target: { # required
2597
2760
  # virtual_service: { # required
2598
2761
  # virtual_service_name: "ResourceName", # required
@@ -2600,11 +2763,43 @@ module Aws::AppMesh
2600
2763
  # },
2601
2764
  # },
2602
2765
  # match: { # required
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
+ # ],
2603
2786
  # service_name: "ServiceName",
2604
2787
  # },
2605
2788
  # },
2606
2789
  # http2_route: {
2607
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
+ # },
2608
2803
  # target: { # required
2609
2804
  # virtual_service: { # required
2610
2805
  # virtual_service_name: "ResourceName", # required
@@ -2612,11 +2807,56 @@ module Aws::AppMesh
2612
2807
  # },
2613
2808
  # },
2614
2809
  # match: { # required
2615
- # 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
+ # ],
2616
2844
  # },
2617
2845
  # },
2618
2846
  # http_route: {
2619
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
+ # },
2620
2860
  # target: { # required
2621
2861
  # virtual_service: { # required
2622
2862
  # virtual_service_name: "ResourceName", # required
@@ -2624,9 +2864,43 @@ module Aws::AppMesh
2624
2864
  # },
2625
2865
  # },
2626
2866
  # match: { # required
2627
- # 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
+ # ],
2628
2901
  # },
2629
2902
  # },
2903
+ # priority: 1,
2630
2904
  # }
2631
2905
  #
2632
2906
  # @!attribute [rw] grpc_route
@@ -2643,12 +2917,17 @@ module Aws::AppMesh
2643
2917
  # route.
2644
2918
  # @return [Types::HttpGatewayRoute]
2645
2919
  #
2920
+ # @!attribute [rw] priority
2921
+ # The ordering of the gateway routes spec.
2922
+ # @return [Integer]
2923
+ #
2646
2924
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GatewayRouteSpec AWS API Documentation
2647
2925
  #
2648
2926
  class GatewayRouteSpec < Struct.new(
2649
2927
  :grpc_route,
2650
2928
  :http2_route,
2651
- :http_route)
2929
+ :http_route,
2930
+ :priority)
2652
2931
  SENSITIVE = []
2653
2932
  include Aws::Structure
2654
2933
  end
@@ -2719,6 +2998,11 @@ module Aws::AppMesh
2719
2998
  #
2720
2999
  # {
2721
3000
  # action: { # required
3001
+ # rewrite: {
3002
+ # hostname: {
3003
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
3004
+ # },
3005
+ # },
2722
3006
  # target: { # required
2723
3007
  # virtual_service: { # required
2724
3008
  # virtual_service_name: "ResourceName", # required
@@ -2726,6 +3010,26 @@ module Aws::AppMesh
2726
3010
  # },
2727
3011
  # },
2728
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
+ # ],
2729
3033
  # service_name: "ServiceName",
2730
3034
  # },
2731
3035
  # }
@@ -2755,6 +3059,11 @@ module Aws::AppMesh
2755
3059
  # data as a hash:
2756
3060
  #
2757
3061
  # {
3062
+ # rewrite: {
3063
+ # hostname: {
3064
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
3065
+ # },
3066
+ # },
2758
3067
  # target: { # required
2759
3068
  # virtual_service: { # required
2760
3069
  # virtual_service_name: "ResourceName", # required
@@ -2762,6 +3071,10 @@ module Aws::AppMesh
2762
3071
  # },
2763
3072
  # }
2764
3073
  #
3074
+ # @!attribute [rw] rewrite
3075
+ # The gateway route action to rewrite.
3076
+ # @return [Types::GrpcGatewayRouteRewrite]
3077
+ #
2765
3078
  # @!attribute [rw] target
2766
3079
  # An object that represents the target that traffic is routed to when
2767
3080
  # a request matches the gateway route.
@@ -2770,6 +3083,7 @@ module Aws::AppMesh
2770
3083
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GrpcGatewayRouteAction AWS API Documentation
2771
3084
  #
2772
3085
  class GrpcGatewayRouteAction < Struct.new(
3086
+ :rewrite,
2773
3087
  :target)
2774
3088
  SENSITIVE = []
2775
3089
  include Aws::Structure
@@ -2782,9 +3096,37 @@ module Aws::AppMesh
2782
3096
  # data as a hash:
2783
3097
  #
2784
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
+ # ],
2785
3119
  # service_name: "ServiceName",
2786
3120
  # }
2787
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
+ #
2788
3130
  # @!attribute [rw] service_name
2789
3131
  # The fully qualified domain name for the service to match from the
2790
3132
  # request.
@@ -2793,14 +3135,140 @@ module Aws::AppMesh
2793
3135
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GrpcGatewayRouteMatch AWS API Documentation
2794
3136
  #
2795
3137
  class GrpcGatewayRouteMatch < Struct.new(
3138
+ :hostname,
3139
+ :metadata,
2796
3140
  :service_name)
2797
3141
  SENSITIVE = []
2798
3142
  include Aws::Structure
2799
3143
  end
2800
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
+
2801
3262
  # An object that represents a retry policy. Specify at least one value
2802
3263
  # for at least one of the types of `RetryEvents`, a value for
2803
- # `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
2804
3272
  #
2805
3273
  # @note When making an API call, you may pass GrpcRetryPolicy
2806
3274
  # data as a hash:
@@ -3068,19 +3536,9 @@ module Aws::AppMesh
3068
3536
  # An object that represents the match method. Specify one of the match
3069
3537
  # values.
3070
3538
  #
3071
- # @note When making an API call, you may pass GrpcRouteMetadataMatchMethod
3072
- # data as a hash:
3539
+ # @note GrpcRouteMetadataMatchMethod is a union - when making an API calls you must set exactly one of the members.
3073
3540
  #
3074
- # {
3075
- # exact: "HeaderMatch",
3076
- # prefix: "HeaderMatch",
3077
- # range: {
3078
- # end: 1, # required
3079
- # start: 1, # required
3080
- # },
3081
- # regex: "HeaderMatch",
3082
- # suffix: "HeaderMatch",
3083
- # }
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.
3084
3542
  #
3085
3543
  # @!attribute [rw] exact
3086
3544
  # The value sent by the client must match the specified value exactly.
@@ -3110,9 +3568,18 @@ module Aws::AppMesh
3110
3568
  :prefix,
3111
3569
  :range,
3112
3570
  :regex,
3113
- :suffix)
3571
+ :suffix,
3572
+ :unknown)
3114
3573
  SENSITIVE = []
3115
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
3116
3583
  end
3117
3584
 
3118
3585
  # An object that represents types of timeouts.
@@ -3159,19 +3626,9 @@ module Aws::AppMesh
3159
3626
  # An object that represents the method and value to match with the
3160
3627
  # header value sent in a request. Specify one match method.
3161
3628
  #
3162
- # @note When making an API call, you may pass HeaderMatchMethod
3163
- # data as a hash:
3629
+ # @note HeaderMatchMethod is a union - when making an API calls you must set exactly one of the members.
3164
3630
  #
3165
- # {
3166
- # exact: "HeaderMatch",
3167
- # prefix: "HeaderMatch",
3168
- # range: {
3169
- # end: 1, # required
3170
- # start: 1, # required
3171
- # },
3172
- # regex: "HeaderMatch",
3173
- # suffix: "HeaderMatch",
3174
- # }
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.
3175
3632
  #
3176
3633
  # @!attribute [rw] exact
3177
3634
  # The value sent by the client must match the specified value exactly.
@@ -3201,9 +3658,18 @@ module Aws::AppMesh
3201
3658
  :prefix,
3202
3659
  :range,
3203
3660
  :regex,
3204
- :suffix)
3661
+ :suffix,
3662
+ :unknown)
3205
3663
  SENSITIVE = []
3206
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
3207
3673
  end
3208
3674
 
3209
3675
  # An object that represents the health check policy for a virtual
@@ -3283,6 +3749,18 @@ module Aws::AppMesh
3283
3749
  #
3284
3750
  # {
3285
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
+ # },
3286
3764
  # target: { # required
3287
3765
  # virtual_service: { # required
3288
3766
  # virtual_service_name: "ResourceName", # required
@@ -3290,7 +3768,40 @@ module Aws::AppMesh
3290
3768
  # },
3291
3769
  # },
3292
3770
  # match: { # required
3293
- # prefix: "String", # 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
+ # ],
3294
3805
  # },
3295
3806
  # }
3296
3807
  #
@@ -3319,6 +3830,18 @@ module Aws::AppMesh
3319
3830
  # data as a hash:
3320
3831
  #
3321
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
+ # },
3322
3845
  # target: { # required
3323
3846
  # virtual_service: { # required
3324
3847
  # virtual_service_name: "ResourceName", # required
@@ -3326,6 +3849,10 @@ module Aws::AppMesh
3326
3849
  # },
3327
3850
  # }
3328
3851
  #
3852
+ # @!attribute [rw] rewrite
3853
+ # The gateway route action to rewrite.
3854
+ # @return [Types::HttpGatewayRouteRewrite]
3855
+ #
3329
3856
  # @!attribute [rw] target
3330
3857
  # An object that represents the target that traffic is routed to when
3331
3858
  # a request matches the gateway route.
@@ -3334,11 +3861,57 @@ module Aws::AppMesh
3334
3861
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpGatewayRouteAction AWS API Documentation
3335
3862
  #
3336
3863
  class HttpGatewayRouteAction < Struct.new(
3864
+ :rewrite,
3337
3865
  :target)
3338
3866
  SENSITIVE = []
3339
3867
  include Aws::Structure
3340
3868
  end
3341
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
+
3342
3915
  # An object that represents the criteria for determining a request
3343
3916
  # match.
3344
3917
  #
@@ -3346,9 +3919,58 @@ module Aws::AppMesh
3346
3919
  # data as a hash:
3347
3920
  #
3348
3921
  # {
3349
- # prefix: "String", # required
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
+ # ],
3350
3956
  # }
3351
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
+ #
3352
3974
  # @!attribute [rw] prefix
3353
3975
  # Specifies the path to match requests with. This parameter must
3354
3976
  # always start with `/`, which by itself matches all requests to the
@@ -3358,17 +3980,179 @@ module Aws::AppMesh
3358
3980
  # `my-service.local/metrics`, your prefix should be `/metrics`.
3359
3981
  # @return [String]
3360
3982
  #
3983
+ # @!attribute [rw] query_parameters
3984
+ # The query parameter to match on.
3985
+ # @return [Array<Types::HttpQueryParameter>]
3986
+ #
3361
3987
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpGatewayRouteMatch AWS API Documentation
3362
3988
  #
3363
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
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.
4023
+ #
4024
+ # @note When making an API call, you may pass HttpGatewayRoutePrefixRewrite
4025
+ # data as a hash:
4026
+ #
4027
+ # {
4028
+ # default_prefix: "ENABLED", # accepts ENABLED, DISABLED
4029
+ # value: "HttpGatewayRoutePrefix",
4030
+ # }
4031
+ #
4032
+ # @!attribute [rw] default_prefix
4033
+ # The default prefix used to replace the incoming route prefix when
4034
+ # rewritten.
4035
+ # @return [String]
4036
+ #
4037
+ # @!attribute [rw] value
4038
+ # The value used to replace the incoming route prefix when rewritten.
4039
+ # @return [String]
4040
+ #
4041
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpGatewayRoutePrefixRewrite AWS API Documentation
4042
+ #
4043
+ class HttpGatewayRoutePrefixRewrite < Struct.new(
4044
+ :default_prefix,
4045
+ :value)
4046
+ SENSITIVE = []
4047
+ include Aws::Structure
4048
+ end
4049
+
4050
+ # An object representing the gateway route to rewrite.
4051
+ #
4052
+ # @note When making an API call, you may pass HttpGatewayRouteRewrite
4053
+ # data as a hash:
4054
+ #
4055
+ # {
4056
+ # hostname: {
4057
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
4058
+ # },
4059
+ # path: {
4060
+ # exact: "HttpPathExact",
4061
+ # },
4062
+ # prefix: {
4063
+ # default_prefix: "ENABLED", # accepts ENABLED, DISABLED
4064
+ # value: "HttpGatewayRoutePrefix",
4065
+ # },
4066
+ # }
4067
+ #
4068
+ # @!attribute [rw] hostname
4069
+ # The host name to rewrite.
4070
+ # @return [Types::GatewayRouteHostnameRewrite]
4071
+ #
4072
+ # @!attribute [rw] path
4073
+ # The path to rewrite.
4074
+ # @return [Types::HttpGatewayRoutePathRewrite]
4075
+ #
4076
+ # @!attribute [rw] prefix
4077
+ # The specified beginning characters to rewrite.
4078
+ # @return [Types::HttpGatewayRoutePrefixRewrite]
4079
+ #
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,
3364
4085
  :prefix)
3365
4086
  SENSITIVE = []
3366
4087
  include Aws::Structure
3367
4088
  end
3368
4089
 
4090
+ # An object representing the path to match in the request.
4091
+ #
4092
+ # @note When making an API call, you may pass HttpPathMatch
4093
+ # data as a hash:
4094
+ #
4095
+ # {
4096
+ # exact: "HttpPathExact",
4097
+ # regex: "HttpPathRegex",
4098
+ # }
4099
+ #
4100
+ # @!attribute [rw] exact
4101
+ # The exact path to match on.
4102
+ # @return [String]
4103
+ #
4104
+ # @!attribute [rw] regex
4105
+ # The regex used to match the path.
4106
+ # @return [String]
4107
+ #
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)
4113
+ SENSITIVE = []
4114
+ include Aws::Structure
4115
+ end
4116
+
4117
+ # An object that represents the query parameter in the request.
4118
+ #
4119
+ # @note When making an API call, you may pass HttpQueryParameter
4120
+ # data as a hash:
4121
+ #
4122
+ # {
4123
+ # match: {
4124
+ # exact: "String",
4125
+ # },
4126
+ # name: "QueryParameterName", # required
4127
+ # }
4128
+ #
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.
4135
+ # @return [String]
4136
+ #
4137
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpQueryParameter AWS API Documentation
4138
+ #
4139
+ class HttpQueryParameter < Struct.new(
4140
+ :match,
4141
+ :name)
4142
+ SENSITIVE = []
4143
+ include Aws::Structure
4144
+ end
4145
+
3369
4146
  # An object that represents a retry policy. Specify at least one value
3370
4147
  # for at least one of the types of `RetryEvents`, a value for
3371
- # `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
3372
4156
  #
3373
4157
  # @note When making an API call, you may pass HttpRetryPolicy
3374
4158
  # data as a hash:
@@ -3449,11 +4233,23 @@ module Aws::AppMesh
3449
4233
  # regex: "HeaderMatch",
3450
4234
  # suffix: "HeaderMatch",
3451
4235
  # },
3452
- # name: "HeaderName", # required
4236
+ # name: "HeaderName", # required
4237
+ # },
4238
+ # ],
4239
+ # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
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
3453
4251
  # },
3454
4252
  # ],
3455
- # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
3456
- # prefix: "String", # required
3457
4253
  # scheme: "http", # accepts http, https
3458
4254
  # },
3459
4255
  # retry_policy: {
@@ -3601,18 +4397,34 @@ module Aws::AppMesh
3601
4397
  # },
3602
4398
  # ],
3603
4399
  # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
3604
- # 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
+ # ],
3605
4413
  # scheme: "http", # accepts http, https
3606
4414
  # }
3607
4415
  #
3608
4416
  # @!attribute [rw] headers
3609
- # An object that represents the client request headers to match on.
4417
+ # The client request headers to match on.
3610
4418
  # @return [Array<Types::HttpRouteHeader>]
3611
4419
  #
3612
4420
  # @!attribute [rw] method
3613
4421
  # The client request method to match on. Specify only one.
3614
4422
  # @return [String]
3615
4423
  #
4424
+ # @!attribute [rw] path
4425
+ # The client request path to match on.
4426
+ # @return [Types::HttpPathMatch]
4427
+ #
3616
4428
  # @!attribute [rw] prefix
3617
4429
  # Specifies the path to match requests with. This parameter must
3618
4430
  # always start with `/`, which by itself matches all requests to the
@@ -3622,8 +4434,13 @@ module Aws::AppMesh
3622
4434
  # `my-service.local/metrics`, your prefix should be `/metrics`.
3623
4435
  # @return [String]
3624
4436
  #
4437
+ # @!attribute [rw] query_parameters
4438
+ # The client request query parameters to match on.
4439
+ # @return [Array<Types::HttpQueryParameter>]
4440
+ #
3625
4441
  # @!attribute [rw] scheme
3626
- # 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.
3627
4444
  # @return [String]
3628
4445
  #
3629
4446
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpRouteMatch AWS API Documentation
@@ -3631,7 +4448,9 @@ module Aws::AppMesh
3631
4448
  class HttpRouteMatch < Struct.new(
3632
4449
  :headers,
3633
4450
  :method,
4451
+ :path,
3634
4452
  :prefix,
4453
+ :query_parameters,
3635
4454
  :scheme)
3636
4455
  SENSITIVE = []
3637
4456
  include Aws::Structure
@@ -4504,47 +5323,9 @@ module Aws::AppMesh
4504
5323
 
4505
5324
  # An object that represents timeouts for different protocols.
4506
5325
  #
4507
- # @note When making an API call, you may pass ListenerTimeout
4508
- # data as a hash:
5326
+ # @note ListenerTimeout is a union - when making an API calls you must set exactly one of the members.
4509
5327
  #
4510
- # {
4511
- # grpc: {
4512
- # idle: {
4513
- # unit: "s", # accepts s, ms
4514
- # value: 1,
4515
- # },
4516
- # per_request: {
4517
- # unit: "s", # accepts s, ms
4518
- # value: 1,
4519
- # },
4520
- # },
4521
- # http: {
4522
- # idle: {
4523
- # unit: "s", # accepts s, ms
4524
- # value: 1,
4525
- # },
4526
- # per_request: {
4527
- # unit: "s", # accepts s, ms
4528
- # value: 1,
4529
- # },
4530
- # },
4531
- # http2: {
4532
- # idle: {
4533
- # unit: "s", # accepts s, ms
4534
- # value: 1,
4535
- # },
4536
- # per_request: {
4537
- # unit: "s", # accepts s, ms
4538
- # value: 1,
4539
- # },
4540
- # },
4541
- # tcp: {
4542
- # idle: {
4543
- # unit: "s", # accepts s, ms
4544
- # value: 1,
4545
- # },
4546
- # },
4547
- # }
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.
4548
5329
  #
4549
5330
  # @!attribute [rw] grpc
4550
5331
  # An object that represents types of timeouts.
@@ -4568,9 +5349,17 @@ module Aws::AppMesh
4568
5349
  :grpc,
4569
5350
  :http,
4570
5351
  :http2,
4571
- :tcp)
5352
+ :tcp,
5353
+ :unknown)
4572
5354
  SENSITIVE = []
4573
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
4574
5363
  end
4575
5364
 
4576
5365
  # An object that represents the Transport Layer Security (TLS)
@@ -4672,21 +5461,9 @@ module Aws::AppMesh
4672
5461
  # An object that represents a listener's Transport Layer Security (TLS)
4673
5462
  # certificate.
4674
5463
  #
4675
- # @note When making an API call, you may pass ListenerTlsCertificate
4676
- # data as a hash:
5464
+ # @note ListenerTlsCertificate is a union - when making an API calls you must set exactly one of the members.
4677
5465
  #
4678
- # {
4679
- # acm: {
4680
- # certificate_arn: "Arn", # required
4681
- # },
4682
- # file: {
4683
- # certificate_chain: "FilePath", # required
4684
- # private_key: "FilePath", # required
4685
- # },
4686
- # sds: {
4687
- # secret_name: "SdsSecretName", # required
4688
- # },
4689
- # }
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.
4690
5467
  #
4691
5468
  # @!attribute [rw] acm
4692
5469
  # A reference to an object that represents an AWS Certicate Manager
@@ -4707,9 +5484,16 @@ module Aws::AppMesh
4707
5484
  class ListenerTlsCertificate < Struct.new(
4708
5485
  :acm,
4709
5486
  :file,
4710
- :sds)
5487
+ :sds,
5488
+ :unknown)
4711
5489
  SENSITIVE = []
4712
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
4713
5497
  end
4714
5498
 
4715
5499
  # An object that represents a local file certificate. The certificate
@@ -4822,17 +5606,9 @@ module Aws::AppMesh
4822
5606
  # An object that represents a listener's Transport Layer Security (TLS)
4823
5607
  # validation context trust.
4824
5608
  #
4825
- # @note When making an API call, you may pass ListenerTlsValidationContextTrust
4826
- # data as a hash:
5609
+ # @note ListenerTlsValidationContextTrust is a union - when making an API calls you must set exactly one of the members.
4827
5610
  #
4828
- # {
4829
- # file: {
4830
- # certificate_chain: "FilePath", # required
4831
- # },
4832
- # sds: {
4833
- # secret_name: "SdsSecretName", # required
4834
- # },
4835
- # }
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.
4836
5612
  #
4837
5613
  # @!attribute [rw] file
4838
5614
  # An object that represents a Transport Layer Security (TLS)
@@ -4849,9 +5625,15 @@ module Aws::AppMesh
4849
5625
  #
4850
5626
  class ListenerTlsValidationContextTrust < Struct.new(
4851
5627
  :file,
4852
- :sds)
5628
+ :sds,
5629
+ :unknown)
4853
5630
  SENSITIVE = []
4854
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
4855
5637
  end
4856
5638
 
4857
5639
  # An object that represents the logging information for a virtual node.
@@ -5126,6 +5908,27 @@ module Aws::AppMesh
5126
5908
  include Aws::Structure
5127
5909
  end
5128
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
+
5129
5932
  # You can't delete the specified resource because it's in use or
5130
5933
  # required by another resource.
5131
5934
  #
@@ -5395,7 +6198,19 @@ module Aws::AppMesh
5395
6198
  # },
5396
6199
  # ],
5397
6200
  # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
5398
- # 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
+ # ],
5399
6214
  # scheme: "http", # accepts http, https
5400
6215
  # },
5401
6216
  # retry_policy: {
@@ -5445,7 +6260,19 @@ module Aws::AppMesh
5445
6260
  # },
5446
6261
  # ],
5447
6262
  # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
5448
- # 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
+ # ],
5449
6276
  # scheme: "http", # accepts http, https
5450
6277
  # },
5451
6278
  # retry_policy: {
@@ -5537,27 +6364,12 @@ module Aws::AppMesh
5537
6364
  # An object that represents the service discovery information for a
5538
6365
  # virtual node.
5539
6366
  #
5540
- # @note When making an API call, you may pass ServiceDiscovery
5541
- # data as a hash:
6367
+ # @note ServiceDiscovery is a union - when making an API calls you must set exactly one of the members.
5542
6368
  #
5543
- # {
5544
- # aws_cloud_map: {
5545
- # attributes: [
5546
- # {
5547
- # key: "AwsCloudMapInstanceAttributeKey", # required
5548
- # value: "AwsCloudMapInstanceAttributeValue", # required
5549
- # },
5550
- # ],
5551
- # namespace_name: "AwsCloudMapName", # required
5552
- # service_name: "AwsCloudMapName", # required
5553
- # },
5554
- # dns: {
5555
- # hostname: "Hostname", # required
5556
- # },
5557
- # }
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.
5558
6370
  #
5559
6371
  # @!attribute [rw] aws_cloud_map
5560
- # Specifies any AWS Cloud Map information for the virtual node.
6372
+ # Specifies any Cloud Map information for the virtual node.
5561
6373
  # @return [Types::AwsCloudMapServiceDiscovery]
5562
6374
  #
5563
6375
  # @!attribute [rw] dns
@@ -5568,9 +6380,15 @@ module Aws::AppMesh
5568
6380
  #
5569
6381
  class ServiceDiscovery < Struct.new(
5570
6382
  :aws_cloud_map,
5571
- :dns)
6383
+ :dns,
6384
+ :unknown)
5572
6385
  SENSITIVE = []
5573
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
5574
6392
  end
5575
6393
 
5576
6394
  # The request has failed due to a temporary failure of the service.
@@ -5849,7 +6667,7 @@ module Aws::AppMesh
5849
6667
  end
5850
6668
 
5851
6669
  # An object that represents a Transport Layer Security (TLS) validation
5852
- # context trust for an AWS Certicate Manager (ACM) certificate.
6670
+ # context trust for an Certificate Manager certificate.
5853
6671
  #
5854
6672
  # @note When making an API call, you may pass TlsValidationContextAcmTrust
5855
6673
  # data as a hash:
@@ -5926,24 +6744,13 @@ module Aws::AppMesh
5926
6744
  # An object that represents a Transport Layer Security (TLS) validation
5927
6745
  # context trust.
5928
6746
  #
5929
- # @note When making an API call, you may pass TlsValidationContextTrust
5930
- # data as a hash:
6747
+ # @note TlsValidationContextTrust is a union - when making an API calls you must set exactly one of the members.
5931
6748
  #
5932
- # {
5933
- # acm: {
5934
- # certificate_authority_arns: ["Arn"], # required
5935
- # },
5936
- # file: {
5937
- # certificate_chain: "FilePath", # required
5938
- # },
5939
- # sds: {
5940
- # secret_name: "SdsSecretName", # required
5941
- # },
5942
- # }
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.
5943
6750
  #
5944
6751
  # @!attribute [rw] acm
5945
6752
  # A reference to an object that represents a Transport Layer Security
5946
- # (TLS) validation context trust for an AWS Certicate Manager (ACM)
6753
+ # (TLS) validation context trust for an Certificate Manager
5947
6754
  # certificate.
5948
6755
  # @return [Types::TlsValidationContextAcmTrust]
5949
6756
  #
@@ -5962,9 +6769,16 @@ module Aws::AppMesh
5962
6769
  class TlsValidationContextTrust < Struct.new(
5963
6770
  :acm,
5964
6771
  :file,
5965
- :sds)
6772
+ :sds,
6773
+ :unknown)
5966
6774
  SENSITIVE = []
5967
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
5968
6782
  end
5969
6783
 
5970
6784
  # The maximum request rate permitted by the App Mesh APIs has been
@@ -6046,6 +6860,11 @@ module Aws::AppMesh
6046
6860
  # spec: { # required
6047
6861
  # grpc_route: {
6048
6862
  # action: { # required
6863
+ # rewrite: {
6864
+ # hostname: {
6865
+ # default_target_hostname: "ENABLED", # accepts ENABLED, DISABLED
6866
+ # },
6867
+ # },
6049
6868
  # target: { # required
6050
6869
  # virtual_service: { # required
6051
6870
  # virtual_service_name: "ResourceName", # required
@@ -6053,11 +6872,43 @@ module Aws::AppMesh
6053
6872
  # },
6054
6873
  # },
6055
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
+ # ],
6056
6895
  # service_name: "ServiceName",
6057
6896
  # },
6058
6897
  # },
6059
6898
  # http2_route: {
6060
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
+ # },
6061
6912
  # target: { # required
6062
6913
  # virtual_service: { # required
6063
6914
  # virtual_service_name: "ResourceName", # required
@@ -6065,11 +6916,56 @@ module Aws::AppMesh
6065
6916
  # },
6066
6917
  # },
6067
6918
  # match: { # required
6068
- # 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
+ # ],
6069
6953
  # },
6070
6954
  # },
6071
6955
  # http_route: {
6072
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
+ # },
6073
6969
  # target: { # required
6074
6970
  # virtual_service: { # required
6075
6971
  # virtual_service_name: "ResourceName", # required
@@ -6077,9 +6973,43 @@ module Aws::AppMesh
6077
6973
  # },
6078
6974
  # },
6079
6975
  # match: { # required
6080
- # 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
+ # ],
6081
7010
  # },
6082
7011
  # },
7012
+ # priority: 1,
6083
7013
  # },
6084
7014
  # virtual_gateway_name: "ResourceName", # required
6085
7015
  # }
@@ -6298,7 +7228,19 @@ module Aws::AppMesh
6298
7228
  # },
6299
7229
  # ],
6300
7230
  # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
6301
- # 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
+ # ],
6302
7244
  # scheme: "http", # accepts http, https
6303
7245
  # },
6304
7246
  # retry_policy: {
@@ -6348,7 +7290,19 @@ module Aws::AppMesh
6348
7290
  # },
6349
7291
  # ],
6350
7292
  # method: "GET", # accepts GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH
6351
- # 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
+ # ],
6352
7306
  # scheme: "http", # accepts http, https
6353
7307
  # },
6354
7308
  # retry_policy: {
@@ -6847,6 +7801,7 @@ module Aws::AppMesh
6847
7801
  # },
6848
7802
  # dns: {
6849
7803
  # hostname: "Hostname", # required
7804
+ # response_type: "LOADBALANCER", # accepts LOADBALANCER, ENDPOINTS
6850
7805
  # },
6851
7806
  # },
6852
7807
  # },
@@ -7086,14 +8041,9 @@ module Aws::AppMesh
7086
8041
 
7087
8042
  # The access log configuration for a virtual gateway.
7088
8043
  #
7089
- # @note When making an API call, you may pass VirtualGatewayAccessLog
7090
- # data as a hash:
8044
+ # @note VirtualGatewayAccessLog is a union - when making an API calls you must set exactly one of the members.
7091
8045
  #
7092
- # {
7093
- # file: {
7094
- # path: "FilePath", # required
7095
- # },
7096
- # }
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.
7097
8047
  #
7098
8048
  # @!attribute [rw] file
7099
8049
  # The file object to send virtual gateway access logs to.
@@ -7102,9 +8052,14 @@ module Aws::AppMesh
7102
8052
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/VirtualGatewayAccessLog AWS API Documentation
7103
8053
  #
7104
8054
  class VirtualGatewayAccessLog < Struct.new(
7105
- :file)
8055
+ :file,
8056
+ :unknown)
7106
8057
  SENSITIVE = []
7107
8058
  include Aws::Structure
8059
+ include Aws::Structure::Union
8060
+
8061
+ class File < VirtualGatewayAccessLog; end
8062
+ class Unknown < VirtualGatewayAccessLog; end
7108
8063
  end
7109
8064
 
7110
8065
  # An object that represents the default properties for a backend.
@@ -7283,28 +8238,19 @@ module Aws::AppMesh
7283
8238
  # An object that represents the virtual gateway's client's Transport
7284
8239
  # Layer Security (TLS) certificate.
7285
8240
  #
7286
- # @note When making an API call, you may pass VirtualGatewayClientTlsCertificate
7287
- # data as a hash:
8241
+ # @note VirtualGatewayClientTlsCertificate is a union - when making an API calls you must set exactly one of the members.
7288
8242
  #
7289
- # {
7290
- # file: {
7291
- # certificate_chain: "FilePath", # required
7292
- # private_key: "FilePath", # required
7293
- # },
7294
- # sds: {
7295
- # secret_name: "VirtualGatewaySdsSecretName", # required
7296
- # },
7297
- # }
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.
7298
8244
  #
7299
8245
  # @!attribute [rw] file
7300
8246
  # An object that represents a local file certificate. The certificate
7301
8247
  # must meet specific requirements and you must have proxy
7302
- # authorization enabled. For more information, see [Transport Layer
7303
- # Security (TLS)][1].
8248
+ # authorization enabled. For more information, see [ Transport Layer
8249
+ # Security (TLS) ][1].
7304
8250
  #
7305
8251
  #
7306
8252
  #
7307
- # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites
8253
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html
7308
8254
  # @return [Types::VirtualGatewayListenerTlsFileCertificate]
7309
8255
  #
7310
8256
  # @!attribute [rw] sds
@@ -7316,9 +8262,15 @@ module Aws::AppMesh
7316
8262
  #
7317
8263
  class VirtualGatewayClientTlsCertificate < Struct.new(
7318
8264
  :file,
7319
- :sds)
8265
+ :sds,
8266
+ :unknown)
7320
8267
  SENSITIVE = []
7321
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
7322
8274
  end
7323
8275
 
7324
8276
  # An object that represents the type of virtual gateway connection pool.
@@ -7329,21 +8281,9 @@ module Aws::AppMesh
7329
8281
  # If not present the default value for `maxPendingRequests` is
7330
8282
  # `2147483647`.
7331
8283
  #
7332
- # @note When making an API call, you may pass VirtualGatewayConnectionPool
7333
- # data as a hash:
8284
+ # @note VirtualGatewayConnectionPool is a union - when making an API calls you must set exactly one of the members.
7334
8285
  #
7335
- # {
7336
- # grpc: {
7337
- # max_requests: 1, # required
7338
- # },
7339
- # http: {
7340
- # max_connections: 1, # required
7341
- # max_pending_requests: 1,
7342
- # },
7343
- # http2: {
7344
- # max_requests: 1, # required
7345
- # },
7346
- # }
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.
7347
8287
  #
7348
8288
  # @!attribute [rw] grpc
7349
8289
  # An object that represents a type of connection pool.
@@ -7362,9 +8302,16 @@ module Aws::AppMesh
7362
8302
  class VirtualGatewayConnectionPool < Struct.new(
7363
8303
  :grpc,
7364
8304
  :http,
7365
- :http2)
8305
+ :http2,
8306
+ :unknown)
7366
8307
  SENSITIVE = []
7367
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
7368
8315
  end
7369
8316
 
7370
8317
  # An object that represents a virtual gateway returned by a describe
@@ -7730,7 +8677,7 @@ module Aws::AppMesh
7730
8677
  include Aws::Structure
7731
8678
  end
7732
8679
 
7733
- # An object that represents an AWS Certicate Manager (ACM) certificate.
8680
+ # An object that represents an Certificate Manager certificate.
7734
8681
  #
7735
8682
  # @note When making an API call, you may pass VirtualGatewayListenerTlsAcmCertificate
7736
8683
  # data as a hash:
@@ -7761,25 +8708,13 @@ module Aws::AppMesh
7761
8708
  # An object that represents a listener's Transport Layer Security (TLS)
7762
8709
  # certificate.
7763
8710
  #
7764
- # @note When making an API call, you may pass VirtualGatewayListenerTlsCertificate
7765
- # data as a hash:
8711
+ # @note VirtualGatewayListenerTlsCertificate is a union - when making an API calls you must set exactly one of the members.
7766
8712
  #
7767
- # {
7768
- # acm: {
7769
- # certificate_arn: "Arn", # required
7770
- # },
7771
- # file: {
7772
- # certificate_chain: "FilePath", # required
7773
- # private_key: "FilePath", # required
7774
- # },
7775
- # sds: {
7776
- # secret_name: "VirtualGatewaySdsSecretName", # required
7777
- # },
7778
- # }
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.
7779
8714
  #
7780
8715
  # @!attribute [rw] acm
7781
- # A reference to an object that represents an AWS Certicate Manager
7782
- # (ACM) certificate.
8716
+ # A reference to an object that represents an Certificate Manager
8717
+ # certificate.
7783
8718
  # @return [Types::VirtualGatewayListenerTlsAcmCertificate]
7784
8719
  #
7785
8720
  # @!attribute [rw] file
@@ -7796,9 +8731,16 @@ module Aws::AppMesh
7796
8731
  class VirtualGatewayListenerTlsCertificate < Struct.new(
7797
8732
  :acm,
7798
8733
  :file,
7799
- :sds)
8734
+ :sds,
8735
+ :unknown)
7800
8736
  SENSITIVE = []
7801
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
7802
8744
  end
7803
8745
 
7804
8746
  # An object that represents a local file certificate. The certificate
@@ -7838,7 +8780,7 @@ module Aws::AppMesh
7838
8780
 
7839
8781
  # An object that represents the virtual gateway's listener's Secret
7840
8782
  # Discovery Service certificate.The proxy must be configured with a
7841
- # local SDS provider via a Unix Domain Socket. See App Mesh [TLS
8783
+ # local SDS provider via a Unix Domain Socket. See App Mesh[TLS
7842
8784
  # documentation][1] for more info.
7843
8785
  #
7844
8786
  #
@@ -7912,17 +8854,9 @@ module Aws::AppMesh
7912
8854
  # An object that represents a virtual gateway's listener's Transport
7913
8855
  # Layer Security (TLS) validation context trust.
7914
8856
  #
7915
- # @note When making an API call, you may pass VirtualGatewayListenerTlsValidationContextTrust
7916
- # data as a hash:
8857
+ # @note VirtualGatewayListenerTlsValidationContextTrust is a union - when making an API calls you must set exactly one of the members.
7917
8858
  #
7918
- # {
7919
- # file: {
7920
- # certificate_chain: "FilePath", # required
7921
- # },
7922
- # sds: {
7923
- # secret_name: "VirtualGatewaySdsSecretName", # required
7924
- # },
7925
- # }
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.
7926
8860
  #
7927
8861
  # @!attribute [rw] file
7928
8862
  # An object that represents a Transport Layer Security (TLS)
@@ -7939,9 +8873,15 @@ module Aws::AppMesh
7939
8873
  #
7940
8874
  class VirtualGatewayListenerTlsValidationContextTrust < Struct.new(
7941
8875
  :file,
7942
- :sds)
8876
+ :sds,
8877
+ :unknown)
7943
8878
  SENSITIVE = []
7944
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
7945
8885
  end
7946
8886
 
7947
8887
  # An object that represents logging information.
@@ -8256,7 +9196,7 @@ module Aws::AppMesh
8256
9196
  end
8257
9197
 
8258
9198
  # An object that represents a Transport Layer Security (TLS) validation
8259
- # context trust for an AWS Certicate Manager (ACM) certificate.
9199
+ # context trust for an Certificate Manager certificate.
8260
9200
  #
8261
9201
  # @note When making an API call, you may pass VirtualGatewayTlsValidationContextAcmTrust
8262
9202
  # data as a hash:
@@ -8333,24 +9273,13 @@ module Aws::AppMesh
8333
9273
  # An object that represents a Transport Layer Security (TLS) validation
8334
9274
  # context trust.
8335
9275
  #
8336
- # @note When making an API call, you may pass VirtualGatewayTlsValidationContextTrust
8337
- # data as a hash:
9276
+ # @note VirtualGatewayTlsValidationContextTrust is a union - when making an API calls you must set exactly one of the members.
8338
9277
  #
8339
- # {
8340
- # acm: {
8341
- # certificate_authority_arns: ["Arn"], # required
8342
- # },
8343
- # file: {
8344
- # certificate_chain: "FilePath", # required
8345
- # },
8346
- # sds: {
8347
- # secret_name: "VirtualGatewaySdsSecretName", # required
8348
- # },
8349
- # }
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.
8350
9279
  #
8351
9280
  # @!attribute [rw] acm
8352
9281
  # A reference to an object that represents a Transport Layer Security
8353
- # (TLS) validation context trust for an AWS Certicate Manager (ACM)
9282
+ # (TLS) validation context trust for an Certificate Manager
8354
9283
  # certificate.
8355
9284
  # @return [Types::VirtualGatewayTlsValidationContextAcmTrust]
8356
9285
  #
@@ -8370,9 +9299,16 @@ module Aws::AppMesh
8370
9299
  class VirtualGatewayTlsValidationContextTrust < Struct.new(
8371
9300
  :acm,
8372
9301
  :file,
8373
- :sds)
9302
+ :sds,
9303
+ :unknown)
8374
9304
  SENSITIVE = []
8375
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
8376
9312
  end
8377
9313
 
8378
9314
  # An object that represents the type of virtual node connection pool.
@@ -8383,24 +9319,9 @@ module Aws::AppMesh
8383
9319
  # If not present the default value for `maxPendingRequests` is
8384
9320
  # `2147483647`.
8385
9321
  #
8386
- # @note When making an API call, you may pass VirtualNodeConnectionPool
8387
- # data as a hash:
9322
+ # @note VirtualNodeConnectionPool is a union - when making an API calls you must set exactly one of the members.
8388
9323
  #
8389
- # {
8390
- # grpc: {
8391
- # max_requests: 1, # required
8392
- # },
8393
- # http: {
8394
- # max_connections: 1, # required
8395
- # max_pending_requests: 1,
8396
- # },
8397
- # http2: {
8398
- # max_requests: 1, # required
8399
- # },
8400
- # tcp: {
8401
- # max_connections: 1, # required
8402
- # },
8403
- # }
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.
8404
9325
  #
8405
9326
  # @!attribute [rw] grpc
8406
9327
  # An object that represents a type of connection pool.
@@ -8424,9 +9345,17 @@ module Aws::AppMesh
8424
9345
  :grpc,
8425
9346
  :http,
8426
9347
  :http2,
8427
- :tcp)
9348
+ :tcp,
9349
+ :unknown)
8428
9350
  SENSITIVE = []
8429
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
8430
9359
  end
8431
9360
 
8432
9361
  # An object that represents a virtual node returned by a describe
@@ -8837,6 +9766,7 @@ module Aws::AppMesh
8837
9766
  # },
8838
9767
  # dns: {
8839
9768
  # hostname: "Hostname", # required
9769
+ # response_type: "LOADBALANCER", # accepts LOADBALANCER, ENDPOINTS
8840
9770
  # },
8841
9771
  # },
8842
9772
  # }
@@ -9204,17 +10134,9 @@ module Aws::AppMesh
9204
10134
 
9205
10135
  # An object that represents the provider for a virtual service.
9206
10136
  #
9207
- # @note When making an API call, you may pass VirtualServiceProvider
9208
- # data as a hash:
10137
+ # @note VirtualServiceProvider is a union - when making an API calls you must set exactly one of the members.
9209
10138
  #
9210
- # {
9211
- # virtual_node: {
9212
- # virtual_node_name: "ResourceName", # required
9213
- # },
9214
- # virtual_router: {
9215
- # virtual_router_name: "ResourceName", # required
9216
- # },
9217
- # }
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.
9218
10140
  #
9219
10141
  # @!attribute [rw] virtual_node
9220
10142
  # The virtual node associated with a virtual service.
@@ -9228,9 +10150,15 @@ module Aws::AppMesh
9228
10150
  #
9229
10151
  class VirtualServiceProvider < Struct.new(
9230
10152
  :virtual_node,
9231
- :virtual_router)
10153
+ :virtual_router,
10154
+ :unknown)
9232
10155
  SENSITIVE = []
9233
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
9234
10162
  end
9235
10163
 
9236
10164
  # An object that represents a virtual service returned by a list