UNPKG

83.8 kBTypeScriptView Raw
1import {Request} from '../lib/request';
2import {Response} from '../lib/response';
3import {AWSError} from '../lib/error';
4import {Service} from '../lib/service';
5import {ServiceConfigurationOptions} from '../lib/service';
6import {ConfigBase as Config} from '../lib/config';
7interface Blob {}
8declare class AppMesh extends Service {
9 /**
10 * Constructs a service object. This object has one method for each API operation.
11 */
12 constructor(options?: AppMesh.Types.ClientConfiguration)
13 config: Config & AppMesh.Types.ClientConfiguration;
14 /**
15 * Creates a service mesh. A service mesh is a logical boundary for network traffic between
16 the services that reside within it.
17 After you create your service mesh, you can create virtual services, virtual nodes,
18 virtual routers, and routes to distribute traffic between the applications in your
19 mesh.
20 */
21 createMesh(params: AppMesh.Types.CreateMeshInput, callback?: (err: AWSError, data: AppMesh.Types.CreateMeshOutput) => void): Request<AppMesh.Types.CreateMeshOutput, AWSError>;
22 /**
23 * Creates a service mesh. A service mesh is a logical boundary for network traffic between
24 the services that reside within it.
25 After you create your service mesh, you can create virtual services, virtual nodes,
26 virtual routers, and routes to distribute traffic between the applications in your
27 mesh.
28 */
29 createMesh(callback?: (err: AWSError, data: AppMesh.Types.CreateMeshOutput) => void): Request<AppMesh.Types.CreateMeshOutput, AWSError>;
30 /**
31 * Creates a route that is associated with a virtual router.
32 You can use the prefix parameter in your route specification for path-based
33 routing of requests. For example, if your virtual service name is
34 my-service.local and you want the route to match requests to
35 my-service.local/metrics, your prefix should be
36 /metrics.
37 If your route matches a request, you can distribute traffic to one or more target
38 virtual nodes with relative weighting.
39 For more information about routes, see Routes.
40 */
41 createRoute(params: AppMesh.Types.CreateRouteInput, callback?: (err: AWSError, data: AppMesh.Types.CreateRouteOutput) => void): Request<AppMesh.Types.CreateRouteOutput, AWSError>;
42 /**
43 * Creates a route that is associated with a virtual router.
44 You can use the prefix parameter in your route specification for path-based
45 routing of requests. For example, if your virtual service name is
46 my-service.local and you want the route to match requests to
47 my-service.local/metrics, your prefix should be
48 /metrics.
49 If your route matches a request, you can distribute traffic to one or more target
50 virtual nodes with relative weighting.
51 For more information about routes, see Routes.
52 */
53 createRoute(callback?: (err: AWSError, data: AppMesh.Types.CreateRouteOutput) => void): Request<AppMesh.Types.CreateRouteOutput, AWSError>;
54 /**
55 * Creates a virtual node within a service mesh.
56 A virtual node acts as a logical pointer to a particular task group, such as an Amazon ECS
57 service or a Kubernetes deployment. When you create a virtual node, you can specify the
58 service discovery information for your task group.
59 Any inbound traffic that your virtual node expects should be specified as a
60 listener. Any outbound traffic that your virtual node expects to reach
61 should be specified as a backend.
62 The response metadata for your new virtual node contains the arn that is
63 associated with the virtual node. Set this value (either the full ARN or the truncated
64 resource name: for example, mesh/default/virtualNode/simpleapp) as the
65 APPMESH_VIRTUAL_NODE_NAME environment variable for your task group's Envoy
66 proxy container in your task definition or pod spec. This is then mapped to the
67 node.id and node.cluster Envoy parameters.
68
69 If you require your Envoy stats or tracing to use a different name, you can override
70 the node.cluster value that is set by
71 APPMESH_VIRTUAL_NODE_NAME with the
72 APPMESH_VIRTUAL_NODE_CLUSTER environment variable.
73
74 For more information about virtual nodes, see Virtual Nodes.
75 */
76 createVirtualNode(params: AppMesh.Types.CreateVirtualNodeInput, callback?: (err: AWSError, data: AppMesh.Types.CreateVirtualNodeOutput) => void): Request<AppMesh.Types.CreateVirtualNodeOutput, AWSError>;
77 /**
78 * Creates a virtual node within a service mesh.
79 A virtual node acts as a logical pointer to a particular task group, such as an Amazon ECS
80 service or a Kubernetes deployment. When you create a virtual node, you can specify the
81 service discovery information for your task group.
82 Any inbound traffic that your virtual node expects should be specified as a
83 listener. Any outbound traffic that your virtual node expects to reach
84 should be specified as a backend.
85 The response metadata for your new virtual node contains the arn that is
86 associated with the virtual node. Set this value (either the full ARN or the truncated
87 resource name: for example, mesh/default/virtualNode/simpleapp) as the
88 APPMESH_VIRTUAL_NODE_NAME environment variable for your task group's Envoy
89 proxy container in your task definition or pod spec. This is then mapped to the
90 node.id and node.cluster Envoy parameters.
91
92 If you require your Envoy stats or tracing to use a different name, you can override
93 the node.cluster value that is set by
94 APPMESH_VIRTUAL_NODE_NAME with the
95 APPMESH_VIRTUAL_NODE_CLUSTER environment variable.
96
97 For more information about virtual nodes, see Virtual Nodes.
98 */
99 createVirtualNode(callback?: (err: AWSError, data: AppMesh.Types.CreateVirtualNodeOutput) => void): Request<AppMesh.Types.CreateVirtualNodeOutput, AWSError>;
100 /**
101 * Creates a virtual router within a service mesh.
102 Any inbound traffic that your virtual router expects should be specified as a
103 listener.
104 Virtual routers handle traffic for one or more virtual services within your mesh. After
105 you create your virtual router, create and associate routes for your virtual router that
106 direct incoming requests to different virtual nodes.
107 For more information about virtual routers, see Virtual Routers.
108 */
109 createVirtualRouter(params: AppMesh.Types.CreateVirtualRouterInput, callback?: (err: AWSError, data: AppMesh.Types.CreateVirtualRouterOutput) => void): Request<AppMesh.Types.CreateVirtualRouterOutput, AWSError>;
110 /**
111 * Creates a virtual router within a service mesh.
112 Any inbound traffic that your virtual router expects should be specified as a
113 listener.
114 Virtual routers handle traffic for one or more virtual services within your mesh. After
115 you create your virtual router, create and associate routes for your virtual router that
116 direct incoming requests to different virtual nodes.
117 For more information about virtual routers, see Virtual Routers.
118 */
119 createVirtualRouter(callback?: (err: AWSError, data: AppMesh.Types.CreateVirtualRouterOutput) => void): Request<AppMesh.Types.CreateVirtualRouterOutput, AWSError>;
120 /**
121 * Creates a virtual service within a service mesh.
122 A virtual service is an abstraction of a real service that is provided by a virtual node
123 directly or indirectly by means of a virtual router. Dependent services call your virtual
124 service by its virtualServiceName, and those requests are routed to the
125 virtual node or virtual router that is specified as the provider for the virtual
126 service.
127 For more information about virtual services, see Virtual Services.
128 */
129 createVirtualService(params: AppMesh.Types.CreateVirtualServiceInput, callback?: (err: AWSError, data: AppMesh.Types.CreateVirtualServiceOutput) => void): Request<AppMesh.Types.CreateVirtualServiceOutput, AWSError>;
130 /**
131 * Creates a virtual service within a service mesh.
132 A virtual service is an abstraction of a real service that is provided by a virtual node
133 directly or indirectly by means of a virtual router. Dependent services call your virtual
134 service by its virtualServiceName, and those requests are routed to the
135 virtual node or virtual router that is specified as the provider for the virtual
136 service.
137 For more information about virtual services, see Virtual Services.
138 */
139 createVirtualService(callback?: (err: AWSError, data: AppMesh.Types.CreateVirtualServiceOutput) => void): Request<AppMesh.Types.CreateVirtualServiceOutput, AWSError>;
140 /**
141 * Deletes an existing service mesh.
142 You must delete all resources (virtual services, routes, virtual routers, and virtual
143 nodes) in the service mesh before you can delete the mesh itself.
144 */
145 deleteMesh(params: AppMesh.Types.DeleteMeshInput, callback?: (err: AWSError, data: AppMesh.Types.DeleteMeshOutput) => void): Request<AppMesh.Types.DeleteMeshOutput, AWSError>;
146 /**
147 * Deletes an existing service mesh.
148 You must delete all resources (virtual services, routes, virtual routers, and virtual
149 nodes) in the service mesh before you can delete the mesh itself.
150 */
151 deleteMesh(callback?: (err: AWSError, data: AppMesh.Types.DeleteMeshOutput) => void): Request<AppMesh.Types.DeleteMeshOutput, AWSError>;
152 /**
153 * Deletes an existing route.
154 */
155 deleteRoute(params: AppMesh.Types.DeleteRouteInput, callback?: (err: AWSError, data: AppMesh.Types.DeleteRouteOutput) => void): Request<AppMesh.Types.DeleteRouteOutput, AWSError>;
156 /**
157 * Deletes an existing route.
158 */
159 deleteRoute(callback?: (err: AWSError, data: AppMesh.Types.DeleteRouteOutput) => void): Request<AppMesh.Types.DeleteRouteOutput, AWSError>;
160 /**
161 * Deletes an existing virtual node.
162 You must delete any virtual services that list a virtual node as a service provider
163 before you can delete the virtual node itself.
164 */
165 deleteVirtualNode(params: AppMesh.Types.DeleteVirtualNodeInput, callback?: (err: AWSError, data: AppMesh.Types.DeleteVirtualNodeOutput) => void): Request<AppMesh.Types.DeleteVirtualNodeOutput, AWSError>;
166 /**
167 * Deletes an existing virtual node.
168 You must delete any virtual services that list a virtual node as a service provider
169 before you can delete the virtual node itself.
170 */
171 deleteVirtualNode(callback?: (err: AWSError, data: AppMesh.Types.DeleteVirtualNodeOutput) => void): Request<AppMesh.Types.DeleteVirtualNodeOutput, AWSError>;
172 /**
173 * Deletes an existing virtual router.
174 You must delete any routes associated with the virtual router before you can delete the
175 router itself.
176 */
177 deleteVirtualRouter(params: AppMesh.Types.DeleteVirtualRouterInput, callback?: (err: AWSError, data: AppMesh.Types.DeleteVirtualRouterOutput) => void): Request<AppMesh.Types.DeleteVirtualRouterOutput, AWSError>;
178 /**
179 * Deletes an existing virtual router.
180 You must delete any routes associated with the virtual router before you can delete the
181 router itself.
182 */
183 deleteVirtualRouter(callback?: (err: AWSError, data: AppMesh.Types.DeleteVirtualRouterOutput) => void): Request<AppMesh.Types.DeleteVirtualRouterOutput, AWSError>;
184 /**
185 * Deletes an existing virtual service.
186 */
187 deleteVirtualService(params: AppMesh.Types.DeleteVirtualServiceInput, callback?: (err: AWSError, data: AppMesh.Types.DeleteVirtualServiceOutput) => void): Request<AppMesh.Types.DeleteVirtualServiceOutput, AWSError>;
188 /**
189 * Deletes an existing virtual service.
190 */
191 deleteVirtualService(callback?: (err: AWSError, data: AppMesh.Types.DeleteVirtualServiceOutput) => void): Request<AppMesh.Types.DeleteVirtualServiceOutput, AWSError>;
192 /**
193 * Describes an existing service mesh.
194 */
195 describeMesh(params: AppMesh.Types.DescribeMeshInput, callback?: (err: AWSError, data: AppMesh.Types.DescribeMeshOutput) => void): Request<AppMesh.Types.DescribeMeshOutput, AWSError>;
196 /**
197 * Describes an existing service mesh.
198 */
199 describeMesh(callback?: (err: AWSError, data: AppMesh.Types.DescribeMeshOutput) => void): Request<AppMesh.Types.DescribeMeshOutput, AWSError>;
200 /**
201 * Describes an existing route.
202 */
203 describeRoute(params: AppMesh.Types.DescribeRouteInput, callback?: (err: AWSError, data: AppMesh.Types.DescribeRouteOutput) => void): Request<AppMesh.Types.DescribeRouteOutput, AWSError>;
204 /**
205 * Describes an existing route.
206 */
207 describeRoute(callback?: (err: AWSError, data: AppMesh.Types.DescribeRouteOutput) => void): Request<AppMesh.Types.DescribeRouteOutput, AWSError>;
208 /**
209 * Describes an existing virtual node.
210 */
211 describeVirtualNode(params: AppMesh.Types.DescribeVirtualNodeInput, callback?: (err: AWSError, data: AppMesh.Types.DescribeVirtualNodeOutput) => void): Request<AppMesh.Types.DescribeVirtualNodeOutput, AWSError>;
212 /**
213 * Describes an existing virtual node.
214 */
215 describeVirtualNode(callback?: (err: AWSError, data: AppMesh.Types.DescribeVirtualNodeOutput) => void): Request<AppMesh.Types.DescribeVirtualNodeOutput, AWSError>;
216 /**
217 * Describes an existing virtual router.
218 */
219 describeVirtualRouter(params: AppMesh.Types.DescribeVirtualRouterInput, callback?: (err: AWSError, data: AppMesh.Types.DescribeVirtualRouterOutput) => void): Request<AppMesh.Types.DescribeVirtualRouterOutput, AWSError>;
220 /**
221 * Describes an existing virtual router.
222 */
223 describeVirtualRouter(callback?: (err: AWSError, data: AppMesh.Types.DescribeVirtualRouterOutput) => void): Request<AppMesh.Types.DescribeVirtualRouterOutput, AWSError>;
224 /**
225 * Describes an existing virtual service.
226 */
227 describeVirtualService(params: AppMesh.Types.DescribeVirtualServiceInput, callback?: (err: AWSError, data: AppMesh.Types.DescribeVirtualServiceOutput) => void): Request<AppMesh.Types.DescribeVirtualServiceOutput, AWSError>;
228 /**
229 * Describes an existing virtual service.
230 */
231 describeVirtualService(callback?: (err: AWSError, data: AppMesh.Types.DescribeVirtualServiceOutput) => void): Request<AppMesh.Types.DescribeVirtualServiceOutput, AWSError>;
232 /**
233 * Returns a list of existing service meshes.
234 */
235 listMeshes(params: AppMesh.Types.ListMeshesInput, callback?: (err: AWSError, data: AppMesh.Types.ListMeshesOutput) => void): Request<AppMesh.Types.ListMeshesOutput, AWSError>;
236 /**
237 * Returns a list of existing service meshes.
238 */
239 listMeshes(callback?: (err: AWSError, data: AppMesh.Types.ListMeshesOutput) => void): Request<AppMesh.Types.ListMeshesOutput, AWSError>;
240 /**
241 * Returns a list of existing routes in a service mesh.
242 */
243 listRoutes(params: AppMesh.Types.ListRoutesInput, callback?: (err: AWSError, data: AppMesh.Types.ListRoutesOutput) => void): Request<AppMesh.Types.ListRoutesOutput, AWSError>;
244 /**
245 * Returns a list of existing routes in a service mesh.
246 */
247 listRoutes(callback?: (err: AWSError, data: AppMesh.Types.ListRoutesOutput) => void): Request<AppMesh.Types.ListRoutesOutput, AWSError>;
248 /**
249 * List the tags for an App Mesh resource.
250 */
251 listTagsForResource(params: AppMesh.Types.ListTagsForResourceInput, callback?: (err: AWSError, data: AppMesh.Types.ListTagsForResourceOutput) => void): Request<AppMesh.Types.ListTagsForResourceOutput, AWSError>;
252 /**
253 * List the tags for an App Mesh resource.
254 */
255 listTagsForResource(callback?: (err: AWSError, data: AppMesh.Types.ListTagsForResourceOutput) => void): Request<AppMesh.Types.ListTagsForResourceOutput, AWSError>;
256 /**
257 * Returns a list of existing virtual nodes.
258 */
259 listVirtualNodes(params: AppMesh.Types.ListVirtualNodesInput, callback?: (err: AWSError, data: AppMesh.Types.ListVirtualNodesOutput) => void): Request<AppMesh.Types.ListVirtualNodesOutput, AWSError>;
260 /**
261 * Returns a list of existing virtual nodes.
262 */
263 listVirtualNodes(callback?: (err: AWSError, data: AppMesh.Types.ListVirtualNodesOutput) => void): Request<AppMesh.Types.ListVirtualNodesOutput, AWSError>;
264 /**
265 * Returns a list of existing virtual routers in a service mesh.
266 */
267 listVirtualRouters(params: AppMesh.Types.ListVirtualRoutersInput, callback?: (err: AWSError, data: AppMesh.Types.ListVirtualRoutersOutput) => void): Request<AppMesh.Types.ListVirtualRoutersOutput, AWSError>;
268 /**
269 * Returns a list of existing virtual routers in a service mesh.
270 */
271 listVirtualRouters(callback?: (err: AWSError, data: AppMesh.Types.ListVirtualRoutersOutput) => void): Request<AppMesh.Types.ListVirtualRoutersOutput, AWSError>;
272 /**
273 * Returns a list of existing virtual services in a service mesh.
274 */
275 listVirtualServices(params: AppMesh.Types.ListVirtualServicesInput, callback?: (err: AWSError, data: AppMesh.Types.ListVirtualServicesOutput) => void): Request<AppMesh.Types.ListVirtualServicesOutput, AWSError>;
276 /**
277 * Returns a list of existing virtual services in a service mesh.
278 */
279 listVirtualServices(callback?: (err: AWSError, data: AppMesh.Types.ListVirtualServicesOutput) => void): Request<AppMesh.Types.ListVirtualServicesOutput, AWSError>;
280 /**
281 * Associates the specified tags to a resource with the specified resourceArn.
282 If existing tags on a resource aren't specified in the request parameters, they aren't
283 changed. When a resource is deleted, the tags associated with that resource are also
284 deleted.
285 */
286 tagResource(params: AppMesh.Types.TagResourceInput, callback?: (err: AWSError, data: AppMesh.Types.TagResourceOutput) => void): Request<AppMesh.Types.TagResourceOutput, AWSError>;
287 /**
288 * Associates the specified tags to a resource with the specified resourceArn.
289 If existing tags on a resource aren't specified in the request parameters, they aren't
290 changed. When a resource is deleted, the tags associated with that resource are also
291 deleted.
292 */
293 tagResource(callback?: (err: AWSError, data: AppMesh.Types.TagResourceOutput) => void): Request<AppMesh.Types.TagResourceOutput, AWSError>;
294 /**
295 * Deletes specified tags from a resource.
296 */
297 untagResource(params: AppMesh.Types.UntagResourceInput, callback?: (err: AWSError, data: AppMesh.Types.UntagResourceOutput) => void): Request<AppMesh.Types.UntagResourceOutput, AWSError>;
298 /**
299 * Deletes specified tags from a resource.
300 */
301 untagResource(callback?: (err: AWSError, data: AppMesh.Types.UntagResourceOutput) => void): Request<AppMesh.Types.UntagResourceOutput, AWSError>;
302 /**
303 * Updates an existing service mesh.
304 */
305 updateMesh(params: AppMesh.Types.UpdateMeshInput, callback?: (err: AWSError, data: AppMesh.Types.UpdateMeshOutput) => void): Request<AppMesh.Types.UpdateMeshOutput, AWSError>;
306 /**
307 * Updates an existing service mesh.
308 */
309 updateMesh(callback?: (err: AWSError, data: AppMesh.Types.UpdateMeshOutput) => void): Request<AppMesh.Types.UpdateMeshOutput, AWSError>;
310 /**
311 * Updates an existing route for a specified service mesh and virtual router.
312 */
313 updateRoute(params: AppMesh.Types.UpdateRouteInput, callback?: (err: AWSError, data: AppMesh.Types.UpdateRouteOutput) => void): Request<AppMesh.Types.UpdateRouteOutput, AWSError>;
314 /**
315 * Updates an existing route for a specified service mesh and virtual router.
316 */
317 updateRoute(callback?: (err: AWSError, data: AppMesh.Types.UpdateRouteOutput) => void): Request<AppMesh.Types.UpdateRouteOutput, AWSError>;
318 /**
319 * Updates an existing virtual node in a specified service mesh.
320 */
321 updateVirtualNode(params: AppMesh.Types.UpdateVirtualNodeInput, callback?: (err: AWSError, data: AppMesh.Types.UpdateVirtualNodeOutput) => void): Request<AppMesh.Types.UpdateVirtualNodeOutput, AWSError>;
322 /**
323 * Updates an existing virtual node in a specified service mesh.
324 */
325 updateVirtualNode(callback?: (err: AWSError, data: AppMesh.Types.UpdateVirtualNodeOutput) => void): Request<AppMesh.Types.UpdateVirtualNodeOutput, AWSError>;
326 /**
327 * Updates an existing virtual router in a specified service mesh.
328 */
329 updateVirtualRouter(params: AppMesh.Types.UpdateVirtualRouterInput, callback?: (err: AWSError, data: AppMesh.Types.UpdateVirtualRouterOutput) => void): Request<AppMesh.Types.UpdateVirtualRouterOutput, AWSError>;
330 /**
331 * Updates an existing virtual router in a specified service mesh.
332 */
333 updateVirtualRouter(callback?: (err: AWSError, data: AppMesh.Types.UpdateVirtualRouterOutput) => void): Request<AppMesh.Types.UpdateVirtualRouterOutput, AWSError>;
334 /**
335 * Updates an existing virtual service in a specified service mesh.
336 */
337 updateVirtualService(params: AppMesh.Types.UpdateVirtualServiceInput, callback?: (err: AWSError, data: AppMesh.Types.UpdateVirtualServiceOutput) => void): Request<AppMesh.Types.UpdateVirtualServiceOutput, AWSError>;
338 /**
339 * Updates an existing virtual service in a specified service mesh.
340 */
341 updateVirtualService(callback?: (err: AWSError, data: AppMesh.Types.UpdateVirtualServiceOutput) => void): Request<AppMesh.Types.UpdateVirtualServiceOutput, AWSError>;
342}
343declare namespace AppMesh {
344 export interface VirtualRouterListener {
345 portMapping: PortMapping;
346 }
347 export type VirtualRouterStatusCode = "ACTIVE"|"DELETED"|"INACTIVE"|string;
348 export type TagKeyList = TagKey[];
349 export interface GrpcRetryPolicy {
350 /**
351 * Specify at least one of the valid values.
352 */
353 grpcRetryEvents?: GrpcRetryPolicyEvents;
354 /**
355 * Specify at least one of the following values.
356
357
358
359 server-error – HTTP status codes 500, 501,
360 502, 503, 504, 505, 506, 507, 508, 510, and 511
361
362
363
364 gateway-error – HTTP status codes 502,
365 503, and 504
366
367
368
369 client-error – HTTP status code 409
370
371
372
373 stream-error – Retry on refused
374 stream
375
376
377 */
378 httpRetryEvents?: HttpRetryPolicyEvents;
379 /**
380 * The maximum number of retry attempts.
381 */
382 maxRetries: MaxRetries;
383 /**
384 * An object that represents a duration of time.
385 */
386 perRetryTimeout: Duration;
387 /**
388 * Specify a valid value.
389 */
390 tcpRetryEvents?: TcpRetryPolicyEvents;
391 }
392 export interface CreateVirtualNodeOutput {
393 /**
394 * The full description of your virtual node following the create call.
395 */
396 virtualNode: VirtualNodeData;
397 }
398 export interface Logging {
399 /**
400 * The access log configuration for a virtual node.
401 */
402 accessLog?: AccessLog;
403 }
404 export type Long = number;
405 export interface UpdateVirtualRouterOutput {
406 /**
407 * A full description of the virtual router that was updated.
408 */
409 virtualRouter: VirtualRouterData;
410 }
411 export interface ListVirtualRoutersOutput {
412 /**
413 * The nextToken value to include in a future ListVirtualRouters
414 request. When the results of a ListVirtualRouters request exceed
415 limit, you can use this value to retrieve the next page of results. This
416 value is null when there are no more results to return.
417 */
418 nextToken?: String;
419 /**
420 * The list of existing virtual routers for the specified service mesh.
421 */
422 virtualRouters: VirtualRouterList;
423 }
424 export interface ResourceMetadata {
425 /**
426 * The full Amazon Resource Name (ARN) for the resource.
427 */
428 arn: Arn;
429 /**
430 * The Unix epoch timestamp in seconds for when the resource was created.
431 */
432 createdAt: Timestamp;
433 /**
434 * The Unix epoch timestamp in seconds for when the resource was last updated.
435 */
436 lastUpdatedAt: Timestamp;
437 /**
438 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
439 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
440 */
441 meshOwner: AccountId;
442 /**
443 * The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's
444 the ID of the mesh owner, or another account that the mesh is shared with. For more information about mesh sharing, see Working with Shared Meshes.
445 */
446 resourceOwner: AccountId;
447 /**
448 * The unique identifier for the resource.
449 */
450 uid: String;
451 /**
452 * The version of the resource. Resources are created at version 1, and this version is
453 incremented each time that they're updated.
454 */
455 version: Long;
456 }
457 export interface UpdateVirtualNodeOutput {
458 /**
459 * A full description of the virtual node that was updated.
460 */
461 virtualNode: VirtualNodeData;
462 }
463 export interface ListRoutesOutput {
464 /**
465 * The nextToken value to include in a future ListRoutes request.
466 When the results of a ListRoutes request exceed limit, you can
467 use this value to retrieve the next page of results. This value is null when
468 there are no more results to return.
469 */
470 nextToken?: String;
471 /**
472 * The list of existing routes for the specified service mesh and virtual router.
473 */
474 routes: RouteList;
475 }
476 export interface VirtualServiceBackend {
477 /**
478 * A reference to an object that represents the client policy for a backend.
479 */
480 clientPolicy?: ClientPolicy;
481 /**
482 * The name of the virtual service that is acting as a virtual node backend.
483 */
484 virtualServiceName: ServiceName;
485 }
486 export type GrpcRouteMetadataList = GrpcRouteMetadata[];
487 export type ListenerTlsMode = "DISABLED"|"PERMISSIVE"|"STRICT"|string;
488 export interface HealthCheckPolicy {
489 /**
490 * The number of consecutive successful health checks that must occur before declaring
491 listener healthy.
492 */
493 healthyThreshold: HealthCheckThreshold;
494 /**
495 * The time period in milliseconds between each health check execution.
496 */
497 intervalMillis: HealthCheckIntervalMillis;
498 /**
499 * The destination path for the health check request. This value is only used if the specified
500 protocol is HTTP or HTTP/2. For any other protocol, this value is ignored.
501 */
502 path?: String;
503 /**
504 * The destination port for the health check request. This port must match the port defined
505 in the PortMapping for the listener.
506 */
507 port?: PortNumber;
508 /**
509 * The protocol for the health check request. If you specify grpc, then your service must conform to the GRPC Health Checking Protocol.
510 */
511 protocol: PortProtocol;
512 /**
513 * The amount of time to wait when receiving a response from the health check, in
514 milliseconds.
515 */
516 timeoutMillis: HealthCheckTimeoutMillis;
517 /**
518 * The number of consecutive failed health checks that must occur before declaring a
519 virtual node unhealthy.
520 */
521 unhealthyThreshold: HealthCheckThreshold;
522 }
523 export interface EgressFilter {
524 /**
525 * The egress filter type. By default, the type is DROP_ALL, which allows
526 egress only from virtual nodes to other defined resources in the service mesh (and any
527 traffic to *.amazonaws.com for AWS API calls). You can set the egress filter
528 type to ALLOW_ALL to allow egress to any endpoint inside or outside of the
529 service mesh.
530 */
531 type: EgressFilterType;
532 }
533 export type VirtualServiceList = VirtualServiceRef[];
534 export interface ClientPolicy {
535 /**
536 * A reference to an object that represents a Transport Layer Security (TLS) client policy.
537 */
538 tls?: ClientPolicyTls;
539 }
540 export type Boolean = boolean;
541 export type HttpRetryPolicyEvent = string;
542 export interface DescribeVirtualServiceOutput {
543 /**
544 * The full description of your virtual service.
545 */
546 virtualService: VirtualServiceData;
547 }
548 export type CertificateAuthorityArns = Arn[];
549 export interface DescribeVirtualNodeOutput {
550 /**
551 * The full description of your virtual node.
552 */
553 virtualNode: VirtualNodeData;
554 }
555 export type AwsCloudMapName = string;
556 export interface CreateRouteOutput {
557 /**
558 * The full description of your mesh following the create call.
559 */
560 route: RouteData;
561 }
562 export interface DnsServiceDiscovery {
563 /**
564 * Specifies the DNS service discovery hostname for the virtual node.
565 */
566 hostname: Hostname;
567 }
568 export interface DeleteRouteInput {
569 /**
570 * The name of the service mesh to delete the route in.
571 */
572 meshName: ResourceName;
573 /**
574 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
575 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
576 */
577 meshOwner?: AccountId;
578 /**
579 * The name of the route to delete.
580 */
581 routeName: ResourceName;
582 /**
583 * The name of the virtual router to delete the route in.
584 */
585 virtualRouterName: ResourceName;
586 }
587 export interface VirtualNodeData {
588 /**
589 * The name of the service mesh that the virtual node resides in.
590 */
591 meshName: ResourceName;
592 /**
593 * The associated metadata for the virtual node.
594 */
595 metadata: ResourceMetadata;
596 /**
597 * The specifications of the virtual node.
598 */
599 spec: VirtualNodeSpec;
600 /**
601 * The current status for the virtual node.
602 */
603 status: VirtualNodeStatus;
604 /**
605 * The name of the virtual node.
606 */
607 virtualNodeName: ResourceName;
608 }
609 export interface UntagResourceOutput {
610 }
611 export type TcpRetryPolicyEvent = "connection-error"|string;
612 export interface Backend {
613 /**
614 * Specifies a virtual service to use as a backend for a virtual node.
615 */
616 virtualService?: VirtualServiceBackend;
617 }
618 export interface ListMeshesInput {
619 /**
620 * The maximum number of results returned by ListMeshes in paginated output.
621 When you use this parameter, ListMeshes returns only limit
622 results in a single page along with a nextToken response element. You can see
623 the remaining results of the initial request by sending another ListMeshes
624 request with the returned nextToken value. This value can be between
625 1 and 100. If you don't use this parameter,
626 ListMeshes returns up to 100 results and a
627 nextToken value if applicable.
628 */
629 limit?: ListMeshesLimit;
630 /**
631 * The nextToken value returned from a previous paginated
632 ListMeshes request where limit was used and the results
633 exceeded the value of that parameter. Pagination continues from the end of the previous
634 results that returned the nextToken value.
635
636 This token should be treated as an opaque identifier that is used only to
637 retrieve the next items in a list and not for other programmatic purposes.
638
639 */
640 nextToken?: String;
641 }
642 export interface VirtualRouterData {
643 /**
644 * The name of the service mesh that the virtual router resides in.
645 */
646 meshName: ResourceName;
647 /**
648 * The associated metadata for the virtual router.
649 */
650 metadata: ResourceMetadata;
651 /**
652 * The specifications of the virtual router.
653 */
654 spec: VirtualRouterSpec;
655 /**
656 * The current status of the virtual router.
657 */
658 status: VirtualRouterStatus;
659 /**
660 * The name of the virtual router.
661 */
662 virtualRouterName: ResourceName;
663 }
664 export interface UpdateMeshInput {
665 /**
666 * Unique, case-sensitive identifier that you provide to ensure the idempotency of the
667request. Up to 36 letters, numbers, hyphens, and underscores are allowed.
668 */
669 clientToken?: String;
670 /**
671 * The name of the service mesh to update.
672 */
673 meshName: ResourceName;
674 /**
675 * The service mesh specification to apply.
676 */
677 spec?: MeshSpec;
678 }
679 export interface CreateVirtualRouterInput {
680 /**
681 * Unique, case-sensitive identifier that you provide to ensure the idempotency of the
682request. Up to 36 letters, numbers, hyphens, and underscores are allowed.
683 */
684 clientToken?: String;
685 /**
686 * The name of the service mesh to create the virtual router in.
687 */
688 meshName: ResourceName;
689 /**
690 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then
691 the account that you specify must share the mesh with your account before you can create
692 the resource in the service mesh. For more information about mesh sharing, see Working with Shared Meshes.
693 */
694 meshOwner?: AccountId;
695 /**
696 * The virtual router specification to apply.
697 */
698 spec: VirtualRouterSpec;
699 /**
700 * Optional metadata that you can apply to the virtual router to assist with categorization
701 and organization. Each tag consists of a key and an optional value, both of which you
702 define. Tag keys can have a maximum character length of 128 characters, and tag values can have
703 a maximum length of 256 characters.
704 */
705 tags?: TagList;
706 /**
707 * The name to use for the virtual router.
708 */
709 virtualRouterName: ResourceName;
710 }
711 export interface DescribeVirtualRouterOutput {
712 /**
713 * The full description of your virtual router.
714 */
715 virtualRouter: VirtualRouterData;
716 }
717 export interface CreateMeshOutput {
718 /**
719 * The full description of your service mesh following the create call.
720 */
721 mesh: MeshData;
722 }
723 export interface CreateVirtualRouterOutput {
724 /**
725 * The full description of your virtual router following the create call.
726 */
727 virtualRouter: VirtualRouterData;
728 }
729 export interface VirtualServiceStatus {
730 /**
731 * The current status of the virtual service.
732 */
733 status: VirtualServiceStatusCode;
734 }
735 export type HttpRetryPolicyEvents = HttpRetryPolicyEvent[];
736 export interface ListenerTlsCertificate {
737 /**
738 * A reference to an object that represents an AWS Certicate Manager (ACM) certificate.
739 */
740 acm?: ListenerTlsAcmCertificate;
741 /**
742 * A reference to an object that represents a local file certificate.
743 */
744 file?: ListenerTlsFileCertificate;
745 }
746 export type ListMeshesLimit = number;
747 export type AwsCloudMapInstanceAttributeKey = string;
748 export interface VirtualRouterSpec {
749 /**
750 * The listeners that the virtual router is expected to receive inbound traffic from.
751 You can specify one listener.
752 */
753 listeners?: VirtualRouterListeners;
754 }
755 export interface VirtualNodeSpec {
756 /**
757 * A reference to an object that represents the defaults for backends.
758 */
759 backendDefaults?: BackendDefaults;
760 /**
761 * The backends that the virtual node is expected to send outbound traffic to.
762 */
763 backends?: Backends;
764 /**
765 * The listener that the virtual node is expected to receive inbound traffic from.
766 You can specify one listener.
767 */
768 listeners?: Listeners;
769 /**
770 * The inbound and outbound access logging information for the virtual node.
771 */
772 logging?: Logging;
773 /**
774 * The service discovery information for the virtual node. If your virtual node does not
775 expect ingress traffic, you can omit this parameter. If you specify a listener,
776 then you must specify service discovery information.
777 */
778 serviceDiscovery?: ServiceDiscovery;
779 }
780 export interface ListMeshesOutput {
781 /**
782 * The list of existing service meshes.
783 */
784 meshes: MeshList;
785 /**
786 * The nextToken value to include in a future ListMeshes request.
787 When the results of a ListMeshes request exceed limit, you can
788 use this value to retrieve the next page of results. This value is null when
789 there are no more results to return.
790 */
791 nextToken?: String;
792 }
793 export type VirtualRouterListeners = VirtualRouterListener[];
794 export type PortSet = PortNumber[];
795 export type HttpMethod = "CONNECT"|"DELETE"|"GET"|"HEAD"|"OPTIONS"|"PATCH"|"POST"|"PUT"|"TRACE"|string;
796 export type MeshList = MeshRef[];
797 export type MaxRetries = number;
798 export interface TlsValidationContextTrust {
799 /**
800 * A reference to an object that represents a TLS validation context trust for an AWS Certicate Manager (ACM) certificate.
801 */
802 acm?: TlsValidationContextAcmTrust;
803 /**
804 * An object that represents a TLS validation context trust for a local file.
805 */
806 file?: TlsValidationContextFileTrust;
807 }
808 export interface PortMapping {
809 /**
810 * The port used for the port mapping.
811 */
812 port: PortNumber;
813 /**
814 * The protocol used for the port mapping. Specify one protocol.
815 */
816 protocol: PortProtocol;
817 }
818 export interface ListVirtualServicesOutput {
819 /**
820 * The nextToken value to include in a future ListVirtualServices
821 request. When the results of a ListVirtualServices request exceed
822 limit, you can use this value to retrieve the next page of results. This
823 value is null when there are no more results to return.
824 */
825 nextToken?: String;
826 /**
827 * The list of existing virtual services for the specified service mesh.
828 */
829 virtualServices: VirtualServiceList;
830 }
831 export type AwsCloudMapInstanceAttributeValue = string;
832 export interface WeightedTarget {
833 /**
834 * The virtual node to associate with the weighted target.
835 */
836 virtualNode: ResourceName;
837 /**
838 * The relative weight of the weighted target.
839 */
840 weight: PercentInt;
841 }
842 export interface RouteRef {
843 /**
844 * The full Amazon Resource Name (ARN) for the route.
845 */
846 arn: Arn;
847 /**
848 * The name of the service mesh that the route resides in.
849 */
850 meshName: ResourceName;
851 /**
852 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
853 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
854 */
855 meshOwner: AccountId;
856 /**
857 * The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's
858 the ID of the mesh owner, or another account that the mesh is shared with. For more information about mesh sharing, see Working with Shared Meshes.
859 */
860 resourceOwner: AccountId;
861 /**
862 * The name of the route.
863 */
864 routeName: ResourceName;
865 /**
866 * The virtual router that the route is associated with.
867 */
868 virtualRouterName: ResourceName;
869 }
870 export interface DeleteVirtualNodeInput {
871 /**
872 * The name of the service mesh to delete the virtual node in.
873 */
874 meshName: ResourceName;
875 /**
876 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
877 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
878 */
879 meshOwner?: AccountId;
880 /**
881 * The name of the virtual node to delete.
882 */
883 virtualNodeName: ResourceName;
884 }
885 export interface RouteData {
886 /**
887 * The name of the service mesh that the route resides in.
888 */
889 meshName: ResourceName;
890 /**
891 * The associated metadata for the route.
892 */
893 metadata: ResourceMetadata;
894 /**
895 * The name of the route.
896 */
897 routeName: ResourceName;
898 /**
899 * The specifications of the route.
900 */
901 spec: RouteSpec;
902 /**
903 * The status of the route.
904 */
905 status: RouteStatus;
906 /**
907 * The virtual router that the route is associated with.
908 */
909 virtualRouterName: ResourceName;
910 }
911 export type RouteStatusCode = "ACTIVE"|"DELETED"|"INACTIVE"|string;
912 export type HeaderName = string;
913 export type TagList = TagRef[];
914 export type GrpcRetryPolicyEvent = "cancelled"|"deadline-exceeded"|"internal"|"resource-exhausted"|"unavailable"|string;
915 export interface TlsValidationContextAcmTrust {
916 /**
917 * One or more ACM Amazon Resource Name (ARN)s.
918 */
919 certificateAuthorityArns: CertificateAuthorityArns;
920 }
921 export interface HeaderMatchMethod {
922 /**
923 * The value sent by the client must match the specified value exactly.
924 */
925 exact?: HeaderMatch;
926 /**
927 * The value sent by the client must begin with the specified characters.
928 */
929 prefix?: HeaderMatch;
930 /**
931 * An object that represents the range of values to match on.
932 */
933 range?: MatchRange;
934 /**
935 * The value sent by the client must include the specified characters.
936 */
937 regex?: HeaderMatch;
938 /**
939 * The value sent by the client must end with the specified characters.
940 */
941 suffix?: HeaderMatch;
942 }
943 export interface DeleteMeshOutput {
944 /**
945 * The service mesh that was deleted.
946 */
947 mesh: MeshData;
948 }
949 export type EgressFilterType = "ALLOW_ALL"|"DROP_ALL"|string;
950 export type DurationValue = number;
951 export type Hostname = string;
952 export interface TagResourceInput {
953 /**
954 * The Amazon Resource Name (ARN) of the resource to add tags to.
955 */
956 resourceArn: Arn;
957 /**
958 * The tags to add to the resource. A tag is an array of key-value pairs.
959 Tag keys can have a maximum character length of 128 characters, and tag values can have
960 a maximum length of 256 characters.
961 */
962 tags: TagList;
963 }
964 export interface VirtualServiceProvider {
965 /**
966 * The virtual node associated with a virtual service.
967 */
968 virtualNode?: VirtualNodeServiceProvider;
969 /**
970 * The virtual router associated with a virtual service.
971 */
972 virtualRouter?: VirtualRouterServiceProvider;
973 }
974 export interface GrpcRouteMatch {
975 /**
976 * An object that represents the data to match from the request.
977 */
978 metadata?: GrpcRouteMetadataList;
979 /**
980 * The method name to match from the request. If you specify a name, you must also specify a serviceName.
981 */
982 methodName?: MethodName;
983 /**
984 * The fully qualified domain name for the service to match from the request.
985 */
986 serviceName?: ServiceName;
987 }
988 export interface AwsCloudMapServiceDiscovery {
989 /**
990 * A string map that contains attributes with values that you can use to filter instances
991 by any custom attribute that you specified when you registered the instance. Only instances
992 that match all of the specified key/value pairs will be returned.
993 */
994 attributes?: AwsCloudMapInstanceAttributes;
995 /**
996 * The name of the AWS Cloud Map namespace to use.
997 */
998 namespaceName: AwsCloudMapName;
999 /**
1000 * The name of the AWS Cloud Map service to use.
1001 */
1002 serviceName: AwsCloudMapName;
1003 }
1004 export interface UpdateVirtualServiceOutput {
1005 /**
1006 * A full description of the virtual service that was updated.
1007 */
1008 virtualService: VirtualServiceData;
1009 }
1010 export interface MeshStatus {
1011 /**
1012 * The current mesh status.
1013 */
1014 status?: MeshStatusCode;
1015 }
1016 export interface CreateVirtualNodeInput {
1017 /**
1018 * Unique, case-sensitive identifier that you provide to ensure the idempotency of the
1019request. Up to 36 letters, numbers, hyphens, and underscores are allowed.
1020 */
1021 clientToken?: String;
1022 /**
1023 * The name of the service mesh to create the virtual node in.
1024 */
1025 meshName: ResourceName;
1026 /**
1027 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then
1028 the account that you specify must share the mesh with your account before you can create
1029 the resource in the service mesh. For more information about mesh sharing, see Working with Shared Meshes.
1030 */
1031 meshOwner?: AccountId;
1032 /**
1033 * The virtual node specification to apply.
1034 */
1035 spec: VirtualNodeSpec;
1036 /**
1037 * Optional metadata that you can apply to the virtual node to assist with categorization
1038 and organization. Each tag consists of a key and an optional value, both of which you
1039 define. Tag keys can have a maximum character length of 128 characters, and tag values can have
1040 a maximum length of 256 characters.
1041 */
1042 tags?: TagList;
1043 /**
1044 * The name to use for the virtual node.
1045 */
1046 virtualNodeName: ResourceName;
1047 }
1048 export interface RouteSpec {
1049 /**
1050 * An object that represents the specification of a gRPC route.
1051 */
1052 grpcRoute?: GrpcRoute;
1053 /**
1054 * An object that represents the specification of an HTTP/2 route.
1055 */
1056 http2Route?: HttpRoute;
1057 /**
1058 * An object that represents the specification of an HTTP route.
1059 */
1060 httpRoute?: HttpRoute;
1061 /**
1062 * The priority for the route. Routes are matched based on the specified value, where 0 is
1063 the highest priority.
1064 */
1065 priority?: RoutePriority;
1066 /**
1067 * An object that represents the specification of a TCP route.
1068 */
1069 tcpRoute?: TcpRoute;
1070 }
1071 export interface CreateVirtualServiceOutput {
1072 /**
1073 * The full description of your virtual service following the create call.
1074 */
1075 virtualService: VirtualServiceData;
1076 }
1077 export interface FileAccessLog {
1078 /**
1079 * The file path to write access logs to. You can use /dev/stdout to send
1080 access logs to standard out and configure your Envoy container to use a log driver, such as
1081 awslogs, to export the access logs to a log storage service such as Amazon
1082 CloudWatch Logs. You can also specify a path in the Envoy container's file system to write
1083 the files to disk.
1084
1085 The Envoy process must have write permissions to the path that you specify here.
1086 Otherwise, Envoy fails to bootstrap properly.
1087
1088 */
1089 path: FilePath;
1090 }
1091 export interface VirtualRouterServiceProvider {
1092 /**
1093 * The name of the virtual router that is acting as a service provider.
1094 */
1095 virtualRouterName: ResourceName;
1096 }
1097 export interface DeleteVirtualServiceInput {
1098 /**
1099 * The name of the service mesh to delete the virtual service in.
1100 */
1101 meshName: ResourceName;
1102 /**
1103 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1104 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1105 */
1106 meshOwner?: AccountId;
1107 /**
1108 * The name of the virtual service to delete.
1109 */
1110 virtualServiceName: ServiceName;
1111 }
1112 export interface TlsValidationContext {
1113 /**
1114 * A reference to an object that represents a TLS validation context trust.
1115 */
1116 trust: TlsValidationContextTrust;
1117 }
1118 export interface DeleteVirtualRouterOutput {
1119 /**
1120 * The virtual router that was deleted.
1121 */
1122 virtualRouter: VirtualRouterData;
1123 }
1124 export type TagsLimit = number;
1125 export interface DeleteVirtualNodeOutput {
1126 /**
1127 * The virtual node that was deleted.
1128 */
1129 virtualNode: VirtualNodeData;
1130 }
1131 export interface UpdateVirtualNodeInput {
1132 /**
1133 * Unique, case-sensitive identifier that you provide to ensure the idempotency of the
1134request. Up to 36 letters, numbers, hyphens, and underscores are allowed.
1135 */
1136 clientToken?: String;
1137 /**
1138 * The name of the service mesh that the virtual node resides in.
1139 */
1140 meshName: ResourceName;
1141 /**
1142 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1143 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1144 */
1145 meshOwner?: AccountId;
1146 /**
1147 * The new virtual node specification to apply. This overwrites the existing data.
1148 */
1149 spec: VirtualNodeSpec;
1150 /**
1151 * The name of the virtual node to update.
1152 */
1153 virtualNodeName: ResourceName;
1154 }
1155 export interface ListenerTls {
1156 /**
1157 * A reference to an object that represents a listener's TLS certificate.
1158 */
1159 certificate: ListenerTlsCertificate;
1160 /**
1161 * Specify one of the following modes.
1162
1163
1164
1165 STRICT – Listener only accepts connections with TLS enabled.
1166
1167
1168
1169 PERMISSIVE – Listener accepts connections with or without TLS enabled.
1170
1171
1172
1173 DISABLED – Listener only accepts connections without TLS.
1174
1175
1176 */
1177 mode: ListenerTlsMode;
1178 }
1179 export interface DeleteMeshInput {
1180 /**
1181 * The name of the service mesh to delete.
1182 */
1183 meshName: ResourceName;
1184 }
1185 export type TcpRetryPolicyEvents = TcpRetryPolicyEvent[];
1186 export interface CreateVirtualServiceInput {
1187 /**
1188 * Unique, case-sensitive identifier that you provide to ensure the idempotency of the
1189request. Up to 36 letters, numbers, hyphens, and underscores are allowed.
1190 */
1191 clientToken?: String;
1192 /**
1193 * The name of the service mesh to create the virtual service in.
1194 */
1195 meshName: ResourceName;
1196 /**
1197 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then
1198 the account that you specify must share the mesh with your account before you can create
1199 the resource in the service mesh. For more information about mesh sharing, see Working with Shared Meshes.
1200 */
1201 meshOwner?: AccountId;
1202 /**
1203 * The virtual service specification to apply.
1204 */
1205 spec: VirtualServiceSpec;
1206 /**
1207 * Optional metadata that you can apply to the virtual service to assist with
1208 categorization and organization. Each tag consists of a key and an optional value, both of
1209 which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have
1210 a maximum length of 256 characters.
1211 */
1212 tags?: TagList;
1213 /**
1214 * The name to use for the virtual service.
1215 */
1216 virtualServiceName: ServiceName;
1217 }
1218 export interface UpdateVirtualRouterInput {
1219 /**
1220 * Unique, case-sensitive identifier that you provide to ensure the idempotency of the
1221request. Up to 36 letters, numbers, hyphens, and underscores are allowed.
1222 */
1223 clientToken?: String;
1224 /**
1225 * The name of the service mesh that the virtual router resides in.
1226 */
1227 meshName: ResourceName;
1228 /**
1229 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1230 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1231 */
1232 meshOwner?: AccountId;
1233 /**
1234 * The new virtual router specification to apply. This overwrites the existing data.
1235 */
1236 spec: VirtualRouterSpec;
1237 /**
1238 * The name of the virtual router to update.
1239 */
1240 virtualRouterName: ResourceName;
1241 }
1242 export interface ListTagsForResourceInput {
1243 /**
1244 * The maximum number of tag results returned by ListTagsForResource in
1245 paginated output. When this parameter is used, ListTagsForResource returns
1246 only limit results in a single page along with a nextToken
1247 response element. You can see the remaining results of the initial request by sending
1248 another ListTagsForResource request with the returned nextToken
1249 value. This value can be between 1 and 100. If you don't use
1250 this parameter, ListTagsForResource returns up to 100
1251 results and a nextToken value if applicable.
1252 */
1253 limit?: TagsLimit;
1254 /**
1255 * The nextToken value returned from a previous paginated
1256 ListTagsForResource request where limit was used and the
1257 results exceeded the value of that parameter. Pagination continues from the end of the
1258 previous results that returned the nextToken value.
1259 */
1260 nextToken?: String;
1261 /**
1262 * The Amazon Resource Name (ARN) that identifies the resource to list the tags for.
1263 */
1264 resourceArn: Arn;
1265 }
1266 export type GrpcRetryPolicyEvents = GrpcRetryPolicyEvent[];
1267 export interface DescribeMeshOutput {
1268 /**
1269 * The full description of your service mesh.
1270 */
1271 mesh: MeshData;
1272 }
1273 export interface DeleteVirtualRouterInput {
1274 /**
1275 * The name of the service mesh to delete the virtual router in.
1276 */
1277 meshName: ResourceName;
1278 /**
1279 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1280 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1281 */
1282 meshOwner?: AccountId;
1283 /**
1284 * The name of the virtual router to delete.
1285 */
1286 virtualRouterName: ResourceName;
1287 }
1288 export interface DescribeRouteInput {
1289 /**
1290 * The name of the service mesh that the route resides in.
1291 */
1292 meshName: ResourceName;
1293 /**
1294 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1295 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1296 */
1297 meshOwner?: AccountId;
1298 /**
1299 * The name of the route to describe.
1300 */
1301 routeName: ResourceName;
1302 /**
1303 * The name of the virtual router that the route is associated with.
1304 */
1305 virtualRouterName: ResourceName;
1306 }
1307 export interface DeleteRouteOutput {
1308 /**
1309 * The route that was deleted.
1310 */
1311 route: RouteData;
1312 }
1313 export type Listeners = Listener[];
1314 export type Backends = Backend[];
1315 export type PortProtocol = "grpc"|"http"|"http2"|"tcp"|string;
1316 export type VirtualNodeStatusCode = "ACTIVE"|"DELETED"|"INACTIVE"|string;
1317 export type ServiceName = string;
1318 export interface UpdateVirtualServiceInput {
1319 /**
1320 * Unique, case-sensitive identifier that you provide to ensure the idempotency of the
1321request. Up to 36 letters, numbers, hyphens, and underscores are allowed.
1322 */
1323 clientToken?: String;
1324 /**
1325 * The name of the service mesh that the virtual service resides in.
1326 */
1327 meshName: ResourceName;
1328 /**
1329 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1330 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1331 */
1332 meshOwner?: AccountId;
1333 /**
1334 * The new virtual service specification to apply. This overwrites the existing
1335 data.
1336 */
1337 spec: VirtualServiceSpec;
1338 /**
1339 * The name of the virtual service to update.
1340 */
1341 virtualServiceName: ServiceName;
1342 }
1343 export type HealthCheckThreshold = number;
1344 export interface UpdateRouteOutput {
1345 /**
1346 * A full description of the route that was updated.
1347 */
1348 route: RouteData;
1349 }
1350 export type PercentInt = number;
1351 export type MethodName = string;
1352 export type TagValue = string;
1353 export interface HttpRouteAction {
1354 /**
1355 * An object that represents the targets that traffic is routed to when a request matches the route.
1356 */
1357 weightedTargets: WeightedTargets;
1358 }
1359 export interface ListRoutesInput {
1360 /**
1361 * The maximum number of results returned by ListRoutes in paginated output.
1362 When you use this parameter, ListRoutes returns only limit
1363 results in a single page along with a nextToken response element. You can see
1364 the remaining results of the initial request by sending another ListRoutes
1365 request with the returned nextToken value. This value can be between
1366 1 and 100. If you don't use this parameter,
1367 ListRoutes returns up to 100 results and a
1368 nextToken value if applicable.
1369 */
1370 limit?: ListRoutesLimit;
1371 /**
1372 * The name of the service mesh to list routes in.
1373 */
1374 meshName: ResourceName;
1375 /**
1376 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1377 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1378 */
1379 meshOwner?: AccountId;
1380 /**
1381 * The nextToken value returned from a previous paginated
1382 ListRoutes request where limit was used and the results
1383 exceeded the value of that parameter. Pagination continues from the end of the previous
1384 results that returned the nextToken value.
1385 */
1386 nextToken?: String;
1387 /**
1388 * The name of the virtual router to list routes in.
1389 */
1390 virtualRouterName: ResourceName;
1391 }
1392 export interface VirtualServiceRef {
1393 /**
1394 * The full Amazon Resource Name (ARN) for the virtual service.
1395 */
1396 arn: Arn;
1397 /**
1398 * The name of the service mesh that the virtual service resides in.
1399 */
1400 meshName: ResourceName;
1401 /**
1402 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1403 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1404 */
1405 meshOwner: AccountId;
1406 /**
1407 * The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's
1408 the ID of the mesh owner, or another account that the mesh is shared with. For more information about mesh sharing, see Working with Shared Meshes.
1409 */
1410 resourceOwner: AccountId;
1411 /**
1412 * The name of the virtual service.
1413 */
1414 virtualServiceName: ServiceName;
1415 }
1416 export interface VirtualNodeStatus {
1417 /**
1418 * The current status of the virtual node.
1419 */
1420 status: VirtualNodeStatusCode;
1421 }
1422 export interface VirtualRouterRef {
1423 /**
1424 * The full Amazon Resource Name (ARN) for the virtual router.
1425 */
1426 arn: Arn;
1427 /**
1428 * The name of the service mesh that the virtual router resides in.
1429 */
1430 meshName: ResourceName;
1431 /**
1432 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1433 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1434 */
1435 meshOwner: AccountId;
1436 /**
1437 * The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's
1438 the ID of the mesh owner, or another account that the mesh is shared with. For more information about mesh sharing, see Working with Shared Meshes.
1439 */
1440 resourceOwner: AccountId;
1441 /**
1442 * The name of the virtual router.
1443 */
1444 virtualRouterName: ResourceName;
1445 }
1446 export interface VirtualServiceData {
1447 /**
1448 * The name of the service mesh that the virtual service resides in.
1449 */
1450 meshName: ResourceName;
1451 metadata: ResourceMetadata;
1452 /**
1453 * The specifications of the virtual service.
1454 */
1455 spec: VirtualServiceSpec;
1456 /**
1457 * The current status of the virtual service.
1458 */
1459 status: VirtualServiceStatus;
1460 /**
1461 * The name of the virtual service.
1462 */
1463 virtualServiceName: ServiceName;
1464 }
1465 export interface HttpRouteHeader {
1466 /**
1467 * Specify True to match anything except the match criteria. The default value is False.
1468 */
1469 invert?: Boolean;
1470 /**
1471 * The HeaderMatchMethod object.
1472 */
1473 match?: HeaderMatchMethod;
1474 /**
1475 * A name for the HTTP header in the client request that will be matched on.
1476 */
1477 name: HeaderName;
1478 }
1479 export type FilePath = string;
1480 export type AwsCloudMapInstanceAttributes = AwsCloudMapInstanceAttribute[];
1481 export interface VirtualNodeRef {
1482 /**
1483 * The full Amazon Resource Name (ARN) for the virtual node.
1484 */
1485 arn: Arn;
1486 /**
1487 * The name of the service mesh that the virtual node resides in.
1488 */
1489 meshName: ResourceName;
1490 /**
1491 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1492 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1493 */
1494 meshOwner: AccountId;
1495 /**
1496 * The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's
1497 the ID of the mesh owner, or another account that the mesh is shared with. For more information about mesh sharing, see Working with Shared Meshes.
1498 */
1499 resourceOwner: AccountId;
1500 /**
1501 * The name of the virtual node.
1502 */
1503 virtualNodeName: ResourceName;
1504 }
1505 export interface CreateMeshInput {
1506 /**
1507 * Unique, case-sensitive identifier that you provide to ensure the idempotency of the
1508request. Up to 36 letters, numbers, hyphens, and underscores are allowed.
1509 */
1510 clientToken?: String;
1511 /**
1512 * The name to use for the service mesh.
1513 */
1514 meshName: ResourceName;
1515 /**
1516 * The service mesh specification to apply.
1517 */
1518 spec?: MeshSpec;
1519 /**
1520 * Optional metadata that you can apply to the service mesh to assist with categorization
1521 and organization. Each tag consists of a key and an optional value, both of which you
1522 define. Tag keys can have a maximum character length of 128 characters, and tag values can have
1523 a maximum length of 256 characters.
1524 */
1525 tags?: TagList;
1526 }
1527 export interface GrpcRouteAction {
1528 /**
1529 * An object that represents the targets that traffic is routed to when a request matches the route.
1530 */
1531 weightedTargets: WeightedTargets;
1532 }
1533 export interface UpdateMeshOutput {
1534 mesh: MeshData;
1535 }
1536 export interface GrpcRouteMetadataMatchMethod {
1537 /**
1538 * The value sent by the client must match the specified value exactly.
1539 */
1540 exact?: HeaderMatch;
1541 /**
1542 * The value sent by the client must begin with the specified characters.
1543 */
1544 prefix?: HeaderMatch;
1545 /**
1546 * An object that represents the range of values to match on.
1547 */
1548 range?: MatchRange;
1549 /**
1550 * The value sent by the client must include the specified characters.
1551 */
1552 regex?: HeaderMatch;
1553 /**
1554 * The value sent by the client must end with the specified characters.
1555 */
1556 suffix?: HeaderMatch;
1557 }
1558 export interface DescribeVirtualServiceInput {
1559 /**
1560 * The name of the service mesh that the virtual service resides in.
1561 */
1562 meshName: ResourceName;
1563 /**
1564 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1565 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1566 */
1567 meshOwner?: AccountId;
1568 /**
1569 * The name of the virtual service to describe.
1570 */
1571 virtualServiceName: ServiceName;
1572 }
1573 export type ListVirtualServicesLimit = number;
1574 export interface AwsCloudMapInstanceAttribute {
1575 /**
1576 * The name of an AWS Cloud Map service instance attribute key. Any AWS Cloud Map service
1577 instance that contains the specified key and value is returned.
1578 */
1579 key: AwsCloudMapInstanceAttributeKey;
1580 /**
1581 * The value of an AWS Cloud Map service instance attribute key. Any AWS Cloud Map service
1582 instance that contains the specified key and value is returned.
1583 */
1584 value: AwsCloudMapInstanceAttributeValue;
1585 }
1586 export interface VirtualServiceSpec {
1587 /**
1588 * The App Mesh object that is acting as the provider for a virtual service. You can specify
1589 a single virtual node or virtual router.
1590 */
1591 provider?: VirtualServiceProvider;
1592 }
1593 export interface MatchRange {
1594 /**
1595 * The end of the range.
1596 */
1597 end: Long;
1598 /**
1599 * The start of the range.
1600 */
1601 start: Long;
1602 }
1603 export type ListVirtualRoutersLimit = number;
1604 export type HealthCheckIntervalMillis = number;
1605 export type VirtualRouterList = VirtualRouterRef[];
1606 export type Arn = string;
1607 export interface TcpRoute {
1608 /**
1609 * The action to take if a match is determined.
1610 */
1611 action: TcpRouteAction;
1612 }
1613 export type VirtualNodeList = VirtualNodeRef[];
1614 export interface ListVirtualRoutersInput {
1615 /**
1616 * The maximum number of results returned by ListVirtualRouters in paginated
1617 output. When you use this parameter, ListVirtualRouters returns only
1618 limit results in a single page along with a nextToken response
1619 element. You can see the remaining results of the initial request by sending another
1620 ListVirtualRouters request with the returned nextToken value.
1621 This value can be between 1 and 100. If you don't use this
1622 parameter, ListVirtualRouters returns up to 100 results and
1623 a nextToken value if applicable.
1624 */
1625 limit?: ListVirtualRoutersLimit;
1626 /**
1627 * The name of the service mesh to list virtual routers in.
1628 */
1629 meshName: ResourceName;
1630 /**
1631 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1632 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1633 */
1634 meshOwner?: AccountId;
1635 /**
1636 * The nextToken value returned from a previous paginated
1637 ListVirtualRouters request where limit was used and the
1638 results exceeded the value of that parameter. Pagination continues from the end of the
1639 previous results that returned the nextToken value.
1640 */
1641 nextToken?: String;
1642 }
1643 export type DurationUnit = "ms"|"s"|string;
1644 export type RoutePriority = number;
1645 export interface ListVirtualServicesInput {
1646 /**
1647 * The maximum number of results returned by ListVirtualServices in paginated
1648 output. When you use this parameter, ListVirtualServices returns only
1649 limit results in a single page along with a nextToken response
1650 element. You can see the remaining results of the initial request by sending another
1651 ListVirtualServices request with the returned nextToken value.
1652 This value can be between 1 and 100. If you don't use this
1653 parameter, ListVirtualServices returns up to 100 results and
1654 a nextToken value if applicable.
1655 */
1656 limit?: ListVirtualServicesLimit;
1657 /**
1658 * The name of the service mesh to list virtual services in.
1659 */
1660 meshName: ResourceName;
1661 /**
1662 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1663 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1664 */
1665 meshOwner?: AccountId;
1666 /**
1667 * The nextToken value returned from a previous paginated
1668 ListVirtualServices request where limit was used and the
1669 results exceeded the value of that parameter. Pagination continues from the end of the
1670 previous results that returned the nextToken value.
1671 */
1672 nextToken?: String;
1673 }
1674 export interface AccessLog {
1675 /**
1676 * The file object to send virtual node access logs to.
1677 */
1678 file?: FileAccessLog;
1679 }
1680 export interface ListVirtualNodesInput {
1681 /**
1682 * The maximum number of results returned by ListVirtualNodes in paginated
1683 output. When you use this parameter, ListVirtualNodes returns only
1684 limit results in a single page along with a nextToken response
1685 element. You can see the remaining results of the initial request by sending another
1686 ListVirtualNodes request with the returned nextToken value.
1687 This value can be between 1 and 100. If you don't use this
1688 parameter, ListVirtualNodes returns up to 100 results and a
1689 nextToken value if applicable.
1690 */
1691 limit?: ListVirtualNodesLimit;
1692 /**
1693 * The name of the service mesh to list virtual nodes in.
1694 */
1695 meshName: ResourceName;
1696 /**
1697 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1698 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1699 */
1700 meshOwner?: AccountId;
1701 /**
1702 * The nextToken value returned from a previous paginated
1703 ListVirtualNodes request where limit was used and the results
1704 exceeded the value of that parameter. Pagination continues from the end of the previous
1705 results that returned the nextToken value.
1706 */
1707 nextToken?: String;
1708 }
1709 export type ListVirtualNodesLimit = number;
1710 export type HealthCheckTimeoutMillis = number;
1711 export type ResourceName = string;
1712 export type Timestamp = Date;
1713 export type HeaderMatch = string;
1714 export type AccountId = string;
1715 export interface Duration {
1716 /**
1717 * A unit of time.
1718 */
1719 unit?: DurationUnit;
1720 /**
1721 * A number of time units.
1722 */
1723 value?: DurationValue;
1724 }
1725 export interface DescribeRouteOutput {
1726 /**
1727 * The full description of your route.
1728 */
1729 route: RouteData;
1730 }
1731 export interface HttpRouteMatch {
1732 /**
1733 * An object that represents the client request headers to match on.
1734 */
1735 headers?: HttpRouteHeaders;
1736 /**
1737 * The client request method to match on. Specify only one.
1738 */
1739 method?: HttpMethod;
1740 /**
1741 * Specifies the path to match requests with. This parameter must always start with
1742 /, which by itself matches all requests to the virtual service name. You
1743 can also match for path-based routing of requests. For example, if your virtual service
1744 name is my-service.local and you want the route to match requests to
1745 my-service.local/metrics, your prefix should be
1746 /metrics.
1747 */
1748 prefix: String;
1749 /**
1750 * The client request scheme to match on. Specify only one.
1751 */
1752 scheme?: HttpScheme;
1753 }
1754 export interface TagRef {
1755 /**
1756 * One part of a key-value pair that make up a tag. A key is a general label
1757 that acts like a category for more specific tag values.
1758 */
1759 key: TagKey;
1760 /**
1761 * The optional part of a key-value pair that make up a tag. A value acts as a
1762 descriptor within a tag category (key).
1763 */
1764 value?: TagValue;
1765 }
1766 export interface MeshRef {
1767 /**
1768 * The full Amazon Resource Name (ARN) of the service mesh.
1769 */
1770 arn: Arn;
1771 /**
1772 * The name of the service mesh.
1773 */
1774 meshName: ResourceName;
1775 /**
1776 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1777 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1778 */
1779 meshOwner: AccountId;
1780 /**
1781 * The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's
1782 the ID of the mesh owner, or another account that the mesh is shared with. For more information about mesh sharing, see Working with Shared Meshes.
1783 */
1784 resourceOwner: AccountId;
1785 }
1786 export type MeshStatusCode = "ACTIVE"|"DELETED"|"INACTIVE"|string;
1787 export interface MeshData {
1788 /**
1789 * The name of the service mesh.
1790 */
1791 meshName: ResourceName;
1792 /**
1793 * The associated metadata for the service mesh.
1794 */
1795 metadata: ResourceMetadata;
1796 /**
1797 * The associated specification for the service mesh.
1798 */
1799 spec: MeshSpec;
1800 /**
1801 * The status of the service mesh.
1802 */
1803 status: MeshStatus;
1804 }
1805 export interface VirtualRouterStatus {
1806 /**
1807 * The current status of the virtual router.
1808 */
1809 status: VirtualRouterStatusCode;
1810 }
1811 export interface TcpRouteAction {
1812 /**
1813 * An object that represents the targets that traffic is routed to when a request matches the route.
1814 */
1815 weightedTargets: WeightedTargets;
1816 }
1817 export interface DescribeVirtualNodeInput {
1818 /**
1819 * The name of the service mesh that the virtual node resides in.
1820 */
1821 meshName: ResourceName;
1822 /**
1823 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1824 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1825 */
1826 meshOwner?: AccountId;
1827 /**
1828 * The name of the virtual node to describe.
1829 */
1830 virtualNodeName: ResourceName;
1831 }
1832 export interface RouteStatus {
1833 /**
1834 * The current status for the route.
1835 */
1836 status: RouteStatusCode;
1837 }
1838 export interface Listener {
1839 /**
1840 * The health check information for the listener.
1841 */
1842 healthCheck?: HealthCheckPolicy;
1843 /**
1844 * The port mapping information for the listener.
1845 */
1846 portMapping: PortMapping;
1847 /**
1848 * A reference to an object that represents the Transport Layer Security (TLS) properties for a listener.
1849 */
1850 tls?: ListenerTls;
1851 }
1852 export interface GrpcRoute {
1853 /**
1854 * An object that represents the action to take if a match is determined.
1855 */
1856 action: GrpcRouteAction;
1857 /**
1858 * An object that represents the criteria for determining a request match.
1859 */
1860 match: GrpcRouteMatch;
1861 /**
1862 * An object that represents a retry policy.
1863 */
1864 retryPolicy?: GrpcRetryPolicy;
1865 }
1866 export type ListRoutesLimit = number;
1867 export interface ClientPolicyTls {
1868 /**
1869 * Whether the policy is enforced. The default is True, if a value isn't specified.
1870 */
1871 enforce?: Boolean;
1872 /**
1873 * The range of ports that the policy is enforced for.
1874 */
1875 ports?: PortSet;
1876 /**
1877 * A reference to an object that represents a TLS validation context.
1878 */
1879 validation: TlsValidationContext;
1880 }
1881 export interface DeleteVirtualServiceOutput {
1882 /**
1883 * The virtual service that was deleted.
1884 */
1885 virtualService: VirtualServiceData;
1886 }
1887 export interface VirtualNodeServiceProvider {
1888 /**
1889 * The name of the virtual node that is acting as a service provider.
1890 */
1891 virtualNodeName: ResourceName;
1892 }
1893 export interface BackendDefaults {
1894 /**
1895 * A reference to an object that represents a client policy.
1896 */
1897 clientPolicy?: ClientPolicy;
1898 }
1899 export interface ListenerTlsFileCertificate {
1900 /**
1901 * The certificate chain for the certificate.
1902 */
1903 certificateChain: FilePath;
1904 /**
1905 * The private key for a certificate stored on the file system of the virtual node that the proxy is running on.
1906 */
1907 privateKey: FilePath;
1908 }
1909 export interface HttpRetryPolicy {
1910 /**
1911 * Specify at least one of the following values.
1912
1913
1914
1915 server-error – HTTP status codes 500, 501,
1916 502, 503, 504, 505, 506, 507, 508, 510, and 511
1917
1918
1919
1920 gateway-error – HTTP status codes 502,
1921 503, and 504
1922
1923
1924
1925 client-error – HTTP status code 409
1926
1927
1928
1929 stream-error – Retry on refused
1930 stream
1931
1932
1933 */
1934 httpRetryEvents?: HttpRetryPolicyEvents;
1935 /**
1936 * The maximum number of retry attempts.
1937 */
1938 maxRetries: MaxRetries;
1939 /**
1940 * An object that represents a duration of time.
1941 */
1942 perRetryTimeout: Duration;
1943 /**
1944 * Specify a valid value.
1945 */
1946 tcpRetryEvents?: TcpRetryPolicyEvents;
1947 }
1948 export interface DescribeVirtualRouterInput {
1949 /**
1950 * The name of the service mesh that the virtual router resides in.
1951 */
1952 meshName: ResourceName;
1953 /**
1954 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
1955 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
1956 */
1957 meshOwner?: AccountId;
1958 /**
1959 * The name of the virtual router to describe.
1960 */
1961 virtualRouterName: ResourceName;
1962 }
1963 export interface TagResourceOutput {
1964 }
1965 export type RouteList = RouteRef[];
1966 export type PortNumber = number;
1967 export interface TlsValidationContextFileTrust {
1968 /**
1969 * The certificate trust chain for a certificate stored on the file system of the virtual node that the proxy is running on.
1970 */
1971 certificateChain: FilePath;
1972 }
1973 export interface GrpcRouteMetadata {
1974 /**
1975 * Specify True to match anything except the match criteria. The default value is False.
1976 */
1977 invert?: Boolean;
1978 /**
1979 * An object that represents the data to match from the request.
1980 */
1981 match?: GrpcRouteMetadataMatchMethod;
1982 /**
1983 * The name of the route.
1984 */
1985 name: HeaderName;
1986 }
1987 export interface CreateRouteInput {
1988 /**
1989 * Unique, case-sensitive identifier that you provide to ensure the idempotency of the
1990request. Up to 36 letters, numbers, hyphens, and underscores are allowed.
1991 */
1992 clientToken?: String;
1993 /**
1994 * The name of the service mesh to create the route in.
1995 */
1996 meshName: ResourceName;
1997 /**
1998 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then
1999 the account that you specify must share the mesh with your account before you can create
2000 the resource in the service mesh. For more information about mesh sharing, see Working with Shared Meshes.
2001 */
2002 meshOwner?: AccountId;
2003 /**
2004 * The name to use for the route.
2005 */
2006 routeName: ResourceName;
2007 /**
2008 * The route specification to apply.
2009 */
2010 spec: RouteSpec;
2011 /**
2012 * Optional metadata that you can apply to the route to assist with categorization and
2013 organization. Each tag consists of a key and an optional value, both of which you define.
2014 Tag keys can have a maximum character length of 128 characters, and tag values can have
2015 a maximum length of 256 characters.
2016 */
2017 tags?: TagList;
2018 /**
2019 * The name of the virtual router in which to create the route. If the virtual router is in a shared mesh,
2020 then you must be the owner of the virtual router resource.
2021 */
2022 virtualRouterName: ResourceName;
2023 }
2024 export type WeightedTargets = WeightedTarget[];
2025 export type HttpRouteHeaders = HttpRouteHeader[];
2026 export type String = string;
2027 export type HttpScheme = "http"|"https"|string;
2028 export interface UpdateRouteInput {
2029 /**
2030 * Unique, case-sensitive identifier that you provide to ensure the idempotency of the
2031request. Up to 36 letters, numbers, hyphens, and underscores are allowed.
2032 */
2033 clientToken?: String;
2034 /**
2035 * The name of the service mesh that the route resides in.
2036 */
2037 meshName: ResourceName;
2038 /**
2039 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
2040 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
2041 */
2042 meshOwner?: AccountId;
2043 /**
2044 * The name of the route to update.
2045 */
2046 routeName: ResourceName;
2047 /**
2048 * The new route specification to apply. This overwrites the existing data.
2049 */
2050 spec: RouteSpec;
2051 /**
2052 * The name of the virtual router that the route is associated with.
2053 */
2054 virtualRouterName: ResourceName;
2055 }
2056 export interface HttpRoute {
2057 /**
2058 * An object that represents the action to take if a match is determined.
2059 */
2060 action: HttpRouteAction;
2061 /**
2062 * An object that represents the criteria for determining a request match.
2063 */
2064 match: HttpRouteMatch;
2065 /**
2066 * An object that represents a retry policy.
2067 */
2068 retryPolicy?: HttpRetryPolicy;
2069 }
2070 export interface DescribeMeshInput {
2071 /**
2072 * The name of the service mesh to describe.
2073 */
2074 meshName: ResourceName;
2075 /**
2076 * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's
2077 the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.
2078 */
2079 meshOwner?: AccountId;
2080 }
2081 export interface MeshSpec {
2082 /**
2083 * The egress filter rules for the service mesh.
2084 */
2085 egressFilter?: EgressFilter;
2086 }
2087 export interface ListTagsForResourceOutput {
2088 /**
2089 * The nextToken value to include in a future ListTagsForResource
2090 request. When the results of a ListTagsForResource request exceed
2091 limit, you can use this value to retrieve the next page of results. This
2092 value is null when there are no more results to return.
2093 */
2094 nextToken?: String;
2095 /**
2096 * The tags for the resource.
2097 */
2098 tags: TagList;
2099 }
2100 export interface ServiceDiscovery {
2101 /**
2102 * Specifies any AWS Cloud Map information for the virtual node.
2103 */
2104 awsCloudMap?: AwsCloudMapServiceDiscovery;
2105 /**
2106 * Specifies the DNS information for the virtual node.
2107 */
2108 dns?: DnsServiceDiscovery;
2109 }
2110 export interface ListVirtualNodesOutput {
2111 /**
2112 * The nextToken value to include in a future ListVirtualNodes
2113 request. When the results of a ListVirtualNodes request exceed
2114 limit, you can use this value to retrieve the next page of results. This
2115 value is null when there are no more results to return.
2116 */
2117 nextToken?: String;
2118 /**
2119 * The list of existing virtual nodes for the specified service mesh.
2120 */
2121 virtualNodes: VirtualNodeList;
2122 }
2123 export interface UntagResourceInput {
2124 /**
2125 * The Amazon Resource Name (ARN) of the resource to delete tags from.
2126 */
2127 resourceArn: Arn;
2128 /**
2129 * The keys of the tags to be removed.
2130 */
2131 tagKeys: TagKeyList;
2132 }
2133 export interface ListenerTlsAcmCertificate {
2134 /**
2135 * The Amazon Resource Name (ARN) for the certificate. The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see Transport Layer Security (TLS).
2136 */
2137 certificateArn: Arn;
2138 }
2139 export type TagKey = string;
2140 export type VirtualServiceStatusCode = "ACTIVE"|"DELETED"|"INACTIVE"|string;
2141 /**
2142 * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
2143 */
2144 export type apiVersion = "2018-10-01"|"2018-10-01"|"2019-01-25"|"latest"|string;
2145 export interface ClientApiVersions {
2146 /**
2147 * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
2148 */
2149 apiVersion?: apiVersion;
2150 }
2151 export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions;
2152 /**
2153 * Contains interfaces for use with the AppMesh client.
2154 */
2155 export import Types = AppMesh;
2156}
2157export = AppMesh;