aws-sdk-appmesh 1.17.0 → 1.18.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.
@@ -63,6 +63,15 @@ module Aws::AppMesh
63
63
  FileAccessLog = Shapes::StructureShape.new(name: 'FileAccessLog')
64
64
  FilePath = Shapes::StringShape.new(name: 'FilePath')
65
65
  ForbiddenException = Shapes::StructureShape.new(name: 'ForbiddenException')
66
+ GrpcRetryPolicy = Shapes::StructureShape.new(name: 'GrpcRetryPolicy')
67
+ GrpcRetryPolicyEvent = Shapes::StringShape.new(name: 'GrpcRetryPolicyEvent')
68
+ GrpcRetryPolicyEvents = Shapes::ListShape.new(name: 'GrpcRetryPolicyEvents')
69
+ GrpcRoute = Shapes::StructureShape.new(name: 'GrpcRoute')
70
+ GrpcRouteAction = Shapes::StructureShape.new(name: 'GrpcRouteAction')
71
+ GrpcRouteMatch = Shapes::StructureShape.new(name: 'GrpcRouteMatch')
72
+ GrpcRouteMetadata = Shapes::StructureShape.new(name: 'GrpcRouteMetadata')
73
+ GrpcRouteMetadataList = Shapes::ListShape.new(name: 'GrpcRouteMetadataList')
74
+ GrpcRouteMetadataMatchMethod = Shapes::StructureShape.new(name: 'GrpcRouteMetadataMatchMethod')
66
75
  HeaderMatch = Shapes::StringShape.new(name: 'HeaderMatch')
67
76
  HeaderMatchMethod = Shapes::StructureShape.new(name: 'HeaderMatchMethod')
68
77
  HeaderName = Shapes::StringShape.new(name: 'HeaderName')
@@ -112,6 +121,7 @@ module Aws::AppMesh
112
121
  MeshSpec = Shapes::StructureShape.new(name: 'MeshSpec')
113
122
  MeshStatus = Shapes::StructureShape.new(name: 'MeshStatus')
114
123
  MeshStatusCode = Shapes::StringShape.new(name: 'MeshStatusCode')
124
+ MethodName = Shapes::StringShape.new(name: 'MethodName')
115
125
  NotFoundException = Shapes::StructureShape.new(name: 'NotFoundException')
116
126
  PercentInt = Shapes::IntegerShape.new(name: 'PercentInt')
117
127
  PortMapping = Shapes::StructureShape.new(name: 'PortMapping')
@@ -376,6 +386,42 @@ module Aws::AppMesh
376
386
  ForbiddenException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
377
387
  ForbiddenException.struct_class = Types::ForbiddenException
378
388
 
389
+ GrpcRetryPolicy.add_member(:grpc_retry_events, Shapes::ShapeRef.new(shape: GrpcRetryPolicyEvents, location_name: "grpcRetryEvents"))
390
+ GrpcRetryPolicy.add_member(:http_retry_events, Shapes::ShapeRef.new(shape: HttpRetryPolicyEvents, location_name: "httpRetryEvents"))
391
+ GrpcRetryPolicy.add_member(:max_retries, Shapes::ShapeRef.new(shape: MaxRetries, required: true, location_name: "maxRetries"))
392
+ GrpcRetryPolicy.add_member(:per_retry_timeout, Shapes::ShapeRef.new(shape: Duration, required: true, location_name: "perRetryTimeout"))
393
+ GrpcRetryPolicy.add_member(:tcp_retry_events, Shapes::ShapeRef.new(shape: TcpRetryPolicyEvents, location_name: "tcpRetryEvents"))
394
+ GrpcRetryPolicy.struct_class = Types::GrpcRetryPolicy
395
+
396
+ GrpcRetryPolicyEvents.member = Shapes::ShapeRef.new(shape: GrpcRetryPolicyEvent)
397
+
398
+ GrpcRoute.add_member(:action, Shapes::ShapeRef.new(shape: GrpcRouteAction, required: true, location_name: "action"))
399
+ GrpcRoute.add_member(:match, Shapes::ShapeRef.new(shape: GrpcRouteMatch, required: true, location_name: "match"))
400
+ GrpcRoute.add_member(:retry_policy, Shapes::ShapeRef.new(shape: GrpcRetryPolicy, location_name: "retryPolicy"))
401
+ GrpcRoute.struct_class = Types::GrpcRoute
402
+
403
+ GrpcRouteAction.add_member(:weighted_targets, Shapes::ShapeRef.new(shape: WeightedTargets, required: true, location_name: "weightedTargets"))
404
+ GrpcRouteAction.struct_class = Types::GrpcRouteAction
405
+
406
+ GrpcRouteMatch.add_member(:metadata, Shapes::ShapeRef.new(shape: GrpcRouteMetadataList, location_name: "metadata"))
407
+ GrpcRouteMatch.add_member(:method_name, Shapes::ShapeRef.new(shape: MethodName, location_name: "methodName"))
408
+ GrpcRouteMatch.add_member(:service_name, Shapes::ShapeRef.new(shape: ServiceName, location_name: "serviceName"))
409
+ GrpcRouteMatch.struct_class = Types::GrpcRouteMatch
410
+
411
+ GrpcRouteMetadata.add_member(:invert, Shapes::ShapeRef.new(shape: Boolean, location_name: "invert"))
412
+ GrpcRouteMetadata.add_member(:match, Shapes::ShapeRef.new(shape: GrpcRouteMetadataMatchMethod, location_name: "match"))
413
+ GrpcRouteMetadata.add_member(:name, Shapes::ShapeRef.new(shape: HeaderName, required: true, location_name: "name"))
414
+ GrpcRouteMetadata.struct_class = Types::GrpcRouteMetadata
415
+
416
+ GrpcRouteMetadataList.member = Shapes::ShapeRef.new(shape: GrpcRouteMetadata)
417
+
418
+ GrpcRouteMetadataMatchMethod.add_member(:exact, Shapes::ShapeRef.new(shape: HeaderMatch, location_name: "exact"))
419
+ GrpcRouteMetadataMatchMethod.add_member(:prefix, Shapes::ShapeRef.new(shape: HeaderMatch, location_name: "prefix"))
420
+ GrpcRouteMetadataMatchMethod.add_member(:range, Shapes::ShapeRef.new(shape: MatchRange, location_name: "range"))
421
+ GrpcRouteMetadataMatchMethod.add_member(:regex, Shapes::ShapeRef.new(shape: HeaderMatch, location_name: "regex"))
422
+ GrpcRouteMetadataMatchMethod.add_member(:suffix, Shapes::ShapeRef.new(shape: HeaderMatch, location_name: "suffix"))
423
+ GrpcRouteMetadataMatchMethod.struct_class = Types::GrpcRouteMetadataMatchMethod
424
+
379
425
  HeaderMatchMethod.add_member(:exact, Shapes::ShapeRef.new(shape: HeaderMatch, location_name: "exact"))
380
426
  HeaderMatchMethod.add_member(:prefix, Shapes::ShapeRef.new(shape: HeaderMatch, location_name: "prefix"))
381
427
  HeaderMatchMethod.add_member(:range, Shapes::ShapeRef.new(shape: MatchRange, location_name: "range"))
@@ -545,6 +591,8 @@ module Aws::AppMesh
545
591
  RouteRef.add_member(:virtual_router_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "virtualRouterName"))
546
592
  RouteRef.struct_class = Types::RouteRef
547
593
 
594
+ RouteSpec.add_member(:grpc_route, Shapes::ShapeRef.new(shape: GrpcRoute, location_name: "grpcRoute"))
595
+ RouteSpec.add_member(:http2_route, Shapes::ShapeRef.new(shape: HttpRoute, location_name: "http2Route"))
548
596
  RouteSpec.add_member(:http_route, Shapes::ShapeRef.new(shape: HttpRoute, location_name: "httpRoute"))
549
597
  RouteSpec.add_member(:priority, Shapes::ShapeRef.new(shape: RoutePriority, location_name: "priority"))
550
598
  RouteSpec.add_member(:tcp_route, Shapes::ShapeRef.new(shape: TcpRoute, location_name: "tcpRoute"))
@@ -8,7 +8,7 @@
8
8
  module Aws::AppMesh
9
9
  module Types
10
10
 
11
- # An object representing a virtual router listener.
11
+ # An object that represents a virtual router listener.
12
12
  #
13
13
  # @note When making an API call, you may pass VirtualRouterListener
14
14
  # data as a hash:
@@ -16,13 +16,12 @@ module Aws::AppMesh
16
16
  # {
17
17
  # port_mapping: { # required
18
18
  # port: 1, # required
19
- # protocol: "http", # required, accepts http, tcp
19
+ # protocol: "grpc", # required, accepts grpc, http, http2, tcp
20
20
  # },
21
21
  # }
22
22
  #
23
23
  # @!attribute [rw] port_mapping
24
- # An object representing a virtual node or virtual router listener
25
- # port mapping.
24
+ # An object that represents a port mapping.
26
25
  # @return [Types::PortMapping]
27
26
  #
28
27
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/VirtualRouterListener AWS API Documentation
@@ -53,13 +52,13 @@ module Aws::AppMesh
53
52
  # interval_millis: 1, # required
54
53
  # path: "String",
55
54
  # port: 1,
56
- # protocol: "http", # required, accepts http, tcp
55
+ # protocol: "grpc", # required, accepts grpc, http, http2, tcp
57
56
  # timeout_millis: 1, # required
58
57
  # unhealthy_threshold: 1, # required
59
58
  # },
60
59
  # port_mapping: { # required
61
60
  # port: 1, # required
62
- # protocol: "http", # required, accepts http, tcp
61
+ # protocol: "grpc", # required, accepts grpc, http, http2, tcp
63
62
  # },
64
63
  # },
65
64
  # ],
@@ -215,7 +214,7 @@ module Aws::AppMesh
215
214
  # {
216
215
  # port_mapping: { # required
217
216
  # port: 1, # required
218
- # protocol: "http", # required, accepts http, tcp
217
+ # protocol: "grpc", # required, accepts grpc, http, http2, tcp
219
218
  # },
220
219
  # },
221
220
  # ],
@@ -255,6 +254,64 @@ module Aws::AppMesh
255
254
  include Aws::Structure
256
255
  end
257
256
 
257
+ # An object that represents a retry policy. Specify at least one value
258
+ # for at least one of the types of `RetryEvents`, a value for
259
+ # `maxRetries`, and a value for `perRetryTimeout`.
260
+ #
261
+ # @note When making an API call, you may pass GrpcRetryPolicy
262
+ # data as a hash:
263
+ #
264
+ # {
265
+ # grpc_retry_events: ["cancelled"], # accepts cancelled, deadline-exceeded, internal, resource-exhausted, unavailable
266
+ # http_retry_events: ["HttpRetryPolicyEvent"],
267
+ # max_retries: 1, # required
268
+ # per_retry_timeout: { # required
269
+ # unit: "ms", # accepts ms, s
270
+ # value: 1,
271
+ # },
272
+ # tcp_retry_events: ["connection-error"], # accepts connection-error
273
+ # }
274
+ #
275
+ # @!attribute [rw] grpc_retry_events
276
+ # Specify at least one of the valid values.
277
+ # @return [Array<String>]
278
+ #
279
+ # @!attribute [rw] http_retry_events
280
+ # Specify at least one of the following values.
281
+ #
282
+ # * **server-error** – HTTP status codes 500, 501, 502, 503, 504, 505,
283
+ # 506, 507, 508, 510, and 511
284
+ #
285
+ # * **gateway-error** – HTTP status codes 502, 503, and 504
286
+ #
287
+ # * **client-error** – HTTP status code 409
288
+ #
289
+ # * **stream-error** – Retry on refused stream
290
+ # @return [Array<String>]
291
+ #
292
+ # @!attribute [rw] max_retries
293
+ # The maximum number of retry attempts.
294
+ # @return [Integer]
295
+ #
296
+ # @!attribute [rw] per_retry_timeout
297
+ # An object that represents a duration of time.
298
+ # @return [Types::Duration]
299
+ #
300
+ # @!attribute [rw] tcp_retry_events
301
+ # Specify a valid value.
302
+ # @return [Array<String>]
303
+ #
304
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GrpcRetryPolicy AWS API Documentation
305
+ #
306
+ class GrpcRetryPolicy < Struct.new(
307
+ :grpc_retry_events,
308
+ :http_retry_events,
309
+ :max_retries,
310
+ :per_retry_timeout,
311
+ :tcp_retry_events)
312
+ include Aws::Structure
313
+ end
314
+
258
315
  # @note When making an API call, you may pass ListTagsForResourceInput
259
316
  # data as a hash:
260
317
  #
@@ -308,7 +365,7 @@ module Aws::AppMesh
308
365
  include Aws::Structure
309
366
  end
310
367
 
311
- # An object representing the logging information for a virtual node.
368
+ # An object that represents the logging information for a virtual node.
312
369
  #
313
370
  # @note When making an API call, you may pass Logging
314
371
  # data as a hash:
@@ -451,7 +508,7 @@ module Aws::AppMesh
451
508
  include Aws::Structure
452
509
  end
453
510
 
454
- # An object representing metadata for a resource.
511
+ # An object that represents metadata for a resource.
455
512
  #
456
513
  # @!attribute [rw] arn
457
514
  # The full Amazon Resource Name (ARN) for the resource.
@@ -531,7 +588,8 @@ module Aws::AppMesh
531
588
  include Aws::Structure
532
589
  end
533
590
 
534
- # An object representing a virtual service backend for a virtual node.
591
+ # An object that represents a virtual service backend for a virtual
592
+ # node.
535
593
  #
536
594
  # @note When making an API call, you may pass VirtualServiceBackend
537
595
  # data as a hash:
@@ -627,8 +685,7 @@ module Aws::AppMesh
627
685
  include Aws::Structure
628
686
  end
629
687
 
630
- # An object representing the traffic distribution requirements for
631
- # matched HTTP requests.
688
+ # An object that represents the action to take if a match is determined.
632
689
  #
633
690
  # @note When making an API call, you may pass HttpRouteAction
634
691
  # data as a hash:
@@ -643,9 +700,8 @@ module Aws::AppMesh
643
700
  # }
644
701
  #
645
702
  # @!attribute [rw] weighted_targets
646
- # The targets that traffic is routed to when a request matches the
647
- # route. You can specify one or more targets and their relative
648
- # weights to distribute traffic with.
703
+ # An object that represents the targets that traffic is routed to when
704
+ # a request matches the route.
649
705
  # @return [Array<Types::WeightedTarget>]
650
706
  #
651
707
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpRouteAction AWS API Documentation
@@ -701,8 +757,8 @@ module Aws::AppMesh
701
757
  include Aws::Structure
702
758
  end
703
759
 
704
- # An object representing the health check policy for a virtual node's
705
- # listener.
760
+ # An object that represents the health check policy for a virtual
761
+ # node's listener.
706
762
  #
707
763
  # @note When making an API call, you may pass HealthCheckPolicy
708
764
  # data as a hash:
@@ -712,7 +768,7 @@ module Aws::AppMesh
712
768
  # interval_millis: 1, # required
713
769
  # path: "String",
714
770
  # port: 1,
715
- # protocol: "http", # required, accepts http, tcp
771
+ # protocol: "grpc", # required, accepts grpc, http, http2, tcp
716
772
  # timeout_millis: 1, # required
717
773
  # unhealthy_threshold: 1, # required
718
774
  # }
@@ -764,7 +820,8 @@ module Aws::AppMesh
764
820
  include Aws::Structure
765
821
  end
766
822
 
767
- # An object representing a virtual service returned by a list operation.
823
+ # An object that represents a virtual service returned by a list
824
+ # operation.
768
825
  #
769
826
  # @!attribute [rw] arn
770
827
  # The full Amazon Resource Name (ARN) for the virtual service.
@@ -787,7 +844,7 @@ module Aws::AppMesh
787
844
  include Aws::Structure
788
845
  end
789
846
 
790
- # An object representing the egress filter rules for a service mesh.
847
+ # An object that represents the egress filter rules for a service mesh.
791
848
  #
792
849
  # @note When making an API call, you may pass EgressFilter
793
850
  # data as a hash:
@@ -811,7 +868,7 @@ module Aws::AppMesh
811
868
  include Aws::Structure
812
869
  end
813
870
 
814
- # An object representing the current status of the virtual node.
871
+ # An object that represents the current status of the virtual node.
815
872
  #
816
873
  # @!attribute [rw] status
817
874
  # The current status of the virtual node.
@@ -824,7 +881,8 @@ module Aws::AppMesh
824
881
  include Aws::Structure
825
882
  end
826
883
 
827
- # An object representing a virtual router returned by a list operation.
884
+ # An object that represents a virtual router returned by a list
885
+ # operation.
828
886
  #
829
887
  # @!attribute [rw] arn
830
888
  # The full Amazon Resource Name (ARN) for the virtual router.
@@ -847,7 +905,7 @@ module Aws::AppMesh
847
905
  include Aws::Structure
848
906
  end
849
907
 
850
- # An object representing a virtual service returned by a describe
908
+ # An object that represents a virtual service returned by a describe
851
909
  # operation.
852
910
  #
853
911
  # @!attribute [rw] mesh_name
@@ -855,7 +913,7 @@ module Aws::AppMesh
855
913
  # @return [String]
856
914
  #
857
915
  # @!attribute [rw] metadata
858
- # An object representing metadata for a resource.
916
+ # An object that represents metadata for a resource.
859
917
  # @return [Types::ResourceMetadata]
860
918
  #
861
919
  # @!attribute [rw] spec
@@ -881,7 +939,7 @@ module Aws::AppMesh
881
939
  include Aws::Structure
882
940
  end
883
941
 
884
- # An object representing the HTTP header in the request.
942
+ # An object that represents the HTTP header in the request.
885
943
  #
886
944
  # @note When making an API call, you may pass HttpRouteHeader
887
945
  # data as a hash:
@@ -902,8 +960,8 @@ module Aws::AppMesh
902
960
  # }
903
961
  #
904
962
  # @!attribute [rw] invert
905
- # Specify `True` to match the opposite of the `HeaderMatchMethod`
906
- # method and value. The default value is `False`.
963
+ # Specify `True` to match anything except the match criteria. The
964
+ # default value is `False`.
907
965
  # @return [Boolean]
908
966
  #
909
967
  # @!attribute [rw] match
@@ -935,7 +993,7 @@ module Aws::AppMesh
935
993
  include Aws::Structure
936
994
  end
937
995
 
938
- # An object representing a virtual node returned by a list operation.
996
+ # An object that represents a virtual node returned by a list operation.
939
997
  #
940
998
  # @!attribute [rw] arn
941
999
  # The full Amazon Resource Name (ARN) for the virtual node.
@@ -1012,6 +1070,32 @@ module Aws::AppMesh
1012
1070
  include Aws::Structure
1013
1071
  end
1014
1072
 
1073
+ # An object that represents the action to take if a match is determined.
1074
+ #
1075
+ # @note When making an API call, you may pass GrpcRouteAction
1076
+ # data as a hash:
1077
+ #
1078
+ # {
1079
+ # weighted_targets: [ # required
1080
+ # {
1081
+ # virtual_node: "ResourceName", # required
1082
+ # weight: 1, # required
1083
+ # },
1084
+ # ],
1085
+ # }
1086
+ #
1087
+ # @!attribute [rw] weighted_targets
1088
+ # An object that represents the targets that traffic is routed to when
1089
+ # a request matches the route.
1090
+ # @return [Array<Types::WeightedTarget>]
1091
+ #
1092
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GrpcRouteAction AWS API Documentation
1093
+ #
1094
+ class GrpcRouteAction < Struct.new(
1095
+ :weighted_targets)
1096
+ include Aws::Structure
1097
+ end
1098
+
1015
1099
  # @!attribute [rw] virtual_node
1016
1100
  # The full description of your virtual node.
1017
1101
  # @return [Types::VirtualNodeData]
@@ -1041,7 +1125,7 @@ module Aws::AppMesh
1041
1125
  end
1042
1126
 
1043
1127
  # @!attribute [rw] mesh
1044
- # An object representing a service mesh returned by a describe
1128
+ # An object that represents a service mesh returned by a describe
1045
1129
  # operation.
1046
1130
  # @return [Types::MeshData]
1047
1131
  #
@@ -1063,8 +1147,57 @@ module Aws::AppMesh
1063
1147
  include Aws::Structure
1064
1148
  end
1065
1149
 
1066
- # An object representing the DNS service discovery information for your
1067
- # virtual node.
1150
+ # An object that represents the match method. Specify one of the match
1151
+ # values.
1152
+ #
1153
+ # @note When making an API call, you may pass GrpcRouteMetadataMatchMethod
1154
+ # data as a hash:
1155
+ #
1156
+ # {
1157
+ # exact: "HeaderMatch",
1158
+ # prefix: "HeaderMatch",
1159
+ # range: {
1160
+ # end: 1, # required
1161
+ # start: 1, # required
1162
+ # },
1163
+ # regex: "HeaderMatch",
1164
+ # suffix: "HeaderMatch",
1165
+ # }
1166
+ #
1167
+ # @!attribute [rw] exact
1168
+ # The value sent by the client must match the specified value exactly.
1169
+ # @return [String]
1170
+ #
1171
+ # @!attribute [rw] prefix
1172
+ # The value sent by the client must begin with the specified
1173
+ # characters.
1174
+ # @return [String]
1175
+ #
1176
+ # @!attribute [rw] range
1177
+ # An object that represents the range of values to match on.
1178
+ # @return [Types::MatchRange]
1179
+ #
1180
+ # @!attribute [rw] regex
1181
+ # The value sent by the client must include the specified characters.
1182
+ # @return [String]
1183
+ #
1184
+ # @!attribute [rw] suffix
1185
+ # The value sent by the client must end with the specified characters.
1186
+ # @return [String]
1187
+ #
1188
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GrpcRouteMetadataMatchMethod AWS API Documentation
1189
+ #
1190
+ class GrpcRouteMetadataMatchMethod < Struct.new(
1191
+ :exact,
1192
+ :prefix,
1193
+ :range,
1194
+ :regex,
1195
+ :suffix)
1196
+ include Aws::Structure
1197
+ end
1198
+
1199
+ # An object that represents the DNS service discovery information for
1200
+ # your virtual node.
1068
1201
  #
1069
1202
  # @note When making an API call, you may pass DnsServiceDiscovery
1070
1203
  # data as a hash:
@@ -1138,7 +1271,7 @@ module Aws::AppMesh
1138
1271
  include Aws::Structure
1139
1272
  end
1140
1273
 
1141
- # An object representing a virtual node returned by a describe
1274
+ # An object that represents a virtual node returned by a describe
1142
1275
  # operation.
1143
1276
  #
1144
1277
  # @!attribute [rw] mesh_name
@@ -1176,7 +1309,7 @@ module Aws::AppMesh
1176
1309
  #
1177
1310
  class UntagResourceOutput < Aws::EmptyStructure; end
1178
1311
 
1179
- # An object representing the AWS Cloud Map attribute information for
1312
+ # An object that represents the AWS Cloud Map attribute information for
1180
1313
  # your virtual node.
1181
1314
  #
1182
1315
  # @note When making an API call, you may pass AwsCloudMapInstanceAttribute
@@ -1207,7 +1340,7 @@ module Aws::AppMesh
1207
1340
  include Aws::Structure
1208
1341
  end
1209
1342
 
1210
- # An object representing the specification of a virtual service.
1343
+ # An object that represents the specification of a virtual service.
1211
1344
  #
1212
1345
  # @note When making an API call, you may pass VirtualServiceSpec
1213
1346
  # data as a hash:
@@ -1235,8 +1368,8 @@ module Aws::AppMesh
1235
1368
  include Aws::Structure
1236
1369
  end
1237
1370
 
1238
- # An object representing the backends that a virtual node is expected to
1239
- # send outbound traffic to.
1371
+ # An object that represents the backends that a virtual node is expected
1372
+ # to send outbound traffic to.
1240
1373
  #
1241
1374
  # @note When making an API call, you may pass Backend
1242
1375
  # data as a hash:
@@ -1258,9 +1391,10 @@ module Aws::AppMesh
1258
1391
  include Aws::Structure
1259
1392
  end
1260
1393
 
1261
- # The range of values to match on. The first character of the range is
1262
- # included in the range, though the last character is not. For example,
1263
- # if the range specified were 1-100, only values 1-99 would be matched.
1394
+ # An object that represents the range of values to match on. The first
1395
+ # character of the range is included in the range, though the last
1396
+ # character is not. For example, if the range specified were 1-100, only
1397
+ # values 1-99 would be matched.
1264
1398
  #
1265
1399
  # @note When making an API call, you may pass MatchRange
1266
1400
  # data as a hash:
@@ -1326,7 +1460,7 @@ module Aws::AppMesh
1326
1460
  include Aws::Structure
1327
1461
  end
1328
1462
 
1329
- # An object representing the TCP routing specification for a route.
1463
+ # An object that represents a TCP route type.
1330
1464
  #
1331
1465
  # @note When making an API call, you may pass TcpRoute
1332
1466
  # data as a hash:
@@ -1393,7 +1527,7 @@ module Aws::AppMesh
1393
1527
  include Aws::Structure
1394
1528
  end
1395
1529
 
1396
- # An object representing a virtual router returned by a describe
1530
+ # An object that represents a virtual router returned by a describe
1397
1531
  # operation.
1398
1532
  #
1399
1533
  # @!attribute [rw] mesh_name
@@ -1517,7 +1651,7 @@ module Aws::AppMesh
1517
1651
  # {
1518
1652
  # port_mapping: { # required
1519
1653
  # port: 1, # required
1520
- # protocol: "http", # required, accepts http, tcp
1654
+ # protocol: "grpc", # required, accepts grpc, http, http2, tcp
1521
1655
  # },
1522
1656
  # },
1523
1657
  # ],
@@ -1571,7 +1705,7 @@ module Aws::AppMesh
1571
1705
  include Aws::Structure
1572
1706
  end
1573
1707
 
1574
- # An object representing the access logging information for a virtual
1708
+ # An object that represents the access logging information for a virtual
1575
1709
  # node.
1576
1710
  #
1577
1711
  # @note When making an API call, you may pass AccessLog
@@ -1668,7 +1802,7 @@ module Aws::AppMesh
1668
1802
  include Aws::Structure
1669
1803
  end
1670
1804
 
1671
- # An object representing the status of a virtual service.
1805
+ # An object that represents the status of a virtual service.
1672
1806
  #
1673
1807
  # @!attribute [rw] status
1674
1808
  # The current status of the virtual service.
@@ -1681,7 +1815,7 @@ module Aws::AppMesh
1681
1815
  include Aws::Structure
1682
1816
  end
1683
1817
 
1684
- # An object representing the specification of a virtual router.
1818
+ # An object that represents the specification of a virtual router.
1685
1819
  #
1686
1820
  # @note When making an API call, you may pass VirtualRouterSpec
1687
1821
  # data as a hash:
@@ -1691,7 +1825,7 @@ module Aws::AppMesh
1691
1825
  # {
1692
1826
  # port_mapping: { # required
1693
1827
  # port: 1, # required
1694
- # protocol: "http", # required, accepts http, tcp
1828
+ # protocol: "grpc", # required, accepts grpc, http, http2, tcp
1695
1829
  # },
1696
1830
  # },
1697
1831
  # ],
@@ -1699,8 +1833,7 @@ module Aws::AppMesh
1699
1833
  #
1700
1834
  # @!attribute [rw] listeners
1701
1835
  # The listeners that the virtual router is expected to receive inbound
1702
- # traffic from. Currently only one listener is supported per virtual
1703
- # router.
1836
+ # traffic from. You can specify one listener.
1704
1837
  # @return [Array<Types::VirtualRouterListener>]
1705
1838
  #
1706
1839
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/VirtualRouterSpec AWS API Documentation
@@ -1724,7 +1857,7 @@ module Aws::AppMesh
1724
1857
  include Aws::Structure
1725
1858
  end
1726
1859
 
1727
- # An object representing the specification of a virtual node.
1860
+ # An object that represents the specification of a virtual node.
1728
1861
  #
1729
1862
  # @note When making an API call, you may pass VirtualNodeSpec
1730
1863
  # data as a hash:
@@ -1744,13 +1877,13 @@ module Aws::AppMesh
1744
1877
  # interval_millis: 1, # required
1745
1878
  # path: "String",
1746
1879
  # port: 1,
1747
- # protocol: "http", # required, accepts http, tcp
1880
+ # protocol: "grpc", # required, accepts grpc, http, http2, tcp
1748
1881
  # timeout_millis: 1, # required
1749
1882
  # unhealthy_threshold: 1, # required
1750
1883
  # },
1751
1884
  # port_mapping: { # required
1752
1885
  # port: 1, # required
1753
- # protocol: "http", # required, accepts http, tcp
1886
+ # protocol: "grpc", # required, accepts grpc, http, http2, tcp
1754
1887
  # },
1755
1888
  # },
1756
1889
  # ],
@@ -1785,8 +1918,7 @@ module Aws::AppMesh
1785
1918
  #
1786
1919
  # @!attribute [rw] listeners
1787
1920
  # The listeners that the virtual node is expected to receive inbound
1788
- # traffic from. Currently only one listener is supported per virtual
1789
- # node.
1921
+ # traffic from. You can specify one listener.
1790
1922
  # @return [Array<Types::Listener>]
1791
1923
  #
1792
1924
  # @!attribute [rw] logging
@@ -1829,7 +1961,7 @@ module Aws::AppMesh
1829
1961
  include Aws::Structure
1830
1962
  end
1831
1963
 
1832
- # An object representing the duration between retry attempts.
1964
+ # An object that represents a duration of time.
1833
1965
  #
1834
1966
  # @note When making an API call, you may pass Duration
1835
1967
  # data as a hash:
@@ -1840,11 +1972,11 @@ module Aws::AppMesh
1840
1972
  # }
1841
1973
  #
1842
1974
  # @!attribute [rw] unit
1843
- # The unit of time between retry attempts.
1975
+ # A unit of time.
1844
1976
  # @return [String]
1845
1977
  #
1846
1978
  # @!attribute [rw] value
1847
- # The duration of time between retry attempts.
1979
+ # A number of time units.
1848
1980
  # @return [Integer]
1849
1981
  #
1850
1982
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/Duration AWS API Documentation
@@ -1880,7 +2012,7 @@ module Aws::AppMesh
1880
2012
  include Aws::Structure
1881
2013
  end
1882
2014
 
1883
- # An object representing the requirements for a route to match HTTP
2015
+ # An object that represents the requirements for a route to match HTTP
1884
2016
  # requests for a virtual router.
1885
2017
  #
1886
2018
  # @note When making an API call, you may pass HttpRouteMatch
@@ -1909,11 +2041,11 @@ module Aws::AppMesh
1909
2041
  # }
1910
2042
  #
1911
2043
  # @!attribute [rw] headers
1912
- # The client request headers to match on.
2044
+ # An object that represents the client request headers to match on.
1913
2045
  # @return [Array<Types::HttpRouteHeader>]
1914
2046
  #
1915
2047
  # @!attribute [rw] method
1916
- # The client request header method to match on.
2048
+ # The client request method to match on. Specify only one.
1917
2049
  # @return [String]
1918
2050
  #
1919
2051
  # @!attribute [rw] prefix
@@ -1926,7 +2058,7 @@ module Aws::AppMesh
1926
2058
  # @return [String]
1927
2059
  #
1928
2060
  # @!attribute [rw] scheme
1929
- # The client request header scheme to match on.
2061
+ # The client request scheme to match on. Specify only one.
1930
2062
  # @return [String]
1931
2063
  #
1932
2064
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpRouteMatch AWS API Documentation
@@ -1972,7 +2104,7 @@ module Aws::AppMesh
1972
2104
  include Aws::Structure
1973
2105
  end
1974
2106
 
1975
- # An object representing a service mesh returned by a list operation.
2107
+ # An object that represents a service mesh returned by a list operation.
1976
2108
  #
1977
2109
  # @!attribute [rw] arn
1978
2110
  # The full Amazon Resource Name (ARN) of the service mesh.
@@ -1990,15 +2122,14 @@ module Aws::AppMesh
1990
2122
  include Aws::Structure
1991
2123
  end
1992
2124
 
1993
- # An object representing a virtual node or virtual router listener port
1994
- # mapping.
2125
+ # An object that represents a port mapping.
1995
2126
  #
1996
2127
  # @note When making an API call, you may pass PortMapping
1997
2128
  # data as a hash:
1998
2129
  #
1999
2130
  # {
2000
2131
  # port: 1, # required
2001
- # protocol: "http", # required, accepts http, tcp
2132
+ # protocol: "grpc", # required, accepts grpc, http, http2, tcp
2002
2133
  # }
2003
2134
  #
2004
2135
  # @!attribute [rw] port
@@ -2006,7 +2137,7 @@ module Aws::AppMesh
2006
2137
  # @return [Integer]
2007
2138
  #
2008
2139
  # @!attribute [rw] protocol
2009
- # The protocol used for the port mapping.
2140
+ # The protocol used for the port mapping. Specify one protocol.
2010
2141
  # @return [String]
2011
2142
  #
2012
2143
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/PortMapping AWS API Documentation
@@ -2017,7 +2148,7 @@ module Aws::AppMesh
2017
2148
  include Aws::Structure
2018
2149
  end
2019
2150
 
2020
- # An object representing a service mesh returned by a describe
2151
+ # An object that represents a service mesh returned by a describe
2021
2152
  # operation.
2022
2153
  #
2023
2154
  # @!attribute [rw] mesh_name
@@ -2046,7 +2177,7 @@ module Aws::AppMesh
2046
2177
  include Aws::Structure
2047
2178
  end
2048
2179
 
2049
- # An object representing the status of a virtual router.
2180
+ # An object that represents the status of a virtual router.
2050
2181
  #
2051
2182
  # @!attribute [rw] status
2052
2183
  # The current status of the virtual router.
@@ -2080,10 +2211,11 @@ module Aws::AppMesh
2080
2211
  include Aws::Structure
2081
2212
  end
2082
2213
 
2083
- # An object representing a target and its relative weight. Traffic is
2214
+ # An object that represents a target and its relative weight. Traffic is
2084
2215
  # distributed across targets according to their relative weight. For
2085
2216
  # example, a weighted target with a relative weight of 50 receives five
2086
- # times as much traffic as one with a relative weight of 10.
2217
+ # times as much traffic as one with a relative weight of 10. The total
2218
+ # weight for all targets combined must be less than or equal to 100.
2087
2219
  #
2088
2220
  # @note When making an API call, you may pass WeightedTarget
2089
2221
  # data as a hash:
@@ -2109,8 +2241,7 @@ module Aws::AppMesh
2109
2241
  include Aws::Structure
2110
2242
  end
2111
2243
 
2112
- # An object representing the traffic distribution requirements for
2113
- # matched TCP requests.
2244
+ # An object that represents the action to take if a match is determined.
2114
2245
  #
2115
2246
  # @note When making an API call, you may pass TcpRouteAction
2116
2247
  # data as a hash:
@@ -2125,9 +2256,8 @@ module Aws::AppMesh
2125
2256
  # }
2126
2257
  #
2127
2258
  # @!attribute [rw] weighted_targets
2128
- # The targets that traffic is routed to when a request matches the
2129
- # route. You can specify one or more targets and their relative
2130
- # weights to distribute traffic with.
2259
+ # An object that represents the targets that traffic is routed to when
2260
+ # a request matches the route.
2131
2261
  # @return [Array<Types::WeightedTarget>]
2132
2262
  #
2133
2263
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/TcpRouteAction AWS API Documentation
@@ -2161,7 +2291,7 @@ module Aws::AppMesh
2161
2291
  include Aws::Structure
2162
2292
  end
2163
2293
 
2164
- # An object representing the current status of a route.
2294
+ # An object that represents the current status of a route.
2165
2295
  #
2166
2296
  # @!attribute [rw] status
2167
2297
  # The current status for the route.
@@ -2174,7 +2304,7 @@ module Aws::AppMesh
2174
2304
  include Aws::Structure
2175
2305
  end
2176
2306
 
2177
- # An object representing a route returned by a list operation.
2307
+ # An object that represents a route returned by a list operation.
2178
2308
  #
2179
2309
  # @!attribute [rw] arn
2180
2310
  # The full Amazon Resource Name (ARN) for the route.
@@ -2202,7 +2332,7 @@ module Aws::AppMesh
2202
2332
  include Aws::Structure
2203
2333
  end
2204
2334
 
2205
- # An object representing a listener for a virtual node.
2335
+ # An object that represents a listener for a virtual node.
2206
2336
  #
2207
2337
  # @note When making an API call, you may pass Listener
2208
2338
  # data as a hash:
@@ -2213,13 +2343,13 @@ module Aws::AppMesh
2213
2343
  # interval_millis: 1, # required
2214
2344
  # path: "String",
2215
2345
  # port: 1,
2216
- # protocol: "http", # required, accepts http, tcp
2346
+ # protocol: "grpc", # required, accepts grpc, http, http2, tcp
2217
2347
  # timeout_millis: 1, # required
2218
2348
  # unhealthy_threshold: 1, # required
2219
2349
  # },
2220
2350
  # port_mapping: { # required
2221
2351
  # port: 1, # required
2222
- # protocol: "http", # required, accepts http, tcp
2352
+ # protocol: "grpc", # required, accepts grpc, http, http2, tcp
2223
2353
  # },
2224
2354
  # }
2225
2355
  #
@@ -2239,6 +2369,75 @@ module Aws::AppMesh
2239
2369
  include Aws::Structure
2240
2370
  end
2241
2371
 
2372
+ # An object that represents a GRPC route type.
2373
+ #
2374
+ # @note When making an API call, you may pass GrpcRoute
2375
+ # data as a hash:
2376
+ #
2377
+ # {
2378
+ # action: { # required
2379
+ # weighted_targets: [ # required
2380
+ # {
2381
+ # virtual_node: "ResourceName", # required
2382
+ # weight: 1, # required
2383
+ # },
2384
+ # ],
2385
+ # },
2386
+ # match: { # required
2387
+ # metadata: [
2388
+ # {
2389
+ # invert: false,
2390
+ # match: {
2391
+ # exact: "HeaderMatch",
2392
+ # prefix: "HeaderMatch",
2393
+ # range: {
2394
+ # end: 1, # required
2395
+ # start: 1, # required
2396
+ # },
2397
+ # regex: "HeaderMatch",
2398
+ # suffix: "HeaderMatch",
2399
+ # },
2400
+ # name: "HeaderName", # required
2401
+ # },
2402
+ # ],
2403
+ # method_name: "MethodName",
2404
+ # service_name: "ServiceName",
2405
+ # },
2406
+ # retry_policy: {
2407
+ # grpc_retry_events: ["cancelled"], # accepts cancelled, deadline-exceeded, internal, resource-exhausted, unavailable
2408
+ # http_retry_events: ["HttpRetryPolicyEvent"],
2409
+ # max_retries: 1, # required
2410
+ # per_retry_timeout: { # required
2411
+ # unit: "ms", # accepts ms, s
2412
+ # value: 1,
2413
+ # },
2414
+ # tcp_retry_events: ["connection-error"], # accepts connection-error
2415
+ # },
2416
+ # }
2417
+ #
2418
+ # @!attribute [rw] action
2419
+ # An object that represents the action to take if a match is
2420
+ # determined.
2421
+ # @return [Types::GrpcRouteAction]
2422
+ #
2423
+ # @!attribute [rw] match
2424
+ # An object that represents the criteria for determining a request
2425
+ # match.
2426
+ # @return [Types::GrpcRouteMatch]
2427
+ #
2428
+ # @!attribute [rw] retry_policy
2429
+ # An object that represents a retry policy.
2430
+ # @return [Types::GrpcRetryPolicy]
2431
+ #
2432
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GrpcRoute AWS API Documentation
2433
+ #
2434
+ class GrpcRoute < Struct.new(
2435
+ :action,
2436
+ :match,
2437
+ :retry_policy)
2438
+ include Aws::Structure
2439
+ end
2440
+
2242
2441
  # @note When making an API call, you may pass DeleteVirtualNodeInput
2243
2442
  # data as a hash:
2244
2443
  #
@@ -2263,7 +2462,7 @@ module Aws::AppMesh
2263
2462
  include Aws::Structure
2264
2463
  end
2265
2464
 
2266
- # An object representing a route returned by a describe operation.
2465
+ # An object that represents a route returned by a describe operation.
2267
2466
  #
2268
2467
  # @!attribute [rw] mesh_name
2269
2468
  # The name of the service mesh that the route resides in.
@@ -2312,7 +2511,7 @@ module Aws::AppMesh
2312
2511
  include Aws::Structure
2313
2512
  end
2314
2513
 
2315
- # An object representing a virtual node service provider.
2514
+ # An object that represents a virtual node service provider.
2316
2515
  #
2317
2516
  # @note When making an API call, you may pass VirtualNodeServiceProvider
2318
2517
  # data as a hash:
@@ -2345,7 +2544,9 @@ module Aws::AppMesh
2345
2544
  include Aws::Structure
2346
2545
  end
2347
2546
 
2348
- # An object that represents a retry policy.
2547
+ # An object that represents a retry policy. Specify at least one value
2548
+ # for at least one of the types of `RetryEvents`, a value for
2549
+ # `maxRetries`, and a value for `perRetryTimeout`.
2349
2550
  #
2350
2551
  # @note When making an API call, you may pass HttpRetryPolicy
2351
2552
  # data as a hash:
@@ -2374,12 +2575,11 @@ module Aws::AppMesh
2374
2575
  # @return [Array<String>]
2375
2576
  #
2376
2577
  # @!attribute [rw] max_retries
2377
- # The maximum number of retry attempts. If no value is specified, the
2378
- # default is 1.
2578
+ # The maximum number of retry attempts.
2379
2579
  # @return [Integer]
2380
2580
  #
2381
2581
  # @!attribute [rw] per_retry_timeout
2382
- # An object that represents the retry duration.
2582
+ # An object that represents a duration of time.
2383
2583
  # @return [Types::Duration]
2384
2584
  #
2385
2585
  # @!attribute [rw] tcp_retry_events
@@ -2451,8 +2651,8 @@ module Aws::AppMesh
2451
2651
  include Aws::Structure
2452
2652
  end
2453
2653
 
2454
- # An object representing the method and value to match the header value
2455
- # sent with a request. Specify one match method.
2654
+ # An object that represents the method and value to match with the
2655
+ # header value sent in a request. Specify one match method.
2456
2656
  #
2457
2657
  # @note When making an API call, you may pass HeaderMatchMethod
2458
2658
  # data as a hash:
@@ -2469,28 +2669,24 @@ module Aws::AppMesh
2469
2669
  # }
2470
2670
  #
2471
2671
  # @!attribute [rw] exact
2472
- # The header value sent by the client must match the specified value
2473
- # exactly.
2672
+ # The value sent by the client must match the specified value exactly.
2474
2673
  # @return [String]
2475
2674
  #
2476
2675
  # @!attribute [rw] prefix
2477
- # The header value sent by the client must begin with the specified
2676
+ # The value sent by the client must begin with the specified
2478
2677
  # characters.
2479
2678
  # @return [String]
2480
2679
  #
2481
2680
  # @!attribute [rw] range
2482
- # The object that specifies the range of numbers that the header value
2483
- # sent by the client must be included in.
2681
+ # An object that represents the range of values to match on.
2484
2682
  # @return [Types::MatchRange]
2485
2683
  #
2486
2684
  # @!attribute [rw] regex
2487
- # The header value sent by the client must include the specified
2488
- # characters.
2685
+ # The value sent by the client must include the specified characters.
2489
2686
  # @return [String]
2490
2687
  #
2491
2688
  # @!attribute [rw] suffix
2492
- # The header value sent by the client must end with the specified
2493
- # characters.
2689
+ # The value sent by the client must end with the specified characters.
2494
2690
  # @return [String]
2495
2691
  #
2496
2692
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HeaderMatchMethod AWS API Documentation
@@ -2547,6 +2743,48 @@ module Aws::AppMesh
2547
2743
  include Aws::Structure
2548
2744
  end
2549
2745
 
2746
+ # An object that represents the match metadata for the route.
2747
+ #
2748
+ # @note When making an API call, you may pass GrpcRouteMetadata
2749
+ # data as a hash:
2750
+ #
2751
+ # {
2752
+ # invert: false,
2753
+ # match: {
2754
+ # exact: "HeaderMatch",
2755
+ # prefix: "HeaderMatch",
2756
+ # range: {
2757
+ # end: 1, # required
2758
+ # start: 1, # required
2759
+ # },
2760
+ # regex: "HeaderMatch",
2761
+ # suffix: "HeaderMatch",
2762
+ # },
2763
+ # name: "HeaderName", # required
2764
+ # }
2765
+ #
2766
+ # @!attribute [rw] invert
2767
+ # Specify `True` to match anything except the match criteria. The
2768
+ # default value is `False`.
2769
+ # @return [Boolean]
2770
+ #
2771
+ # @!attribute [rw] match
2772
+ # An object that represents the data to match from the request.
2773
+ # @return [Types::GrpcRouteMetadataMatchMethod]
2774
+ #
2775
+ # @!attribute [rw] name
2776
+ # The name of the route.
2777
+ # @return [String]
2778
+ #
2779
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GrpcRouteMetadata AWS API Documentation
2780
+ #
2781
+ class GrpcRouteMetadata < Struct.new(
2782
+ :invert,
2783
+ :match,
2784
+ :name)
2785
+ include Aws::Structure
2786
+ end
2787
+
2550
2788
  # @note When making an API call, you may pass CreateRouteInput
2551
2789
  # data as a hash:
2552
2790
  #
@@ -2555,6 +2793,86 @@ module Aws::AppMesh
2555
2793
  # mesh_name: "ResourceName", # required
2556
2794
  # route_name: "ResourceName", # required
2557
2795
  # spec: { # required
2796
+ # grpc_route: {
2797
+ # action: { # required
2798
+ # weighted_targets: [ # required
2799
+ # {
2800
+ # virtual_node: "ResourceName", # required
2801
+ # weight: 1, # required
2802
+ # },
2803
+ # ],
2804
+ # },
2805
+ # match: { # required
2806
+ # metadata: [
2807
+ # {
2808
+ # invert: false,
2809
+ # match: {
2810
+ # exact: "HeaderMatch",
2811
+ # prefix: "HeaderMatch",
2812
+ # range: {
2813
+ # end: 1, # required
2814
+ # start: 1, # required
2815
+ # },
2816
+ # regex: "HeaderMatch",
2817
+ # suffix: "HeaderMatch",
2818
+ # },
2819
+ # name: "HeaderName", # required
2820
+ # },
2821
+ # ],
2822
+ # method_name: "MethodName",
2823
+ # service_name: "ServiceName",
2824
+ # },
2825
+ # retry_policy: {
2826
+ # grpc_retry_events: ["cancelled"], # accepts cancelled, deadline-exceeded, internal, resource-exhausted, unavailable
2827
+ # http_retry_events: ["HttpRetryPolicyEvent"],
2828
+ # max_retries: 1, # required
2829
+ # per_retry_timeout: { # required
2830
+ # unit: "ms", # accepts ms, s
2831
+ # value: 1,
2832
+ # },
2833
+ # tcp_retry_events: ["connection-error"], # accepts connection-error
2834
+ # },
2835
+ # },
2836
+ # http2_route: {
2837
+ # action: { # required
2838
+ # weighted_targets: [ # required
2839
+ # {
2840
+ # virtual_node: "ResourceName", # required
2841
+ # weight: 1, # required
2842
+ # },
2843
+ # ],
2844
+ # },
2845
+ # match: { # required
2846
+ # headers: [
2847
+ # {
2848
+ # invert: false,
2849
+ # match: {
2850
+ # exact: "HeaderMatch",
2851
+ # prefix: "HeaderMatch",
2852
+ # range: {
2853
+ # end: 1, # required
2854
+ # start: 1, # required
2855
+ # },
2856
+ # regex: "HeaderMatch",
2857
+ # suffix: "HeaderMatch",
2858
+ # },
2859
+ # name: "HeaderName", # required
2860
+ # },
2861
+ # ],
2862
+ # method: "CONNECT", # accepts CONNECT, DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT, TRACE
2863
+ # prefix: "String", # required
2864
+ # scheme: "http", # accepts http, https
2865
+ # },
2866
+ # retry_policy: {
2867
+ # http_retry_events: ["HttpRetryPolicyEvent"],
2868
+ # max_retries: 1, # required
2869
+ # per_retry_timeout: { # required
2870
+ # unit: "ms", # accepts ms, s
2871
+ # value: 1,
2872
+ # },
2873
+ # tcp_retry_events: ["connection-error"], # accepts connection-error
2874
+ # },
2875
+ # },
2558
2876
  # http_route: {
2559
2877
  # action: { # required
2560
2878
  # weighted_targets: [ # required
@@ -2661,7 +2979,7 @@ module Aws::AppMesh
2661
2979
  include Aws::Structure
2662
2980
  end
2663
2981
 
2664
- # An object representing the provider for a virtual service.
2982
+ # An object that represents the provider for a virtual service.
2665
2983
  #
2666
2984
  # @note When making an API call, you may pass VirtualServiceProvider
2667
2985
  # data as a hash:
@@ -2691,8 +3009,58 @@ module Aws::AppMesh
2691
3009
  include Aws::Structure
2692
3010
  end
2693
3011
 
2694
- # An object representing the AWS Cloud Map service discovery information
2695
- # for your virtual node.
3012
+ # An object that represents the criteria for determining a request
3013
+ # match.
3014
+ #
3015
+ # @note When making an API call, you may pass GrpcRouteMatch
3016
+ # data as a hash:
3017
+ #
3018
+ # {
3019
+ # metadata: [
3020
+ # {
3021
+ # invert: false,
3022
+ # match: {
3023
+ # exact: "HeaderMatch",
3024
+ # prefix: "HeaderMatch",
3025
+ # range: {
3026
+ # end: 1, # required
3027
+ # start: 1, # required
3028
+ # },
3029
+ # regex: "HeaderMatch",
3030
+ # suffix: "HeaderMatch",
3031
+ # },
3032
+ # name: "HeaderName", # required
3033
+ # },
3034
+ # ],
3035
+ # method_name: "MethodName",
3036
+ # service_name: "ServiceName",
3037
+ # }
3038
+ #
3039
+ # @!attribute [rw] metadata
3040
+ # An object that represents the data to match from the request.
3041
+ # @return [Array<Types::GrpcRouteMetadata>]
3042
+ #
3043
+ # @!attribute [rw] method_name
3044
+ # The method name to match from the request. If you specify a name,
3045
+ # you must also specify a `serviceName`.
3046
+ # @return [String]
3047
+ #
3048
+ # @!attribute [rw] service_name
3049
+ # The fully qualified domain name for the service to match from the
3050
+ # request.
3051
+ # @return [String]
3052
+ #
3053
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/GrpcRouteMatch AWS API Documentation
3054
+ #
3055
+ class GrpcRouteMatch < Struct.new(
3056
+ :metadata,
3057
+ :method_name,
3058
+ :service_name)
3059
+ include Aws::Structure
3060
+ end
3061
+
3062
+ # An object that represents the AWS Cloud Map service discovery
3063
+ # information for your virtual node.
2696
3064
  #
2697
3065
  # @note When making an API call, you may pass AwsCloudMapServiceDiscovery
2698
3066
  # data as a hash:
@@ -2751,6 +3119,86 @@ module Aws::AppMesh
2751
3119
  # mesh_name: "ResourceName", # required
2752
3120
  # route_name: "ResourceName", # required
2753
3121
  # spec: { # required
3122
+ # grpc_route: {
3123
+ # action: { # required
3124
+ # weighted_targets: [ # required
3125
+ # {
3126
+ # virtual_node: "ResourceName", # required
3127
+ # weight: 1, # required
3128
+ # },
3129
+ # ],
3130
+ # },
3131
+ # match: { # required
3132
+ # metadata: [
3133
+ # {
3134
+ # invert: false,
3135
+ # match: {
3136
+ # exact: "HeaderMatch",
3137
+ # prefix: "HeaderMatch",
3138
+ # range: {
3139
+ # end: 1, # required
3140
+ # start: 1, # required
3141
+ # },
3142
+ # regex: "HeaderMatch",
3143
+ # suffix: "HeaderMatch",
3144
+ # },
3145
+ # name: "HeaderName", # required
3146
+ # },
3147
+ # ],
3148
+ # method_name: "MethodName",
3149
+ # service_name: "ServiceName",
3150
+ # },
3151
+ # retry_policy: {
3152
+ # grpc_retry_events: ["cancelled"], # accepts cancelled, deadline-exceeded, internal, resource-exhausted, unavailable
3153
+ # http_retry_events: ["HttpRetryPolicyEvent"],
3154
+ # max_retries: 1, # required
3155
+ # per_retry_timeout: { # required
3156
+ # unit: "ms", # accepts ms, s
3157
+ # value: 1,
3158
+ # },
3159
+ # tcp_retry_events: ["connection-error"], # accepts connection-error
3160
+ # },
3161
+ # },
3162
+ # http2_route: {
3163
+ # action: { # required
3164
+ # weighted_targets: [ # required
3165
+ # {
3166
+ # virtual_node: "ResourceName", # required
3167
+ # weight: 1, # required
3168
+ # },
3169
+ # ],
3170
+ # },
3171
+ # match: { # required
3172
+ # headers: [
3173
+ # {
3174
+ # invert: false,
3175
+ # match: {
3176
+ # exact: "HeaderMatch",
3177
+ # prefix: "HeaderMatch",
3178
+ # range: {
3179
+ # end: 1, # required
3180
+ # start: 1, # required
3181
+ # },
3182
+ # regex: "HeaderMatch",
3183
+ # suffix: "HeaderMatch",
3184
+ # },
3185
+ # name: "HeaderName", # required
3186
+ # },
3187
+ # ],
3188
+ # method: "CONNECT", # accepts CONNECT, DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT, TRACE
3189
+ # prefix: "String", # required
3190
+ # scheme: "http", # accepts http, https
3191
+ # },
3192
+ # retry_policy: {
3193
+ # http_retry_events: ["HttpRetryPolicyEvent"],
3194
+ # max_retries: 1, # required
3195
+ # per_retry_timeout: { # required
3196
+ # unit: "ms", # accepts ms, s
3197
+ # value: 1,
3198
+ # },
3199
+ # tcp_retry_events: ["connection-error"], # accepts connection-error
3200
+ # },
3201
+ # },
2754
3202
  # http_route: {
2755
3203
  # action: { # required
2756
3204
  # weighted_targets: [ # required
@@ -2843,7 +3291,7 @@ module Aws::AppMesh
2843
3291
  include Aws::Structure
2844
3292
  end
2845
3293
 
2846
- # An object representing the status of a service mesh.
3294
+ # An object that represents the status of a service mesh.
2847
3295
  #
2848
3296
  # @!attribute [rw] status
2849
3297
  # The current mesh status.
@@ -2877,13 +3325,13 @@ module Aws::AppMesh
2877
3325
  # interval_millis: 1, # required
2878
3326
  # path: "String",
2879
3327
  # port: 1,
2880
- # protocol: "http", # required, accepts http, tcp
3328
+ # protocol: "grpc", # required, accepts grpc, http, http2, tcp
2881
3329
  # timeout_millis: 1, # required
2882
3330
  # unhealthy_threshold: 1, # required
2883
3331
  # },
2884
3332
  # port_mapping: { # required
2885
3333
  # port: 1, # required
2886
- # protocol: "http", # required, accepts http, tcp
3334
+ # protocol: "grpc", # required, accepts grpc, http, http2, tcp
2887
3335
  # },
2888
3336
  # },
2889
3337
  # ],
@@ -2972,12 +3420,93 @@ module Aws::AppMesh
2972
3420
  include Aws::Structure
2973
3421
  end
2974
3422
 
2975
- # An object representing the specification of a route.
3423
+ # An object that represents a route specification. Specify one route
3424
+ # type.
2976
3425
  #
2977
3426
  # @note When making an API call, you may pass RouteSpec
2978
3427
  # data as a hash:
2979
3428
  #
2980
3429
  # {
3430
+ # grpc_route: {
3431
+ # action: { # required
3432
+ # weighted_targets: [ # required
3433
+ # {
3434
+ # virtual_node: "ResourceName", # required
3435
+ # weight: 1, # required
3436
+ # },
3437
+ # ],
3438
+ # },
3439
+ # match: { # required
3440
+ # metadata: [
3441
+ # {
3442
+ # invert: false,
3443
+ # match: {
3444
+ # exact: "HeaderMatch",
3445
+ # prefix: "HeaderMatch",
3446
+ # range: {
3447
+ # end: 1, # required
3448
+ # start: 1, # required
3449
+ # },
3450
+ # regex: "HeaderMatch",
3451
+ # suffix: "HeaderMatch",
3452
+ # },
3453
+ # name: "HeaderName", # required
3454
+ # },
3455
+ # ],
3456
+ # method_name: "MethodName",
3457
+ # service_name: "ServiceName",
3458
+ # },
3459
+ # retry_policy: {
3460
+ # grpc_retry_events: ["cancelled"], # accepts cancelled, deadline-exceeded, internal, resource-exhausted, unavailable
3461
+ # http_retry_events: ["HttpRetryPolicyEvent"],
3462
+ # max_retries: 1, # required
3463
+ # per_retry_timeout: { # required
3464
+ # unit: "ms", # accepts ms, s
3465
+ # value: 1,
3466
+ # },
3467
+ # tcp_retry_events: ["connection-error"], # accepts connection-error
3468
+ # },
3469
+ # },
3470
+ # http2_route: {
3471
+ # action: { # required
3472
+ # weighted_targets: [ # required
3473
+ # {
3474
+ # virtual_node: "ResourceName", # required
3475
+ # weight: 1, # required
3476
+ # },
3477
+ # ],
3478
+ # },
3479
+ # match: { # required
3480
+ # headers: [
3481
+ # {
3482
+ # invert: false,
3483
+ # match: {
3484
+ # exact: "HeaderMatch",
3485
+ # prefix: "HeaderMatch",
3486
+ # range: {
3487
+ # end: 1, # required
3488
+ # start: 1, # required
3489
+ # },
3490
+ # regex: "HeaderMatch",
3491
+ # suffix: "HeaderMatch",
3492
+ # },
3493
+ # name: "HeaderName", # required
3494
+ # },
3495
+ # ],
3496
+ # method: "CONNECT", # accepts CONNECT, DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT, TRACE
3497
+ # prefix: "String", # required
3498
+ # scheme: "http", # accepts http, https
3499
+ # },
3500
+ # retry_policy: {
3501
+ # http_retry_events: ["HttpRetryPolicyEvent"],
3502
+ # max_retries: 1, # required
3503
+ # per_retry_timeout: { # required
3504
+ # unit: "ms", # accepts ms, s
3505
+ # value: 1,
3506
+ # },
3507
+ # tcp_retry_events: ["connection-error"], # accepts connection-error
3508
+ # },
3509
+ # },
2981
3510
  # http_route: {
2982
3511
  # action: { # required
2983
3512
  # weighted_targets: [ # required
@@ -3031,8 +3560,16 @@ module Aws::AppMesh
3031
3560
  # },
3032
3561
  # }
3033
3562
  #
3563
+ # @!attribute [rw] grpc_route
3564
+ # An object that represents the specification of a GRPC route.
3565
+ # @return [Types::GrpcRoute]
3566
+ #
3567
+ # @!attribute [rw] http2_route
3568
+ # An object that represents the specification of an HTTP2 route.
3569
+ # @return [Types::HttpRoute]
3570
+ #
3034
3571
  # @!attribute [rw] http_route
3035
- # The HTTP routing information for the route.
3572
+ # An object that represents the specification of an HTTP route.
3036
3573
  # @return [Types::HttpRoute]
3037
3574
  #
3038
3575
  # @!attribute [rw] priority
@@ -3041,19 +3578,21 @@ module Aws::AppMesh
3041
3578
  # @return [Integer]
3042
3579
  #
3043
3580
  # @!attribute [rw] tcp_route
3044
- # The TCP routing information for the route.
3581
+ # An object that represents the specification of a TCP route.
3045
3582
  # @return [Types::TcpRoute]
3046
3583
  #
3047
3584
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/RouteSpec AWS API Documentation
3048
3585
  #
3049
3586
  class RouteSpec < Struct.new(
3587
+ :grpc_route,
3588
+ :http2_route,
3050
3589
  :http_route,
3051
3590
  :priority,
3052
3591
  :tcp_route)
3053
3592
  include Aws::Structure
3054
3593
  end
3055
3594
 
3056
- # An object representing the HTTP routing specification for a route.
3595
+ # An object that represents an HTTP or HTTP2 route type.
3057
3596
  #
3058
3597
  # @note When making an API call, you may pass HttpRoute
3059
3598
  # data as a hash:
@@ -3100,11 +3639,13 @@ module Aws::AppMesh
3100
3639
  # }
3101
3640
  #
3102
3641
  # @!attribute [rw] action
3103
- # The action to take if a match is determined.
3642
+ # An object that represents the action to take if a match is
3643
+ # determined.
3104
3644
  # @return [Types::HttpRouteAction]
3105
3645
  #
3106
3646
  # @!attribute [rw] match
3107
- # The criteria for determining an HTTP request match.
3647
+ # An object that represents the criteria for determining a request
3648
+ # match.
3108
3649
  # @return [Types::HttpRouteMatch]
3109
3650
  #
3110
3651
  # @!attribute [rw] retry_policy
@@ -3138,7 +3679,7 @@ module Aws::AppMesh
3138
3679
  include Aws::Structure
3139
3680
  end
3140
3681
 
3141
- # An object representing the specification of a service mesh.
3682
+ # An object that represents the specification of a service mesh.
3142
3683
  #
3143
3684
  # @note When making an API call, you may pass MeshSpec
3144
3685
  # data as a hash:
@@ -3172,7 +3713,7 @@ module Aws::AppMesh
3172
3713
  include Aws::Structure
3173
3714
  end
3174
3715
 
3175
- # An object representing an access log file.
3716
+ # An object that represents an access log file.
3176
3717
  #
3177
3718
  # @note When making an API call, you may pass FileAccessLog
3178
3719
  # data as a hash:
@@ -3202,7 +3743,7 @@ module Aws::AppMesh
3202
3743
  include Aws::Structure
3203
3744
  end
3204
3745
 
3205
- # An object representing a virtual node service provider.
3746
+ # An object that represents a virtual node service provider.
3206
3747
  #
3207
3748
  # @note When making an API call, you may pass VirtualRouterServiceProvider
3208
3749
  # data as a hash:
@@ -3266,8 +3807,8 @@ module Aws::AppMesh
3266
3807
  include Aws::Structure
3267
3808
  end
3268
3809
 
3269
- # An object representing the service discovery information for a virtual
3270
- # node.
3810
+ # An object that represents the service discovery information for a
3811
+ # virtual node.
3271
3812
  #
3272
3813
  # @note When making an API call, you may pass ServiceDiscovery
3273
3814
  # data as a hash: