aws-sdk-appmesh 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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]