aws-sdk-appmesh 1.17.0 → 1.18.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: