aws-sdk-appmesh 1.26.0 → 1.31.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d577be94870bf48c4d00f6d70e3f277122f14cee4ac95e6d52c059a81f801979
4
- data.tar.gz: 83f47e035832dad05d2ff0b363549dddfa08f0b3281587dc400fcb946c9a438e
3
+ metadata.gz: d247b7a17307cd14d92aec4614a31f67dc2b53effdad895d8dec9b9083ffa3aa
4
+ data.tar.gz: 10a9730af8dbfb14ebd8f224094d3bdcc68d6d47bf4f39216f7d8b48ea4559f3
5
5
  SHA512:
6
- metadata.gz: 6cf2980c797233498e42f9c48d6553a61d8c59fe9759d4cf390604c589d8887177cb68d40bf03bf44753cc72f08b4c717b7aed67f3c318e7d4310d7b2d6aa78e
7
- data.tar.gz: c3c127b911d41df6df44f22809cf845d7bcc2ac24a0f95dc6ec9a48b26ce1ce768ebda91fe649393b23e7b3aca0d987b35f1a5efca901e1a5bd5a6963f6050d0
6
+ metadata.gz: aaaa031f54a9aae38ab0947bc496884e63aeb5fad77c531e26f8de8605bede88d967084c3615d837f53597be451f5e7f1b36ac8634bac8a2d72293ea30e8884e
7
+ data.tar.gz: 9f7cdc529d46714a1c509105f489785c18f060680bb07b34ad2b71df9778bcc4701d5f104ec1a51f7b4de1253dbc79b36f051389083fae1616d35496b81d4c2f
@@ -7,6 +7,7 @@
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
+
10
11
  require 'aws-sdk-core'
11
12
  require 'aws-sigv4'
12
13
 
@@ -27,7 +28,7 @@ require_relative 'aws-sdk-appmesh/customizations'
27
28
  # structure.
28
29
  #
29
30
  # app_mesh = Aws::AppMesh::Client.new
30
- # resp = app_mesh.create_mesh(params)
31
+ # resp = app_mesh.create_gateway_route(params)
31
32
  #
32
33
  # See {Client} for more information.
33
34
  #
@@ -44,9 +45,9 @@ require_relative 'aws-sdk-appmesh/customizations'
44
45
  #
45
46
  # See {Errors} for more information.
46
47
  #
47
- # @service
48
+ # @!group service
48
49
  module Aws::AppMesh
49
50
 
50
- GEM_VERSION = '1.26.0'
51
+ GEM_VERSION = '1.31.0'
51
52
 
52
53
  end
@@ -85,13 +85,28 @@ module Aws::AppMesh
85
85
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
86
86
  # credentials.
87
87
  #
88
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
89
+ # shared file, such as `~/.aws/config`.
90
+ #
91
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
92
+ #
93
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
94
+ # assume a role after providing credentials via the web.
95
+ #
96
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
97
+ # access token generated from `aws login`.
98
+ #
99
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
100
+ # process that outputs to stdout.
101
+ #
88
102
  # * `Aws::InstanceProfileCredentials` - Used for loading credentials
89
103
  # from an EC2 IMDS on an EC2 instance.
90
104
  #
91
- # * `Aws::SharedCredentials` - Used for loading credentials from a
92
- # shared file, such as `~/.aws/config`.
105
+ # * `Aws::ECSCredentials` - Used for loading credentials from
106
+ # instances running in ECS.
93
107
  #
94
- # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
109
+ # from the Cognito Identity service.
95
110
  #
96
111
  # When `:credentials` are not configured directly, the following
97
112
  # locations will be searched for credentials:
@@ -101,10 +116,10 @@ module Aws::AppMesh
101
116
  # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
102
117
  # * `~/.aws/credentials`
103
118
  # * `~/.aws/config`
104
- # * EC2 IMDS instance profile - When used by default, the timeouts are
105
- # very aggressive. Construct and pass an instance of
106
- # `Aws::InstanceProfileCredentails` to enable retries and extended
107
- # timeouts.
119
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
120
+ # are very aggressive. Construct and pass an instance of
121
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
122
+ # enable retries and extended timeouts.
108
123
  #
109
124
  # @option options [required, String] :region
110
125
  # The AWS region to connect to. The configured `:region` is
@@ -312,6 +327,145 @@ module Aws::AppMesh
312
327
 
313
328
  # @!group API Operations
314
329
 
330
+ # Creates a gateway route.
331
+ #
332
+ # A gateway route is attached to a virtual gateway and routes traffic to
333
+ # an existing virtual service. If a route matches a request, it can
334
+ # distribute traffic to a target virtual service.
335
+ #
336
+ # For more information about gateway routes, see [Gateway routes][1].
337
+ #
338
+ #
339
+ #
340
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html
341
+ #
342
+ # @option params [String] :client_token
343
+ # Unique, case-sensitive identifier that you provide to ensure the
344
+ # idempotency of the request. Up to 36 letters, numbers, hyphens, and
345
+ # underscores are allowed.
346
+ #
347
+ # **A suitable default value is auto-generated.** You should normally
348
+ # not need to pass this option.**
349
+ #
350
+ # @option params [required, String] :gateway_route_name
351
+ # The name to use for the gateway route.
352
+ #
353
+ # @option params [required, String] :mesh_name
354
+ # The name of the service mesh to create the gateway route in.
355
+ #
356
+ # @option params [String] :mesh_owner
357
+ # The AWS IAM account ID of the service mesh owner. If the account ID is
358
+ # not your own, then the account that you specify must share the mesh
359
+ # with your account before you can create the resource in the service
360
+ # mesh. For more information about mesh sharing, see [Working with
361
+ # shared meshes][1].
362
+ #
363
+ #
364
+ #
365
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html
366
+ #
367
+ # @option params [required, Types::GatewayRouteSpec] :spec
368
+ # The gateway route specification to apply.
369
+ #
370
+ # @option params [Array<Types::TagRef>] :tags
371
+ # Optional metadata that you can apply to the gateway route to assist
372
+ # with categorization and organization. Each tag consists of a key and
373
+ # an optional value, both of which you define. Tag keys can have a
374
+ # maximum character length of 128 characters, and tag values can have a
375
+ # maximum length of 256 characters.
376
+ #
377
+ # @option params [required, String] :virtual_gateway_name
378
+ # The name of the virtual gateway to associate the gateway route with.
379
+ # If the virtual gateway is in a shared mesh, then you must be the owner
380
+ # of the virtual gateway resource.
381
+ #
382
+ # @return [Types::CreateGatewayRouteOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
383
+ #
384
+ # * {Types::CreateGatewayRouteOutput#gateway_route #gateway_route} => Types::GatewayRouteData
385
+ #
386
+ # @example Request syntax with placeholder values
387
+ #
388
+ # resp = client.create_gateway_route({
389
+ # client_token: "String",
390
+ # gateway_route_name: "ResourceName", # required
391
+ # mesh_name: "ResourceName", # required
392
+ # mesh_owner: "AccountId",
393
+ # spec: { # required
394
+ # grpc_route: {
395
+ # action: { # required
396
+ # target: { # required
397
+ # virtual_service: { # required
398
+ # virtual_service_name: "ResourceName", # required
399
+ # },
400
+ # },
401
+ # },
402
+ # match: { # required
403
+ # service_name: "ServiceName",
404
+ # },
405
+ # },
406
+ # http2_route: {
407
+ # action: { # required
408
+ # target: { # required
409
+ # virtual_service: { # required
410
+ # virtual_service_name: "ResourceName", # required
411
+ # },
412
+ # },
413
+ # },
414
+ # match: { # required
415
+ # prefix: "String", # required
416
+ # },
417
+ # },
418
+ # http_route: {
419
+ # action: { # required
420
+ # target: { # required
421
+ # virtual_service: { # required
422
+ # virtual_service_name: "ResourceName", # required
423
+ # },
424
+ # },
425
+ # },
426
+ # match: { # required
427
+ # prefix: "String", # required
428
+ # },
429
+ # },
430
+ # },
431
+ # tags: [
432
+ # {
433
+ # key: "TagKey", # required
434
+ # value: "TagValue",
435
+ # },
436
+ # ],
437
+ # virtual_gateway_name: "ResourceName", # required
438
+ # })
439
+ #
440
+ # @example Response structure
441
+ #
442
+ # resp.gateway_route.gateway_route_name #=> String
443
+ # resp.gateway_route.mesh_name #=> String
444
+ # resp.gateway_route.metadata.arn #=> String
445
+ # resp.gateway_route.metadata.created_at #=> Time
446
+ # resp.gateway_route.metadata.last_updated_at #=> Time
447
+ # resp.gateway_route.metadata.mesh_owner #=> String
448
+ # resp.gateway_route.metadata.resource_owner #=> String
449
+ # resp.gateway_route.metadata.uid #=> String
450
+ # resp.gateway_route.metadata.version #=> Integer
451
+ # resp.gateway_route.spec.grpc_route.action.target.virtual_service.virtual_service_name #=> String
452
+ # resp.gateway_route.spec.grpc_route.match.service_name #=> String
453
+ # resp.gateway_route.spec.http2_route.action.target.virtual_service.virtual_service_name #=> String
454
+ # resp.gateway_route.spec.http2_route.match.prefix #=> String
455
+ # resp.gateway_route.spec.http_route.action.target.virtual_service.virtual_service_name #=> String
456
+ # resp.gateway_route.spec.http_route.match.prefix #=> String
457
+ # resp.gateway_route.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
458
+ # resp.gateway_route.virtual_gateway_name #=> String
459
+ #
460
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/CreateGatewayRoute AWS API Documentation
461
+ #
462
+ # @overload create_gateway_route(params = {})
463
+ # @param [Hash] params ({})
464
+ def create_gateway_route(params = {}, options = {})
465
+ req = build_request(:create_gateway_route, params)
466
+ req.send_request(options)
467
+ end
468
+
315
469
  # Creates a service mesh.
316
470
  #
317
471
  # A service mesh is a logical boundary for network traffic between
@@ -739,6 +893,175 @@ module Aws::AppMesh
739
893
  req.send_request(options)
740
894
  end
741
895
 
896
+ # Creates a virtual gateway.
897
+ #
898
+ # A virtual gateway allows resources outside your mesh to communicate to
899
+ # resources that are inside your mesh. The virtual gateway represents an
900
+ # Envoy proxy running in an Amazon ECS task, in a Kubernetes service, or
901
+ # on an Amazon EC2 instance. Unlike a virtual node, which represents an
902
+ # Envoy running with an application, a virtual gateway represents Envoy
903
+ # deployed by itself.
904
+ #
905
+ # For more information about virtual gateways, see [Virtual
906
+ # gateways][1].
907
+ #
908
+ #
909
+ #
910
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_gateways.html
911
+ #
912
+ # @option params [String] :client_token
913
+ # Unique, case-sensitive identifier that you provide to ensure the
914
+ # idempotency of the request. Up to 36 letters, numbers, hyphens, and
915
+ # underscores are allowed.
916
+ #
917
+ # **A suitable default value is auto-generated.** You should normally
918
+ # not need to pass this option.**
919
+ #
920
+ # @option params [required, String] :mesh_name
921
+ # The name of the service mesh to create the virtual gateway in.
922
+ #
923
+ # @option params [String] :mesh_owner
924
+ # The AWS IAM account ID of the service mesh owner. If the account ID is
925
+ # not your own, then the account that you specify must share the mesh
926
+ # with your account before you can create the resource in the service
927
+ # mesh. For more information about mesh sharing, see [Working with
928
+ # shared meshes][1].
929
+ #
930
+ #
931
+ #
932
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html
933
+ #
934
+ # @option params [required, Types::VirtualGatewaySpec] :spec
935
+ # The virtual gateway specification to apply.
936
+ #
937
+ # @option params [Array<Types::TagRef>] :tags
938
+ # Optional metadata that you can apply to the virtual gateway to assist
939
+ # with categorization and organization. Each tag consists of a key and
940
+ # an optional value, both of which you define. Tag keys can have a
941
+ # maximum character length of 128 characters, and tag values can have a
942
+ # maximum length of 256 characters.
943
+ #
944
+ # @option params [required, String] :virtual_gateway_name
945
+ # The name to use for the virtual gateway.
946
+ #
947
+ # @return [Types::CreateVirtualGatewayOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
948
+ #
949
+ # * {Types::CreateVirtualGatewayOutput#virtual_gateway #virtual_gateway} => Types::VirtualGatewayData
950
+ #
951
+ # @example Request syntax with placeholder values
952
+ #
953
+ # resp = client.create_virtual_gateway({
954
+ # client_token: "String",
955
+ # mesh_name: "ResourceName", # required
956
+ # mesh_owner: "AccountId",
957
+ # spec: { # required
958
+ # backend_defaults: {
959
+ # client_policy: {
960
+ # tls: {
961
+ # enforce: false,
962
+ # ports: [1],
963
+ # validation: { # required
964
+ # trust: { # required
965
+ # acm: {
966
+ # certificate_authority_arns: ["Arn"], # required
967
+ # },
968
+ # file: {
969
+ # certificate_chain: "FilePath", # required
970
+ # },
971
+ # },
972
+ # },
973
+ # },
974
+ # },
975
+ # },
976
+ # listeners: [ # required
977
+ # {
978
+ # health_check: {
979
+ # healthy_threshold: 1, # required
980
+ # interval_millis: 1, # required
981
+ # path: "String",
982
+ # port: 1,
983
+ # protocol: "grpc", # required, accepts grpc, http, http2
984
+ # timeout_millis: 1, # required
985
+ # unhealthy_threshold: 1, # required
986
+ # },
987
+ # port_mapping: { # required
988
+ # port: 1, # required
989
+ # protocol: "grpc", # required, accepts grpc, http, http2
990
+ # },
991
+ # tls: {
992
+ # certificate: { # required
993
+ # acm: {
994
+ # certificate_arn: "Arn", # required
995
+ # },
996
+ # file: {
997
+ # certificate_chain: "FilePath", # required
998
+ # private_key: "FilePath", # required
999
+ # },
1000
+ # },
1001
+ # mode: "DISABLED", # required, accepts DISABLED, PERMISSIVE, STRICT
1002
+ # },
1003
+ # },
1004
+ # ],
1005
+ # logging: {
1006
+ # access_log: {
1007
+ # file: {
1008
+ # path: "FilePath", # required
1009
+ # },
1010
+ # },
1011
+ # },
1012
+ # },
1013
+ # tags: [
1014
+ # {
1015
+ # key: "TagKey", # required
1016
+ # value: "TagValue",
1017
+ # },
1018
+ # ],
1019
+ # virtual_gateway_name: "ResourceName", # required
1020
+ # })
1021
+ #
1022
+ # @example Response structure
1023
+ #
1024
+ # resp.virtual_gateway.mesh_name #=> String
1025
+ # resp.virtual_gateway.metadata.arn #=> String
1026
+ # resp.virtual_gateway.metadata.created_at #=> Time
1027
+ # resp.virtual_gateway.metadata.last_updated_at #=> Time
1028
+ # resp.virtual_gateway.metadata.mesh_owner #=> String
1029
+ # resp.virtual_gateway.metadata.resource_owner #=> String
1030
+ # resp.virtual_gateway.metadata.uid #=> String
1031
+ # resp.virtual_gateway.metadata.version #=> Integer
1032
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.enforce #=> Boolean
1033
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.ports #=> Array
1034
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.ports[0] #=> Integer
1035
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.validation.trust.acm.certificate_authority_arns #=> Array
1036
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.validation.trust.acm.certificate_authority_arns[0] #=> String
1037
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.validation.trust.file.certificate_chain #=> String
1038
+ # resp.virtual_gateway.spec.listeners #=> Array
1039
+ # resp.virtual_gateway.spec.listeners[0].health_check.healthy_threshold #=> Integer
1040
+ # resp.virtual_gateway.spec.listeners[0].health_check.interval_millis #=> Integer
1041
+ # resp.virtual_gateway.spec.listeners[0].health_check.path #=> String
1042
+ # resp.virtual_gateway.spec.listeners[0].health_check.port #=> Integer
1043
+ # resp.virtual_gateway.spec.listeners[0].health_check.protocol #=> String, one of "grpc", "http", "http2"
1044
+ # resp.virtual_gateway.spec.listeners[0].health_check.timeout_millis #=> Integer
1045
+ # resp.virtual_gateway.spec.listeners[0].health_check.unhealthy_threshold #=> Integer
1046
+ # resp.virtual_gateway.spec.listeners[0].port_mapping.port #=> Integer
1047
+ # resp.virtual_gateway.spec.listeners[0].port_mapping.protocol #=> String, one of "grpc", "http", "http2"
1048
+ # resp.virtual_gateway.spec.listeners[0].tls.certificate.acm.certificate_arn #=> String
1049
+ # resp.virtual_gateway.spec.listeners[0].tls.certificate.file.certificate_chain #=> String
1050
+ # resp.virtual_gateway.spec.listeners[0].tls.certificate.file.private_key #=> String
1051
+ # resp.virtual_gateway.spec.listeners[0].tls.mode #=> String, one of "DISABLED", "PERMISSIVE", "STRICT"
1052
+ # resp.virtual_gateway.spec.logging.access_log.file.path #=> String
1053
+ # resp.virtual_gateway.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
1054
+ # resp.virtual_gateway.virtual_gateway_name #=> String
1055
+ #
1056
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/CreateVirtualGateway AWS API Documentation
1057
+ #
1058
+ # @overload create_virtual_gateway(params = {})
1059
+ # @param [Hash] params ({})
1060
+ def create_virtual_gateway(params = {}, options = {})
1061
+ req = build_request(:create_virtual_gateway, params)
1062
+ req.send_request(options)
1063
+ end
1064
+
742
1065
  # Creates a virtual node within a service mesh.
743
1066
  #
744
1067
  # A virtual node acts as a logical pointer to a particular task group,
@@ -1239,6 +1562,69 @@ module Aws::AppMesh
1239
1562
  req.send_request(options)
1240
1563
  end
1241
1564
 
1565
+ # Deletes an existing gateway route.
1566
+ #
1567
+ # @option params [required, String] :gateway_route_name
1568
+ # The name of the gateway route to delete.
1569
+ #
1570
+ # @option params [required, String] :mesh_name
1571
+ # The name of the service mesh to delete the gateway route from.
1572
+ #
1573
+ # @option params [String] :mesh_owner
1574
+ # The AWS IAM account ID of the service mesh owner. If the account ID is
1575
+ # not your own, then it's the ID of the account that shared the mesh
1576
+ # with your account. For more information about mesh sharing, see
1577
+ # [Working with shared meshes][1].
1578
+ #
1579
+ #
1580
+ #
1581
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html
1582
+ #
1583
+ # @option params [required, String] :virtual_gateway_name
1584
+ # The name of the virtual gateway to delete the route from.
1585
+ #
1586
+ # @return [Types::DeleteGatewayRouteOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1587
+ #
1588
+ # * {Types::DeleteGatewayRouteOutput#gateway_route #gateway_route} => Types::GatewayRouteData
1589
+ #
1590
+ # @example Request syntax with placeholder values
1591
+ #
1592
+ # resp = client.delete_gateway_route({
1593
+ # gateway_route_name: "ResourceName", # required
1594
+ # mesh_name: "ResourceName", # required
1595
+ # mesh_owner: "AccountId",
1596
+ # virtual_gateway_name: "ResourceName", # required
1597
+ # })
1598
+ #
1599
+ # @example Response structure
1600
+ #
1601
+ # resp.gateway_route.gateway_route_name #=> String
1602
+ # resp.gateway_route.mesh_name #=> String
1603
+ # resp.gateway_route.metadata.arn #=> String
1604
+ # resp.gateway_route.metadata.created_at #=> Time
1605
+ # resp.gateway_route.metadata.last_updated_at #=> Time
1606
+ # resp.gateway_route.metadata.mesh_owner #=> String
1607
+ # resp.gateway_route.metadata.resource_owner #=> String
1608
+ # resp.gateway_route.metadata.uid #=> String
1609
+ # resp.gateway_route.metadata.version #=> Integer
1610
+ # resp.gateway_route.spec.grpc_route.action.target.virtual_service.virtual_service_name #=> String
1611
+ # resp.gateway_route.spec.grpc_route.match.service_name #=> String
1612
+ # resp.gateway_route.spec.http2_route.action.target.virtual_service.virtual_service_name #=> String
1613
+ # resp.gateway_route.spec.http2_route.match.prefix #=> String
1614
+ # resp.gateway_route.spec.http_route.action.target.virtual_service.virtual_service_name #=> String
1615
+ # resp.gateway_route.spec.http_route.match.prefix #=> String
1616
+ # resp.gateway_route.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
1617
+ # resp.gateway_route.virtual_gateway_name #=> String
1618
+ #
1619
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DeleteGatewayRoute AWS API Documentation
1620
+ #
1621
+ # @overload delete_gateway_route(params = {})
1622
+ # @param [Hash] params ({})
1623
+ def delete_gateway_route(params = {}, options = {})
1624
+ req = build_request(:delete_gateway_route, params)
1625
+ req.send_request(options)
1626
+ end
1627
+
1242
1628
  # Deletes an existing service mesh.
1243
1629
  #
1244
1630
  # You must delete all resources (virtual services, routes, virtual
@@ -1422,13 +1808,11 @@ module Aws::AppMesh
1422
1808
  req.send_request(options)
1423
1809
  end
1424
1810
 
1425
- # Deletes an existing virtual node.
1426
- #
1427
- # You must delete any virtual services that list a virtual node as a
1428
- # service provider before you can delete the virtual node itself.
1811
+ # Deletes an existing virtual gateway. You cannot delete a virtual
1812
+ # gateway if any gateway routes are associated to it.
1429
1813
  #
1430
1814
  # @option params [required, String] :mesh_name
1431
- # The name of the service mesh to delete the virtual node in.
1815
+ # The name of the service mesh to delete the virtual gateway from.
1432
1816
  #
1433
1817
  # @option params [String] :mesh_owner
1434
1818
  # The AWS IAM account ID of the service mesh owner. If the account ID is
@@ -1440,35 +1824,111 @@ module Aws::AppMesh
1440
1824
  #
1441
1825
  # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html
1442
1826
  #
1443
- # @option params [required, String] :virtual_node_name
1444
- # The name of the virtual node to delete.
1827
+ # @option params [required, String] :virtual_gateway_name
1828
+ # The name of the virtual gateway to delete.
1445
1829
  #
1446
- # @return [Types::DeleteVirtualNodeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1830
+ # @return [Types::DeleteVirtualGatewayOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1447
1831
  #
1448
- # * {Types::DeleteVirtualNodeOutput#virtual_node #virtual_node} => Types::VirtualNodeData
1832
+ # * {Types::DeleteVirtualGatewayOutput#virtual_gateway #virtual_gateway} => Types::VirtualGatewayData
1449
1833
  #
1450
1834
  # @example Request syntax with placeholder values
1451
1835
  #
1452
- # resp = client.delete_virtual_node({
1836
+ # resp = client.delete_virtual_gateway({
1453
1837
  # mesh_name: "ResourceName", # required
1454
1838
  # mesh_owner: "AccountId",
1455
- # virtual_node_name: "ResourceName", # required
1839
+ # virtual_gateway_name: "ResourceName", # required
1456
1840
  # })
1457
1841
  #
1458
1842
  # @example Response structure
1459
1843
  #
1460
- # resp.virtual_node.mesh_name #=> String
1461
- # resp.virtual_node.metadata.arn #=> String
1462
- # resp.virtual_node.metadata.created_at #=> Time
1463
- # resp.virtual_node.metadata.last_updated_at #=> Time
1464
- # resp.virtual_node.metadata.mesh_owner #=> String
1465
- # resp.virtual_node.metadata.resource_owner #=> String
1466
- # resp.virtual_node.metadata.uid #=> String
1467
- # resp.virtual_node.metadata.version #=> Integer
1468
- # resp.virtual_node.spec.backend_defaults.client_policy.tls.enforce #=> Boolean
1469
- # resp.virtual_node.spec.backend_defaults.client_policy.tls.ports #=> Array
1470
- # resp.virtual_node.spec.backend_defaults.client_policy.tls.ports[0] #=> Integer
1471
- # resp.virtual_node.spec.backend_defaults.client_policy.tls.validation.trust.acm.certificate_authority_arns #=> Array
1844
+ # resp.virtual_gateway.mesh_name #=> String
1845
+ # resp.virtual_gateway.metadata.arn #=> String
1846
+ # resp.virtual_gateway.metadata.created_at #=> Time
1847
+ # resp.virtual_gateway.metadata.last_updated_at #=> Time
1848
+ # resp.virtual_gateway.metadata.mesh_owner #=> String
1849
+ # resp.virtual_gateway.metadata.resource_owner #=> String
1850
+ # resp.virtual_gateway.metadata.uid #=> String
1851
+ # resp.virtual_gateway.metadata.version #=> Integer
1852
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.enforce #=> Boolean
1853
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.ports #=> Array
1854
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.ports[0] #=> Integer
1855
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.validation.trust.acm.certificate_authority_arns #=> Array
1856
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.validation.trust.acm.certificate_authority_arns[0] #=> String
1857
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.validation.trust.file.certificate_chain #=> String
1858
+ # resp.virtual_gateway.spec.listeners #=> Array
1859
+ # resp.virtual_gateway.spec.listeners[0].health_check.healthy_threshold #=> Integer
1860
+ # resp.virtual_gateway.spec.listeners[0].health_check.interval_millis #=> Integer
1861
+ # resp.virtual_gateway.spec.listeners[0].health_check.path #=> String
1862
+ # resp.virtual_gateway.spec.listeners[0].health_check.port #=> Integer
1863
+ # resp.virtual_gateway.spec.listeners[0].health_check.protocol #=> String, one of "grpc", "http", "http2"
1864
+ # resp.virtual_gateway.spec.listeners[0].health_check.timeout_millis #=> Integer
1865
+ # resp.virtual_gateway.spec.listeners[0].health_check.unhealthy_threshold #=> Integer
1866
+ # resp.virtual_gateway.spec.listeners[0].port_mapping.port #=> Integer
1867
+ # resp.virtual_gateway.spec.listeners[0].port_mapping.protocol #=> String, one of "grpc", "http", "http2"
1868
+ # resp.virtual_gateway.spec.listeners[0].tls.certificate.acm.certificate_arn #=> String
1869
+ # resp.virtual_gateway.spec.listeners[0].tls.certificate.file.certificate_chain #=> String
1870
+ # resp.virtual_gateway.spec.listeners[0].tls.certificate.file.private_key #=> String
1871
+ # resp.virtual_gateway.spec.listeners[0].tls.mode #=> String, one of "DISABLED", "PERMISSIVE", "STRICT"
1872
+ # resp.virtual_gateway.spec.logging.access_log.file.path #=> String
1873
+ # resp.virtual_gateway.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
1874
+ # resp.virtual_gateway.virtual_gateway_name #=> String
1875
+ #
1876
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DeleteVirtualGateway AWS API Documentation
1877
+ #
1878
+ # @overload delete_virtual_gateway(params = {})
1879
+ # @param [Hash] params ({})
1880
+ def delete_virtual_gateway(params = {}, options = {})
1881
+ req = build_request(:delete_virtual_gateway, params)
1882
+ req.send_request(options)
1883
+ end
1884
+
1885
+ # Deletes an existing virtual node.
1886
+ #
1887
+ # You must delete any virtual services that list a virtual node as a
1888
+ # service provider before you can delete the virtual node itself.
1889
+ #
1890
+ # @option params [required, String] :mesh_name
1891
+ # The name of the service mesh to delete the virtual node in.
1892
+ #
1893
+ # @option params [String] :mesh_owner
1894
+ # The AWS IAM account ID of the service mesh owner. If the account ID is
1895
+ # not your own, then it's the ID of the account that shared the mesh
1896
+ # with your account. For more information about mesh sharing, see
1897
+ # [Working with shared meshes][1].
1898
+ #
1899
+ #
1900
+ #
1901
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html
1902
+ #
1903
+ # @option params [required, String] :virtual_node_name
1904
+ # The name of the virtual node to delete.
1905
+ #
1906
+ # @return [Types::DeleteVirtualNodeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1907
+ #
1908
+ # * {Types::DeleteVirtualNodeOutput#virtual_node #virtual_node} => Types::VirtualNodeData
1909
+ #
1910
+ # @example Request syntax with placeholder values
1911
+ #
1912
+ # resp = client.delete_virtual_node({
1913
+ # mesh_name: "ResourceName", # required
1914
+ # mesh_owner: "AccountId",
1915
+ # virtual_node_name: "ResourceName", # required
1916
+ # })
1917
+ #
1918
+ # @example Response structure
1919
+ #
1920
+ # resp.virtual_node.mesh_name #=> String
1921
+ # resp.virtual_node.metadata.arn #=> String
1922
+ # resp.virtual_node.metadata.created_at #=> Time
1923
+ # resp.virtual_node.metadata.last_updated_at #=> Time
1924
+ # resp.virtual_node.metadata.mesh_owner #=> String
1925
+ # resp.virtual_node.metadata.resource_owner #=> String
1926
+ # resp.virtual_node.metadata.uid #=> String
1927
+ # resp.virtual_node.metadata.version #=> Integer
1928
+ # resp.virtual_node.spec.backend_defaults.client_policy.tls.enforce #=> Boolean
1929
+ # resp.virtual_node.spec.backend_defaults.client_policy.tls.ports #=> Array
1930
+ # resp.virtual_node.spec.backend_defaults.client_policy.tls.ports[0] #=> Integer
1931
+ # resp.virtual_node.spec.backend_defaults.client_policy.tls.validation.trust.acm.certificate_authority_arns #=> Array
1472
1932
  # resp.virtual_node.spec.backend_defaults.client_policy.tls.validation.trust.acm.certificate_authority_arns[0] #=> String
1473
1933
  # resp.virtual_node.spec.backend_defaults.client_policy.tls.validation.trust.file.certificate_chain #=> String
1474
1934
  # resp.virtual_node.spec.backends #=> Array
@@ -1638,6 +2098,70 @@ module Aws::AppMesh
1638
2098
  req.send_request(options)
1639
2099
  end
1640
2100
 
2101
+ # Describes an existing gateway route.
2102
+ #
2103
+ # @option params [required, String] :gateway_route_name
2104
+ # The name of the gateway route to describe.
2105
+ #
2106
+ # @option params [required, String] :mesh_name
2107
+ # The name of the service mesh that the gateway route resides in.
2108
+ #
2109
+ # @option params [String] :mesh_owner
2110
+ # The AWS IAM account ID of the service mesh owner. If the account ID is
2111
+ # not your own, then it's the ID of the account that shared the mesh
2112
+ # with your account. For more information about mesh sharing, see
2113
+ # [Working with shared meshes][1].
2114
+ #
2115
+ #
2116
+ #
2117
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html
2118
+ #
2119
+ # @option params [required, String] :virtual_gateway_name
2120
+ # The name of the virtual gateway that the gateway route is associated
2121
+ # with.
2122
+ #
2123
+ # @return [Types::DescribeGatewayRouteOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2124
+ #
2125
+ # * {Types::DescribeGatewayRouteOutput#gateway_route #gateway_route} => Types::GatewayRouteData
2126
+ #
2127
+ # @example Request syntax with placeholder values
2128
+ #
2129
+ # resp = client.describe_gateway_route({
2130
+ # gateway_route_name: "ResourceName", # required
2131
+ # mesh_name: "ResourceName", # required
2132
+ # mesh_owner: "AccountId",
2133
+ # virtual_gateway_name: "ResourceName", # required
2134
+ # })
2135
+ #
2136
+ # @example Response structure
2137
+ #
2138
+ # resp.gateway_route.gateway_route_name #=> String
2139
+ # resp.gateway_route.mesh_name #=> String
2140
+ # resp.gateway_route.metadata.arn #=> String
2141
+ # resp.gateway_route.metadata.created_at #=> Time
2142
+ # resp.gateway_route.metadata.last_updated_at #=> Time
2143
+ # resp.gateway_route.metadata.mesh_owner #=> String
2144
+ # resp.gateway_route.metadata.resource_owner #=> String
2145
+ # resp.gateway_route.metadata.uid #=> String
2146
+ # resp.gateway_route.metadata.version #=> Integer
2147
+ # resp.gateway_route.spec.grpc_route.action.target.virtual_service.virtual_service_name #=> String
2148
+ # resp.gateway_route.spec.grpc_route.match.service_name #=> String
2149
+ # resp.gateway_route.spec.http2_route.action.target.virtual_service.virtual_service_name #=> String
2150
+ # resp.gateway_route.spec.http2_route.match.prefix #=> String
2151
+ # resp.gateway_route.spec.http_route.action.target.virtual_service.virtual_service_name #=> String
2152
+ # resp.gateway_route.spec.http_route.match.prefix #=> String
2153
+ # resp.gateway_route.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
2154
+ # resp.gateway_route.virtual_gateway_name #=> String
2155
+ #
2156
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DescribeGatewayRoute AWS API Documentation
2157
+ #
2158
+ # @overload describe_gateway_route(params = {})
2159
+ # @param [Hash] params ({})
2160
+ def describe_gateway_route(params = {}, options = {})
2161
+ req = build_request(:describe_gateway_route, params)
2162
+ req.send_request(options)
2163
+ end
2164
+
1641
2165
  # Describes an existing service mesh.
1642
2166
  #
1643
2167
  # @option params [required, String] :mesh_name
@@ -1828,6 +2352,79 @@ module Aws::AppMesh
1828
2352
  req.send_request(options)
1829
2353
  end
1830
2354
 
2355
+ # Describes an existing virtual gateway.
2356
+ #
2357
+ # @option params [required, String] :mesh_name
2358
+ # The name of the service mesh that the gateway route resides in.
2359
+ #
2360
+ # @option params [String] :mesh_owner
2361
+ # The AWS IAM account ID of the service mesh owner. If the account ID is
2362
+ # not your own, then it's the ID of the account that shared the mesh
2363
+ # with your account. For more information about mesh sharing, see
2364
+ # [Working with shared meshes][1].
2365
+ #
2366
+ #
2367
+ #
2368
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html
2369
+ #
2370
+ # @option params [required, String] :virtual_gateway_name
2371
+ # The name of the virtual gateway to describe.
2372
+ #
2373
+ # @return [Types::DescribeVirtualGatewayOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2374
+ #
2375
+ # * {Types::DescribeVirtualGatewayOutput#virtual_gateway #virtual_gateway} => Types::VirtualGatewayData
2376
+ #
2377
+ # @example Request syntax with placeholder values
2378
+ #
2379
+ # resp = client.describe_virtual_gateway({
2380
+ # mesh_name: "ResourceName", # required
2381
+ # mesh_owner: "AccountId",
2382
+ # virtual_gateway_name: "ResourceName", # required
2383
+ # })
2384
+ #
2385
+ # @example Response structure
2386
+ #
2387
+ # resp.virtual_gateway.mesh_name #=> String
2388
+ # resp.virtual_gateway.metadata.arn #=> String
2389
+ # resp.virtual_gateway.metadata.created_at #=> Time
2390
+ # resp.virtual_gateway.metadata.last_updated_at #=> Time
2391
+ # resp.virtual_gateway.metadata.mesh_owner #=> String
2392
+ # resp.virtual_gateway.metadata.resource_owner #=> String
2393
+ # resp.virtual_gateway.metadata.uid #=> String
2394
+ # resp.virtual_gateway.metadata.version #=> Integer
2395
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.enforce #=> Boolean
2396
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.ports #=> Array
2397
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.ports[0] #=> Integer
2398
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.validation.trust.acm.certificate_authority_arns #=> Array
2399
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.validation.trust.acm.certificate_authority_arns[0] #=> String
2400
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.validation.trust.file.certificate_chain #=> String
2401
+ # resp.virtual_gateway.spec.listeners #=> Array
2402
+ # resp.virtual_gateway.spec.listeners[0].health_check.healthy_threshold #=> Integer
2403
+ # resp.virtual_gateway.spec.listeners[0].health_check.interval_millis #=> Integer
2404
+ # resp.virtual_gateway.spec.listeners[0].health_check.path #=> String
2405
+ # resp.virtual_gateway.spec.listeners[0].health_check.port #=> Integer
2406
+ # resp.virtual_gateway.spec.listeners[0].health_check.protocol #=> String, one of "grpc", "http", "http2"
2407
+ # resp.virtual_gateway.spec.listeners[0].health_check.timeout_millis #=> Integer
2408
+ # resp.virtual_gateway.spec.listeners[0].health_check.unhealthy_threshold #=> Integer
2409
+ # resp.virtual_gateway.spec.listeners[0].port_mapping.port #=> Integer
2410
+ # resp.virtual_gateway.spec.listeners[0].port_mapping.protocol #=> String, one of "grpc", "http", "http2"
2411
+ # resp.virtual_gateway.spec.listeners[0].tls.certificate.acm.certificate_arn #=> String
2412
+ # resp.virtual_gateway.spec.listeners[0].tls.certificate.file.certificate_chain #=> String
2413
+ # resp.virtual_gateway.spec.listeners[0].tls.certificate.file.private_key #=> String
2414
+ # resp.virtual_gateway.spec.listeners[0].tls.mode #=> String, one of "DISABLED", "PERMISSIVE", "STRICT"
2415
+ # resp.virtual_gateway.spec.logging.access_log.file.path #=> String
2416
+ # resp.virtual_gateway.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
2417
+ # resp.virtual_gateway.virtual_gateway_name #=> String
2418
+ #
2419
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/DescribeVirtualGateway AWS API Documentation
2420
+ #
2421
+ # @overload describe_virtual_gateway(params = {})
2422
+ # @param [Hash] params ({})
2423
+ def describe_virtual_gateway(params = {}, options = {})
2424
+ req = build_request(:describe_virtual_gateway, params)
2425
+ req.send_request(options)
2426
+ end
2427
+
1831
2428
  # Describes an existing virtual node.
1832
2429
  #
1833
2430
  # @option params [required, String] :mesh_name
@@ -2038,6 +2635,81 @@ module Aws::AppMesh
2038
2635
  req.send_request(options)
2039
2636
  end
2040
2637
 
2638
+ # Returns a list of existing gateway routes that are associated to a
2639
+ # virtual gateway.
2640
+ #
2641
+ # @option params [Integer] :limit
2642
+ # The maximum number of results returned by `ListGatewayRoutes` in
2643
+ # paginated output. When you use this parameter, `ListGatewayRoutes`
2644
+ # returns only `limit` results in a single page along with a `nextToken`
2645
+ # response element. You can see the remaining results of the initial
2646
+ # request by sending another `ListGatewayRoutes` request with the
2647
+ # returned `nextToken` value. This value can be between 1 and 100. If
2648
+ # you don't use this parameter, `ListGatewayRoutes` returns up to 100
2649
+ # results and a `nextToken` value if applicable.
2650
+ #
2651
+ # @option params [required, String] :mesh_name
2652
+ # The name of the service mesh to list gateway routes in.
2653
+ #
2654
+ # @option params [String] :mesh_owner
2655
+ # The AWS IAM account ID of the service mesh owner. If the account ID is
2656
+ # not your own, then it's the ID of the account that shared the mesh
2657
+ # with your account. For more information about mesh sharing, see
2658
+ # [Working with shared meshes][1].
2659
+ #
2660
+ #
2661
+ #
2662
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html
2663
+ #
2664
+ # @option params [String] :next_token
2665
+ # The `nextToken` value returned from a previous paginated
2666
+ # `ListGatewayRoutes` request where `limit` was used and the results
2667
+ # exceeded the value of that parameter. Pagination continues from the
2668
+ # end of the previous results that returned the `nextToken` value.
2669
+ #
2670
+ # @option params [required, String] :virtual_gateway_name
2671
+ # The name of the virtual gateway to list gateway routes in.
2672
+ #
2673
+ # @return [Types::ListGatewayRoutesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2674
+ #
2675
+ # * {Types::ListGatewayRoutesOutput#gateway_routes #gateway_routes} => Array&lt;Types::GatewayRouteRef&gt;
2676
+ # * {Types::ListGatewayRoutesOutput#next_token #next_token} => String
2677
+ #
2678
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2679
+ #
2680
+ # @example Request syntax with placeholder values
2681
+ #
2682
+ # resp = client.list_gateway_routes({
2683
+ # limit: 1,
2684
+ # mesh_name: "ResourceName", # required
2685
+ # mesh_owner: "AccountId",
2686
+ # next_token: "String",
2687
+ # virtual_gateway_name: "ResourceName", # required
2688
+ # })
2689
+ #
2690
+ # @example Response structure
2691
+ #
2692
+ # resp.gateway_routes #=> Array
2693
+ # resp.gateway_routes[0].arn #=> String
2694
+ # resp.gateway_routes[0].created_at #=> Time
2695
+ # resp.gateway_routes[0].gateway_route_name #=> String
2696
+ # resp.gateway_routes[0].last_updated_at #=> Time
2697
+ # resp.gateway_routes[0].mesh_name #=> String
2698
+ # resp.gateway_routes[0].mesh_owner #=> String
2699
+ # resp.gateway_routes[0].resource_owner #=> String
2700
+ # resp.gateway_routes[0].version #=> Integer
2701
+ # resp.gateway_routes[0].virtual_gateway_name #=> String
2702
+ # resp.next_token #=> String
2703
+ #
2704
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListGatewayRoutes AWS API Documentation
2705
+ #
2706
+ # @overload list_gateway_routes(params = {})
2707
+ # @param [Hash] params ({})
2708
+ def list_gateway_routes(params = {}, options = {})
2709
+ req = build_request(:list_gateway_routes, params)
2710
+ req.send_request(options)
2711
+ end
2712
+
2041
2713
  # Returns a list of existing service meshes.
2042
2714
  #
2043
2715
  # @option params [Integer] :limit
@@ -2224,6 +2896,75 @@ module Aws::AppMesh
2224
2896
  req.send_request(options)
2225
2897
  end
2226
2898
 
2899
+ # Returns a list of existing virtual gateways in a service mesh.
2900
+ #
2901
+ # @option params [Integer] :limit
2902
+ # The maximum number of results returned by `ListVirtualGateways` in
2903
+ # paginated output. When you use this parameter, `ListVirtualGateways`
2904
+ # returns only `limit` results in a single page along with a `nextToken`
2905
+ # response element. You can see the remaining results of the initial
2906
+ # request by sending another `ListVirtualGateways` request with the
2907
+ # returned `nextToken` value. This value can be between 1 and 100. If
2908
+ # you don't use this parameter, `ListVirtualGateways` returns up to 100
2909
+ # results and a `nextToken` value if applicable.
2910
+ #
2911
+ # @option params [required, String] :mesh_name
2912
+ # The name of the service mesh to list virtual gateways in.
2913
+ #
2914
+ # @option params [String] :mesh_owner
2915
+ # The AWS IAM account ID of the service mesh owner. If the account ID is
2916
+ # not your own, then it's the ID of the account that shared the mesh
2917
+ # with your account. For more information about mesh sharing, see
2918
+ # [Working with shared meshes][1].
2919
+ #
2920
+ #
2921
+ #
2922
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html
2923
+ #
2924
+ # @option params [String] :next_token
2925
+ # The `nextToken` value returned from a previous paginated
2926
+ # `ListVirtualGateways` request where `limit` was used and the results
2927
+ # exceeded the value of that parameter. Pagination continues from the
2928
+ # end of the previous results that returned the `nextToken` value.
2929
+ #
2930
+ # @return [Types::ListVirtualGatewaysOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2931
+ #
2932
+ # * {Types::ListVirtualGatewaysOutput#next_token #next_token} => String
2933
+ # * {Types::ListVirtualGatewaysOutput#virtual_gateways #virtual_gateways} => Array&lt;Types::VirtualGatewayRef&gt;
2934
+ #
2935
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2936
+ #
2937
+ # @example Request syntax with placeholder values
2938
+ #
2939
+ # resp = client.list_virtual_gateways({
2940
+ # limit: 1,
2941
+ # mesh_name: "ResourceName", # required
2942
+ # mesh_owner: "AccountId",
2943
+ # next_token: "String",
2944
+ # })
2945
+ #
2946
+ # @example Response structure
2947
+ #
2948
+ # resp.next_token #=> String
2949
+ # resp.virtual_gateways #=> Array
2950
+ # resp.virtual_gateways[0].arn #=> String
2951
+ # resp.virtual_gateways[0].created_at #=> Time
2952
+ # resp.virtual_gateways[0].last_updated_at #=> Time
2953
+ # resp.virtual_gateways[0].mesh_name #=> String
2954
+ # resp.virtual_gateways[0].mesh_owner #=> String
2955
+ # resp.virtual_gateways[0].resource_owner #=> String
2956
+ # resp.virtual_gateways[0].version #=> Integer
2957
+ # resp.virtual_gateways[0].virtual_gateway_name #=> String
2958
+ #
2959
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListVirtualGateways AWS API Documentation
2960
+ #
2961
+ # @overload list_virtual_gateways(params = {})
2962
+ # @param [Hash] params ({})
2963
+ def list_virtual_gateways(params = {}, options = {})
2964
+ req = build_request(:list_virtual_gateways, params)
2965
+ req.send_request(options)
2966
+ end
2967
+
2227
2968
  # Returns a list of existing virtual nodes.
2228
2969
  #
2229
2970
  # @option params [Integer] :limit
@@ -2493,6 +3234,122 @@ module Aws::AppMesh
2493
3234
  req.send_request(options)
2494
3235
  end
2495
3236
 
3237
+ # Updates an existing gateway route that is associated to a specified
3238
+ # virtual gateway in a service mesh.
3239
+ #
3240
+ # @option params [String] :client_token
3241
+ # Unique, case-sensitive identifier that you provide to ensure the
3242
+ # idempotency of the request. Up to 36 letters, numbers, hyphens, and
3243
+ # underscores are allowed.
3244
+ #
3245
+ # **A suitable default value is auto-generated.** You should normally
3246
+ # not need to pass this option.**
3247
+ #
3248
+ # @option params [required, String] :gateway_route_name
3249
+ # The name of the gateway route to update.
3250
+ #
3251
+ # @option params [required, String] :mesh_name
3252
+ # The name of the service mesh that the gateway route resides in.
3253
+ #
3254
+ # @option params [String] :mesh_owner
3255
+ # The AWS IAM account ID of the service mesh owner. If the account ID is
3256
+ # not your own, then it's the ID of the account that shared the mesh
3257
+ # with your account. For more information about mesh sharing, see
3258
+ # [Working with shared meshes][1].
3259
+ #
3260
+ #
3261
+ #
3262
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html
3263
+ #
3264
+ # @option params [required, Types::GatewayRouteSpec] :spec
3265
+ # The new gateway route specification to apply. This overwrites the
3266
+ # existing data.
3267
+ #
3268
+ # @option params [required, String] :virtual_gateway_name
3269
+ # The name of the virtual gateway that the gateway route is associated
3270
+ # with.
3271
+ #
3272
+ # @return [Types::UpdateGatewayRouteOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3273
+ #
3274
+ # * {Types::UpdateGatewayRouteOutput#gateway_route #gateway_route} => Types::GatewayRouteData
3275
+ #
3276
+ # @example Request syntax with placeholder values
3277
+ #
3278
+ # resp = client.update_gateway_route({
3279
+ # client_token: "String",
3280
+ # gateway_route_name: "ResourceName", # required
3281
+ # mesh_name: "ResourceName", # required
3282
+ # mesh_owner: "AccountId",
3283
+ # spec: { # required
3284
+ # grpc_route: {
3285
+ # action: { # required
3286
+ # target: { # required
3287
+ # virtual_service: { # required
3288
+ # virtual_service_name: "ResourceName", # required
3289
+ # },
3290
+ # },
3291
+ # },
3292
+ # match: { # required
3293
+ # service_name: "ServiceName",
3294
+ # },
3295
+ # },
3296
+ # http2_route: {
3297
+ # action: { # required
3298
+ # target: { # required
3299
+ # virtual_service: { # required
3300
+ # virtual_service_name: "ResourceName", # required
3301
+ # },
3302
+ # },
3303
+ # },
3304
+ # match: { # required
3305
+ # prefix: "String", # required
3306
+ # },
3307
+ # },
3308
+ # http_route: {
3309
+ # action: { # required
3310
+ # target: { # required
3311
+ # virtual_service: { # required
3312
+ # virtual_service_name: "ResourceName", # required
3313
+ # },
3314
+ # },
3315
+ # },
3316
+ # match: { # required
3317
+ # prefix: "String", # required
3318
+ # },
3319
+ # },
3320
+ # },
3321
+ # virtual_gateway_name: "ResourceName", # required
3322
+ # })
3323
+ #
3324
+ # @example Response structure
3325
+ #
3326
+ # resp.gateway_route.gateway_route_name #=> String
3327
+ # resp.gateway_route.mesh_name #=> String
3328
+ # resp.gateway_route.metadata.arn #=> String
3329
+ # resp.gateway_route.metadata.created_at #=> Time
3330
+ # resp.gateway_route.metadata.last_updated_at #=> Time
3331
+ # resp.gateway_route.metadata.mesh_owner #=> String
3332
+ # resp.gateway_route.metadata.resource_owner #=> String
3333
+ # resp.gateway_route.metadata.uid #=> String
3334
+ # resp.gateway_route.metadata.version #=> Integer
3335
+ # resp.gateway_route.spec.grpc_route.action.target.virtual_service.virtual_service_name #=> String
3336
+ # resp.gateway_route.spec.grpc_route.match.service_name #=> String
3337
+ # resp.gateway_route.spec.http2_route.action.target.virtual_service.virtual_service_name #=> String
3338
+ # resp.gateway_route.spec.http2_route.match.prefix #=> String
3339
+ # resp.gateway_route.spec.http_route.action.target.virtual_service.virtual_service_name #=> String
3340
+ # resp.gateway_route.spec.http_route.match.prefix #=> String
3341
+ # resp.gateway_route.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
3342
+ # resp.gateway_route.virtual_gateway_name #=> String
3343
+ #
3344
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UpdateGatewayRoute AWS API Documentation
3345
+ #
3346
+ # @overload update_gateway_route(params = {})
3347
+ # @param [Hash] params ({})
3348
+ def update_gateway_route(params = {}, options = {})
3349
+ req = build_request(:update_gateway_route, params)
3350
+ req.send_request(options)
3351
+ end
3352
+
2496
3353
  # Updates an existing service mesh.
2497
3354
  #
2498
3355
  # @option params [String] :client_token
@@ -2872,6 +3729,148 @@ module Aws::AppMesh
2872
3729
  req.send_request(options)
2873
3730
  end
2874
3731
 
3732
+ # Updates an existing virtual gateway in a specified service mesh.
3733
+ #
3734
+ # @option params [String] :client_token
3735
+ # Unique, case-sensitive identifier that you provide to ensure the
3736
+ # idempotency of the request. Up to 36 letters, numbers, hyphens, and
3737
+ # underscores are allowed.
3738
+ #
3739
+ # **A suitable default value is auto-generated.** You should normally
3740
+ # not need to pass this option.**
3741
+ #
3742
+ # @option params [required, String] :mesh_name
3743
+ # The name of the service mesh that the virtual gateway resides in.
3744
+ #
3745
+ # @option params [String] :mesh_owner
3746
+ # The AWS IAM account ID of the service mesh owner. If the account ID is
3747
+ # not your own, then it's the ID of the account that shared the mesh
3748
+ # with your account. For more information about mesh sharing, see
3749
+ # [Working with shared meshes][1].
3750
+ #
3751
+ #
3752
+ #
3753
+ # [1]: https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html
3754
+ #
3755
+ # @option params [required, Types::VirtualGatewaySpec] :spec
3756
+ # The new virtual gateway specification to apply. This overwrites the
3757
+ # existing data.
3758
+ #
3759
+ # @option params [required, String] :virtual_gateway_name
3760
+ # The name of the virtual gateway to update.
3761
+ #
3762
+ # @return [Types::UpdateVirtualGatewayOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3763
+ #
3764
+ # * {Types::UpdateVirtualGatewayOutput#virtual_gateway #virtual_gateway} => Types::VirtualGatewayData
3765
+ #
3766
+ # @example Request syntax with placeholder values
3767
+ #
3768
+ # resp = client.update_virtual_gateway({
3769
+ # client_token: "String",
3770
+ # mesh_name: "ResourceName", # required
3771
+ # mesh_owner: "AccountId",
3772
+ # spec: { # required
3773
+ # backend_defaults: {
3774
+ # client_policy: {
3775
+ # tls: {
3776
+ # enforce: false,
3777
+ # ports: [1],
3778
+ # validation: { # required
3779
+ # trust: { # required
3780
+ # acm: {
3781
+ # certificate_authority_arns: ["Arn"], # required
3782
+ # },
3783
+ # file: {
3784
+ # certificate_chain: "FilePath", # required
3785
+ # },
3786
+ # },
3787
+ # },
3788
+ # },
3789
+ # },
3790
+ # },
3791
+ # listeners: [ # required
3792
+ # {
3793
+ # health_check: {
3794
+ # healthy_threshold: 1, # required
3795
+ # interval_millis: 1, # required
3796
+ # path: "String",
3797
+ # port: 1,
3798
+ # protocol: "grpc", # required, accepts grpc, http, http2
3799
+ # timeout_millis: 1, # required
3800
+ # unhealthy_threshold: 1, # required
3801
+ # },
3802
+ # port_mapping: { # required
3803
+ # port: 1, # required
3804
+ # protocol: "grpc", # required, accepts grpc, http, http2
3805
+ # },
3806
+ # tls: {
3807
+ # certificate: { # required
3808
+ # acm: {
3809
+ # certificate_arn: "Arn", # required
3810
+ # },
3811
+ # file: {
3812
+ # certificate_chain: "FilePath", # required
3813
+ # private_key: "FilePath", # required
3814
+ # },
3815
+ # },
3816
+ # mode: "DISABLED", # required, accepts DISABLED, PERMISSIVE, STRICT
3817
+ # },
3818
+ # },
3819
+ # ],
3820
+ # logging: {
3821
+ # access_log: {
3822
+ # file: {
3823
+ # path: "FilePath", # required
3824
+ # },
3825
+ # },
3826
+ # },
3827
+ # },
3828
+ # virtual_gateway_name: "ResourceName", # required
3829
+ # })
3830
+ #
3831
+ # @example Response structure
3832
+ #
3833
+ # resp.virtual_gateway.mesh_name #=> String
3834
+ # resp.virtual_gateway.metadata.arn #=> String
3835
+ # resp.virtual_gateway.metadata.created_at #=> Time
3836
+ # resp.virtual_gateway.metadata.last_updated_at #=> Time
3837
+ # resp.virtual_gateway.metadata.mesh_owner #=> String
3838
+ # resp.virtual_gateway.metadata.resource_owner #=> String
3839
+ # resp.virtual_gateway.metadata.uid #=> String
3840
+ # resp.virtual_gateway.metadata.version #=> Integer
3841
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.enforce #=> Boolean
3842
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.ports #=> Array
3843
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.ports[0] #=> Integer
3844
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.validation.trust.acm.certificate_authority_arns #=> Array
3845
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.validation.trust.acm.certificate_authority_arns[0] #=> String
3846
+ # resp.virtual_gateway.spec.backend_defaults.client_policy.tls.validation.trust.file.certificate_chain #=> String
3847
+ # resp.virtual_gateway.spec.listeners #=> Array
3848
+ # resp.virtual_gateway.spec.listeners[0].health_check.healthy_threshold #=> Integer
3849
+ # resp.virtual_gateway.spec.listeners[0].health_check.interval_millis #=> Integer
3850
+ # resp.virtual_gateway.spec.listeners[0].health_check.path #=> String
3851
+ # resp.virtual_gateway.spec.listeners[0].health_check.port #=> Integer
3852
+ # resp.virtual_gateway.spec.listeners[0].health_check.protocol #=> String, one of "grpc", "http", "http2"
3853
+ # resp.virtual_gateway.spec.listeners[0].health_check.timeout_millis #=> Integer
3854
+ # resp.virtual_gateway.spec.listeners[0].health_check.unhealthy_threshold #=> Integer
3855
+ # resp.virtual_gateway.spec.listeners[0].port_mapping.port #=> Integer
3856
+ # resp.virtual_gateway.spec.listeners[0].port_mapping.protocol #=> String, one of "grpc", "http", "http2"
3857
+ # resp.virtual_gateway.spec.listeners[0].tls.certificate.acm.certificate_arn #=> String
3858
+ # resp.virtual_gateway.spec.listeners[0].tls.certificate.file.certificate_chain #=> String
3859
+ # resp.virtual_gateway.spec.listeners[0].tls.certificate.file.private_key #=> String
3860
+ # resp.virtual_gateway.spec.listeners[0].tls.mode #=> String, one of "DISABLED", "PERMISSIVE", "STRICT"
3861
+ # resp.virtual_gateway.spec.logging.access_log.file.path #=> String
3862
+ # resp.virtual_gateway.status.status #=> String, one of "ACTIVE", "DELETED", "INACTIVE"
3863
+ # resp.virtual_gateway.virtual_gateway_name #=> String
3864
+ #
3865
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UpdateVirtualGateway AWS API Documentation
3866
+ #
3867
+ # @overload update_virtual_gateway(params = {})
3868
+ # @param [Hash] params ({})
3869
+ def update_virtual_gateway(params = {}, options = {})
3870
+ req = build_request(:update_virtual_gateway, params)
3871
+ req.send_request(options)
3872
+ end
3873
+
2875
3874
  # Updates an existing virtual node in a specified service mesh.
2876
3875
  #
2877
3876
  # @option params [String] :client_token
@@ -3286,7 +4285,7 @@ module Aws::AppMesh
3286
4285
  params: params,
3287
4286
  config: config)
3288
4287
  context[:gem_name] = 'aws-sdk-appmesh'
3289
- context[:gem_version] = '1.26.0'
4288
+ context[:gem_version] = '1.31.0'
3290
4289
  Seahorse::Client::Request.new(handlers, context)
3291
4290
  end
3292
4291