aws-sdk-appmesh 1.5.0 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -11,6 +11,7 @@ module Aws::AppMesh
11
11
 
12
12
  include Seahorse::Model
13
13
 
14
+ AccessLog = Shapes::StructureShape.new(name: 'AccessLog')
14
15
  Arn = Shapes::StringShape.new(name: 'Arn')
15
16
  Backend = Shapes::StructureShape.new(name: 'Backend')
16
17
  Backends = Shapes::ListShape.new(name: 'Backends')
@@ -47,6 +48,10 @@ module Aws::AppMesh
47
48
  DescribeVirtualServiceInput = Shapes::StructureShape.new(name: 'DescribeVirtualServiceInput')
48
49
  DescribeVirtualServiceOutput = Shapes::StructureShape.new(name: 'DescribeVirtualServiceOutput')
49
50
  DnsServiceDiscovery = Shapes::StructureShape.new(name: 'DnsServiceDiscovery')
51
+ EgressFilter = Shapes::StructureShape.new(name: 'EgressFilter')
52
+ EgressFilterType = Shapes::StringShape.new(name: 'EgressFilterType')
53
+ FileAccessLog = Shapes::StructureShape.new(name: 'FileAccessLog')
54
+ FilePath = Shapes::StringShape.new(name: 'FilePath')
50
55
  ForbiddenException = Shapes::StructureShape.new(name: 'ForbiddenException')
51
56
  HealthCheckIntervalMillis = Shapes::IntegerShape.new(name: 'HealthCheckIntervalMillis')
52
57
  HealthCheckPolicy = Shapes::StructureShape.new(name: 'HealthCheckPolicy')
@@ -64,6 +69,8 @@ module Aws::AppMesh
64
69
  ListRoutesInput = Shapes::StructureShape.new(name: 'ListRoutesInput')
65
70
  ListRoutesLimit = Shapes::IntegerShape.new(name: 'ListRoutesLimit')
66
71
  ListRoutesOutput = Shapes::StructureShape.new(name: 'ListRoutesOutput')
72
+ ListTagsForResourceInput = Shapes::StructureShape.new(name: 'ListTagsForResourceInput')
73
+ ListTagsForResourceOutput = Shapes::StructureShape.new(name: 'ListTagsForResourceOutput')
67
74
  ListVirtualNodesInput = Shapes::StructureShape.new(name: 'ListVirtualNodesInput')
68
75
  ListVirtualNodesLimit = Shapes::IntegerShape.new(name: 'ListVirtualNodesLimit')
69
76
  ListVirtualNodesOutput = Shapes::StructureShape.new(name: 'ListVirtualNodesOutput')
@@ -75,10 +82,12 @@ module Aws::AppMesh
75
82
  ListVirtualServicesOutput = Shapes::StructureShape.new(name: 'ListVirtualServicesOutput')
76
83
  Listener = Shapes::StructureShape.new(name: 'Listener')
77
84
  Listeners = Shapes::ListShape.new(name: 'Listeners')
85
+ Logging = Shapes::StructureShape.new(name: 'Logging')
78
86
  Long = Shapes::IntegerShape.new(name: 'Long')
79
87
  MeshData = Shapes::StructureShape.new(name: 'MeshData')
80
88
  MeshList = Shapes::ListShape.new(name: 'MeshList')
81
89
  MeshRef = Shapes::StructureShape.new(name: 'MeshRef')
90
+ MeshSpec = Shapes::StructureShape.new(name: 'MeshSpec')
82
91
  MeshStatus = Shapes::StructureShape.new(name: 'MeshStatus')
83
92
  MeshStatusCode = Shapes::StringShape.new(name: 'MeshStatusCode')
84
93
  NotFoundException = Shapes::StructureShape.new(name: 'NotFoundException')
@@ -99,8 +108,23 @@ module Aws::AppMesh
99
108
  ServiceName = Shapes::StringShape.new(name: 'ServiceName')
100
109
  ServiceUnavailableException = Shapes::StructureShape.new(name: 'ServiceUnavailableException')
101
110
  String = Shapes::StringShape.new(name: 'String')
111
+ TagKey = Shapes::StringShape.new(name: 'TagKey')
112
+ TagKeyList = Shapes::ListShape.new(name: 'TagKeyList')
113
+ TagList = Shapes::ListShape.new(name: 'TagList')
114
+ TagRef = Shapes::StructureShape.new(name: 'TagRef')
115
+ TagResourceInput = Shapes::StructureShape.new(name: 'TagResourceInput')
116
+ TagResourceOutput = Shapes::StructureShape.new(name: 'TagResourceOutput')
117
+ TagValue = Shapes::StringShape.new(name: 'TagValue')
118
+ TagsLimit = Shapes::IntegerShape.new(name: 'TagsLimit')
119
+ TcpRoute = Shapes::StructureShape.new(name: 'TcpRoute')
120
+ TcpRouteAction = Shapes::StructureShape.new(name: 'TcpRouteAction')
102
121
  Timestamp = Shapes::TimestampShape.new(name: 'Timestamp')
103
122
  TooManyRequestsException = Shapes::StructureShape.new(name: 'TooManyRequestsException')
123
+ TooManyTagsException = Shapes::StructureShape.new(name: 'TooManyTagsException')
124
+ UntagResourceInput = Shapes::StructureShape.new(name: 'UntagResourceInput')
125
+ UntagResourceOutput = Shapes::StructureShape.new(name: 'UntagResourceOutput')
126
+ UpdateMeshInput = Shapes::StructureShape.new(name: 'UpdateMeshInput')
127
+ UpdateMeshOutput = Shapes::StructureShape.new(name: 'UpdateMeshOutput')
104
128
  UpdateRouteInput = Shapes::StructureShape.new(name: 'UpdateRouteInput')
105
129
  UpdateRouteOutput = Shapes::StructureShape.new(name: 'UpdateRouteOutput')
106
130
  UpdateVirtualNodeInput = Shapes::StructureShape.new(name: 'UpdateVirtualNodeInput')
@@ -136,6 +160,9 @@ module Aws::AppMesh
136
160
  WeightedTarget = Shapes::StructureShape.new(name: 'WeightedTarget')
137
161
  WeightedTargets = Shapes::ListShape.new(name: 'WeightedTargets')
138
162
 
163
+ AccessLog.add_member(:file, Shapes::ShapeRef.new(shape: FileAccessLog, location_name: "file"))
164
+ AccessLog.struct_class = Types::AccessLog
165
+
139
166
  Backend.add_member(:virtual_service, Shapes::ShapeRef.new(shape: VirtualServiceBackend, location_name: "virtualService"))
140
167
  Backend.struct_class = Types::Backend
141
168
 
@@ -143,6 +170,8 @@ module Aws::AppMesh
143
170
 
144
171
  CreateMeshInput.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken", metadata: {"idempotencyToken"=>true}))
145
172
  CreateMeshInput.add_member(:mesh_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "meshName"))
173
+ CreateMeshInput.add_member(:spec, Shapes::ShapeRef.new(shape: MeshSpec, location_name: "spec"))
174
+ CreateMeshInput.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
146
175
  CreateMeshInput.struct_class = Types::CreateMeshInput
147
176
 
148
177
  CreateMeshOutput.add_member(:mesh, Shapes::ShapeRef.new(shape: MeshData, required: true, location_name: "mesh"))
@@ -154,6 +183,7 @@ module Aws::AppMesh
154
183
  CreateRouteInput.add_member(:mesh_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location: "uri", location_name: "meshName"))
155
184
  CreateRouteInput.add_member(:route_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "routeName"))
156
185
  CreateRouteInput.add_member(:spec, Shapes::ShapeRef.new(shape: RouteSpec, required: true, location_name: "spec"))
186
+ CreateRouteInput.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
157
187
  CreateRouteInput.add_member(:virtual_router_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location: "uri", location_name: "virtualRouterName"))
158
188
  CreateRouteInput.struct_class = Types::CreateRouteInput
159
189
 
@@ -165,6 +195,7 @@ module Aws::AppMesh
165
195
  CreateVirtualNodeInput.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken", metadata: {"idempotencyToken"=>true}))
166
196
  CreateVirtualNodeInput.add_member(:mesh_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location: "uri", location_name: "meshName"))
167
197
  CreateVirtualNodeInput.add_member(:spec, Shapes::ShapeRef.new(shape: VirtualNodeSpec, required: true, location_name: "spec"))
198
+ CreateVirtualNodeInput.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
168
199
  CreateVirtualNodeInput.add_member(:virtual_node_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "virtualNodeName"))
169
200
  CreateVirtualNodeInput.struct_class = Types::CreateVirtualNodeInput
170
201
 
@@ -176,6 +207,7 @@ module Aws::AppMesh
176
207
  CreateVirtualRouterInput.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken", metadata: {"idempotencyToken"=>true}))
177
208
  CreateVirtualRouterInput.add_member(:mesh_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location: "uri", location_name: "meshName"))
178
209
  CreateVirtualRouterInput.add_member(:spec, Shapes::ShapeRef.new(shape: VirtualRouterSpec, required: true, location_name: "spec"))
210
+ CreateVirtualRouterInput.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
179
211
  CreateVirtualRouterInput.add_member(:virtual_router_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "virtualRouterName"))
180
212
  CreateVirtualRouterInput.struct_class = Types::CreateVirtualRouterInput
181
213
 
@@ -187,6 +219,7 @@ module Aws::AppMesh
187
219
  CreateVirtualServiceInput.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken", metadata: {"idempotencyToken"=>true}))
188
220
  CreateVirtualServiceInput.add_member(:mesh_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location: "uri", location_name: "meshName"))
189
221
  CreateVirtualServiceInput.add_member(:spec, Shapes::ShapeRef.new(shape: VirtualServiceSpec, required: true, location_name: "spec"))
222
+ CreateVirtualServiceInput.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
190
223
  CreateVirtualServiceInput.add_member(:virtual_service_name, Shapes::ShapeRef.new(shape: ServiceName, required: true, location_name: "virtualServiceName"))
191
224
  CreateVirtualServiceInput.struct_class = Types::CreateVirtualServiceInput
192
225
 
@@ -288,6 +321,12 @@ module Aws::AppMesh
288
321
  DnsServiceDiscovery.add_member(:hostname, Shapes::ShapeRef.new(shape: Hostname, required: true, location_name: "hostname"))
289
322
  DnsServiceDiscovery.struct_class = Types::DnsServiceDiscovery
290
323
 
324
+ EgressFilter.add_member(:type, Shapes::ShapeRef.new(shape: EgressFilterType, required: true, location_name: "type"))
325
+ EgressFilter.struct_class = Types::EgressFilter
326
+
327
+ FileAccessLog.add_member(:path, Shapes::ShapeRef.new(shape: FilePath, required: true, location_name: "path"))
328
+ FileAccessLog.struct_class = Types::FileAccessLog
329
+
291
330
  HealthCheckPolicy.add_member(:healthy_threshold, Shapes::ShapeRef.new(shape: HealthCheckThreshold, required: true, location_name: "healthyThreshold"))
292
331
  HealthCheckPolicy.add_member(:interval_millis, Shapes::ShapeRef.new(shape: HealthCheckIntervalMillis, required: true, location_name: "intervalMillis"))
293
332
  HealthCheckPolicy.add_member(:path, Shapes::ShapeRef.new(shape: String, location_name: "path"))
@@ -325,6 +364,15 @@ module Aws::AppMesh
325
364
  ListRoutesOutput.add_member(:routes, Shapes::ShapeRef.new(shape: RouteList, required: true, location_name: "routes"))
326
365
  ListRoutesOutput.struct_class = Types::ListRoutesOutput
327
366
 
367
+ ListTagsForResourceInput.add_member(:limit, Shapes::ShapeRef.new(shape: TagsLimit, location: "querystring", location_name: "limit"))
368
+ ListTagsForResourceInput.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location: "querystring", location_name: "nextToken"))
369
+ ListTagsForResourceInput.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location: "querystring", location_name: "resourceArn"))
370
+ ListTagsForResourceInput.struct_class = Types::ListTagsForResourceInput
371
+
372
+ ListTagsForResourceOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
373
+ ListTagsForResourceOutput.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, required: true, location_name: "tags"))
374
+ ListTagsForResourceOutput.struct_class = Types::ListTagsForResourceOutput
375
+
328
376
  ListVirtualNodesInput.add_member(:limit, Shapes::ShapeRef.new(shape: ListVirtualNodesLimit, location: "querystring", location_name: "limit"))
329
377
  ListVirtualNodesInput.add_member(:mesh_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location: "uri", location_name: "meshName"))
330
378
  ListVirtualNodesInput.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location: "querystring", location_name: "nextToken"))
@@ -358,8 +406,12 @@ module Aws::AppMesh
358
406
 
359
407
  Listeners.member = Shapes::ShapeRef.new(shape: Listener)
360
408
 
409
+ Logging.add_member(:access_log, Shapes::ShapeRef.new(shape: AccessLog, location_name: "accessLog"))
410
+ Logging.struct_class = Types::Logging
411
+
361
412
  MeshData.add_member(:mesh_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "meshName"))
362
413
  MeshData.add_member(:metadata, Shapes::ShapeRef.new(shape: ResourceMetadata, required: true, location_name: "metadata"))
414
+ MeshData.add_member(:spec, Shapes::ShapeRef.new(shape: MeshSpec, required: true, location_name: "spec"))
363
415
  MeshData.add_member(:status, Shapes::ShapeRef.new(shape: MeshStatus, required: true, location_name: "status"))
364
416
  MeshData.struct_class = Types::MeshData
365
417
 
@@ -369,6 +421,9 @@ module Aws::AppMesh
369
421
  MeshRef.add_member(:mesh_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "meshName"))
370
422
  MeshRef.struct_class = Types::MeshRef
371
423
 
424
+ MeshSpec.add_member(:egress_filter, Shapes::ShapeRef.new(shape: EgressFilter, location_name: "egressFilter"))
425
+ MeshSpec.struct_class = Types::MeshSpec
426
+
372
427
  MeshStatus.add_member(:status, Shapes::ShapeRef.new(shape: MeshStatusCode, location_name: "status"))
373
428
  MeshStatus.struct_class = Types::MeshStatus
374
429
 
@@ -400,6 +455,7 @@ module Aws::AppMesh
400
455
  RouteRef.struct_class = Types::RouteRef
401
456
 
402
457
  RouteSpec.add_member(:http_route, Shapes::ShapeRef.new(shape: HttpRoute, location_name: "httpRoute"))
458
+ RouteSpec.add_member(:tcp_route, Shapes::ShapeRef.new(shape: TcpRoute, location_name: "tcpRoute"))
403
459
  RouteSpec.struct_class = Types::RouteSpec
404
460
 
405
461
  RouteStatus.add_member(:status, Shapes::ShapeRef.new(shape: RouteStatusCode, required: true, location_name: "status"))
@@ -408,6 +464,42 @@ module Aws::AppMesh
408
464
  ServiceDiscovery.add_member(:dns, Shapes::ShapeRef.new(shape: DnsServiceDiscovery, location_name: "dns"))
409
465
  ServiceDiscovery.struct_class = Types::ServiceDiscovery
410
466
 
467
+ TagKeyList.member = Shapes::ShapeRef.new(shape: TagKey)
468
+
469
+ TagList.member = Shapes::ShapeRef.new(shape: TagRef)
470
+
471
+ TagRef.add_member(:key, Shapes::ShapeRef.new(shape: TagKey, required: true, location_name: "key"))
472
+ TagRef.add_member(:value, Shapes::ShapeRef.new(shape: TagValue, location_name: "value"))
473
+ TagRef.struct_class = Types::TagRef
474
+
475
+ TagResourceInput.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location: "querystring", location_name: "resourceArn"))
476
+ TagResourceInput.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, required: true, location_name: "tags"))
477
+ TagResourceInput.struct_class = Types::TagResourceInput
478
+
479
+ TagResourceOutput.struct_class = Types::TagResourceOutput
480
+
481
+ TcpRoute.add_member(:action, Shapes::ShapeRef.new(shape: TcpRouteAction, required: true, location_name: "action"))
482
+ TcpRoute.struct_class = Types::TcpRoute
483
+
484
+ TcpRouteAction.add_member(:weighted_targets, Shapes::ShapeRef.new(shape: WeightedTargets, required: true, location_name: "weightedTargets"))
485
+ TcpRouteAction.struct_class = Types::TcpRouteAction
486
+
487
+ UntagResourceInput.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location: "querystring", location_name: "resourceArn"))
488
+ UntagResourceInput.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeyList, required: true, location_name: "tagKeys"))
489
+ UntagResourceInput.struct_class = Types::UntagResourceInput
490
+
491
+ UntagResourceOutput.struct_class = Types::UntagResourceOutput
492
+
493
+ UpdateMeshInput.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken", metadata: {"idempotencyToken"=>true}))
494
+ UpdateMeshInput.add_member(:mesh_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location: "uri", location_name: "meshName"))
495
+ UpdateMeshInput.add_member(:spec, Shapes::ShapeRef.new(shape: MeshSpec, location_name: "spec"))
496
+ UpdateMeshInput.struct_class = Types::UpdateMeshInput
497
+
498
+ UpdateMeshOutput.add_member(:mesh, Shapes::ShapeRef.new(shape: MeshData, required: true, location_name: "mesh"))
499
+ UpdateMeshOutput.struct_class = Types::UpdateMeshOutput
500
+ UpdateMeshOutput[:payload] = :mesh
501
+ UpdateMeshOutput[:payload_member] = UpdateMeshOutput.member(:mesh)
502
+
411
503
  UpdateRouteInput.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken", metadata: {"idempotencyToken"=>true}))
412
504
  UpdateRouteInput.add_member(:mesh_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location: "uri", location_name: "meshName"))
413
505
  UpdateRouteInput.add_member(:route_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location: "uri", location_name: "routeName"))
@@ -472,6 +564,7 @@ module Aws::AppMesh
472
564
 
473
565
  VirtualNodeSpec.add_member(:backends, Shapes::ShapeRef.new(shape: Backends, location_name: "backends"))
474
566
  VirtualNodeSpec.add_member(:listeners, Shapes::ShapeRef.new(shape: Listeners, location_name: "listeners"))
567
+ VirtualNodeSpec.add_member(:logging, Shapes::ShapeRef.new(shape: Logging, location_name: "logging"))
475
568
  VirtualNodeSpec.add_member(:service_discovery, Shapes::ShapeRef.new(shape: ServiceDiscovery, location_name: "serviceDiscovery"))
476
569
  VirtualNodeSpec.struct_class = Types::VirtualNodeSpec
477
570
 
@@ -821,6 +914,24 @@ module Aws::AppMesh
821
914
  )
822
915
  end)
823
916
 
917
+ api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o|
918
+ o.name = "ListTagsForResource"
919
+ o.http_method = "GET"
920
+ o.http_request_uri = "/v20190125/tags"
921
+ o.input = Shapes::ShapeRef.new(shape: ListTagsForResourceInput)
922
+ o.output = Shapes::ShapeRef.new(shape: ListTagsForResourceOutput)
923
+ o.errors << Shapes::ShapeRef.new(shape: BadRequestException)
924
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerErrorException)
925
+ o.errors << Shapes::ShapeRef.new(shape: NotFoundException)
926
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
927
+ o[:pager] = Aws::Pager.new(
928
+ limit_key: "limit",
929
+ tokens: {
930
+ "next_token" => "next_token"
931
+ }
932
+ )
933
+ end)
934
+
824
935
  api.add_operation(:list_virtual_nodes, Seahorse::Model::Operation.new.tap do |o|
825
936
  o.name = "ListVirtualNodes"
826
937
  o.http_method = "GET"
@@ -881,6 +992,46 @@ module Aws::AppMesh
881
992
  )
882
993
  end)
883
994
 
995
+ api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o|
996
+ o.name = "TagResource"
997
+ o.http_method = "PUT"
998
+ o.http_request_uri = "/v20190125/tag"
999
+ o.input = Shapes::ShapeRef.new(shape: TagResourceInput)
1000
+ o.output = Shapes::ShapeRef.new(shape: TagResourceOutput)
1001
+ o.errors << Shapes::ShapeRef.new(shape: BadRequestException)
1002
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerErrorException)
1003
+ o.errors << Shapes::ShapeRef.new(shape: NotFoundException)
1004
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
1005
+ o.errors << Shapes::ShapeRef.new(shape: TooManyTagsException)
1006
+ end)
1007
+
1008
+ api.add_operation(:untag_resource, Seahorse::Model::Operation.new.tap do |o|
1009
+ o.name = "UntagResource"
1010
+ o.http_method = "PUT"
1011
+ o.http_request_uri = "/v20190125/untag"
1012
+ o.input = Shapes::ShapeRef.new(shape: UntagResourceInput)
1013
+ o.output = Shapes::ShapeRef.new(shape: UntagResourceOutput)
1014
+ o.errors << Shapes::ShapeRef.new(shape: BadRequestException)
1015
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerErrorException)
1016
+ o.errors << Shapes::ShapeRef.new(shape: NotFoundException)
1017
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
1018
+ end)
1019
+
1020
+ api.add_operation(:update_mesh, Seahorse::Model::Operation.new.tap do |o|
1021
+ o.name = "UpdateMesh"
1022
+ o.http_method = "PUT"
1023
+ o.http_request_uri = "/v20190125/meshes/{meshName}"
1024
+ o.input = Shapes::ShapeRef.new(shape: UpdateMeshInput)
1025
+ o.output = Shapes::ShapeRef.new(shape: UpdateMeshOutput)
1026
+ o.errors << Shapes::ShapeRef.new(shape: BadRequestException)
1027
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
1028
+ o.errors << Shapes::ShapeRef.new(shape: ForbiddenException)
1029
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerErrorException)
1030
+ o.errors << Shapes::ShapeRef.new(shape: NotFoundException)
1031
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
1032
+ o.errors << Shapes::ShapeRef.new(shape: TooManyRequestsException)
1033
+ end)
1034
+
884
1035
  api.add_operation(:update_route, Seahorse::Model::Operation.new.tap do |o|
885
1036
  o.name = "UpdateRoute"
886
1037
  o.http_method = "PUT"
@@ -63,6 +63,13 @@ module Aws::AppMesh
63
63
  # },
64
64
  # },
65
65
  # ],
66
+ # logging: {
67
+ # access_log: {
68
+ # file: {
69
+ # path: "FilePath", # required
70
+ # },
71
+ # },
72
+ # },
66
73
  # service_discovery: {
67
74
  # dns: {
68
75
  # hostname: "Hostname", # required
@@ -138,6 +145,12 @@ module Aws::AppMesh
138
145
  # },
139
146
  # },
140
147
  # },
148
+ # tags: [
149
+ # {
150
+ # key: "TagKey", # required
151
+ # value: "TagValue",
152
+ # },
153
+ # ],
141
154
  # virtual_service_name: "ServiceName", # required
142
155
  # }
143
156
  #
@@ -151,13 +164,21 @@ module Aws::AppMesh
151
164
  # @return [String]
152
165
  #
153
166
  # @!attribute [rw] mesh_name
154
- # The name of the service mesh in which to create the virtual service.
167
+ # The name of the service mesh to create the virtual service in.
155
168
  # @return [String]
156
169
  #
157
170
  # @!attribute [rw] spec
158
171
  # The virtual service specification to apply.
159
172
  # @return [Types::VirtualServiceSpec]
160
173
  #
174
+ # @!attribute [rw] tags
175
+ # Optional metadata that you can apply to the virtual service to
176
+ # assist with categorization and organization. Each tag consists of a
177
+ # key and an optional value, both of which you define. Tag keys can
178
+ # have a maximum character length of 128 characters, and tag values
179
+ # can have a maximum length of 256 characters.
180
+ # @return [Array<Types::TagRef>]
181
+ #
161
182
  # @!attribute [rw] virtual_service_name
162
183
  # The name to use for the virtual service.
163
184
  # @return [String]
@@ -168,6 +189,7 @@ module Aws::AppMesh
168
189
  :client_token,
169
190
  :mesh_name,
170
191
  :spec,
192
+ :tags,
171
193
  :virtual_service_name)
172
194
  include Aws::Structure
173
195
  end
@@ -223,6 +245,48 @@ module Aws::AppMesh
223
245
  include Aws::Structure
224
246
  end
225
247
 
248
+ # @note When making an API call, you may pass ListTagsForResourceInput
249
+ # data as a hash:
250
+ #
251
+ # {
252
+ # limit: 1,
253
+ # next_token: "String",
254
+ # resource_arn: "Arn", # required
255
+ # }
256
+ #
257
+ # @!attribute [rw] limit
258
+ # The maximum number of tag results returned by `ListTagsForResource`
259
+ # in paginated output. When this parameter is used,
260
+ # `ListTagsForResource` returns only `limit` results in a single page
261
+ # along with a `nextToken` response element. You can see the remaining
262
+ # results of the initial request by sending another
263
+ # `ListTagsForResource` request with the returned `nextToken` value.
264
+ # This value can be between 1 and 100. If you don't use this
265
+ # parameter, `ListTagsForResource` returns up to 100 results and a
266
+ # `nextToken` value if applicable.
267
+ # @return [Integer]
268
+ #
269
+ # @!attribute [rw] next_token
270
+ # The `nextToken` value returned from a previous paginated
271
+ # `ListTagsForResource` request where `limit` was used and the results
272
+ # exceeded the value of that parameter. Pagination continues from the
273
+ # end of the previous results that returned the `nextToken` value.
274
+ # @return [String]
275
+ #
276
+ # @!attribute [rw] resource_arn
277
+ # The Amazon Resource Name (ARN) that identifies the resource to list
278
+ # the tags for.
279
+ # @return [String]
280
+ #
281
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListTagsForResourceInput AWS API Documentation
282
+ #
283
+ class ListTagsForResourceInput < Struct.new(
284
+ :limit,
285
+ :next_token,
286
+ :resource_arn)
287
+ include Aws::Structure
288
+ end
289
+
226
290
  # @!attribute [rw] virtual_node
227
291
  # The full description of your virtual node following the create call.
228
292
  # @return [Types::VirtualNodeData]
@@ -234,6 +298,30 @@ module Aws::AppMesh
234
298
  include Aws::Structure
235
299
  end
236
300
 
301
+ # An object representing the logging information for a virtual node.
302
+ #
303
+ # @note When making an API call, you may pass Logging
304
+ # data as a hash:
305
+ #
306
+ # {
307
+ # access_log: {
308
+ # file: {
309
+ # path: "FilePath", # required
310
+ # },
311
+ # },
312
+ # }
313
+ #
314
+ # @!attribute [rw] access_log
315
+ # The access log configuration for a virtual node.
316
+ # @return [Types::AccessLog]
317
+ #
318
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/Logging AWS API Documentation
319
+ #
320
+ class Logging < Struct.new(
321
+ :access_log)
322
+ include Aws::Structure
323
+ end
324
+
237
325
  # @!attribute [rw] virtual_router
238
326
  # A full description of the virtual router that was updated.
239
327
  # @return [Types::VirtualRouterData]
@@ -345,21 +433,6 @@ module Aws::AppMesh
345
433
  #
346
434
  # @!attribute [rw] arn
347
435
  # The full Amazon Resource Name (ARN) for the resource.
348
- #
349
- # <note markdown="1"> After you create a virtual node, set this value (either the full ARN
350
- # or the truncated resource name, for example,
351
- # `mesh/default/virtualNode/simpleapp`, as the
352
- # `APPMESH_VIRTUAL_NODE_NAME` environment variable for your task
353
- # group's Envoy proxy container in your task definition or pod spec.
354
- # This is then mapped to the `node.id` and `node.cluster` Envoy
355
- # parameters.
356
- #
357
- # If you require your Envoy stats or tracing to use a different name,
358
- # you can override the `node.cluster` value that is set by
359
- # `APPMESH_VIRTUAL_NODE_NAME` with the `APPMESH_VIRTUAL_NODE_CLUSTER`
360
- # environment variable.
361
- #
362
- # </note>
363
436
  # @return [String]
364
437
  #
365
438
  # @!attribute [rw] created_at
@@ -556,7 +629,7 @@ module Aws::AppMesh
556
629
  # @return [Integer]
557
630
  #
558
631
  # @!attribute [rw] mesh_name
559
- # The name of the service mesh in which to list routes.
632
+ # The name of the service mesh to list routes in.
560
633
  # @return [String]
561
634
  #
562
635
  # @!attribute [rw] next_token
@@ -666,6 +739,30 @@ module Aws::AppMesh
666
739
  include Aws::Structure
667
740
  end
668
741
 
742
+ # An object representing the egress filter rules for a service mesh.
743
+ #
744
+ # @note When making an API call, you may pass EgressFilter
745
+ # data as a hash:
746
+ #
747
+ # {
748
+ # type: "ALLOW_ALL", # required, accepts ALLOW_ALL, DROP_ALL
749
+ # }
750
+ #
751
+ # @!attribute [rw] type
752
+ # The egress filter type. By default, the type is `DROP_ALL`, which
753
+ # allows egress only from virtual nodes to other defined resources in
754
+ # the service mesh (and any traffic to `*.amazonaws.com` for AWS API
755
+ # calls). You can set the egress filter type to `ALLOW_ALL` to allow
756
+ # egress to any endpoint inside or outside of the service mesh.
757
+ # @return [String]
758
+ #
759
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/EgressFilter AWS API Documentation
760
+ #
761
+ class EgressFilter < Struct.new(
762
+ :type)
763
+ include Aws::Structure
764
+ end
765
+
669
766
  # An object representing the current status of the virtual node.
670
767
  #
671
768
  # @!attribute [rw] status
@@ -776,6 +873,17 @@ module Aws::AppMesh
776
873
  # {
777
874
  # client_token: "String",
778
875
  # mesh_name: "ResourceName", # required
876
+ # spec: {
877
+ # egress_filter: {
878
+ # type: "ALLOW_ALL", # required, accepts ALLOW_ALL, DROP_ALL
879
+ # },
880
+ # },
881
+ # tags: [
882
+ # {
883
+ # key: "TagKey", # required
884
+ # value: "TagValue",
885
+ # },
886
+ # ],
779
887
  # }
780
888
  #
781
889
  # @!attribute [rw] client_token
@@ -791,11 +899,25 @@ module Aws::AppMesh
791
899
  # The name to use for the service mesh.
792
900
  # @return [String]
793
901
  #
902
+ # @!attribute [rw] spec
903
+ # The service mesh specification to apply.
904
+ # @return [Types::MeshSpec]
905
+ #
906
+ # @!attribute [rw] tags
907
+ # Optional metadata that you can apply to the service mesh to assist
908
+ # with categorization and organization. Each tag consists of a key and
909
+ # an optional value, both of which you define. Tag keys can have a
910
+ # maximum character length of 128 characters, and tag values can have
911
+ # a maximum length of 256 characters.
912
+ # @return [Array<Types::TagRef>]
913
+ #
794
914
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/CreateMeshInput AWS API Documentation
795
915
  #
796
916
  class CreateMeshInput < Struct.new(
797
917
  :client_token,
798
- :mesh_name)
918
+ :mesh_name,
919
+ :spec,
920
+ :tags)
799
921
  include Aws::Structure
800
922
  end
801
923
 
@@ -810,6 +932,18 @@ module Aws::AppMesh
810
932
  include Aws::Structure
811
933
  end
812
934
 
935
+ # @!attribute [rw] mesh
936
+ # An object representing a service mesh returned by a describe
937
+ # operation.
938
+ # @return [Types::MeshData]
939
+ #
940
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UpdateMeshOutput AWS API Documentation
941
+ #
942
+ class UpdateMeshOutput < Struct.new(
943
+ :mesh)
944
+ include Aws::Structure
945
+ end
946
+
813
947
  # @!attribute [rw] route
814
948
  # The full description of your mesh following the create call.
815
949
  # @return [Types::RouteData]
@@ -930,6 +1064,10 @@ module Aws::AppMesh
930
1064
  include Aws::Structure
931
1065
  end
932
1066
 
1067
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UntagResourceOutput AWS API Documentation
1068
+ #
1069
+ class UntagResourceOutput < Aws::EmptyStructure; end
1070
+
933
1071
  # An object representing the specification of a virtual service.
934
1072
  #
935
1073
  # @note When making an API call, you may pass VirtualServiceSpec
@@ -1006,8 +1144,8 @@ module Aws::AppMesh
1006
1144
  # the value of that parameter. Pagination continues from the end of
1007
1145
  # the previous results that returned the `nextToken` value.
1008
1146
  #
1009
- # <note markdown="1"> This token should be treated as an opaque identifier that is only
1010
- # used to retrieve the next items in a list and not for other
1147
+ # <note markdown="1"> This token should be treated as an opaque identifier that is used
1148
+ # only to retrieve the next items in a list and not for other
1011
1149
  # programmatic purposes.
1012
1150
  #
1013
1151
  # </note>
@@ -1021,6 +1159,33 @@ module Aws::AppMesh
1021
1159
  include Aws::Structure
1022
1160
  end
1023
1161
 
1162
+ # An object representing the TCP routing specification for a route.
1163
+ #
1164
+ # @note When making an API call, you may pass TcpRoute
1165
+ # data as a hash:
1166
+ #
1167
+ # {
1168
+ # action: { # required
1169
+ # weighted_targets: [ # required
1170
+ # {
1171
+ # virtual_node: "ResourceName", # required
1172
+ # weight: 1, # required
1173
+ # },
1174
+ # ],
1175
+ # },
1176
+ # }
1177
+ #
1178
+ # @!attribute [rw] action
1179
+ # The action to take if a match is determined.
1180
+ # @return [Types::TcpRouteAction]
1181
+ #
1182
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/TcpRoute AWS API Documentation
1183
+ #
1184
+ class TcpRoute < Struct.new(
1185
+ :action)
1186
+ include Aws::Structure
1187
+ end
1188
+
1024
1189
  # @note When making an API call, you may pass ListVirtualRoutersInput
1025
1190
  # data as a hash:
1026
1191
  #
@@ -1095,6 +1260,45 @@ module Aws::AppMesh
1095
1260
  include Aws::Structure
1096
1261
  end
1097
1262
 
1263
+ # @note When making an API call, you may pass UpdateMeshInput
1264
+ # data as a hash:
1265
+ #
1266
+ # {
1267
+ # client_token: "String",
1268
+ # mesh_name: "ResourceName", # required
1269
+ # spec: {
1270
+ # egress_filter: {
1271
+ # type: "ALLOW_ALL", # required, accepts ALLOW_ALL, DROP_ALL
1272
+ # },
1273
+ # },
1274
+ # }
1275
+ #
1276
+ # @!attribute [rw] client_token
1277
+ # Unique, case-sensitive identifier that you provide to ensure the
1278
+ # idempotency of the request. Up to 36 letters, numbers, hyphens, and
1279
+ # underscores are allowed.
1280
+ #
1281
+ # **A suitable default value is auto-generated.** You should normally
1282
+ # not need to pass this option.
1283
+ # @return [String]
1284
+ #
1285
+ # @!attribute [rw] mesh_name
1286
+ # The name of the service mesh to update.
1287
+ # @return [String]
1288
+ #
1289
+ # @!attribute [rw] spec
1290
+ # The service mesh specification to apply.
1291
+ # @return [Types::MeshSpec]
1292
+ #
1293
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UpdateMeshInput AWS API Documentation
1294
+ #
1295
+ class UpdateMeshInput < Struct.new(
1296
+ :client_token,
1297
+ :mesh_name,
1298
+ :spec)
1299
+ include Aws::Structure
1300
+ end
1301
+
1098
1302
  # @note When making an API call, you may pass ListVirtualServicesInput
1099
1303
  # data as a hash:
1100
1304
  #
@@ -1151,6 +1355,12 @@ module Aws::AppMesh
1151
1355
  # },
1152
1356
  # ],
1153
1357
  # },
1358
+ # tags: [
1359
+ # {
1360
+ # key: "TagKey", # required
1361
+ # value: "TagValue",
1362
+ # },
1363
+ # ],
1154
1364
  # virtual_router_name: "ResourceName", # required
1155
1365
  # }
1156
1366
  #
@@ -1171,6 +1381,14 @@ module Aws::AppMesh
1171
1381
  # The virtual router specification to apply.
1172
1382
  # @return [Types::VirtualRouterSpec]
1173
1383
  #
1384
+ # @!attribute [rw] tags
1385
+ # Optional metadata that you can apply to the virtual router to assist
1386
+ # with categorization and organization. Each tag consists of a key and
1387
+ # an optional value, both of which you define. Tag keys can have a
1388
+ # maximum character length of 128 characters, and tag values can have
1389
+ # a maximum length of 256 characters.
1390
+ # @return [Array<Types::TagRef>]
1391
+ #
1174
1392
  # @!attribute [rw] virtual_router_name
1175
1393
  # The name to use for the virtual router.
1176
1394
  # @return [String]
@@ -1181,10 +1399,34 @@ module Aws::AppMesh
1181
1399
  :client_token,
1182
1400
  :mesh_name,
1183
1401
  :spec,
1402
+ :tags,
1184
1403
  :virtual_router_name)
1185
1404
  include Aws::Structure
1186
1405
  end
1187
1406
 
1407
+ # An object representing the access logging information for a virtual
1408
+ # node.
1409
+ #
1410
+ # @note When making an API call, you may pass AccessLog
1411
+ # data as a hash:
1412
+ #
1413
+ # {
1414
+ # file: {
1415
+ # path: "FilePath", # required
1416
+ # },
1417
+ # }
1418
+ #
1419
+ # @!attribute [rw] file
1420
+ # The file object to send virtual node access logs to.
1421
+ # @return [Types::FileAccessLog]
1422
+ #
1423
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/AccessLog AWS API Documentation
1424
+ #
1425
+ class AccessLog < Struct.new(
1426
+ :file)
1427
+ include Aws::Structure
1428
+ end
1429
+
1188
1430
  # @note When making an API call, you may pass ListVirtualNodesInput
1189
1431
  # data as a hash:
1190
1432
  #
@@ -1331,6 +1573,13 @@ module Aws::AppMesh
1331
1573
  # },
1332
1574
  # },
1333
1575
  # ],
1576
+ # logging: {
1577
+ # access_log: {
1578
+ # file: {
1579
+ # path: "FilePath", # required
1580
+ # },
1581
+ # },
1582
+ # },
1334
1583
  # service_discovery: {
1335
1584
  # dns: {
1336
1585
  # hostname: "Hostname", # required
@@ -1349,8 +1598,15 @@ module Aws::AppMesh
1349
1598
  # node.
1350
1599
  # @return [Array<Types::Listener>]
1351
1600
  #
1601
+ # @!attribute [rw] logging
1602
+ # The inbound and outbound access logging information for the virtual
1603
+ # node.
1604
+ # @return [Types::Logging]
1605
+ #
1352
1606
  # @!attribute [rw] service_discovery
1353
- # The service discovery information for the virtual node.
1607
+ # The service discovery information for the virtual node. If your
1608
+ # virtual node does not expect ingress traffic, you can omit this
1609
+ # parameter.
1354
1610
  # @return [Types::ServiceDiscovery]
1355
1611
  #
1356
1612
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/VirtualNodeSpec AWS API Documentation
@@ -1358,6 +1614,7 @@ module Aws::AppMesh
1358
1614
  class VirtualNodeSpec < Struct.new(
1359
1615
  :backends,
1360
1616
  :listeners,
1617
+ :logging,
1361
1618
  :service_discovery)
1362
1619
  include Aws::Structure
1363
1620
  end
@@ -1405,10 +1662,10 @@ module Aws::AppMesh
1405
1662
  # @!attribute [rw] prefix
1406
1663
  # Specifies the path to match requests with. This parameter must
1407
1664
  # always start with `/`, which by itself matches all requests to the
1408
- # virtual router service name. You can also match for path-based
1409
- # routing of requests. For example, if your virtual router service
1410
- # name is `my-service.local` and you want the route to match requests
1411
- # to `my-service.local/metrics`, your prefix should be `/metrics`.
1665
+ # virtual service name. You can also match for path-based routing of
1666
+ # requests. For example, if your virtual service name is
1667
+ # `my-service.local` and you want the route to match requests to
1668
+ # `my-service.local/metrics`, your prefix should be `/metrics`.
1412
1669
  # @return [String]
1413
1670
  #
1414
1671
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/HttpRouteMatch AWS API Documentation
@@ -1418,6 +1675,39 @@ module Aws::AppMesh
1418
1675
  include Aws::Structure
1419
1676
  end
1420
1677
 
1678
+ # Optional metadata that you apply to a resource to assist with
1679
+ # categorization and organization. Each tag consists of a key and an
1680
+ # optional value, both of which you define. Tag keys can have a maximum
1681
+ # character length of 128 characters, and tag values can have a maximum
1682
+ # length of 256 characters.
1683
+ #
1684
+ # @note When making an API call, you may pass TagRef
1685
+ # data as a hash:
1686
+ #
1687
+ # {
1688
+ # key: "TagKey", # required
1689
+ # value: "TagValue",
1690
+ # }
1691
+ #
1692
+ # @!attribute [rw] key
1693
+ # One part of a key-value pair that make up a tag. A `key` is a
1694
+ # general label that acts like a category for more specific tag
1695
+ # values.
1696
+ # @return [String]
1697
+ #
1698
+ # @!attribute [rw] value
1699
+ # The optional part of a key-value pair that make up a tag. A `value`
1700
+ # acts as a descriptor within a tag category (key).
1701
+ # @return [String]
1702
+ #
1703
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/TagRef AWS API Documentation
1704
+ #
1705
+ class TagRef < Struct.new(
1706
+ :key,
1707
+ :value)
1708
+ include Aws::Structure
1709
+ end
1710
+
1421
1711
  # An object representing a service mesh returned by a list operation.
1422
1712
  #
1423
1713
  # @!attribute [rw] arn
@@ -1474,6 +1764,10 @@ module Aws::AppMesh
1474
1764
  # The associated metadata for the service mesh.
1475
1765
  # @return [Types::ResourceMetadata]
1476
1766
  #
1767
+ # @!attribute [rw] spec
1768
+ # The associated specification for the service mesh.
1769
+ # @return [Types::MeshSpec]
1770
+ #
1477
1771
  # @!attribute [rw] status
1478
1772
  # The status of the service mesh.
1479
1773
  # @return [Types::MeshStatus]
@@ -1483,6 +1777,7 @@ module Aws::AppMesh
1483
1777
  class MeshData < Struct.new(
1484
1778
  :mesh_name,
1485
1779
  :metadata,
1780
+ :spec,
1486
1781
  :status)
1487
1782
  include Aws::Structure
1488
1783
  end
@@ -1550,6 +1845,34 @@ module Aws::AppMesh
1550
1845
  include Aws::Structure
1551
1846
  end
1552
1847
 
1848
+ # An object representing the traffic distribution requirements for
1849
+ # matched TCP requests.
1850
+ #
1851
+ # @note When making an API call, you may pass TcpRouteAction
1852
+ # data as a hash:
1853
+ #
1854
+ # {
1855
+ # weighted_targets: [ # required
1856
+ # {
1857
+ # virtual_node: "ResourceName", # required
1858
+ # weight: 1, # required
1859
+ # },
1860
+ # ],
1861
+ # }
1862
+ #
1863
+ # @!attribute [rw] weighted_targets
1864
+ # The targets that traffic is routed to when a request matches the
1865
+ # route. You can specify one or more targets and their relative
1866
+ # weights to distribute traffic with.
1867
+ # @return [Array<Types::WeightedTarget>]
1868
+ #
1869
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/TcpRouteAction AWS API Documentation
1870
+ #
1871
+ class TcpRouteAction < Struct.new(
1872
+ :weighted_targets)
1873
+ include Aws::Structure
1874
+ end
1875
+
1553
1876
  # @note When making an API call, you may pass DescribeVirtualNodeInput
1554
1877
  # data as a hash:
1555
1878
  #
@@ -1769,6 +2092,10 @@ module Aws::AppMesh
1769
2092
  include Aws::Structure
1770
2093
  end
1771
2094
 
2095
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/TagResourceOutput AWS API Documentation
2096
+ #
2097
+ class TagResourceOutput < Aws::EmptyStructure; end
2098
+
1772
2099
  # @!attribute [rw] mesh
1773
2100
  # The service mesh that was deleted.
1774
2101
  # @return [Types::MeshData]
@@ -1780,6 +2107,38 @@ module Aws::AppMesh
1780
2107
  include Aws::Structure
1781
2108
  end
1782
2109
 
2110
+ # @note When making an API call, you may pass TagResourceInput
2111
+ # data as a hash:
2112
+ #
2113
+ # {
2114
+ # resource_arn: "Arn", # required
2115
+ # tags: [ # required
2116
+ # {
2117
+ # key: "TagKey", # required
2118
+ # value: "TagValue",
2119
+ # },
2120
+ # ],
2121
+ # }
2122
+ #
2123
+ # @!attribute [rw] resource_arn
2124
+ # The Amazon Resource Name (ARN) of the resource to add tags to.
2125
+ # @return [String]
2126
+ #
2127
+ # @!attribute [rw] tags
2128
+ # The tags to add to the resource. A tag is an array of key-value
2129
+ # pairs. Tag keys can have a maximum character length of 128
2130
+ # characters, and tag values can have a maximum length of 256
2131
+ # characters.
2132
+ # @return [Array<Types::TagRef>]
2133
+ #
2134
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/TagResourceInput AWS API Documentation
2135
+ #
2136
+ class TagResourceInput < Struct.new(
2137
+ :resource_arn,
2138
+ :tags)
2139
+ include Aws::Structure
2140
+ end
2141
+
1783
2142
  # @note When making an API call, you may pass CreateRouteInput
1784
2143
  # data as a hash:
1785
2144
  #
@@ -1801,7 +2160,23 @@ module Aws::AppMesh
1801
2160
  # prefix: "String", # required
1802
2161
  # },
1803
2162
  # },
2163
+ # tcp_route: {
2164
+ # action: { # required
2165
+ # weighted_targets: [ # required
2166
+ # {
2167
+ # virtual_node: "ResourceName", # required
2168
+ # weight: 1, # required
2169
+ # },
2170
+ # ],
2171
+ # },
2172
+ # },
1804
2173
  # },
2174
+ # tags: [
2175
+ # {
2176
+ # key: "TagKey", # required
2177
+ # value: "TagValue",
2178
+ # },
2179
+ # ],
1805
2180
  # virtual_router_name: "ResourceName", # required
1806
2181
  # }
1807
2182
  #
@@ -1815,7 +2190,7 @@ module Aws::AppMesh
1815
2190
  # @return [String]
1816
2191
  #
1817
2192
  # @!attribute [rw] mesh_name
1818
- # The name of the service mesh in which to create the route.
2193
+ # The name of the service mesh to create the route in.
1819
2194
  # @return [String]
1820
2195
  #
1821
2196
  # @!attribute [rw] route_name
@@ -1826,6 +2201,14 @@ module Aws::AppMesh
1826
2201
  # The route specification to apply.
1827
2202
  # @return [Types::RouteSpec]
1828
2203
  #
2204
+ # @!attribute [rw] tags
2205
+ # Optional metadata that you can apply to the route to assist with
2206
+ # categorization and organization. Each tag consists of a key and an
2207
+ # optional value, both of which you define. Tag keys can have a
2208
+ # maximum character length of 128 characters, and tag values can have
2209
+ # a maximum length of 256 characters.
2210
+ # @return [Array<Types::TagRef>]
2211
+ #
1829
2212
  # @!attribute [rw] virtual_router_name
1830
2213
  # The name of the virtual router in which to create the route.
1831
2214
  # @return [String]
@@ -1837,6 +2220,7 @@ module Aws::AppMesh
1837
2220
  :mesh_name,
1838
2221
  :route_name,
1839
2222
  :spec,
2223
+ :tags,
1840
2224
  :virtual_router_name)
1841
2225
  include Aws::Structure
1842
2226
  end
@@ -1903,6 +2287,16 @@ module Aws::AppMesh
1903
2287
  # prefix: "String", # required
1904
2288
  # },
1905
2289
  # },
2290
+ # tcp_route: {
2291
+ # action: { # required
2292
+ # weighted_targets: [ # required
2293
+ # {
2294
+ # virtual_node: "ResourceName", # required
2295
+ # weight: 1, # required
2296
+ # },
2297
+ # ],
2298
+ # },
2299
+ # },
1906
2300
  # },
1907
2301
  # virtual_router_name: "ResourceName", # required
1908
2302
  # }
@@ -1988,12 +2382,25 @@ module Aws::AppMesh
1988
2382
  # },
1989
2383
  # },
1990
2384
  # ],
2385
+ # logging: {
2386
+ # access_log: {
2387
+ # file: {
2388
+ # path: "FilePath", # required
2389
+ # },
2390
+ # },
2391
+ # },
1991
2392
  # service_discovery: {
1992
2393
  # dns: {
1993
2394
  # hostname: "Hostname", # required
1994
2395
  # },
1995
2396
  # },
1996
2397
  # },
2398
+ # tags: [
2399
+ # {
2400
+ # key: "TagKey", # required
2401
+ # value: "TagValue",
2402
+ # },
2403
+ # ],
1997
2404
  # virtual_node_name: "ResourceName", # required
1998
2405
  # }
1999
2406
  #
@@ -2007,13 +2414,21 @@ module Aws::AppMesh
2007
2414
  # @return [String]
2008
2415
  #
2009
2416
  # @!attribute [rw] mesh_name
2010
- # The name of the service mesh in which to create the virtual node.
2417
+ # The name of the service mesh to create the virtual node in.
2011
2418
  # @return [String]
2012
2419
  #
2013
2420
  # @!attribute [rw] spec
2014
2421
  # The virtual node specification to apply.
2015
2422
  # @return [Types::VirtualNodeSpec]
2016
2423
  #
2424
+ # @!attribute [rw] tags
2425
+ # Optional metadata that you can apply to the virtual node to assist
2426
+ # with categorization and organization. Each tag consists of a key and
2427
+ # an optional value, both of which you define. Tag keys can have a
2428
+ # maximum character length of 128 characters, and tag values can have
2429
+ # a maximum length of 256 characters.
2430
+ # @return [Array<Types::TagRef>]
2431
+ #
2017
2432
  # @!attribute [rw] virtual_node_name
2018
2433
  # The name to use for the virtual node.
2019
2434
  # @return [String]
@@ -2024,6 +2439,7 @@ module Aws::AppMesh
2024
2439
  :client_token,
2025
2440
  :mesh_name,
2026
2441
  :spec,
2442
+ :tags,
2027
2443
  :virtual_node_name)
2028
2444
  include Aws::Structure
2029
2445
  end
@@ -2047,16 +2463,31 @@ module Aws::AppMesh
2047
2463
  # prefix: "String", # required
2048
2464
  # },
2049
2465
  # },
2466
+ # tcp_route: {
2467
+ # action: { # required
2468
+ # weighted_targets: [ # required
2469
+ # {
2470
+ # virtual_node: "ResourceName", # required
2471
+ # weight: 1, # required
2472
+ # },
2473
+ # ],
2474
+ # },
2475
+ # },
2050
2476
  # }
2051
2477
  #
2052
2478
  # @!attribute [rw] http_route
2053
2479
  # The HTTP routing information for the route.
2054
2480
  # @return [Types::HttpRoute]
2055
2481
  #
2482
+ # @!attribute [rw] tcp_route
2483
+ # The TCP routing information for the route.
2484
+ # @return [Types::TcpRoute]
2485
+ #
2056
2486
  # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/RouteSpec AWS API Documentation
2057
2487
  #
2058
2488
  class RouteSpec < Struct.new(
2059
- :http_route)
2489
+ :http_route,
2490
+ :tcp_route)
2060
2491
  include Aws::Structure
2061
2492
  end
2062
2493
 
@@ -2113,6 +2544,28 @@ module Aws::AppMesh
2113
2544
  include Aws::Structure
2114
2545
  end
2115
2546
 
2547
+ # An object representing the specification of a service mesh.
2548
+ #
2549
+ # @note When making an API call, you may pass MeshSpec
2550
+ # data as a hash:
2551
+ #
2552
+ # {
2553
+ # egress_filter: {
2554
+ # type: "ALLOW_ALL", # required, accepts ALLOW_ALL, DROP_ALL
2555
+ # },
2556
+ # }
2557
+ #
2558
+ # @!attribute [rw] egress_filter
2559
+ # The egress filter rules for the service mesh.
2560
+ # @return [Types::EgressFilter]
2561
+ #
2562
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/MeshSpec AWS API Documentation
2563
+ #
2564
+ class MeshSpec < Struct.new(
2565
+ :egress_filter)
2566
+ include Aws::Structure
2567
+ end
2568
+
2116
2569
  # @!attribute [rw] virtual_service
2117
2570
  # The full description of your virtual service following the create
2118
2571
  # call.
@@ -2125,6 +2578,36 @@ module Aws::AppMesh
2125
2578
  include Aws::Structure
2126
2579
  end
2127
2580
 
2581
+ # An object representing an access log file.
2582
+ #
2583
+ # @note When making an API call, you may pass FileAccessLog
2584
+ # data as a hash:
2585
+ #
2586
+ # {
2587
+ # path: "FilePath", # required
2588
+ # }
2589
+ #
2590
+ # @!attribute [rw] path
2591
+ # The file path to write access logs to. You can use `/dev/stdout` to
2592
+ # send access logs to standard out and configure your Envoy container
2593
+ # to use a log driver, such as `awslogs`, to export the access logs to
2594
+ # a log storage service such as Amazon CloudWatch Logs. You can also
2595
+ # specify a path in the Envoy container's file system to write the
2596
+ # files to disk.
2597
+ #
2598
+ # <note markdown="1"> The Envoy process must have write permissions to the path that you
2599
+ # specify here. Otherwise, Envoy fails to bootstrap properly.
2600
+ #
2601
+ # </note>
2602
+ # @return [String]
2603
+ #
2604
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/FileAccessLog AWS API Documentation
2605
+ #
2606
+ class FileAccessLog < Struct.new(
2607
+ :path)
2608
+ include Aws::Structure
2609
+ end
2610
+
2128
2611
  # An object representing a virtual node service provider.
2129
2612
  #
2130
2613
  # @note When making an API call, you may pass VirtualRouterServiceProvider
@@ -2169,6 +2652,26 @@ module Aws::AppMesh
2169
2652
  include Aws::Structure
2170
2653
  end
2171
2654
 
2655
+ # @!attribute [rw] next_token
2656
+ # The `nextToken` value to include in a future `ListTagsForResource`
2657
+ # request. When the results of a `ListTagsForResource` request exceed
2658
+ # `limit`, you can use this value to retrieve the next page of
2659
+ # results. This value is `null` when there are no more results to
2660
+ # return.
2661
+ # @return [String]
2662
+ #
2663
+ # @!attribute [rw] tags
2664
+ # The tags for the resource.
2665
+ # @return [Array<Types::TagRef>]
2666
+ #
2667
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ListTagsForResourceOutput AWS API Documentation
2668
+ #
2669
+ class ListTagsForResourceOutput < Struct.new(
2670
+ :next_token,
2671
+ :tags)
2672
+ include Aws::Structure
2673
+ end
2674
+
2172
2675
  # An object representing the service discovery information for a virtual
2173
2676
  # node.
2174
2677
  #
@@ -2212,6 +2715,30 @@ module Aws::AppMesh
2212
2715
  include Aws::Structure
2213
2716
  end
2214
2717
 
2718
+ # @note When making an API call, you may pass UntagResourceInput
2719
+ # data as a hash:
2720
+ #
2721
+ # {
2722
+ # resource_arn: "Arn", # required
2723
+ # tag_keys: ["TagKey"], # required
2724
+ # }
2725
+ #
2726
+ # @!attribute [rw] resource_arn
2727
+ # The Amazon Resource Name (ARN) of the resource to delete tags from.
2728
+ # @return [String]
2729
+ #
2730
+ # @!attribute [rw] tag_keys
2731
+ # The keys of the tags to be removed.
2732
+ # @return [Array<String>]
2733
+ #
2734
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/UntagResourceInput AWS API Documentation
2735
+ #
2736
+ class UntagResourceInput < Struct.new(
2737
+ :resource_arn,
2738
+ :tag_keys)
2739
+ include Aws::Structure
2740
+ end
2741
+
2215
2742
  # @!attribute [rw] virtual_router
2216
2743
  # The virtual router that was deleted.
2217
2744
  # @return [Types::VirtualRouterData]