

# Actions
<a name="API_Operations"></a>

The following actions are supported:
+  [CreateGatewayRoute](API_CreateGatewayRoute.md) 
+  [CreateMesh](API_CreateMesh.md) 
+  [CreateRoute](API_CreateRoute.md) 
+  [CreateVirtualGateway](API_CreateVirtualGateway.md) 
+  [CreateVirtualNode](API_CreateVirtualNode.md) 
+  [CreateVirtualRouter](API_CreateVirtualRouter.md) 
+  [CreateVirtualService](API_CreateVirtualService.md) 
+  [DeleteGatewayRoute](API_DeleteGatewayRoute.md) 
+  [DeleteMesh](API_DeleteMesh.md) 
+  [DeleteRoute](API_DeleteRoute.md) 
+  [DeleteVirtualGateway](API_DeleteVirtualGateway.md) 
+  [DeleteVirtualNode](API_DeleteVirtualNode.md) 
+  [DeleteVirtualRouter](API_DeleteVirtualRouter.md) 
+  [DeleteVirtualService](API_DeleteVirtualService.md) 
+  [DescribeGatewayRoute](API_DescribeGatewayRoute.md) 
+  [DescribeMesh](API_DescribeMesh.md) 
+  [DescribeRoute](API_DescribeRoute.md) 
+  [DescribeVirtualGateway](API_DescribeVirtualGateway.md) 
+  [DescribeVirtualNode](API_DescribeVirtualNode.md) 
+  [DescribeVirtualRouter](API_DescribeVirtualRouter.md) 
+  [DescribeVirtualService](API_DescribeVirtualService.md) 
+  [ListGatewayRoutes](API_ListGatewayRoutes.md) 
+  [ListMeshes](API_ListMeshes.md) 
+  [ListRoutes](API_ListRoutes.md) 
+  [ListTagsForResource](API_ListTagsForResource.md) 
+  [ListVirtualGateways](API_ListVirtualGateways.md) 
+  [ListVirtualNodes](API_ListVirtualNodes.md) 
+  [ListVirtualRouters](API_ListVirtualRouters.md) 
+  [ListVirtualServices](API_ListVirtualServices.md) 
+  [TagResource](API_TagResource.md) 
+  [UntagResource](API_UntagResource.md) 
+  [UpdateGatewayRoute](API_UpdateGatewayRoute.md) 
+  [UpdateMesh](API_UpdateMesh.md) 
+  [UpdateRoute](API_UpdateRoute.md) 
+  [UpdateVirtualGateway](API_UpdateVirtualGateway.md) 
+  [UpdateVirtualNode](API_UpdateVirtualNode.md) 
+  [UpdateVirtualRouter](API_UpdateVirtualRouter.md) 
+  [UpdateVirtualService](API_UpdateVirtualService.md) 

# CreateGatewayRoute
<a name="API_CreateGatewayRoute"></a>

Creates a gateway route.

A gateway route is attached to a virtual gateway and routes traffic to an existing virtual service. If a route matches a request, it can distribute traffic to a target virtual service.

For more information about gateway routes, see [Gateway routes](https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html).

## Request Syntax
<a name="API_CreateGatewayRoute_RequestSyntax"></a>

```
PUT /v20190125/meshes/meshName/virtualGateway/virtualGatewayName/gatewayRoutes?meshOwner=meshOwner HTTP/1.1
Content-type: application/json

{
   "clientToken": "string",
   "gatewayRouteName": "string",
   "spec": { 
      "grpcRoute": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "metadata": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "port": number,
            "serviceName": "string"
         }
      },
      "http2Route": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               },
               "path": { 
                  "exact": "string"
               },
               "prefix": { 
                  "defaultPrefix": "string",
                  "value": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ]
         }
      },
      "httpRoute": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               },
               "path": { 
                  "exact": "string"
               },
               "prefix": { 
                  "defaultPrefix": "string",
                  "value": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ]
         }
      },
      "priority": number
   },
   "tags": [ 
      { 
         "key": "string",
         "value": "string"
      }
   ]
}
```

## URI Request Parameters
<a name="API_CreateGatewayRoute_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_CreateGatewayRoute_RequestSyntax) **   <a name="appmesh-CreateGatewayRoute-request-uri-meshName"></a>
The name of the service mesh to create the gateway route in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_CreateGatewayRoute_RequestSyntax) **   <a name="appmesh-CreateGatewayRoute-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualGatewayName](#API_CreateGatewayRoute_RequestSyntax) **   <a name="appmesh-CreateGatewayRoute-request-uri-virtualGatewayName"></a>
The name of the virtual gateway to associate the gateway route with. If the virtual gateway is in a shared mesh, then you must be the owner of the virtual gateway resource.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_CreateGatewayRoute_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [clientToken](#API_CreateGatewayRoute_RequestSyntax) **   <a name="appmesh-CreateGatewayRoute-request-clientToken"></a>
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.  
Type: String  
Required: No

 ** [gatewayRouteName](#API_CreateGatewayRoute_RequestSyntax) **   <a name="appmesh-CreateGatewayRoute-request-gatewayRouteName"></a>
The name to use for the gateway route.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [spec](#API_CreateGatewayRoute_RequestSyntax) **   <a name="appmesh-CreateGatewayRoute-request-spec"></a>
The gateway route specification to apply.  
Type: [GatewayRouteSpec](API_GatewayRouteSpec.md) object  
Required: Yes

 ** [tags](#API_CreateGatewayRoute_RequestSyntax) **   <a name="appmesh-CreateGatewayRoute-request-tags"></a>
Optional metadata that you can apply to the gateway route to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.  
Type: Array of [TagRef](API_TagRef.md) objects  
Array Members: Minimum number of 0 items. Maximum number of 50 items.  
Required: No

## Response Syntax
<a name="API_CreateGatewayRoute_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "gatewayRouteName": "string",
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "grpcRoute": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "metadata": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "port": number,
            "serviceName": "string"
         }
      },
      "http2Route": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               },
               "path": { 
                  "exact": "string"
               },
               "prefix": { 
                  "defaultPrefix": "string",
                  "value": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ]
         }
      },
      "httpRoute": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               },
               "path": { 
                  "exact": "string"
               },
               "prefix": { 
                  "defaultPrefix": "string",
                  "value": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ]
         }
      },
      "priority": number
   },
   "status": { 
      "status": "string"
   },
   "virtualGatewayName": "string"
}
```

## Response Elements
<a name="API_CreateGatewayRoute_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [gatewayRouteName](#API_CreateGatewayRoute_ResponseSyntax) **   <a name="appmesh-CreateGatewayRoute-response-gatewayRouteName"></a>
The name of the gateway route.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [meshName](#API_CreateGatewayRoute_ResponseSyntax) **   <a name="appmesh-CreateGatewayRoute-response-meshName"></a>
The name of the service mesh that the resource resides in.   
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_CreateGatewayRoute_ResponseSyntax) **   <a name="appmesh-CreateGatewayRoute-response-metadata"></a>
An object that represents metadata for a resource.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_CreateGatewayRoute_ResponseSyntax) **   <a name="appmesh-CreateGatewayRoute-response-spec"></a>
The specifications of the gateway route.  
Type: [GatewayRouteSpec](API_GatewayRouteSpec.md) object

 ** [status](#API_CreateGatewayRoute_ResponseSyntax) **   <a name="appmesh-CreateGatewayRoute-response-status"></a>
The status of the gateway route.  
Type: [GatewayRouteStatus](API_GatewayRouteStatus.md) object

 ** [virtualGatewayName](#API_CreateGatewayRoute_ResponseSyntax) **   <a name="appmesh-CreateGatewayRoute-response-virtualGatewayName"></a>
The virtual gateway that the gateway route is associated with.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_CreateGatewayRoute_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ConflictException **   
The request contains a client token that was used for a previous update resource call with different specifications. Try the request again with a new client token.  
HTTP Status Code: 409

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** LimitExceededException **   
You have exceeded a service limit for your account. For more information, see [Service Limits](https://docs.aws.amazon.com/app-mesh/latest/userguide/service-quotas.html) in the * AWS App Mesh User Guide*.  
HTTP Status Code: 400

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_CreateGatewayRoute_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_CreateGatewayRoute_Example_1"></a>

The following example creates an HTTP/2 gateway route named `myGatewayRoute` that is associated to a virtual gateway named `myVirtualGateway` in the `apps` service mesh. The route routes all traffic to the virtual service named `myservicea.svc.cluster.local`.

#### Sample Request
<a name="API_CreateGatewayRoute_Example_1_Request"></a>

```
PUT /v20190125/meshes/apps/virtualGateways HTTP/1.1
Host: appmesh.us-west-2.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.298 Python/3.6.0 Windows/10 botocore/1.13.34
X-Amz-Date: 20200608T194401Z
Authorization: AUTHPARAMS

{
	"gatewayRouteName": "myGatewayRoute",
	"spec": {
		"http2Route": {
			"action": {
				"target": {
					"virtualService": {
						"virtualServiceName": "myservicea.svc.cluster.local"
					}
				}
			},
			"match": {
				"prefix": "/"
			}
		}
	},
	"clientToken": "1aa1111a-1111-1111-111a-a1a1a1aa111a"
}
```

#### Sample Response
<a name="API_CreateGatewayRoute_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 696b569b-3593-446d-832c-0a38ce1c53ac
content-type: application/json
content-length: 517
date: Mon, 08 Jun 2020 19:44:02 GMT
x-envoy-upstream-service-time: 48
server: envoy
Connection: keep-alive

{
	"gatewayRouteName": "myGatewayRoute",
	"meshName": "myApps",
	"metadata": {
		"arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/apps/virtualGateway/myVirtualGateway/gatewayRoute/myGatewayRoute",
		"createdAt": 1.591642091122E9,
		"lastUpdatedAt": 1.591642091122E9,
		"meshOwner": "123456789012",
		"resourceOwner": "123456789012",
		"uid": "ff111ff2-33ff-4ff4-ffff-111f111f111f",
		"version": 1
	},
	"spec": {
		"grpcRoute": null,
		"http2Route": {
			"action": {
				"target": {
					"virtualService": {
						"virtualServiceName": "myservicea.svc.cluster.local"
					}
				}
			},
			"match": {
				"prefix": "/"
			}
		},
		"httpRoute": null
	},
	"status": {
		"status": "ACTIVE"
	},
	"virtualGatewayName": "myVirtualGateway"
}
```

## See Also
<a name="API_CreateGatewayRoute_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/CreateGatewayRoute) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/CreateGatewayRoute) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/CreateGatewayRoute) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/CreateGatewayRoute) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/CreateGatewayRoute) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/CreateGatewayRoute) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/CreateGatewayRoute) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/CreateGatewayRoute) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/CreateGatewayRoute) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/CreateGatewayRoute) 

# CreateMesh
<a name="API_CreateMesh"></a>

Creates a service mesh.

 A service mesh is a logical boundary for network traffic between services that are represented by resources within the mesh. After you create your service mesh, you can create virtual services, virtual nodes, virtual routers, and routes to distribute traffic between the applications in your mesh.

For more information about service meshes, see [Service meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/meshes.html).

## Request Syntax
<a name="API_CreateMesh_RequestSyntax"></a>

```
PUT /v20190125/meshes HTTP/1.1
Content-type: application/json

{
   "clientToken": "string",
   "meshName": "string",
   "spec": { 
      "egressFilter": { 
         "type": "string"
      },
      "serviceDiscovery": { 
         "ipPreference": "string"
      }
   },
   "tags": [ 
      { 
         "key": "string",
         "value": "string"
      }
   ]
}
```

## URI Request Parameters
<a name="API_CreateMesh_RequestParameters"></a>

The request does not use any URI parameters.

## Request Body
<a name="API_CreateMesh_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [clientToken](#API_CreateMesh_RequestSyntax) **   <a name="appmesh-CreateMesh-request-clientToken"></a>
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.  
Type: String  
Required: No

 ** [meshName](#API_CreateMesh_RequestSyntax) **   <a name="appmesh-CreateMesh-request-meshName"></a>
The name to use for the service mesh.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [spec](#API_CreateMesh_RequestSyntax) **   <a name="appmesh-CreateMesh-request-spec"></a>
The service mesh specification to apply.  
Type: [MeshSpec](API_MeshSpec.md) object  
Required: No

 ** [tags](#API_CreateMesh_RequestSyntax) **   <a name="appmesh-CreateMesh-request-tags"></a>
Optional metadata that you can apply to the service mesh to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.  
Type: Array of [TagRef](API_TagRef.md) objects  
Array Members: Minimum number of 0 items. Maximum number of 50 items.  
Required: No

## Response Syntax
<a name="API_CreateMesh_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "egressFilter": { 
         "type": "string"
      },
      "serviceDiscovery": { 
         "ipPreference": "string"
      }
   },
   "status": { 
      "status": "string"
   }
}
```

## Response Elements
<a name="API_CreateMesh_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_CreateMesh_ResponseSyntax) **   <a name="appmesh-CreateMesh-response-meshName"></a>
The name of the service mesh.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_CreateMesh_ResponseSyntax) **   <a name="appmesh-CreateMesh-response-metadata"></a>
The associated metadata for the service mesh.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_CreateMesh_ResponseSyntax) **   <a name="appmesh-CreateMesh-response-spec"></a>
The associated specification for the service mesh.  
Type: [MeshSpec](API_MeshSpec.md) object

 ** [status](#API_CreateMesh_ResponseSyntax) **   <a name="appmesh-CreateMesh-response-status"></a>
The status of the service mesh.  
Type: [MeshStatus](API_MeshStatus.md) object

## Errors
<a name="API_CreateMesh_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ConflictException **   
The request contains a client token that was used for a previous update resource call with different specifications. Try the request again with a new client token.  
HTTP Status Code: 409

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** LimitExceededException **   
You have exceeded a service limit for your account. For more information, see [Service Limits](https://docs.aws.amazon.com/app-mesh/latest/userguide/service-quotas.html) in the * AWS App Mesh User Guide*.  
HTTP Status Code: 400

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_CreateMesh_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_CreateMesh_Example_1"></a>

The following example creates a service mesh named `ecs-mesh`.

#### Sample Request
<a name="API_CreateMesh_Example_1_Request"></a>

```
PUT /v20190125/meshes HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190227T192324Z
Authorization: AUTHPARAMS

{
  "meshName": "ecs-mesh",
  "clientToken": "34a20934-da3a-43a0-9d1b-390308a7393b"
}
```

#### Sample Response
<a name="API_CreateMesh_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 5c2f774d-da0b-40f3-80c5-d8711eb15dce
content-type: application/json
content-length: 245
date: Wed, 27 Feb 2019 19:23:24 GMT
x-envoy-upstream-service-time: 76
server: envoy
Connection: keep-alive

{
	"meshName": "ecs-mesh",
	"metadata": {
		"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh",
		"createdAt": 1.551295405298E9,
		"lastUpdatedAt": 1.551295405298E9,
		"uid": "2d29a11c-f2dd-44a6-b620-33661cfdfe97",
		"version": 1
	},
	"status": {
		"status": "ACTIVE"
	}
}
```

## See Also
<a name="API_CreateMesh_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/CreateMesh) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/CreateMesh) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/CreateMesh) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/CreateMesh) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/CreateMesh) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/CreateMesh) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/CreateMesh) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/CreateMesh) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/CreateMesh) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/CreateMesh) 

# CreateRoute
<a name="API_CreateRoute"></a>

Creates a route that is associated with a virtual router.

 You can route several different protocols and define a retry policy for a route. Traffic can be routed to one or more virtual nodes.

For more information about routes, see [Routes](https://docs.aws.amazon.com/app-mesh/latest/userguide/routes.html).

## Request Syntax
<a name="API_CreateRoute_RequestSyntax"></a>

```
PUT /v20190125/meshes/meshName/virtualRouter/virtualRouterName/routes?meshOwner=meshOwner HTTP/1.1
Content-type: application/json

{
   "clientToken": "string",
   "routeName": "string",
   "spec": { 
      "grpcRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "metadata": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "methodName": "string",
            "port": number,
            "serviceName": "string"
         },
         "retryPolicy": { 
            "grpcRetryEvents": [ "string" ],
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "http2Route": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ],
            "scheme": "string"
         },
         "retryPolicy": { 
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "httpRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ],
            "scheme": "string"
         },
         "retryPolicy": { 
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "priority": number,
      "tcpRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "port": number
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            }
         }
      }
   },
   "tags": [ 
      { 
         "key": "string",
         "value": "string"
      }
   ]
}
```

## URI Request Parameters
<a name="API_CreateRoute_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_CreateRoute_RequestSyntax) **   <a name="appmesh-CreateRoute-request-uri-meshName"></a>
The name of the service mesh to create the route in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_CreateRoute_RequestSyntax) **   <a name="appmesh-CreateRoute-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualRouterName](#API_CreateRoute_RequestSyntax) **   <a name="appmesh-CreateRoute-request-uri-virtualRouterName"></a>
The name of the virtual router in which to create the route. If the virtual router is in a shared mesh, then you must be the owner of the virtual router resource.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_CreateRoute_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [clientToken](#API_CreateRoute_RequestSyntax) **   <a name="appmesh-CreateRoute-request-clientToken"></a>
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.  
Type: String  
Required: No

 ** [routeName](#API_CreateRoute_RequestSyntax) **   <a name="appmesh-CreateRoute-request-routeName"></a>
The name to use for the route.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [spec](#API_CreateRoute_RequestSyntax) **   <a name="appmesh-CreateRoute-request-spec"></a>
The route specification to apply.  
Type: [RouteSpec](API_RouteSpec.md) object  
Required: Yes

 ** [tags](#API_CreateRoute_RequestSyntax) **   <a name="appmesh-CreateRoute-request-tags"></a>
Optional metadata that you can apply to the route to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.  
Type: Array of [TagRef](API_TagRef.md) objects  
Array Members: Minimum number of 0 items. Maximum number of 50 items.  
Required: No

## Response Syntax
<a name="API_CreateRoute_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "routeName": "string",
   "spec": { 
      "grpcRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "metadata": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "methodName": "string",
            "port": number,
            "serviceName": "string"
         },
         "retryPolicy": { 
            "grpcRetryEvents": [ "string" ],
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "http2Route": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ],
            "scheme": "string"
         },
         "retryPolicy": { 
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "httpRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ],
            "scheme": "string"
         },
         "retryPolicy": { 
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "priority": number,
      "tcpRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "port": number
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            }
         }
      }
   },
   "status": { 
      "status": "string"
   },
   "virtualRouterName": "string"
}
```

## Response Elements
<a name="API_CreateRoute_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_CreateRoute_ResponseSyntax) **   <a name="appmesh-CreateRoute-response-meshName"></a>
The name of the service mesh that the route resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_CreateRoute_ResponseSyntax) **   <a name="appmesh-CreateRoute-response-metadata"></a>
The associated metadata for the route.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [routeName](#API_CreateRoute_ResponseSyntax) **   <a name="appmesh-CreateRoute-response-routeName"></a>
The name of the route.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [spec](#API_CreateRoute_ResponseSyntax) **   <a name="appmesh-CreateRoute-response-spec"></a>
The specifications of the route.  
Type: [RouteSpec](API_RouteSpec.md) object

 ** [status](#API_CreateRoute_ResponseSyntax) **   <a name="appmesh-CreateRoute-response-status"></a>
The status of the route.  
Type: [RouteStatus](API_RouteStatus.md) object

 ** [virtualRouterName](#API_CreateRoute_ResponseSyntax) **   <a name="appmesh-CreateRoute-response-virtualRouterName"></a>
The virtual router that the route is associated with.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_CreateRoute_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ConflictException **   
The request contains a client token that was used for a previous update resource call with different specifications. Try the request again with a new client token.  
HTTP Status Code: 409

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** LimitExceededException **   
You have exceeded a service limit for your account. For more information, see [Service Limits](https://docs.aws.amazon.com/app-mesh/latest/userguide/service-quotas.html) in the * AWS App Mesh User Guide*.  
HTTP Status Code: 400

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_CreateRoute_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_CreateRoute_Example_1"></a>

The following example creates a route named `colorgateway-route` for the `colorgateway-vr` virtual router in the `ecs-mesh` service mesh. The route directs all traffic to the `colorgateway-vn` virtual node.

#### Sample Request
<a name="API_CreateRoute_Example_1_Request"></a>

```
PUT /v20190125/meshes/ecs-mesh/virtualRouter/colorgateway-vr/routes HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190227T192454Z
Authorization: AUTHPARAMS

{
  "routeName": "colorgateway-route",
  "spec": {
    "httpRoute": {
      "action": {
        "weightedTargets": [
          {
            "virtualNode": "colorgateway-vn",
            "weight": 100
          }
        ]
      },
      "match": {
        "prefix": "/"
      }
    }
  },
  "clientToken": "a785b959-201d-49d7-b81d-32e7f393968f"
}
```

#### Sample Response
<a name="API_CreateRoute_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 159941a8-18be-423c-89fe-3beb9542ca3f
content-type: application/json
content-length: 511
date: Wed, 27 Feb 2019 19:24:54 GMT
x-envoy-upstream-service-time: 59
server: envoy
Connection: keep-alive

{
	"meshName": "ecs-mesh",
	"metadata": {
		"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualRouter/colorgateway-vr/route/colorgateway-route",
		"createdAt": 1.551295495004E9,
		"lastUpdatedAt": 1.551295495004E9,
		"uid": "3251bf37-2d01-4b79-be96-d0c36c61511f",
		"version": 1
	},
	"routeName": "colorgateway-route",
	"spec": {
		"httpRoute": {
			"action": {
				"weightedTargets": [{
					"virtualNode": "colorgateway-vn",
					"weight": 100
				}]
			},
			"match": {
				"prefix": "/"
			}
		},
		"tcpRoute": null
	},
	"status": {
		"status": "ACTIVE"
	},
	"virtualRouterName": "colorgateway-vr"
}
```

## See Also
<a name="API_CreateRoute_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/CreateRoute) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/CreateRoute) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/CreateRoute) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/CreateRoute) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/CreateRoute) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/CreateRoute) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/CreateRoute) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/CreateRoute) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/CreateRoute) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/CreateRoute) 

# CreateVirtualGateway
<a name="API_CreateVirtualGateway"></a>

Creates a virtual gateway.

A virtual gateway allows resources outside your mesh to communicate to resources that are inside your mesh. The virtual gateway represents an Envoy proxy running in an Amazon ECS task, in a Kubernetes service, or on an Amazon EC2 instance. Unlike a virtual node, which represents an Envoy running with an application, a virtual gateway represents Envoy deployed by itself.

For more information about virtual gateways, see [Virtual gateways](https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_gateways.html). 

## Request Syntax
<a name="API_CreateVirtualGateway_RequestSyntax"></a>

```
PUT /v20190125/meshes/meshName/virtualGateways?meshOwner=meshOwner HTTP/1.1
Content-type: application/json

{
   "clientToken": "string",
   "spec": { 
      "backendDefaults": { 
         "clientPolicy": { 
            "tls": { 
               "certificate": { ... },
               "enforce": boolean,
               "ports": [ number ],
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      },
      "listeners": [ 
         { 
            "connectionPool": { ... },
            "healthCheck": { 
               "healthyThreshold": number,
               "intervalMillis": number,
               "path": "string",
               "port": number,
               "protocol": "string",
               "timeoutMillis": number,
               "unhealthyThreshold": number
            },
            "portMapping": { 
               "port": number,
               "protocol": "string"
            },
            "tls": { 
               "certificate": { ... },
               "mode": "string",
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      ],
      "logging": { 
         "accessLog": { ... }
      }
   },
   "tags": [ 
      { 
         "key": "string",
         "value": "string"
      }
   ],
   "virtualGatewayName": "string"
}
```

## URI Request Parameters
<a name="API_CreateVirtualGateway_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_CreateVirtualGateway_RequestSyntax) **   <a name="appmesh-CreateVirtualGateway-request-uri-meshName"></a>
The name of the service mesh to create the virtual gateway in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_CreateVirtualGateway_RequestSyntax) **   <a name="appmesh-CreateVirtualGateway-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

## Request Body
<a name="API_CreateVirtualGateway_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [clientToken](#API_CreateVirtualGateway_RequestSyntax) **   <a name="appmesh-CreateVirtualGateway-request-clientToken"></a>
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.  
Type: String  
Required: No

 ** [spec](#API_CreateVirtualGateway_RequestSyntax) **   <a name="appmesh-CreateVirtualGateway-request-spec"></a>
The virtual gateway specification to apply.  
Type: [VirtualGatewaySpec](API_VirtualGatewaySpec.md) object  
Required: Yes

 ** [tags](#API_CreateVirtualGateway_RequestSyntax) **   <a name="appmesh-CreateVirtualGateway-request-tags"></a>
Optional metadata that you can apply to the virtual gateway to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.  
Type: Array of [TagRef](API_TagRef.md) objects  
Array Members: Minimum number of 0 items. Maximum number of 50 items.  
Required: No

 ** [virtualGatewayName](#API_CreateVirtualGateway_RequestSyntax) **   <a name="appmesh-CreateVirtualGateway-request-virtualGatewayName"></a>
The name to use for the virtual gateway.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Response Syntax
<a name="API_CreateVirtualGateway_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "backendDefaults": { 
         "clientPolicy": { 
            "tls": { 
               "certificate": { ... },
               "enforce": boolean,
               "ports": [ number ],
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      },
      "listeners": [ 
         { 
            "connectionPool": { ... },
            "healthCheck": { 
               "healthyThreshold": number,
               "intervalMillis": number,
               "path": "string",
               "port": number,
               "protocol": "string",
               "timeoutMillis": number,
               "unhealthyThreshold": number
            },
            "portMapping": { 
               "port": number,
               "protocol": "string"
            },
            "tls": { 
               "certificate": { ... },
               "mode": "string",
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      ],
      "logging": { 
         "accessLog": { ... }
      }
   },
   "status": { 
      "status": "string"
   },
   "virtualGatewayName": "string"
}
```

## Response Elements
<a name="API_CreateVirtualGateway_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_CreateVirtualGateway_ResponseSyntax) **   <a name="appmesh-CreateVirtualGateway-response-meshName"></a>
The name of the service mesh that the virtual gateway resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_CreateVirtualGateway_ResponseSyntax) **   <a name="appmesh-CreateVirtualGateway-response-metadata"></a>
An object that represents metadata for a resource.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_CreateVirtualGateway_ResponseSyntax) **   <a name="appmesh-CreateVirtualGateway-response-spec"></a>
The specifications of the virtual gateway.  
Type: [VirtualGatewaySpec](API_VirtualGatewaySpec.md) object

 ** [status](#API_CreateVirtualGateway_ResponseSyntax) **   <a name="appmesh-CreateVirtualGateway-response-status"></a>
The current status of the virtual gateway.  
Type: [VirtualGatewayStatus](API_VirtualGatewayStatus.md) object

 ** [virtualGatewayName](#API_CreateVirtualGateway_ResponseSyntax) **   <a name="appmesh-CreateVirtualGateway-response-virtualGatewayName"></a>
The name of the virtual gateway.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_CreateVirtualGateway_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ConflictException **   
The request contains a client token that was used for a previous update resource call with different specifications. Try the request again with a new client token.  
HTTP Status Code: 409

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** LimitExceededException **   
You have exceeded a service limit for your account. For more information, see [Service Limits](https://docs.aws.amazon.com/app-mesh/latest/userguide/service-quotas.html) in the * AWS App Mesh User Guide*.  
HTTP Status Code: 400

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_CreateVirtualGateway_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_CreateVirtualGateway_Example_1"></a>

The following example creates a virtual gateway named `myVirtualGateway` in the `apps` service mesh. The virtual gateway listens for `http2` traffic on port `80`.

#### Sample Request
<a name="API_CreateVirtualGateway_Example_1_Request"></a>

```
PUT /v20190125/meshes/apps/virtualGateways HTTP/1.1
Host: appmesh.us-west-2.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.298 Python/3.6.0 Windows/10 botocore/1.13.34
X-Amz-Date: 20200706T144617Z
Authorization: AUTHPARAMS
Content-Length: 174

{
	"spec": {
		"listeners": [{
			"portMapping": {
				"port": 80,
				"protocol": "http2"
			}
		}]
	},
	"virtualGatewayName": "myVirtualGateway",
	"clientToken": "1aa1111a-1111-1111-111a-a1a1a1aa111a"
}
```

#### Sample Response
<a name="API_CreateVirtualGateway_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 696b569b-3593-446d-832c-0a38ce1c53ac
content-type: application/json
content-length: 513
date: Mon, 06 Jul 2020 14:46:17 GMT
x-envoy-upstream-service-time: 33
server: envoy
Connection: keep-alive

{
	"meshName": "apps",
	"metadata": {
		"arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/apps/virtualGateway/myVirtualGateway",
		"createdAt": 1.594046778215E9,
		"lastUpdatedAt": 1.594046778215E9,
		"meshOwner": "123456789012",
		"resourceOwner": "123456789012,
		"uid": "ff111ff2-33ff-4ff4-ffff-111f111f111f",
		"version": 1
	},
	"spec": {
		"backendDefaults": null,
		"listeners": [{
			"healthCheck": null,
			"portMapping": {
				"port": 80,
				"protocol": "http2"
			},
			"tls": null
		}],
		"logging": null
	},
	"status": {
		"status": "ACTIVE"
	},
	"virtualGatewayName": "myVirtualGateway"
}
```

## See Also
<a name="API_CreateVirtualGateway_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/CreateVirtualGateway) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/CreateVirtualGateway) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/CreateVirtualGateway) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/CreateVirtualGateway) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/CreateVirtualGateway) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/CreateVirtualGateway) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/CreateVirtualGateway) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/CreateVirtualGateway) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/CreateVirtualGateway) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/CreateVirtualGateway) 

# CreateVirtualNode
<a name="API_CreateVirtualNode"></a>

Creates a virtual node within a service mesh.

 A virtual node acts as a logical pointer to a particular task group, such as an Amazon ECS service or a Kubernetes deployment. When you create a virtual node, you can specify the service discovery information for your task group, and whether the proxy running in a task group will communicate with other proxies using Transport Layer Security (TLS).

You define a `listener` for any inbound traffic that your virtual node expects. Any virtual service that your virtual node expects to communicate to is specified as a `backend`.

The response metadata for your new virtual node contains the `arn` that is associated with the virtual node. Set this value to the full ARN; for example, `arn:aws:appmesh:us-west-2:123456789012:myMesh/default/virtualNode/myApp`) as the `APPMESH_RESOURCE_ARN` environment variable for your task group's Envoy proxy container in your task definition or pod spec. This is then mapped to the `node.id` and `node.cluster` Envoy parameters.

**Note**  
By default, App Mesh uses the name of the resource you specified in `APPMESH_RESOURCE_ARN` when Envoy is referring to itself in metrics and traces. You can override this behavior by setting the `APPMESH_RESOURCE_CLUSTER` environment variable with your own name.

For more information about virtual nodes, see [Virtual nodes](https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_nodes.html). You must be using `1.15.0` or later of the Envoy image when setting these variables. For more information aboutApp Mesh Envoy variables, see [Envoy image](https://docs.aws.amazon.com/app-mesh/latest/userguide/envoy.html) in the AWS App Mesh User Guide.

## Request Syntax
<a name="API_CreateVirtualNode_RequestSyntax"></a>

```
PUT /v20190125/meshes/meshName/virtualNodes?meshOwner=meshOwner HTTP/1.1
Content-type: application/json

{
   "clientToken": "string",
   "spec": { 
      "backendDefaults": { 
         "clientPolicy": { 
            "tls": { 
               "certificate": { ... },
               "enforce": boolean,
               "ports": [ number ],
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      },
      "backends": [ 
         { ... }
      ],
      "listeners": [ 
         { 
            "connectionPool": { ... },
            "healthCheck": { 
               "healthyThreshold": number,
               "intervalMillis": number,
               "path": "string",
               "port": number,
               "protocol": "string",
               "timeoutMillis": number,
               "unhealthyThreshold": number
            },
            "outlierDetection": { 
               "baseEjectionDuration": { 
                  "unit": "string",
                  "value": number
               },
               "interval": { 
                  "unit": "string",
                  "value": number
               },
               "maxEjectionPercent": number,
               "maxServerErrors": number
            },
            "portMapping": { 
               "port": number,
               "protocol": "string"
            },
            "timeout": { ... },
            "tls": { 
               "certificate": { ... },
               "mode": "string",
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      ],
      "logging": { 
         "accessLog": { ... }
      },
      "serviceDiscovery": { ... }
   },
   "tags": [ 
      { 
         "key": "string",
         "value": "string"
      }
   ],
   "virtualNodeName": "string"
}
```

## URI Request Parameters
<a name="API_CreateVirtualNode_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_CreateVirtualNode_RequestSyntax) **   <a name="appmesh-CreateVirtualNode-request-uri-meshName"></a>
The name of the service mesh to create the virtual node in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_CreateVirtualNode_RequestSyntax) **   <a name="appmesh-CreateVirtualNode-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

## Request Body
<a name="API_CreateVirtualNode_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [clientToken](#API_CreateVirtualNode_RequestSyntax) **   <a name="appmesh-CreateVirtualNode-request-clientToken"></a>
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.  
Type: String  
Required: No

 ** [spec](#API_CreateVirtualNode_RequestSyntax) **   <a name="appmesh-CreateVirtualNode-request-spec"></a>
The virtual node specification to apply.  
Type: [VirtualNodeSpec](API_VirtualNodeSpec.md) object  
Required: Yes

 ** [tags](#API_CreateVirtualNode_RequestSyntax) **   <a name="appmesh-CreateVirtualNode-request-tags"></a>
Optional metadata that you can apply to the virtual node to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.  
Type: Array of [TagRef](API_TagRef.md) objects  
Array Members: Minimum number of 0 items. Maximum number of 50 items.  
Required: No

 ** [virtualNodeName](#API_CreateVirtualNode_RequestSyntax) **   <a name="appmesh-CreateVirtualNode-request-virtualNodeName"></a>
The name to use for the virtual node.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Response Syntax
<a name="API_CreateVirtualNode_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "backendDefaults": { 
         "clientPolicy": { 
            "tls": { 
               "certificate": { ... },
               "enforce": boolean,
               "ports": [ number ],
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      },
      "backends": [ 
         { ... }
      ],
      "listeners": [ 
         { 
            "connectionPool": { ... },
            "healthCheck": { 
               "healthyThreshold": number,
               "intervalMillis": number,
               "path": "string",
               "port": number,
               "protocol": "string",
               "timeoutMillis": number,
               "unhealthyThreshold": number
            },
            "outlierDetection": { 
               "baseEjectionDuration": { 
                  "unit": "string",
                  "value": number
               },
               "interval": { 
                  "unit": "string",
                  "value": number
               },
               "maxEjectionPercent": number,
               "maxServerErrors": number
            },
            "portMapping": { 
               "port": number,
               "protocol": "string"
            },
            "timeout": { ... },
            "tls": { 
               "certificate": { ... },
               "mode": "string",
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      ],
      "logging": { 
         "accessLog": { ... }
      },
      "serviceDiscovery": { ... }
   },
   "status": { 
      "status": "string"
   },
   "virtualNodeName": "string"
}
```

## Response Elements
<a name="API_CreateVirtualNode_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_CreateVirtualNode_ResponseSyntax) **   <a name="appmesh-CreateVirtualNode-response-meshName"></a>
The name of the service mesh that the virtual node resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_CreateVirtualNode_ResponseSyntax) **   <a name="appmesh-CreateVirtualNode-response-metadata"></a>
The associated metadata for the virtual node.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_CreateVirtualNode_ResponseSyntax) **   <a name="appmesh-CreateVirtualNode-response-spec"></a>
The specifications of the virtual node.  
Type: [VirtualNodeSpec](API_VirtualNodeSpec.md) object

 ** [status](#API_CreateVirtualNode_ResponseSyntax) **   <a name="appmesh-CreateVirtualNode-response-status"></a>
The current status for the virtual node.  
Type: [VirtualNodeStatus](API_VirtualNodeStatus.md) object

 ** [virtualNodeName](#API_CreateVirtualNode_ResponseSyntax) **   <a name="appmesh-CreateVirtualNode-response-virtualNodeName"></a>
The name of the virtual node.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_CreateVirtualNode_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ConflictException **   
The request contains a client token that was used for a previous update resource call with different specifications. Try the request again with a new client token.  
HTTP Status Code: 409

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** LimitExceededException **   
You have exceeded a service limit for your account. For more information, see [Service Limits](https://docs.aws.amazon.com/app-mesh/latest/userguide/service-quotas.html) in the * AWS App Mesh User Guide*.  
HTTP Status Code: 400

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_CreateVirtualNode_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_CreateVirtualNode_Example_1"></a>

The following example creates a virtual node named `colorgateway-vn` in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_CreateVirtualNode_Example_1_Request"></a>

```
PUT /v20190125/meshes/ecs-mesh/virtualNodes HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190227T192431Z
Authorization: AUTHPARAMS

{
  "spec": {
    "listeners": [
      {
        "portMapping": {
          "port": 9080,
          "protocol": "http"
        }
      }
    ],
    "serviceDiscovery": {
      "dns": {
        "hostname": "colorgateway.default.svc.cluster.local"
      }
    },
    "backends": [
      {
        "virtualService": {
          "virtualServiceName": "tcpecho.default.svc.cluster.local"
        }
      },
      {
        "virtualService": {
          "virtualServiceName": "colorteller.default.svc.cluster.local"
        }
      }
    ]
  },
  "virtualNodeName": "colorgateway-vn",
  "clientToken": "c148ccbb-3619-49da-bb3e-4561eb5370c4"
}
```

#### Sample Response
<a name="API_CreateVirtualNode_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: cc29e2dd-e4c4-4d6e-9424-e9211580f70e
content-type: application/json
content-length: 687
date: Wed, 27 Feb 2019 19:24:31 GMT
x-envoy-upstream-service-time: 132
server: envoy
Connection: keep-alive

{
	"meshName": "ecs-mesh",
	"metadata": {
		"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualNode/colorgateway-vn",
		"createdAt": 1.551295471546E9,
		"lastUpdatedAt": 1.551295471546E9,
		"uid": "887cfab8-a727-41b2-8cd7-2fdebfd6304e",
		"version": 1
	},
	"spec": {
		"backends": [{
			"virtualService": {
				"virtualServiceName": "tcpecho.default.svc.cluster.local"
			}
		}, {
			"virtualService": {
				"virtualServiceName": "colorteller.default.svc.cluster.local"
			}
		}],
		"listeners": [{
			"healthCheck": null,
			"portMapping": {
				"port": 9080,
				"protocol": "http"
			}
		}],
		"logging": null,
		"serviceDiscovery": {
			"dns": {
				"hostname": "colorgateway.default.svc.cluster.local"
			}
		}
	},
	"status": {
		"status": "ACTIVE"
	},
	"virtualNodeName": "colorgateway-vn"
}
```

## See Also
<a name="API_CreateVirtualNode_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/CreateVirtualNode) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/CreateVirtualNode) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/CreateVirtualNode) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/CreateVirtualNode) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/CreateVirtualNode) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/CreateVirtualNode) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/CreateVirtualNode) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/CreateVirtualNode) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/CreateVirtualNode) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/CreateVirtualNode) 

# CreateVirtualRouter
<a name="API_CreateVirtualRouter"></a>

Creates a virtual router within a service mesh.

Specify a `listener` for any inbound traffic that your virtual router receives. Create a virtual router for each protocol and port that you need to route. Virtual routers handle traffic for one or more virtual services within your mesh. After you create your virtual router, create and associate routes for your virtual router that direct incoming requests to different virtual nodes.

For more information about virtual routers, see [Virtual routers](https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_routers.html).

## Request Syntax
<a name="API_CreateVirtualRouter_RequestSyntax"></a>

```
PUT /v20190125/meshes/meshName/virtualRouters?meshOwner=meshOwner HTTP/1.1
Content-type: application/json

{
   "clientToken": "string",
   "spec": { 
      "listeners": [ 
         { 
            "portMapping": { 
               "port": number,
               "protocol": "string"
            }
         }
      ]
   },
   "tags": [ 
      { 
         "key": "string",
         "value": "string"
      }
   ],
   "virtualRouterName": "string"
}
```

## URI Request Parameters
<a name="API_CreateVirtualRouter_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_CreateVirtualRouter_RequestSyntax) **   <a name="appmesh-CreateVirtualRouter-request-uri-meshName"></a>
The name of the service mesh to create the virtual router in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_CreateVirtualRouter_RequestSyntax) **   <a name="appmesh-CreateVirtualRouter-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

## Request Body
<a name="API_CreateVirtualRouter_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [clientToken](#API_CreateVirtualRouter_RequestSyntax) **   <a name="appmesh-CreateVirtualRouter-request-clientToken"></a>
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.  
Type: String  
Required: No

 ** [spec](#API_CreateVirtualRouter_RequestSyntax) **   <a name="appmesh-CreateVirtualRouter-request-spec"></a>
The virtual router specification to apply.  
Type: [VirtualRouterSpec](API_VirtualRouterSpec.md) object  
Required: Yes

 ** [tags](#API_CreateVirtualRouter_RequestSyntax) **   <a name="appmesh-CreateVirtualRouter-request-tags"></a>
Optional metadata that you can apply to the virtual router to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.  
Type: Array of [TagRef](API_TagRef.md) objects  
Array Members: Minimum number of 0 items. Maximum number of 50 items.  
Required: No

 ** [virtualRouterName](#API_CreateVirtualRouter_RequestSyntax) **   <a name="appmesh-CreateVirtualRouter-request-virtualRouterName"></a>
The name to use for the virtual router.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Response Syntax
<a name="API_CreateVirtualRouter_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "listeners": [ 
         { 
            "portMapping": { 
               "port": number,
               "protocol": "string"
            }
         }
      ]
   },
   "status": { 
      "status": "string"
   },
   "virtualRouterName": "string"
}
```

## Response Elements
<a name="API_CreateVirtualRouter_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_CreateVirtualRouter_ResponseSyntax) **   <a name="appmesh-CreateVirtualRouter-response-meshName"></a>
The name of the service mesh that the virtual router resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_CreateVirtualRouter_ResponseSyntax) **   <a name="appmesh-CreateVirtualRouter-response-metadata"></a>
The associated metadata for the virtual router.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_CreateVirtualRouter_ResponseSyntax) **   <a name="appmesh-CreateVirtualRouter-response-spec"></a>
The specifications of the virtual router.  
Type: [VirtualRouterSpec](API_VirtualRouterSpec.md) object

 ** [status](#API_CreateVirtualRouter_ResponseSyntax) **   <a name="appmesh-CreateVirtualRouter-response-status"></a>
The current status of the virtual router.  
Type: [VirtualRouterStatus](API_VirtualRouterStatus.md) object

 ** [virtualRouterName](#API_CreateVirtualRouter_ResponseSyntax) **   <a name="appmesh-CreateVirtualRouter-response-virtualRouterName"></a>
The name of the virtual router.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_CreateVirtualRouter_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ConflictException **   
The request contains a client token that was used for a previous update resource call with different specifications. Try the request again with a new client token.  
HTTP Status Code: 409

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** LimitExceededException **   
You have exceeded a service limit for your account. For more information, see [Service Limits](https://docs.aws.amazon.com/app-mesh/latest/userguide/service-quotas.html) in the * AWS App Mesh User Guide*.  
HTTP Status Code: 400

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_CreateVirtualRouter_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_CreateVirtualRouter_Example_1"></a>

The following example creates a virtual router named `colorteller-vr` in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_CreateVirtualRouter_Example_1_Request"></a>

```
PUT /v20190125/meshes/ecs-mesh/virtualRouters HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190227T192446Z
Authorization: AUTHPARAMS

{
  "spec": {
      listeners: [
            {
                port: 80,
                protocol: http
            }
        ]},
  "virtualRouterName": "colorteller-vr",
  "clientToken": "e90d8ee2-c111-4431-bfa3-4725a06a84b1"
}
```

#### Sample Response
<a name="API_CreateVirtualRouter_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 770a356d-60e5-45f7-9f47-823eb5f1b750
content-type: application/json
content-length: 337
date: Wed, 27 Feb 2019 19:24:46 GMT
x-envoy-upstream-service-time: 19
server: envoy
Connection: keep-alive

{
  "meshName": "ecs-mesh",
  "metadata": {
    "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualRouter/colorteller-vr",
    "createdAt": 1551295486.588,
    "lastUpdatedAt": 1551295486.588,
    "uid": "a756d1e5-ce8f-40a5-afbc-380f61f0c1e0",
    "version": 1
  },
  "spec": {
    "listeners": [
      {
        "portMapping": {
          "port": 9080,
          "protocol": "http"
        }
      }
    ]
  },
  "status": {
    "status": "ACTIVE"
  },
  "virtualRouterName": "colorteller-vr"
}
```

## See Also
<a name="API_CreateVirtualRouter_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/CreateVirtualRouter) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/CreateVirtualRouter) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/CreateVirtualRouter) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/CreateVirtualRouter) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/CreateVirtualRouter) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/CreateVirtualRouter) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/CreateVirtualRouter) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/CreateVirtualRouter) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/CreateVirtualRouter) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/CreateVirtualRouter) 

# CreateVirtualService
<a name="API_CreateVirtualService"></a>

Creates a virtual service within a service mesh.

A virtual service is an abstraction of a real service that is provided by a virtual node directly or indirectly by means of a virtual router. Dependent services call your virtual service by its `virtualServiceName`, and those requests are routed to the virtual node or virtual router that is specified as the provider for the virtual service.

For more information about virtual services, see [Virtual services](https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_services.html).

## Request Syntax
<a name="API_CreateVirtualService_RequestSyntax"></a>

```
PUT /v20190125/meshes/meshName/virtualServices?meshOwner=meshOwner HTTP/1.1
Content-type: application/json

{
   "clientToken": "string",
   "spec": { 
      "provider": { ... }
   },
   "tags": [ 
      { 
         "key": "string",
         "value": "string"
      }
   ],
   "virtualServiceName": "string"
}
```

## URI Request Parameters
<a name="API_CreateVirtualService_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_CreateVirtualService_RequestSyntax) **   <a name="appmesh-CreateVirtualService-request-uri-meshName"></a>
The name of the service mesh to create the virtual service in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_CreateVirtualService_RequestSyntax) **   <a name="appmesh-CreateVirtualService-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

## Request Body
<a name="API_CreateVirtualService_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [clientToken](#API_CreateVirtualService_RequestSyntax) **   <a name="appmesh-CreateVirtualService-request-clientToken"></a>
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.  
Type: String  
Required: No

 ** [spec](#API_CreateVirtualService_RequestSyntax) **   <a name="appmesh-CreateVirtualService-request-spec"></a>
The virtual service specification to apply.  
Type: [VirtualServiceSpec](API_VirtualServiceSpec.md) object  
Required: Yes

 ** [tags](#API_CreateVirtualService_RequestSyntax) **   <a name="appmesh-CreateVirtualService-request-tags"></a>
Optional metadata that you can apply to the virtual service to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.  
Type: Array of [TagRef](API_TagRef.md) objects  
Array Members: Minimum number of 0 items. Maximum number of 50 items.  
Required: No

 ** [virtualServiceName](#API_CreateVirtualService_RequestSyntax) **   <a name="appmesh-CreateVirtualService-request-virtualServiceName"></a>
The name to use for the virtual service.  
Type: String  
Required: Yes

## Response Syntax
<a name="API_CreateVirtualService_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "provider": { ... }
   },
   "status": { 
      "status": "string"
   },
   "virtualServiceName": "string"
}
```

## Response Elements
<a name="API_CreateVirtualService_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_CreateVirtualService_ResponseSyntax) **   <a name="appmesh-CreateVirtualService-response-meshName"></a>
The name of the service mesh that the virtual service resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_CreateVirtualService_ResponseSyntax) **   <a name="appmesh-CreateVirtualService-response-metadata"></a>
An object that represents metadata for a resource.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_CreateVirtualService_ResponseSyntax) **   <a name="appmesh-CreateVirtualService-response-spec"></a>
The specifications of the virtual service.  
Type: [VirtualServiceSpec](API_VirtualServiceSpec.md) object

 ** [status](#API_CreateVirtualService_ResponseSyntax) **   <a name="appmesh-CreateVirtualService-response-status"></a>
The current status of the virtual service.  
Type: [VirtualServiceStatus](API_VirtualServiceStatus.md) object

 ** [virtualServiceName](#API_CreateVirtualService_ResponseSyntax) **   <a name="appmesh-CreateVirtualService-response-virtualServiceName"></a>
The name of the virtual service.  
Type: String

## Errors
<a name="API_CreateVirtualService_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ConflictException **   
The request contains a client token that was used for a previous update resource call with different specifications. Try the request again with a new client token.  
HTTP Status Code: 409

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** LimitExceededException **   
You have exceeded a service limit for your account. For more information, see [Service Limits](https://docs.aws.amazon.com/app-mesh/latest/userguide/service-quotas.html) in the * AWS App Mesh User Guide*.  
HTTP Status Code: 400

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_CreateVirtualService_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_CreateVirtualService_Example_1"></a>

This example creates a virtual service named `colorgateway.default.svc.cluster.local` in the `ecs-mesh` service mesh. 

#### Sample Request
<a name="API_CreateVirtualService_Example_1_Request"></a>

```
PUT /v20190125/meshes/ecs-mesh/virtualServices HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190227T192448Z
Authorization: AUTHPARAMS

{
  "spec": {
    "provider": {
      "virtualNode": {
        "virtualNodeName": "colorgateway-vn"
      }
    }
  },
  "virtualServiceName": "colorgateway.default.svc.cluster.local",
  "clientToken": "0a263779-366d-400f-9c4c-0ab7ff0ef392"
}
```

#### Sample Response
<a name="API_CreateVirtualService_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 6418af7b-e02b-4f0e-bb96-a3b4aab428c8
content-type: application/json
content-length: 456
date: Wed, 27 Feb 2019 19:24:48 GMT
x-envoy-upstream-service-time: 67
server: envoy
Connection: keep-alive

{
	"meshName": "ecs-mesh",
	"metadata": {
		"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualService/colorgateway.default.svc.cluster.local",
		"createdAt": 1.551295488701E9,
		"lastUpdatedAt": 1.551295488701E9,
		"uid": "f1b0ed85-7648-4be2-a0fc-c97865029c48",
		"version": 1
	},
	"spec": {
		"provider": {
			"virtualNode": {
				"virtualNodeName": "colorgateway-vn"
			},
			"virtualRouter": null
		}
	},
	"status": {
		"status": "ACTIVE"
	},
	"virtualServiceName": "colorgateway.default.svc.cluster.local"
}
```

## See Also
<a name="API_CreateVirtualService_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/CreateVirtualService) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/CreateVirtualService) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/CreateVirtualService) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/CreateVirtualService) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/CreateVirtualService) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/CreateVirtualService) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/CreateVirtualService) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/CreateVirtualService) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/CreateVirtualService) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/CreateVirtualService) 

# DeleteGatewayRoute
<a name="API_DeleteGatewayRoute"></a>

Deletes an existing gateway route.

## Request Syntax
<a name="API_DeleteGatewayRoute_RequestSyntax"></a>

```
DELETE /v20190125/meshes/meshName/virtualGateway/virtualGatewayName/gatewayRoutes/gatewayRouteName?meshOwner=meshOwner HTTP/1.1
```

## URI Request Parameters
<a name="API_DeleteGatewayRoute_RequestParameters"></a>

The request uses the following URI parameters.

 ** [gatewayRouteName](#API_DeleteGatewayRoute_RequestSyntax) **   <a name="appmesh-DeleteGatewayRoute-request-uri-gatewayRouteName"></a>
The name of the gateway route to delete.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshName](#API_DeleteGatewayRoute_RequestSyntax) **   <a name="appmesh-DeleteGatewayRoute-request-uri-meshName"></a>
The name of the service mesh to delete the gateway route from.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_DeleteGatewayRoute_RequestSyntax) **   <a name="appmesh-DeleteGatewayRoute-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualGatewayName](#API_DeleteGatewayRoute_RequestSyntax) **   <a name="appmesh-DeleteGatewayRoute-request-uri-virtualGatewayName"></a>
The name of the virtual gateway to delete the route from.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_DeleteGatewayRoute_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_DeleteGatewayRoute_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "gatewayRouteName": "string",
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "grpcRoute": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "metadata": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "port": number,
            "serviceName": "string"
         }
      },
      "http2Route": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               },
               "path": { 
                  "exact": "string"
               },
               "prefix": { 
                  "defaultPrefix": "string",
                  "value": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ]
         }
      },
      "httpRoute": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               },
               "path": { 
                  "exact": "string"
               },
               "prefix": { 
                  "defaultPrefix": "string",
                  "value": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ]
         }
      },
      "priority": number
   },
   "status": { 
      "status": "string"
   },
   "virtualGatewayName": "string"
}
```

## Response Elements
<a name="API_DeleteGatewayRoute_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [gatewayRouteName](#API_DeleteGatewayRoute_ResponseSyntax) **   <a name="appmesh-DeleteGatewayRoute-response-gatewayRouteName"></a>
The name of the gateway route.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [meshName](#API_DeleteGatewayRoute_ResponseSyntax) **   <a name="appmesh-DeleteGatewayRoute-response-meshName"></a>
The name of the service mesh that the resource resides in.   
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_DeleteGatewayRoute_ResponseSyntax) **   <a name="appmesh-DeleteGatewayRoute-response-metadata"></a>
An object that represents metadata for a resource.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_DeleteGatewayRoute_ResponseSyntax) **   <a name="appmesh-DeleteGatewayRoute-response-spec"></a>
The specifications of the gateway route.  
Type: [GatewayRouteSpec](API_GatewayRouteSpec.md) object

 ** [status](#API_DeleteGatewayRoute_ResponseSyntax) **   <a name="appmesh-DeleteGatewayRoute-response-status"></a>
The status of the gateway route.  
Type: [GatewayRouteStatus](API_GatewayRouteStatus.md) object

 ** [virtualGatewayName](#API_DeleteGatewayRoute_ResponseSyntax) **   <a name="appmesh-DeleteGatewayRoute-response-virtualGatewayName"></a>
The virtual gateway that the gateway route is associated with.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_DeleteGatewayRoute_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ResourceInUseException **   
You can't delete the specified resource because it's in use or required by another resource.  
HTTP Status Code: 409

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_DeleteGatewayRoute_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_DeleteGatewayRoute_Example_1"></a>

The following example deletes a gateway route named `myGatewayRoute` from the `myVirtualGateway` virtual gateway that is in the `apps` service mesh. 

#### Sample Request
<a name="API_DeleteGatewayRoute_Example_1_Request"></a>

```
DELETE /v20190125/meshes/apps/virtualGateway/myVirtualGateway/gatewayRoutes/myGatewayRoute HTTP/1.1
Host: appmesh.us-west-2.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.298 Python/3.6.0 Windows/10 botocore/1.13.34
X-Amz-Date: 20200608T193419Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_DeleteGatewayRoute_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: a7e8bcc1-0dec-464d-9e69-5cd1f780c9eb
content-type: application/json
content-length: 618
date: Mon, 08 Jun 2020 19:34:19 GMT
x-envoy-upstream-service-time: 49
server: envoy
Connection: keep-alive

{
	"gatewayRouteName": "myGatewayRoute",
	"meshName": "myApps",
	"metadata": {
		"arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/apps/virtualGateway/myVirtualGateway/gatewayRoute/myGatewayRoute",
		"createdAt": 1.591642091122E9,
		"lastUpdatedAt": 1.591644859804E9,
		"meshOwner": "123456789012",
		"resourceOwner": "123456789012",
		"uid": "ff111ff2-33ff-4ff4-ffff-111f111f111f",
		"version": 3
	},
	"spec": {
		"grpcRoute": null,
		"http2Route": {
			"action": {
				"target": {
					"virtualService": {
						"virtualServiceName": "myserviceb.svc.cluster.local"
					}
				}
			},
			"match": {
				"prefix": "/"
			}
		},
		"httpRoute": null
	},
	"status": {
		"status": "DELETED"
	},
	"virtualGatewayName": "myVirtualGateway"
}
```

## See Also
<a name="API_DeleteGatewayRoute_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/DeleteGatewayRoute) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/DeleteGatewayRoute) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/DeleteGatewayRoute) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/DeleteGatewayRoute) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/DeleteGatewayRoute) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/DeleteGatewayRoute) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/DeleteGatewayRoute) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/DeleteGatewayRoute) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/DeleteGatewayRoute) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/DeleteGatewayRoute) 

# DeleteMesh
<a name="API_DeleteMesh"></a>

Deletes an existing service mesh.

You must delete all resources (virtual services, routes, virtual routers, and virtual nodes) in the service mesh before you can delete the mesh itself.

## Request Syntax
<a name="API_DeleteMesh_RequestSyntax"></a>

```
DELETE /v20190125/meshes/meshName HTTP/1.1
```

## URI Request Parameters
<a name="API_DeleteMesh_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_DeleteMesh_RequestSyntax) **   <a name="appmesh-DeleteMesh-request-uri-meshName"></a>
The name of the service mesh to delete.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_DeleteMesh_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_DeleteMesh_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "egressFilter": { 
         "type": "string"
      },
      "serviceDiscovery": { 
         "ipPreference": "string"
      }
   },
   "status": { 
      "status": "string"
   }
}
```

## Response Elements
<a name="API_DeleteMesh_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_DeleteMesh_ResponseSyntax) **   <a name="appmesh-DeleteMesh-response-meshName"></a>
The name of the service mesh.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_DeleteMesh_ResponseSyntax) **   <a name="appmesh-DeleteMesh-response-metadata"></a>
The associated metadata for the service mesh.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_DeleteMesh_ResponseSyntax) **   <a name="appmesh-DeleteMesh-response-spec"></a>
The associated specification for the service mesh.  
Type: [MeshSpec](API_MeshSpec.md) object

 ** [status](#API_DeleteMesh_ResponseSyntax) **   <a name="appmesh-DeleteMesh-response-status"></a>
The status of the service mesh.  
Type: [MeshStatus](API_MeshStatus.md) object

## Errors
<a name="API_DeleteMesh_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ResourceInUseException **   
You can't delete the specified resource because it's in use or required by another resource.  
HTTP Status Code: 409

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_DeleteMesh_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_DeleteMesh_Example_1"></a>

This example command deletes a service mesh named `ecs-mesh` in your default region.

#### Sample Request
<a name="API_DeleteMesh_Example_1_Request"></a>

```
DELETE /v20190125/meshes/ecs-mesh HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190227T203825Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_DeleteMesh_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 5b4e49f2-dac7-4782-8be3-1e81c8599e14
content-type: application/json
content-length: 246
date: Wed, 27 Feb 2019 20:38:25 GMT
x-envoy-upstream-service-time: 35
server: envoy
Connection: keep-alive

{
	"meshName": "ecs-mesh",
	"metadata": {
		"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh",
		"createdAt": 1.551295405298E9,
		"lastUpdatedAt": 1.551299905963E9,
		"uid": "2d29a11c-f2dd-44a6-b620-33661cfdfe97",
		"version": 1
	},
	"status": {
		"status": "DELETED"
	}
}
```

## See Also
<a name="API_DeleteMesh_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/DeleteMesh) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/DeleteMesh) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/DeleteMesh) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/DeleteMesh) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/DeleteMesh) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/DeleteMesh) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/DeleteMesh) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/DeleteMesh) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/DeleteMesh) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/DeleteMesh) 

# DeleteRoute
<a name="API_DeleteRoute"></a>

Deletes an existing route.

## Request Syntax
<a name="API_DeleteRoute_RequestSyntax"></a>

```
DELETE /v20190125/meshes/meshName/virtualRouter/virtualRouterName/routes/routeName?meshOwner=meshOwner HTTP/1.1
```

## URI Request Parameters
<a name="API_DeleteRoute_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_DeleteRoute_RequestSyntax) **   <a name="appmesh-DeleteRoute-request-uri-meshName"></a>
The name of the service mesh to delete the route in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_DeleteRoute_RequestSyntax) **   <a name="appmesh-DeleteRoute-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [routeName](#API_DeleteRoute_RequestSyntax) **   <a name="appmesh-DeleteRoute-request-uri-routeName"></a>
The name of the route to delete.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [virtualRouterName](#API_DeleteRoute_RequestSyntax) **   <a name="appmesh-DeleteRoute-request-uri-virtualRouterName"></a>
The name of the virtual router to delete the route in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_DeleteRoute_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_DeleteRoute_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "routeName": "string",
   "spec": { 
      "grpcRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "metadata": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "methodName": "string",
            "port": number,
            "serviceName": "string"
         },
         "retryPolicy": { 
            "grpcRetryEvents": [ "string" ],
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "http2Route": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ],
            "scheme": "string"
         },
         "retryPolicy": { 
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "httpRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ],
            "scheme": "string"
         },
         "retryPolicy": { 
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "priority": number,
      "tcpRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "port": number
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            }
         }
      }
   },
   "status": { 
      "status": "string"
   },
   "virtualRouterName": "string"
}
```

## Response Elements
<a name="API_DeleteRoute_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_DeleteRoute_ResponseSyntax) **   <a name="appmesh-DeleteRoute-response-meshName"></a>
The name of the service mesh that the route resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_DeleteRoute_ResponseSyntax) **   <a name="appmesh-DeleteRoute-response-metadata"></a>
The associated metadata for the route.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [routeName](#API_DeleteRoute_ResponseSyntax) **   <a name="appmesh-DeleteRoute-response-routeName"></a>
The name of the route.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [spec](#API_DeleteRoute_ResponseSyntax) **   <a name="appmesh-DeleteRoute-response-spec"></a>
The specifications of the route.  
Type: [RouteSpec](API_RouteSpec.md) object

 ** [status](#API_DeleteRoute_ResponseSyntax) **   <a name="appmesh-DeleteRoute-response-status"></a>
The status of the route.  
Type: [RouteStatus](API_RouteStatus.md) object

 ** [virtualRouterName](#API_DeleteRoute_ResponseSyntax) **   <a name="appmesh-DeleteRoute-response-virtualRouterName"></a>
The virtual router that the route is associated with.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_DeleteRoute_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ResourceInUseException **   
You can't delete the specified resource because it's in use or required by another resource.  
HTTP Status Code: 409

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_DeleteRoute_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_DeleteRoute_Example_1"></a>

The following example deletes a route named `colorgateway-route` for the `colorgateway-vr` virtual router in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_DeleteRoute_Example_1_Request"></a>

```
DELETE /v20190125/meshes/ecs-mesh/virtualRouter/colorgateway-vr/routes/colorgateway-route HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190227T203328Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_DeleteRoute_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 59fda333-ead1-4fbd-ba64-b7150e52d29a
content-type: application/json
content-length: 512
date: Wed, 27 Feb 2019 20:33:28 GMT
x-envoy-upstream-service-time: 95
server: envoy
Connection: keep-alive

{
	"meshName": "ecs-mesh",
	"metadata": {
		"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualRouter/colorgateway-vr/route/colorgateway-route",
		"createdAt": 1.551295495004E9,
		"lastUpdatedAt": 1.551299608556E9,
		"uid": "3251bf37-2d01-4b79-be96-d0c36c61511f",
		"version": 2
	},
	"routeName": "colorgateway-route",
	"spec": {
		"httpRoute": {
			"action": {
				"weightedTargets": [{
					"virtualNode": "colorgateway-vn",
					"weight": 100
				}]
			},
			"match": {
				"prefix": "/"
			}
		},
		"tcpRoute": null
	},
	"status": {
		"status": "DELETED"
	},
	"virtualRouterName": "colorgateway-vr"
}
```

## See Also
<a name="API_DeleteRoute_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/DeleteRoute) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/DeleteRoute) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/DeleteRoute) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/DeleteRoute) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/DeleteRoute) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/DeleteRoute) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/DeleteRoute) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/DeleteRoute) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/DeleteRoute) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/DeleteRoute) 

# DeleteVirtualGateway
<a name="API_DeleteVirtualGateway"></a>

Deletes an existing virtual gateway. You cannot delete a virtual gateway if any gateway routes are associated to it.

## Request Syntax
<a name="API_DeleteVirtualGateway_RequestSyntax"></a>

```
DELETE /v20190125/meshes/meshName/virtualGateways/virtualGatewayName?meshOwner=meshOwner HTTP/1.1
```

## URI Request Parameters
<a name="API_DeleteVirtualGateway_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_DeleteVirtualGateway_RequestSyntax) **   <a name="appmesh-DeleteVirtualGateway-request-uri-meshName"></a>
The name of the service mesh to delete the virtual gateway from.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_DeleteVirtualGateway_RequestSyntax) **   <a name="appmesh-DeleteVirtualGateway-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualGatewayName](#API_DeleteVirtualGateway_RequestSyntax) **   <a name="appmesh-DeleteVirtualGateway-request-uri-virtualGatewayName"></a>
The name of the virtual gateway to delete.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_DeleteVirtualGateway_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_DeleteVirtualGateway_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "backendDefaults": { 
         "clientPolicy": { 
            "tls": { 
               "certificate": { ... },
               "enforce": boolean,
               "ports": [ number ],
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      },
      "listeners": [ 
         { 
            "connectionPool": { ... },
            "healthCheck": { 
               "healthyThreshold": number,
               "intervalMillis": number,
               "path": "string",
               "port": number,
               "protocol": "string",
               "timeoutMillis": number,
               "unhealthyThreshold": number
            },
            "portMapping": { 
               "port": number,
               "protocol": "string"
            },
            "tls": { 
               "certificate": { ... },
               "mode": "string",
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      ],
      "logging": { 
         "accessLog": { ... }
      }
   },
   "status": { 
      "status": "string"
   },
   "virtualGatewayName": "string"
}
```

## Response Elements
<a name="API_DeleteVirtualGateway_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_DeleteVirtualGateway_ResponseSyntax) **   <a name="appmesh-DeleteVirtualGateway-response-meshName"></a>
The name of the service mesh that the virtual gateway resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_DeleteVirtualGateway_ResponseSyntax) **   <a name="appmesh-DeleteVirtualGateway-response-metadata"></a>
An object that represents metadata for a resource.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_DeleteVirtualGateway_ResponseSyntax) **   <a name="appmesh-DeleteVirtualGateway-response-spec"></a>
The specifications of the virtual gateway.  
Type: [VirtualGatewaySpec](API_VirtualGatewaySpec.md) object

 ** [status](#API_DeleteVirtualGateway_ResponseSyntax) **   <a name="appmesh-DeleteVirtualGateway-response-status"></a>
The current status of the virtual gateway.  
Type: [VirtualGatewayStatus](API_VirtualGatewayStatus.md) object

 ** [virtualGatewayName](#API_DeleteVirtualGateway_ResponseSyntax) **   <a name="appmesh-DeleteVirtualGateway-response-virtualGatewayName"></a>
The name of the virtual gateway.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_DeleteVirtualGateway_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ResourceInUseException **   
You can't delete the specified resource because it's in use or required by another resource.  
HTTP Status Code: 409

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_DeleteVirtualGateway_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_DeleteVirtualGateway_Example_1"></a>

The following example deletes a virtual gateway named `myVirtualGateway` from the `apps` service mesh. 

#### Sample Request
<a name="API_DeleteVirtualGateway_Example_1_Request"></a>

```
DELETE /v20190125/meshes/apps/virtualGateways/myVirtualGateway HTTP/1.1
Host: appmesh.us-west-2.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.298 Python/3.6.0 Windows/10 botocore/1.13.34
X-Amz-Date: 20200706T150515Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_DeleteVirtualGateway_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 884f2830-6964-4d0e-9788-144631c36bb9
content-type: application/json
content-length: 514
date: Mon, 06 Jul 2020 15:05:15 GMT
x-envoy-upstream-service-time: 26
server: envoy
Connection: keep-alive

{
	"meshName": "apps",
	"metadata": {
		"arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/apps/virtualGateway/myVirtualGateway",
		"createdAt": 1.594046778215E9,
		"lastUpdatedAt": 1.594047916142E9,
		"meshOwner": "123456789012",
		"resourceOwner": "123456789012",
		"uid": "ff111ff2-33ff-4ff4-ffff-111f111f111f",
		"version": 2
	},
	"spec": {
		"backendDefaults": null,
		"listeners": [{
			"healthCheck": null,
			"portMapping": {
				"port": 80,
				"protocol": "http2"
			},
			"tls": null
		}],
		"logging": null
	},
	"status": {
		"status": "DELETED"
	},
	"virtualGatewayName": "myVirtualGateway"
}
```

## See Also
<a name="API_DeleteVirtualGateway_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/DeleteVirtualGateway) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/DeleteVirtualGateway) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/DeleteVirtualGateway) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/DeleteVirtualGateway) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/DeleteVirtualGateway) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/DeleteVirtualGateway) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/DeleteVirtualGateway) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/DeleteVirtualGateway) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/DeleteVirtualGateway) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/DeleteVirtualGateway) 

# DeleteVirtualNode
<a name="API_DeleteVirtualNode"></a>

Deletes an existing virtual node.

You must delete any virtual services that list a virtual node as a service provider before you can delete the virtual node itself.

## Request Syntax
<a name="API_DeleteVirtualNode_RequestSyntax"></a>

```
DELETE /v20190125/meshes/meshName/virtualNodes/virtualNodeName?meshOwner=meshOwner HTTP/1.1
```

## URI Request Parameters
<a name="API_DeleteVirtualNode_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_DeleteVirtualNode_RequestSyntax) **   <a name="appmesh-DeleteVirtualNode-request-uri-meshName"></a>
The name of the service mesh to delete the virtual node in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_DeleteVirtualNode_RequestSyntax) **   <a name="appmesh-DeleteVirtualNode-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualNodeName](#API_DeleteVirtualNode_RequestSyntax) **   <a name="appmesh-DeleteVirtualNode-request-uri-virtualNodeName"></a>
The name of the virtual node to delete.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_DeleteVirtualNode_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_DeleteVirtualNode_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "backendDefaults": { 
         "clientPolicy": { 
            "tls": { 
               "certificate": { ... },
               "enforce": boolean,
               "ports": [ number ],
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      },
      "backends": [ 
         { ... }
      ],
      "listeners": [ 
         { 
            "connectionPool": { ... },
            "healthCheck": { 
               "healthyThreshold": number,
               "intervalMillis": number,
               "path": "string",
               "port": number,
               "protocol": "string",
               "timeoutMillis": number,
               "unhealthyThreshold": number
            },
            "outlierDetection": { 
               "baseEjectionDuration": { 
                  "unit": "string",
                  "value": number
               },
               "interval": { 
                  "unit": "string",
                  "value": number
               },
               "maxEjectionPercent": number,
               "maxServerErrors": number
            },
            "portMapping": { 
               "port": number,
               "protocol": "string"
            },
            "timeout": { ... },
            "tls": { 
               "certificate": { ... },
               "mode": "string",
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      ],
      "logging": { 
         "accessLog": { ... }
      },
      "serviceDiscovery": { ... }
   },
   "status": { 
      "status": "string"
   },
   "virtualNodeName": "string"
}
```

## Response Elements
<a name="API_DeleteVirtualNode_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_DeleteVirtualNode_ResponseSyntax) **   <a name="appmesh-DeleteVirtualNode-response-meshName"></a>
The name of the service mesh that the virtual node resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_DeleteVirtualNode_ResponseSyntax) **   <a name="appmesh-DeleteVirtualNode-response-metadata"></a>
The associated metadata for the virtual node.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_DeleteVirtualNode_ResponseSyntax) **   <a name="appmesh-DeleteVirtualNode-response-spec"></a>
The specifications of the virtual node.  
Type: [VirtualNodeSpec](API_VirtualNodeSpec.md) object

 ** [status](#API_DeleteVirtualNode_ResponseSyntax) **   <a name="appmesh-DeleteVirtualNode-response-status"></a>
The current status for the virtual node.  
Type: [VirtualNodeStatus](API_VirtualNodeStatus.md) object

 ** [virtualNodeName](#API_DeleteVirtualNode_ResponseSyntax) **   <a name="appmesh-DeleteVirtualNode-response-virtualNodeName"></a>
The name of the virtual node.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_DeleteVirtualNode_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ResourceInUseException **   
You can't delete the specified resource because it's in use or required by another resource.  
HTTP Status Code: 409

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_DeleteVirtualNode_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_DeleteVirtualNode_Example_1"></a>

This example deletes a virtual node named `colorgateway-vn` in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_DeleteVirtualNode_Example_1_Request"></a>

```
DELETE /v20190125/meshes/ecs-mesh/virtualNodes/colorgateway-vn HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190227T231337Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_DeleteVirtualNode_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 84875cd2-d36c-445a-b1a7-6a26ec798e62
content-type: application/json
content-length: 688
date: Wed, 27 Feb 2019 23:13:37 GMT
x-envoy-upstream-service-time: 25
server: envoy
Connection: keep-alive

{
	"meshName": "ecs-mesh",
	"metadata": {
		"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualNode/colorgateway-vn",
		"createdAt": 1.551307227168E9,
		"lastUpdatedAt": 1.551309217745E9,
		"uid": "4cd6303b-491e-4c2b-9108-1a4690ec9f36",
		"version": 2
	},
	"spec": {
		"backends": [{
			"virtualService": {
				"virtualServiceName": "tcpecho.default.svc.cluster.local"
			}
		}, {
			"virtualService": {
				"virtualServiceName": "colorteller.default.svc.cluster.local"
			}
		}],
		"listeners": [{
			"healthCheck": null,
			"portMapping": {
				"port": 9080,
				"protocol": "http"
			}
		}],
		"logging": null,
		"serviceDiscovery": {
			"dns": {
				"hostname": "colorgateway.default.svc.cluster.local"
			}
		}
	},
	"status": {
		"status": "DELETED"
	},
	"virtualNodeName": "colorgateway-vn"
}
```

## See Also
<a name="API_DeleteVirtualNode_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/DeleteVirtualNode) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/DeleteVirtualNode) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/DeleteVirtualNode) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/DeleteVirtualNode) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/DeleteVirtualNode) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/DeleteVirtualNode) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/DeleteVirtualNode) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/DeleteVirtualNode) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/DeleteVirtualNode) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/DeleteVirtualNode) 

# DeleteVirtualRouter
<a name="API_DeleteVirtualRouter"></a>

Deletes an existing virtual router.

You must delete any routes associated with the virtual router before you can delete the router itself.

## Request Syntax
<a name="API_DeleteVirtualRouter_RequestSyntax"></a>

```
DELETE /v20190125/meshes/meshName/virtualRouters/virtualRouterName?meshOwner=meshOwner HTTP/1.1
```

## URI Request Parameters
<a name="API_DeleteVirtualRouter_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_DeleteVirtualRouter_RequestSyntax) **   <a name="appmesh-DeleteVirtualRouter-request-uri-meshName"></a>
The name of the service mesh to delete the virtual router in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_DeleteVirtualRouter_RequestSyntax) **   <a name="appmesh-DeleteVirtualRouter-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualRouterName](#API_DeleteVirtualRouter_RequestSyntax) **   <a name="appmesh-DeleteVirtualRouter-request-uri-virtualRouterName"></a>
The name of the virtual router to delete.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_DeleteVirtualRouter_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_DeleteVirtualRouter_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "listeners": [ 
         { 
            "portMapping": { 
               "port": number,
               "protocol": "string"
            }
         }
      ]
   },
   "status": { 
      "status": "string"
   },
   "virtualRouterName": "string"
}
```

## Response Elements
<a name="API_DeleteVirtualRouter_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_DeleteVirtualRouter_ResponseSyntax) **   <a name="appmesh-DeleteVirtualRouter-response-meshName"></a>
The name of the service mesh that the virtual router resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_DeleteVirtualRouter_ResponseSyntax) **   <a name="appmesh-DeleteVirtualRouter-response-metadata"></a>
The associated metadata for the virtual router.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_DeleteVirtualRouter_ResponseSyntax) **   <a name="appmesh-DeleteVirtualRouter-response-spec"></a>
The specifications of the virtual router.  
Type: [VirtualRouterSpec](API_VirtualRouterSpec.md) object

 ** [status](#API_DeleteVirtualRouter_ResponseSyntax) **   <a name="appmesh-DeleteVirtualRouter-response-status"></a>
The current status of the virtual router.  
Type: [VirtualRouterStatus](API_VirtualRouterStatus.md) object

 ** [virtualRouterName](#API_DeleteVirtualRouter_ResponseSyntax) **   <a name="appmesh-DeleteVirtualRouter-response-virtualRouterName"></a>
The name of the virtual router.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_DeleteVirtualRouter_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ResourceInUseException **   
You can't delete the specified resource because it's in use or required by another resource.  
HTTP Status Code: 409

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_DeleteVirtualRouter_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_DeleteVirtualRouter_Example_1"></a>

This example deletes a virtual router named `colorgateway-vr` in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_DeleteVirtualRouter_Example_1_Request"></a>

```
DELETE /v20190125/meshes/ecs-mesh/virtualRouters/colorgateway-vr HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190227T231334Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_DeleteVirtualRouter_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 77a5e726-69b4-4bd4-9016-99f76f4d1daa
content-type: application/json
content-length: 340
date: Wed, 27 Feb 2019 23:13:34 GMT
x-envoy-upstream-service-time: 23
server: envoy
Connection: keep-alive

{
  "meshName": "ecs-mesh",
  "metadata": {
    "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualRouter/colorgateway-vr",
    "createdAt": 1551307245.617,
    "lastUpdatedAt": 1551309214.686,
    "uid": "601f33c5-8938-4c07-a28a-3d3c91871ee4",
    "version": 2
  },
  "spec": {
    "listeners": [
      {
        "portMapping": {
          "port": 9080,
          "protocol": "http"
        }
      }
    ]
  },
  "status": {
    "status": "DELETED"
  },
  "virtualRouterName": "colorgateway-vr"
}
```

## See Also
<a name="API_DeleteVirtualRouter_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/DeleteVirtualRouter) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/DeleteVirtualRouter) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/DeleteVirtualRouter) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/DeleteVirtualRouter) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/DeleteVirtualRouter) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/DeleteVirtualRouter) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/DeleteVirtualRouter) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/DeleteVirtualRouter) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/DeleteVirtualRouter) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/DeleteVirtualRouter) 

# DeleteVirtualService
<a name="API_DeleteVirtualService"></a>

Deletes an existing virtual service.

## Request Syntax
<a name="API_DeleteVirtualService_RequestSyntax"></a>

```
DELETE /v20190125/meshes/meshName/virtualServices/virtualServiceName?meshOwner=meshOwner HTTP/1.1
```

## URI Request Parameters
<a name="API_DeleteVirtualService_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_DeleteVirtualService_RequestSyntax) **   <a name="appmesh-DeleteVirtualService-request-uri-meshName"></a>
The name of the service mesh to delete the virtual service in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_DeleteVirtualService_RequestSyntax) **   <a name="appmesh-DeleteVirtualService-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualServiceName](#API_DeleteVirtualService_RequestSyntax) **   <a name="appmesh-DeleteVirtualService-request-uri-virtualServiceName"></a>
The name of the virtual service to delete.  
Required: Yes

## Request Body
<a name="API_DeleteVirtualService_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_DeleteVirtualService_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "provider": { ... }
   },
   "status": { 
      "status": "string"
   },
   "virtualServiceName": "string"
}
```

## Response Elements
<a name="API_DeleteVirtualService_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_DeleteVirtualService_ResponseSyntax) **   <a name="appmesh-DeleteVirtualService-response-meshName"></a>
The name of the service mesh that the virtual service resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_DeleteVirtualService_ResponseSyntax) **   <a name="appmesh-DeleteVirtualService-response-metadata"></a>
An object that represents metadata for a resource.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_DeleteVirtualService_ResponseSyntax) **   <a name="appmesh-DeleteVirtualService-response-spec"></a>
The specifications of the virtual service.  
Type: [VirtualServiceSpec](API_VirtualServiceSpec.md) object

 ** [status](#API_DeleteVirtualService_ResponseSyntax) **   <a name="appmesh-DeleteVirtualService-response-status"></a>
The current status of the virtual service.  
Type: [VirtualServiceStatus](API_VirtualServiceStatus.md) object

 ** [virtualServiceName](#API_DeleteVirtualService_ResponseSyntax) **   <a name="appmesh-DeleteVirtualService-response-virtualServiceName"></a>
The name of the virtual service.  
Type: String

## Errors
<a name="API_DeleteVirtualService_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ResourceInUseException **   
You can't delete the specified resource because it's in use or required by another resource.  
HTTP Status Code: 409

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_DeleteVirtualService_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_DeleteVirtualService_Example_1"></a>

This example deletes a virtual service named `colorgateway.default.svc.cluster.local` in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_DeleteVirtualService_Example_1_Request"></a>

```
DELETE /v20190125/meshes/ecs-mesh/virtualServices/colorgateway.default.svc.cluster.local HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190227T231318Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_DeleteVirtualService_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 8a5c10db-aebc-4341-8b15-4003e87150e8
content-type: application/json
content-length: 456
date: Wed, 27 Feb 2019 23:13:18 GMT
x-envoy-upstream-service-time: 78
server: envoy
Connection: keep-alive

{
	"meshName": "ecs-mesh",
	"metadata": {
		"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualService/colorgateway.default.svc.cluster.local",
		"createdAt": 1.551307250696E9,
		"lastUpdatedAt": 1.55130919872E9,
		"uid": "90849766-3af0-40bc-9a83-a7b932d64fb6",
		"version": 2
	},
	"spec": {
		"provider": {
			"virtualNode": {
				"virtualNodeName": "colorgateway-vn"
			},
			"virtualRouter": null
		}
	},
	"status": {
		"status": "DELETED"
	},
	"virtualServiceName": "colorgateway.default.svc.cluster.local"
}
```

## See Also
<a name="API_DeleteVirtualService_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/DeleteVirtualService) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/DeleteVirtualService) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/DeleteVirtualService) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/DeleteVirtualService) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/DeleteVirtualService) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/DeleteVirtualService) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/DeleteVirtualService) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/DeleteVirtualService) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/DeleteVirtualService) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/DeleteVirtualService) 

# DescribeGatewayRoute
<a name="API_DescribeGatewayRoute"></a>

Describes an existing gateway route.

## Request Syntax
<a name="API_DescribeGatewayRoute_RequestSyntax"></a>

```
GET /v20190125/meshes/meshName/virtualGateway/virtualGatewayName/gatewayRoutes/gatewayRouteName?meshOwner=meshOwner HTTP/1.1
```

## URI Request Parameters
<a name="API_DescribeGatewayRoute_RequestParameters"></a>

The request uses the following URI parameters.

 ** [gatewayRouteName](#API_DescribeGatewayRoute_RequestSyntax) **   <a name="appmesh-DescribeGatewayRoute-request-uri-gatewayRouteName"></a>
The name of the gateway route to describe.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshName](#API_DescribeGatewayRoute_RequestSyntax) **   <a name="appmesh-DescribeGatewayRoute-request-uri-meshName"></a>
The name of the service mesh that the gateway route resides in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_DescribeGatewayRoute_RequestSyntax) **   <a name="appmesh-DescribeGatewayRoute-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualGatewayName](#API_DescribeGatewayRoute_RequestSyntax) **   <a name="appmesh-DescribeGatewayRoute-request-uri-virtualGatewayName"></a>
The name of the virtual gateway that the gateway route is associated with.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_DescribeGatewayRoute_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_DescribeGatewayRoute_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "gatewayRouteName": "string",
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "grpcRoute": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "metadata": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "port": number,
            "serviceName": "string"
         }
      },
      "http2Route": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               },
               "path": { 
                  "exact": "string"
               },
               "prefix": { 
                  "defaultPrefix": "string",
                  "value": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ]
         }
      },
      "httpRoute": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               },
               "path": { 
                  "exact": "string"
               },
               "prefix": { 
                  "defaultPrefix": "string",
                  "value": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ]
         }
      },
      "priority": number
   },
   "status": { 
      "status": "string"
   },
   "virtualGatewayName": "string"
}
```

## Response Elements
<a name="API_DescribeGatewayRoute_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [gatewayRouteName](#API_DescribeGatewayRoute_ResponseSyntax) **   <a name="appmesh-DescribeGatewayRoute-response-gatewayRouteName"></a>
The name of the gateway route.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [meshName](#API_DescribeGatewayRoute_ResponseSyntax) **   <a name="appmesh-DescribeGatewayRoute-response-meshName"></a>
The name of the service mesh that the resource resides in.   
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_DescribeGatewayRoute_ResponseSyntax) **   <a name="appmesh-DescribeGatewayRoute-response-metadata"></a>
An object that represents metadata for a resource.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_DescribeGatewayRoute_ResponseSyntax) **   <a name="appmesh-DescribeGatewayRoute-response-spec"></a>
The specifications of the gateway route.  
Type: [GatewayRouteSpec](API_GatewayRouteSpec.md) object

 ** [status](#API_DescribeGatewayRoute_ResponseSyntax) **   <a name="appmesh-DescribeGatewayRoute-response-status"></a>
The status of the gateway route.  
Type: [GatewayRouteStatus](API_GatewayRouteStatus.md) object

 ** [virtualGatewayName](#API_DescribeGatewayRoute_ResponseSyntax) **   <a name="appmesh-DescribeGatewayRoute-response-virtualGatewayName"></a>
The virtual gateway that the gateway route is associated with.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_DescribeGatewayRoute_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_DescribeGatewayRoute_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_DescribeGatewayRoute_Example_1"></a>

The following example describes a gateway route named `myGatewayRoute` that is associated with a virtual gateway named `myVirtualGateway` in the `apps` service mesh. 

#### Sample Request
<a name="API_DescribeGatewayRoute_Example_1_Request"></a>

```
GET /v20190125/meshes/apps/virtualGateway/myVirtualGateway/gatewayRoutes/myGatewayRoute HTTP/1.1
Host: appmesh.us-west-2.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.298 Python/3.6.0 Windows/10 botocore/1.13.34
X-Amz-Date: 20200608T194902Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_DescribeGatewayRoute_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 6d60d9e4-294d-40ca-a829-37f9ebc058e8
content-type: application/json
content-length: 617
date: Mon, 08 Jun 2020 20:26:03 GMT
x-envoy-upstream-service-time: 31
server: envoy
Connection: keep-alive

{
	"gatewayRouteName": "myGatewayRoute",
	"meshName": "myApps",
	"metadata": {
		"arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/apps/virtualGateway/myVirtualGateway/gatewayRoute/myGatewayRoute",
		"createdAt": 1.591645848403E9,
		"lastUpdatedAt": 1.591645848403E9,
		"meshOwner": "123456789012",
		"resourceOwner": "123456789012",
		"uid": "ff111ff2-33ff-4ff4-ffff-111f111f111f",
		"version": 1
	},
	"spec": {
		"grpcRoute": null,
		"http2Route": {
			"action": {
				"target": {
					"virtualService": {
						"virtualServiceName": "myservicea.svc.cluster.local"
					}
				}
			},
			"match": {
				"prefix": "/"
			}
		},
		"httpRoute": null
	},
	"status": {
		"status": "ACTIVE"
	},
	"virtualGatewayName": "myVirtualGateway"
}
```

## See Also
<a name="API_DescribeGatewayRoute_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/DescribeGatewayRoute) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/DescribeGatewayRoute) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/DescribeGatewayRoute) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/DescribeGatewayRoute) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/DescribeGatewayRoute) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/DescribeGatewayRoute) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/DescribeGatewayRoute) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/DescribeGatewayRoute) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/DescribeGatewayRoute) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/DescribeGatewayRoute) 

# DescribeMesh
<a name="API_DescribeMesh"></a>

Describes an existing service mesh.

## Request Syntax
<a name="API_DescribeMesh_RequestSyntax"></a>

```
GET /v20190125/meshes/meshName?meshOwner=meshOwner HTTP/1.1
```

## URI Request Parameters
<a name="API_DescribeMesh_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_DescribeMesh_RequestSyntax) **   <a name="appmesh-DescribeMesh-request-uri-meshName"></a>
The name of the service mesh to describe.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_DescribeMesh_RequestSyntax) **   <a name="appmesh-DescribeMesh-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

## Request Body
<a name="API_DescribeMesh_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_DescribeMesh_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "egressFilter": { 
         "type": "string"
      },
      "serviceDiscovery": { 
         "ipPreference": "string"
      }
   },
   "status": { 
      "status": "string"
   }
}
```

## Response Elements
<a name="API_DescribeMesh_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_DescribeMesh_ResponseSyntax) **   <a name="appmesh-DescribeMesh-response-meshName"></a>
The name of the service mesh.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_DescribeMesh_ResponseSyntax) **   <a name="appmesh-DescribeMesh-response-metadata"></a>
The associated metadata for the service mesh.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_DescribeMesh_ResponseSyntax) **   <a name="appmesh-DescribeMesh-response-spec"></a>
The associated specification for the service mesh.  
Type: [MeshSpec](API_MeshSpec.md) object

 ** [status](#API_DescribeMesh_ResponseSyntax) **   <a name="appmesh-DescribeMesh-response-status"></a>
The status of the service mesh.  
Type: [MeshStatus](API_MeshStatus.md) object

## Errors
<a name="API_DescribeMesh_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_DescribeMesh_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_DescribeMesh_Example_1"></a>

This example describes a service mesh named `ecs-mesh`.

#### Sample Request
<a name="API_DescribeMesh_Example_1_Request"></a>

```
GET /v20190125/meshes HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190227T235715Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_DescribeMesh_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 572dcc56-18d6-4f86-b596-8e182f81afce
content-type: application/json
content-length: 114
date: Wed, 27 Feb 2019 23:57:15 GMT
x-envoy-upstream-service-time: 67
server: envoy
Connection: keep-alive

{
	"meshes": [{
		"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh",
		"meshName": "ecs-mesh"
	}],
	"nextToken": null
}
```

## See Also
<a name="API_DescribeMesh_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/DescribeMesh) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/DescribeMesh) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/DescribeMesh) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/DescribeMesh) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/DescribeMesh) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/DescribeMesh) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/DescribeMesh) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/DescribeMesh) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/DescribeMesh) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/DescribeMesh) 

# DescribeRoute
<a name="API_DescribeRoute"></a>

Describes an existing route.

## Request Syntax
<a name="API_DescribeRoute_RequestSyntax"></a>

```
GET /v20190125/meshes/meshName/virtualRouter/virtualRouterName/routes/routeName?meshOwner=meshOwner HTTP/1.1
```

## URI Request Parameters
<a name="API_DescribeRoute_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_DescribeRoute_RequestSyntax) **   <a name="appmesh-DescribeRoute-request-uri-meshName"></a>
The name of the service mesh that the route resides in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_DescribeRoute_RequestSyntax) **   <a name="appmesh-DescribeRoute-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [routeName](#API_DescribeRoute_RequestSyntax) **   <a name="appmesh-DescribeRoute-request-uri-routeName"></a>
The name of the route to describe.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [virtualRouterName](#API_DescribeRoute_RequestSyntax) **   <a name="appmesh-DescribeRoute-request-uri-virtualRouterName"></a>
The name of the virtual router that the route is associated with.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_DescribeRoute_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_DescribeRoute_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "routeName": "string",
   "spec": { 
      "grpcRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "metadata": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "methodName": "string",
            "port": number,
            "serviceName": "string"
         },
         "retryPolicy": { 
            "grpcRetryEvents": [ "string" ],
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "http2Route": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ],
            "scheme": "string"
         },
         "retryPolicy": { 
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "httpRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ],
            "scheme": "string"
         },
         "retryPolicy": { 
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "priority": number,
      "tcpRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "port": number
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            }
         }
      }
   },
   "status": { 
      "status": "string"
   },
   "virtualRouterName": "string"
}
```

## Response Elements
<a name="API_DescribeRoute_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_DescribeRoute_ResponseSyntax) **   <a name="appmesh-DescribeRoute-response-meshName"></a>
The name of the service mesh that the route resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_DescribeRoute_ResponseSyntax) **   <a name="appmesh-DescribeRoute-response-metadata"></a>
The associated metadata for the route.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [routeName](#API_DescribeRoute_ResponseSyntax) **   <a name="appmesh-DescribeRoute-response-routeName"></a>
The name of the route.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [spec](#API_DescribeRoute_ResponseSyntax) **   <a name="appmesh-DescribeRoute-response-spec"></a>
The specifications of the route.  
Type: [RouteSpec](API_RouteSpec.md) object

 ** [status](#API_DescribeRoute_ResponseSyntax) **   <a name="appmesh-DescribeRoute-response-status"></a>
The status of the route.  
Type: [RouteStatus](API_RouteStatus.md) object

 ** [virtualRouterName](#API_DescribeRoute_ResponseSyntax) **   <a name="appmesh-DescribeRoute-response-virtualRouterName"></a>
The virtual router that the route is associated with.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_DescribeRoute_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_DescribeRoute_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_DescribeRoute_Example_1"></a>

This example describes a route named `colorteller-route` for the `colorteller-vr` virtual router in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_DescribeRoute_Example_1_Request"></a>

```
GET /v20190125/meshes/ecs-mesh/virtualRouter/colorteller-vr/routes/colorteller-route HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190228T000038Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_DescribeRoute_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: f28c32fe-2d36-4fcf-a64e-01b45a4b034c
content-type: application/json
content-length: 504
date: Thu, 28 Feb 2019 00:00:38 GMT
x-envoy-upstream-service-time: 46
server: envoy
Connection: keep-alive

{
	"meshName": "ecs-mesh",
	"metadata": {
		"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualRouter/colorteller-vr/route/colorteller-route",
		"createdAt": 1.551311817276E9,
		"lastUpdatedAt": 1.551311817276E9,
		"uid": "1cf3109a-0d7f-438c-b17d-a3785f14ff7b",
		"version": 1
	},
	"routeName": "colorteller-route",
	"spec": {
		"httpRoute": {
			"action": {
				"weightedTargets": [{
					"virtualNode": "colorteller-vn",
					"weight": 1
				}]
			},
			"match": {
				"prefix": "/"
			}
		},
		"tcpRoute": null
	},
	"status": {
		"status": "ACTIVE"
	},
	"virtualRouterName": "colorteller-vr"
}
```

## See Also
<a name="API_DescribeRoute_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/DescribeRoute) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/DescribeRoute) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/DescribeRoute) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/DescribeRoute) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/DescribeRoute) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/DescribeRoute) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/DescribeRoute) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/DescribeRoute) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/DescribeRoute) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/DescribeRoute) 

# DescribeVirtualGateway
<a name="API_DescribeVirtualGateway"></a>

Describes an existing virtual gateway.

## Request Syntax
<a name="API_DescribeVirtualGateway_RequestSyntax"></a>

```
GET /v20190125/meshes/meshName/virtualGateways/virtualGatewayName?meshOwner=meshOwner HTTP/1.1
```

## URI Request Parameters
<a name="API_DescribeVirtualGateway_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_DescribeVirtualGateway_RequestSyntax) **   <a name="appmesh-DescribeVirtualGateway-request-uri-meshName"></a>
The name of the service mesh that the gateway route resides in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_DescribeVirtualGateway_RequestSyntax) **   <a name="appmesh-DescribeVirtualGateway-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualGatewayName](#API_DescribeVirtualGateway_RequestSyntax) **   <a name="appmesh-DescribeVirtualGateway-request-uri-virtualGatewayName"></a>
The name of the virtual gateway to describe.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_DescribeVirtualGateway_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_DescribeVirtualGateway_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "backendDefaults": { 
         "clientPolicy": { 
            "tls": { 
               "certificate": { ... },
               "enforce": boolean,
               "ports": [ number ],
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      },
      "listeners": [ 
         { 
            "connectionPool": { ... },
            "healthCheck": { 
               "healthyThreshold": number,
               "intervalMillis": number,
               "path": "string",
               "port": number,
               "protocol": "string",
               "timeoutMillis": number,
               "unhealthyThreshold": number
            },
            "portMapping": { 
               "port": number,
               "protocol": "string"
            },
            "tls": { 
               "certificate": { ... },
               "mode": "string",
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      ],
      "logging": { 
         "accessLog": { ... }
      }
   },
   "status": { 
      "status": "string"
   },
   "virtualGatewayName": "string"
}
```

## Response Elements
<a name="API_DescribeVirtualGateway_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_DescribeVirtualGateway_ResponseSyntax) **   <a name="appmesh-DescribeVirtualGateway-response-meshName"></a>
The name of the service mesh that the virtual gateway resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_DescribeVirtualGateway_ResponseSyntax) **   <a name="appmesh-DescribeVirtualGateway-response-metadata"></a>
An object that represents metadata for a resource.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_DescribeVirtualGateway_ResponseSyntax) **   <a name="appmesh-DescribeVirtualGateway-response-spec"></a>
The specifications of the virtual gateway.  
Type: [VirtualGatewaySpec](API_VirtualGatewaySpec.md) object

 ** [status](#API_DescribeVirtualGateway_ResponseSyntax) **   <a name="appmesh-DescribeVirtualGateway-response-status"></a>
The current status of the virtual gateway.  
Type: [VirtualGatewayStatus](API_VirtualGatewayStatus.md) object

 ** [virtualGatewayName](#API_DescribeVirtualGateway_ResponseSyntax) **   <a name="appmesh-DescribeVirtualGateway-response-virtualGatewayName"></a>
The name of the virtual gateway.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_DescribeVirtualGateway_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_DescribeVirtualGateway_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_DescribeVirtualGateway_Example_1"></a>

The following example describes a virtual gateway named `myVirtualGateway` that is in the `apps` service mesh.

#### Sample Request
<a name="API_DescribeVirtualGateway_Example_1_Request"></a>

```
GET /v20190125/meshes/apps/virtualGateways/myVirtualGateway HTTP/1.1
Host: appmesh.us-west-2.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.298 Python/3.6.0 Windows/10 botocore/1.13.34
X-Amz-Date: 20200706T145910Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_DescribeVirtualGateway_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 52e5ee7c-7434-4ca0-885e-5c9d8a7bbaf8
content-type: application/json
content-length: 513
date: Mon, 06 Jul 2020 14:59:10 GMT
x-envoy-upstream-service-time: 19
server: envoy
Connection: keep-alive

{
	"meshName": "apps",
	"metadata": {
		"arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/apps/virtualGateway/myVirtualGateway",
		"createdAt": 1.594046778215E9,
		"lastUpdatedAt": 1.594046778215E9,
		"meshOwner": "123456789012",
		"resourceOwner": "123456789012",
		"uid": "ff111ff2-33ff-4ff4-ffff-111f111f111f",
		"version": 1
	},
	"spec": {
		"backendDefaults": null,
		"listeners": [{
			"healthCheck": null,
			"portMapping": {
				"port": 80,
				"protocol": "http2"
			},
			"tls": null
		}],
		"logging": null
	},
	"status": {
		"status": "ACTIVE"
	},
	"virtualGatewayName": "myVirtualGateway"
}
```

## See Also
<a name="API_DescribeVirtualGateway_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/DescribeVirtualGateway) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/DescribeVirtualGateway) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/DescribeVirtualGateway) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/DescribeVirtualGateway) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/DescribeVirtualGateway) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/DescribeVirtualGateway) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/DescribeVirtualGateway) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/DescribeVirtualGateway) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/DescribeVirtualGateway) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/DescribeVirtualGateway) 

# DescribeVirtualNode
<a name="API_DescribeVirtualNode"></a>

Describes an existing virtual node.

## Request Syntax
<a name="API_DescribeVirtualNode_RequestSyntax"></a>

```
GET /v20190125/meshes/meshName/virtualNodes/virtualNodeName?meshOwner=meshOwner HTTP/1.1
```

## URI Request Parameters
<a name="API_DescribeVirtualNode_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_DescribeVirtualNode_RequestSyntax) **   <a name="appmesh-DescribeVirtualNode-request-uri-meshName"></a>
The name of the service mesh that the virtual node resides in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_DescribeVirtualNode_RequestSyntax) **   <a name="appmesh-DescribeVirtualNode-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualNodeName](#API_DescribeVirtualNode_RequestSyntax) **   <a name="appmesh-DescribeVirtualNode-request-uri-virtualNodeName"></a>
The name of the virtual node to describe.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_DescribeVirtualNode_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_DescribeVirtualNode_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "backendDefaults": { 
         "clientPolicy": { 
            "tls": { 
               "certificate": { ... },
               "enforce": boolean,
               "ports": [ number ],
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      },
      "backends": [ 
         { ... }
      ],
      "listeners": [ 
         { 
            "connectionPool": { ... },
            "healthCheck": { 
               "healthyThreshold": number,
               "intervalMillis": number,
               "path": "string",
               "port": number,
               "protocol": "string",
               "timeoutMillis": number,
               "unhealthyThreshold": number
            },
            "outlierDetection": { 
               "baseEjectionDuration": { 
                  "unit": "string",
                  "value": number
               },
               "interval": { 
                  "unit": "string",
                  "value": number
               },
               "maxEjectionPercent": number,
               "maxServerErrors": number
            },
            "portMapping": { 
               "port": number,
               "protocol": "string"
            },
            "timeout": { ... },
            "tls": { 
               "certificate": { ... },
               "mode": "string",
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      ],
      "logging": { 
         "accessLog": { ... }
      },
      "serviceDiscovery": { ... }
   },
   "status": { 
      "status": "string"
   },
   "virtualNodeName": "string"
}
```

## Response Elements
<a name="API_DescribeVirtualNode_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_DescribeVirtualNode_ResponseSyntax) **   <a name="appmesh-DescribeVirtualNode-response-meshName"></a>
The name of the service mesh that the virtual node resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_DescribeVirtualNode_ResponseSyntax) **   <a name="appmesh-DescribeVirtualNode-response-metadata"></a>
The associated metadata for the virtual node.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_DescribeVirtualNode_ResponseSyntax) **   <a name="appmesh-DescribeVirtualNode-response-spec"></a>
The specifications of the virtual node.  
Type: [VirtualNodeSpec](API_VirtualNodeSpec.md) object

 ** [status](#API_DescribeVirtualNode_ResponseSyntax) **   <a name="appmesh-DescribeVirtualNode-response-status"></a>
The current status for the virtual node.  
Type: [VirtualNodeStatus](API_VirtualNodeStatus.md) object

 ** [virtualNodeName](#API_DescribeVirtualNode_ResponseSyntax) **   <a name="appmesh-DescribeVirtualNode-response-virtualNodeName"></a>
The name of the virtual node.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_DescribeVirtualNode_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_DescribeVirtualNode_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_DescribeVirtualNode_Example_1"></a>

This example describes a virtual node named `colorteller-vn` in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_DescribeVirtualNode_Example_1_Request"></a>

```
GET /v20190125/meshes/ecs-mesh/virtualNodes/colorteller-vn HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190228T000300Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_DescribeVirtualNode_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 083f9376-9799-4142-978b-42f5966192b8
content-type: application/json
content-length: 654
date: Thu, 28 Feb 2019 00:03:00 GMT
x-envoy-upstream-service-time: 60
server: envoy
Connection: keep-alive

{
	"meshName": "ecs-mesh",
	"metadata": {
		"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualNode/colorteller-vn",
		"createdAt": 1.551311799179E9,
		"lastUpdatedAt": 1.551311799179E9,
		"uid": "0999e53a-8e0e-4c4c-8764-ae8ebecc296d",
		"version": 1
	},
	"spec": {
		"backends": [],
		"listeners": [{
			"healthCheck": {
				"healthyThreshold": 2,
				"intervalMillis": 5000,
				"path": "/ping",
				"port": 9080,
				"protocol": "http",
				"timeoutMillis": 2000,
				"unhealthyThreshold": 2
			},
			"portMapping": {
				"port": 9080,
				"protocol": "http"
			}
		}],
		"logging": null,
		"serviceDiscovery": {
			"dns": {
				"hostname": "colorteller.default.svc.cluster.local"
			}
		}
	},
	"status": {
		"status": "ACTIVE"
	},
	"virtualNodeName": "colorteller-vn"
}
```

## See Also
<a name="API_DescribeVirtualNode_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/DescribeVirtualNode) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/DescribeVirtualNode) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/DescribeVirtualNode) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/DescribeVirtualNode) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/DescribeVirtualNode) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/DescribeVirtualNode) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/DescribeVirtualNode) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/DescribeVirtualNode) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/DescribeVirtualNode) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/DescribeVirtualNode) 

# DescribeVirtualRouter
<a name="API_DescribeVirtualRouter"></a>

Describes an existing virtual router.

## Request Syntax
<a name="API_DescribeVirtualRouter_RequestSyntax"></a>

```
GET /v20190125/meshes/meshName/virtualRouters/virtualRouterName?meshOwner=meshOwner HTTP/1.1
```

## URI Request Parameters
<a name="API_DescribeVirtualRouter_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_DescribeVirtualRouter_RequestSyntax) **   <a name="appmesh-DescribeVirtualRouter-request-uri-meshName"></a>
The name of the service mesh that the virtual router resides in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_DescribeVirtualRouter_RequestSyntax) **   <a name="appmesh-DescribeVirtualRouter-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualRouterName](#API_DescribeVirtualRouter_RequestSyntax) **   <a name="appmesh-DescribeVirtualRouter-request-uri-virtualRouterName"></a>
The name of the virtual router to describe.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_DescribeVirtualRouter_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_DescribeVirtualRouter_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "listeners": [ 
         { 
            "portMapping": { 
               "port": number,
               "protocol": "string"
            }
         }
      ]
   },
   "status": { 
      "status": "string"
   },
   "virtualRouterName": "string"
}
```

## Response Elements
<a name="API_DescribeVirtualRouter_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_DescribeVirtualRouter_ResponseSyntax) **   <a name="appmesh-DescribeVirtualRouter-response-meshName"></a>
The name of the service mesh that the virtual router resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_DescribeVirtualRouter_ResponseSyntax) **   <a name="appmesh-DescribeVirtualRouter-response-metadata"></a>
The associated metadata for the virtual router.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_DescribeVirtualRouter_ResponseSyntax) **   <a name="appmesh-DescribeVirtualRouter-response-spec"></a>
The specifications of the virtual router.  
Type: [VirtualRouterSpec](API_VirtualRouterSpec.md) object

 ** [status](#API_DescribeVirtualRouter_ResponseSyntax) **   <a name="appmesh-DescribeVirtualRouter-response-status"></a>
The current status of the virtual router.  
Type: [VirtualRouterStatus](API_VirtualRouterStatus.md) object

 ** [virtualRouterName](#API_DescribeVirtualRouter_ResponseSyntax) **   <a name="appmesh-DescribeVirtualRouter-response-virtualRouterName"></a>
The name of the virtual router.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_DescribeVirtualRouter_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_DescribeVirtualRouter_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_DescribeVirtualRouter_Example_1"></a>

This example describes a virtual router named `colorteller-vr` in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_DescribeVirtualRouter_Example_1_Request"></a>

```
GET /v20190125/meshes/ecs-mesh/virtualRouters/colorteller-vr HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190228T000509Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_DescribeVirtualRouter_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: e7e0fbe8-2015-429c-bbb5-c736c09b2500
content-type: application/json
content-length: 337
date: Thu, 28 Feb 2019 00:05:10 GMT
x-envoy-upstream-service-time: 68
server: envoy
Connection: keep-alive

{
  "meshName": "ecs-mesh",
  "metadata": {
    "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualRouter/colorteller-vr",
    "createdAt": 1551311805.476,
    "lastUpdatedAt": 1551311805.476,
    "uid": "79628d34-8c17-42ba-83a5-8a42fd17ec5a",
    "version": 1
  },
  "spec": {
    "listeners": [
      {
        "portMapping": {
          "port": 9080,
          "protocol": "http"
        }
      }
    ]
  },
  "status": {
    "status": "ACTIVE"
  },
  "virtualRouterName": "colorteller-vr"
}
```

## See Also
<a name="API_DescribeVirtualRouter_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/DescribeVirtualRouter) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/DescribeVirtualRouter) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/DescribeVirtualRouter) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/DescribeVirtualRouter) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/DescribeVirtualRouter) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/DescribeVirtualRouter) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/DescribeVirtualRouter) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/DescribeVirtualRouter) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/DescribeVirtualRouter) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/DescribeVirtualRouter) 

# DescribeVirtualService
<a name="API_DescribeVirtualService"></a>

Describes an existing virtual service.

## Request Syntax
<a name="API_DescribeVirtualService_RequestSyntax"></a>

```
GET /v20190125/meshes/meshName/virtualServices/virtualServiceName?meshOwner=meshOwner HTTP/1.1
```

## URI Request Parameters
<a name="API_DescribeVirtualService_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_DescribeVirtualService_RequestSyntax) **   <a name="appmesh-DescribeVirtualService-request-uri-meshName"></a>
The name of the service mesh that the virtual service resides in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_DescribeVirtualService_RequestSyntax) **   <a name="appmesh-DescribeVirtualService-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualServiceName](#API_DescribeVirtualService_RequestSyntax) **   <a name="appmesh-DescribeVirtualService-request-uri-virtualServiceName"></a>
The name of the virtual service to describe.  
Required: Yes

## Request Body
<a name="API_DescribeVirtualService_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_DescribeVirtualService_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "provider": { ... }
   },
   "status": { 
      "status": "string"
   },
   "virtualServiceName": "string"
}
```

## Response Elements
<a name="API_DescribeVirtualService_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_DescribeVirtualService_ResponseSyntax) **   <a name="appmesh-DescribeVirtualService-response-meshName"></a>
The name of the service mesh that the virtual service resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_DescribeVirtualService_ResponseSyntax) **   <a name="appmesh-DescribeVirtualService-response-metadata"></a>
An object that represents metadata for a resource.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_DescribeVirtualService_ResponseSyntax) **   <a name="appmesh-DescribeVirtualService-response-spec"></a>
The specifications of the virtual service.  
Type: [VirtualServiceSpec](API_VirtualServiceSpec.md) object

 ** [status](#API_DescribeVirtualService_ResponseSyntax) **   <a name="appmesh-DescribeVirtualService-response-status"></a>
The current status of the virtual service.  
Type: [VirtualServiceStatus](API_VirtualServiceStatus.md) object

 ** [virtualServiceName](#API_DescribeVirtualService_ResponseSyntax) **   <a name="appmesh-DescribeVirtualService-response-virtualServiceName"></a>
The name of the virtual service.  
Type: String

## Errors
<a name="API_DescribeVirtualService_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_DescribeVirtualService_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_DescribeVirtualService_Example_1"></a>

This example describes a virtual service named `colorgateway.default.svc.cluster.local` in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_DescribeVirtualService_Example_1_Request"></a>

```
GET /v20190125/meshes/ecs-mesh/virtualServices/colorgateway.default.svc.cluster.local HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190228T000705Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_DescribeVirtualService_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 3b822acc-bd78-4ea6-9831-8cd989dd37ec
content-type: application/json
content-length: 456
date: Thu, 28 Feb 2019 00:07:04 GMT
x-envoy-upstream-service-time: 30
server: envoy
Connection: keep-alive

{
	"meshName": "ecs-mesh",
	"metadata": {
		"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualService/colorgateway.default.svc.cluster.local",
		"createdAt": 1.551311807444E9,
		"lastUpdatedAt": 1.551311807444E9,
		"uid": "dd06064b-e542-40a9-bbc7-e381a47ea0e0",
		"version": 1
	},
	"spec": {
		"provider": {
			"virtualNode": {
				"virtualNodeName": "colorgateway-vn"
			},
			"virtualRouter": null
		}
	},
	"status": {
		"status": "ACTIVE"
	},
	"virtualServiceName": "colorgateway.default.svc.cluster.local"
}
```

## See Also
<a name="API_DescribeVirtualService_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/DescribeVirtualService) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/DescribeVirtualService) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/DescribeVirtualService) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/DescribeVirtualService) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/DescribeVirtualService) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/DescribeVirtualService) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/DescribeVirtualService) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/DescribeVirtualService) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/DescribeVirtualService) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/DescribeVirtualService) 

# ListGatewayRoutes
<a name="API_ListGatewayRoutes"></a>

Returns a list of existing gateway routes that are associated to a virtual gateway.

## Request Syntax
<a name="API_ListGatewayRoutes_RequestSyntax"></a>

```
GET /v20190125/meshes/meshName/virtualGateway/virtualGatewayName/gatewayRoutes?limit=limit&meshOwner=meshOwner&nextToken=nextToken HTTP/1.1
```

## URI Request Parameters
<a name="API_ListGatewayRoutes_RequestParameters"></a>

The request uses the following URI parameters.

 ** [limit](#API_ListGatewayRoutes_RequestSyntax) **   <a name="appmesh-ListGatewayRoutes-request-uri-limit"></a>
The maximum number of results returned by `ListGatewayRoutes` in paginated output. When you use this parameter, `ListGatewayRoutes` returns only `limit` results in a single page along with a `nextToken` response element. You can see the remaining results of the initial request by sending another `ListGatewayRoutes` request with the returned `nextToken` value. This value can be between 1 and 100. If you don't use this parameter, `ListGatewayRoutes` returns up to 100 results and a `nextToken` value if applicable.  
Valid Range: Minimum value of 1. Maximum value of 100.

 ** [meshName](#API_ListGatewayRoutes_RequestSyntax) **   <a name="appmesh-ListGatewayRoutes-request-uri-meshName"></a>
The name of the service mesh to list gateway routes in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_ListGatewayRoutes_RequestSyntax) **   <a name="appmesh-ListGatewayRoutes-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [nextToken](#API_ListGatewayRoutes_RequestSyntax) **   <a name="appmesh-ListGatewayRoutes-request-uri-nextToken"></a>
The `nextToken` value returned from a previous paginated `ListGatewayRoutes` request where `limit` was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the `nextToken` value.

 ** [virtualGatewayName](#API_ListGatewayRoutes_RequestSyntax) **   <a name="appmesh-ListGatewayRoutes-request-uri-virtualGatewayName"></a>
The name of the virtual gateway to list gateway routes in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_ListGatewayRoutes_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_ListGatewayRoutes_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "gatewayRoutes": [ 
      { 
         "arn": "string",
         "createdAt": number,
         "gatewayRouteName": "string",
         "lastUpdatedAt": number,
         "meshName": "string",
         "meshOwner": "string",
         "resourceOwner": "string",
         "version": number,
         "virtualGatewayName": "string"
      }
   ],
   "nextToken": "string"
}
```

## Response Elements
<a name="API_ListGatewayRoutes_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [gatewayRoutes](#API_ListGatewayRoutes_ResponseSyntax) **   <a name="appmesh-ListGatewayRoutes-response-gatewayRoutes"></a>
The list of existing gateway routes for the specified service mesh and virtual gateway.  
Type: Array of [GatewayRouteRef](API_GatewayRouteRef.md) objects

 ** [nextToken](#API_ListGatewayRoutes_ResponseSyntax) **   <a name="appmesh-ListGatewayRoutes-response-nextToken"></a>
The `nextToken` value to include in a future `ListGatewayRoutes` request. When the results of a `ListGatewayRoutes` request exceed `limit`, you can use this value to retrieve the next page of results. This value is `null` when there are no more results to return.  
Type: String

## Errors
<a name="API_ListGatewayRoutes_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_ListGatewayRoutes_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_ListGatewayRoutes_Example_1"></a>

The following example lists gateway routes that are associated with the virtual gateway named `myVirtualGateway` in the `apps` service mesh. 

#### Sample Request
<a name="API_ListGatewayRoutes_Example_1_Request"></a>

```
GET /v20190125/meshes/apps/virtualGateway/myVirtualGateway/gatewayRoutes HTTP/1.1
Host: appmesh.us-west-2.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.298 Python/3.6.0 Windows/10 botocore/1.13.34
X-Amz-Date: 20200608T190053Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_ListGatewayRoutes_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: b82c3691-a7a9-4d99-acf6-0f9a81db9beb
content-type: application/json
content-length: 393
date: Mon, 08 Jun 2020 20:52:25 GMT
x-envoy-upstream-service-time: 26
server: envoy
Connection: keep-alive

{
	"gatewayRoutes": [{
		"arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/apps/virtualGateway/myVirtualGateway/gatewayRoute/myGatewayRoute",
		"createdAt": 1.591642091122E9,
		"gatewayRouteName": "myGatewayRoute",
		"lastUpdatedAt": 1.591642091122E9,
		"meshName": "myApps",
		"meshOwner": "123456789012",
		"resourceOwner": "123456789012",
		"version": 1,
		"virtualGatewayName": "myVirtualGateway"
	}],
	"nextToken": null
}
```

## See Also
<a name="API_ListGatewayRoutes_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/ListGatewayRoutes) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/ListGatewayRoutes) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/ListGatewayRoutes) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/ListGatewayRoutes) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/ListGatewayRoutes) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/ListGatewayRoutes) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/ListGatewayRoutes) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/ListGatewayRoutes) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/ListGatewayRoutes) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/ListGatewayRoutes) 

# ListMeshes
<a name="API_ListMeshes"></a>

Returns a list of existing service meshes.

## Request Syntax
<a name="API_ListMeshes_RequestSyntax"></a>

```
GET /v20190125/meshes?limit=limit&nextToken=nextToken HTTP/1.1
```

## URI Request Parameters
<a name="API_ListMeshes_RequestParameters"></a>

The request uses the following URI parameters.

 ** [limit](#API_ListMeshes_RequestSyntax) **   <a name="appmesh-ListMeshes-request-uri-limit"></a>
The maximum number of results returned by `ListMeshes` in paginated output. When you use this parameter, `ListMeshes` returns only `limit` results in a single page along with a `nextToken` response element. You can see the remaining results of the initial request by sending another `ListMeshes` request with the returned `nextToken` value. This value can be between 1 and 100. If you don't use this parameter, `ListMeshes` returns up to 100 results and a `nextToken` value if applicable.  
Valid Range: Minimum value of 1. Maximum value of 100.

 ** [nextToken](#API_ListMeshes_RequestSyntax) **   <a name="appmesh-ListMeshes-request-uri-nextToken"></a>
The `nextToken` value returned from a previous paginated `ListMeshes` request where `limit` was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the `nextToken` value.  
This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes.

## Request Body
<a name="API_ListMeshes_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_ListMeshes_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshes": [ 
      { 
         "arn": "string",
         "createdAt": number,
         "lastUpdatedAt": number,
         "meshName": "string",
         "meshOwner": "string",
         "resourceOwner": "string",
         "version": number
      }
   ],
   "nextToken": "string"
}
```

## Response Elements
<a name="API_ListMeshes_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshes](#API_ListMeshes_ResponseSyntax) **   <a name="appmesh-ListMeshes-response-meshes"></a>
The list of existing service meshes.  
Type: Array of [MeshRef](API_MeshRef.md) objects

 ** [nextToken](#API_ListMeshes_ResponseSyntax) **   <a name="appmesh-ListMeshes-response-nextToken"></a>
The `nextToken` value to include in a future `ListMeshes` request. When the results of a `ListMeshes` request exceed `limit`, you can use this value to retrieve the next page of results. This value is `null` when there are no more results to return.  
Type: String

## Errors
<a name="API_ListMeshes_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_ListMeshes_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_ListMeshes_Example_1"></a>

This example lists the service meshes for an account in the `us-east-1` Region.

#### Sample Request
<a name="API_ListMeshes_Example_1_Request"></a>

```
GET /v20190125/meshes HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190227T235715Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_ListMeshes_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 572dcc56-18d6-4f86-b596-8e182f81afce
content-type: application/json
content-length: 114
date: Wed, 27 Feb 2019 23:57:15 GMT
x-envoy-upstream-service-time: 67
server: envoy
Connection: keep-alive

{
  "meshes": [
    {
      "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh",
      "meshName": "ecs-mesh"
    }
  ],
  "nextToken": null
}
```

## See Also
<a name="API_ListMeshes_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/ListMeshes) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/ListMeshes) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/ListMeshes) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/ListMeshes) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/ListMeshes) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/ListMeshes) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/ListMeshes) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/ListMeshes) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/ListMeshes) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/ListMeshes) 

# ListRoutes
<a name="API_ListRoutes"></a>

Returns a list of existing routes in a service mesh.

## Request Syntax
<a name="API_ListRoutes_RequestSyntax"></a>

```
GET /v20190125/meshes/meshName/virtualRouter/virtualRouterName/routes?limit=limit&meshOwner=meshOwner&nextToken=nextToken HTTP/1.1
```

## URI Request Parameters
<a name="API_ListRoutes_RequestParameters"></a>

The request uses the following URI parameters.

 ** [limit](#API_ListRoutes_RequestSyntax) **   <a name="appmesh-ListRoutes-request-uri-limit"></a>
The maximum number of results returned by `ListRoutes` in paginated output. When you use this parameter, `ListRoutes` returns only `limit` results in a single page along with a `nextToken` response element. You can see the remaining results of the initial request by sending another `ListRoutes` request with the returned `nextToken` value. This value can be between 1 and 100. If you don't use this parameter, `ListRoutes` returns up to 100 results and a `nextToken` value if applicable.  
Valid Range: Minimum value of 1. Maximum value of 100.

 ** [meshName](#API_ListRoutes_RequestSyntax) **   <a name="appmesh-ListRoutes-request-uri-meshName"></a>
The name of the service mesh to list routes in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_ListRoutes_RequestSyntax) **   <a name="appmesh-ListRoutes-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [nextToken](#API_ListRoutes_RequestSyntax) **   <a name="appmesh-ListRoutes-request-uri-nextToken"></a>
The `nextToken` value returned from a previous paginated `ListRoutes` request where `limit` was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the `nextToken` value.

 ** [virtualRouterName](#API_ListRoutes_RequestSyntax) **   <a name="appmesh-ListRoutes-request-uri-virtualRouterName"></a>
The name of the virtual router to list routes in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_ListRoutes_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_ListRoutes_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "nextToken": "string",
   "routes": [ 
      { 
         "arn": "string",
         "createdAt": number,
         "lastUpdatedAt": number,
         "meshName": "string",
         "meshOwner": "string",
         "resourceOwner": "string",
         "routeName": "string",
         "version": number,
         "virtualRouterName": "string"
      }
   ]
}
```

## Response Elements
<a name="API_ListRoutes_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [nextToken](#API_ListRoutes_ResponseSyntax) **   <a name="appmesh-ListRoutes-response-nextToken"></a>
The `nextToken` value to include in a future `ListRoutes` request. When the results of a `ListRoutes` request exceed `limit`, you can use this value to retrieve the next page of results. This value is `null` when there are no more results to return.  
Type: String

 ** [routes](#API_ListRoutes_ResponseSyntax) **   <a name="appmesh-ListRoutes-response-routes"></a>
The list of existing routes for the specified service mesh and virtual router.  
Type: Array of [RouteRef](API_RouteRef.md) objects

## Errors
<a name="API_ListRoutes_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_ListRoutes_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_ListRoutes_Example_1"></a>

The following example lists the routes that are associated with the `colorteller-vr` virtual router in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_ListRoutes_Example_1_Request"></a>

```
GET /v20190125/meshes/ecs-mesh/virtualRouter/colorteller-vr/routes HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190227T235954Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_ListRoutes_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 5a783529-a278-44d2-b450-4e23898cb180
content-type: application/json
content-length: 236
date: Wed, 27 Feb 2019 23:59:54 GMT
x-envoy-upstream-service-time: 56
server: envoy
Connection: keep-alive

{
  "nextToken": null,
  "routes": [
    {
      "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualRouter/colorteller-vr/route/colorteller-route",
      "meshName": "ecs-mesh",
      "routeName": "colorteller-route",
      "virtualRouterName": "colorteller-vr"
    }
  ]
}
```

## See Also
<a name="API_ListRoutes_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/ListRoutes) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/ListRoutes) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/ListRoutes) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/ListRoutes) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/ListRoutes) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/ListRoutes) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/ListRoutes) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/ListRoutes) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/ListRoutes) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/ListRoutes) 

# ListTagsForResource
<a name="API_ListTagsForResource"></a>

List the tags for an App Mesh resource.

## Request Syntax
<a name="API_ListTagsForResource_RequestSyntax"></a>

```
GET /v20190125/tags?limit=limit&nextToken=nextToken&resourceArn=resourceArn HTTP/1.1
```

## URI Request Parameters
<a name="API_ListTagsForResource_RequestParameters"></a>

The request uses the following URI parameters.

 ** [limit](#API_ListTagsForResource_RequestSyntax) **   <a name="appmesh-ListTagsForResource-request-uri-limit"></a>
The maximum number of tag results returned by `ListTagsForResource` in paginated output. When this parameter is used, `ListTagsForResource` returns only `limit` results in a single page along with a `nextToken` response element. You can see the remaining results of the initial request by sending another `ListTagsForResource` request with the returned `nextToken` value. This value can be between 1 and 100. If you don't use this parameter, `ListTagsForResource` returns up to 100 results and a `nextToken` value if applicable.  
Valid Range: Minimum value of 1. Maximum value of 50.

 ** [nextToken](#API_ListTagsForResource_RequestSyntax) **   <a name="appmesh-ListTagsForResource-request-uri-nextToken"></a>
The `nextToken` value returned from a previous paginated `ListTagsForResource` request where `limit` was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the `nextToken` value.

 ** [resourceArn](#API_ListTagsForResource_RequestSyntax) **   <a name="appmesh-ListTagsForResource-request-uri-resourceArn"></a>
The Amazon Resource Name (ARN) that identifies the resource to list the tags for.  
Required: Yes

## Request Body
<a name="API_ListTagsForResource_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_ListTagsForResource_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "nextToken": "string",
   "tags": [ 
      { 
         "key": "string",
         "value": "string"
      }
   ]
}
```

## Response Elements
<a name="API_ListTagsForResource_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [nextToken](#API_ListTagsForResource_ResponseSyntax) **   <a name="appmesh-ListTagsForResource-response-nextToken"></a>
The `nextToken` value to include in a future `ListTagsForResource` request. When the results of a `ListTagsForResource` request exceed `limit`, you can use this value to retrieve the next page of results. This value is `null` when there are no more results to return.  
Type: String

 ** [tags](#API_ListTagsForResource_ResponseSyntax) **   <a name="appmesh-ListTagsForResource-response-tags"></a>
The tags for the resource.  
Type: Array of [TagRef](API_TagRef.md) objects  
Array Members: Minimum number of 0 items. Maximum number of 50 items.

## Errors
<a name="API_ListTagsForResource_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## See Also
<a name="API_ListTagsForResource_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/ListTagsForResource) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/ListTagsForResource) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/ListTagsForResource) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/ListTagsForResource) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/ListTagsForResource) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/ListTagsForResource) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/ListTagsForResource) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/ListTagsForResource) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/ListTagsForResource) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/ListTagsForResource) 

# ListVirtualGateways
<a name="API_ListVirtualGateways"></a>

Returns a list of existing virtual gateways in a service mesh.

## Request Syntax
<a name="API_ListVirtualGateways_RequestSyntax"></a>

```
GET /v20190125/meshes/meshName/virtualGateways?limit=limit&meshOwner=meshOwner&nextToken=nextToken HTTP/1.1
```

## URI Request Parameters
<a name="API_ListVirtualGateways_RequestParameters"></a>

The request uses the following URI parameters.

 ** [limit](#API_ListVirtualGateways_RequestSyntax) **   <a name="appmesh-ListVirtualGateways-request-uri-limit"></a>
The maximum number of results returned by `ListVirtualGateways` in paginated output. When you use this parameter, `ListVirtualGateways` returns only `limit` results in a single page along with a `nextToken` response element. You can see the remaining results of the initial request by sending another `ListVirtualGateways` request with the returned `nextToken` value. This value can be between 1 and 100. If you don't use this parameter, `ListVirtualGateways` returns up to 100 results and a `nextToken` value if applicable.  
Valid Range: Minimum value of 1. Maximum value of 100.

 ** [meshName](#API_ListVirtualGateways_RequestSyntax) **   <a name="appmesh-ListVirtualGateways-request-uri-meshName"></a>
The name of the service mesh to list virtual gateways in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_ListVirtualGateways_RequestSyntax) **   <a name="appmesh-ListVirtualGateways-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [nextToken](#API_ListVirtualGateways_RequestSyntax) **   <a name="appmesh-ListVirtualGateways-request-uri-nextToken"></a>
The `nextToken` value returned from a previous paginated `ListVirtualGateways` request where `limit` was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the `nextToken` value.

## Request Body
<a name="API_ListVirtualGateways_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_ListVirtualGateways_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "nextToken": "string",
   "virtualGateways": [ 
      { 
         "arn": "string",
         "createdAt": number,
         "lastUpdatedAt": number,
         "meshName": "string",
         "meshOwner": "string",
         "resourceOwner": "string",
         "version": number,
         "virtualGatewayName": "string"
      }
   ]
}
```

## Response Elements
<a name="API_ListVirtualGateways_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [nextToken](#API_ListVirtualGateways_ResponseSyntax) **   <a name="appmesh-ListVirtualGateways-response-nextToken"></a>
The `nextToken` value to include in a future `ListVirtualGateways` request. When the results of a `ListVirtualGateways` request exceed `limit`, you can use this value to retrieve the next page of results. This value is `null` when there are no more results to return.  
Type: String

 ** [virtualGateways](#API_ListVirtualGateways_ResponseSyntax) **   <a name="appmesh-ListVirtualGateways-response-virtualGateways"></a>
The list of existing virtual gateways for the specified service mesh.  
Type: Array of [VirtualGatewayRef](API_VirtualGatewayRef.md) objects

## Errors
<a name="API_ListVirtualGateways_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_ListVirtualGateways_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_ListVirtualGateways_Example_1"></a>

The following example lists the virtual gateways that are in the `apps` service mesh. 

#### Sample Request
<a name="API_ListVirtualGateways_Example_1_Request"></a>

```
GET /v20190125/meshes/apps/virtualGateways HTTP/1.1
Host: appmesh.us-west-2.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.298 Python/3.6.0 Windows/10 botocore/1.13.34
X-Amz-Date: 20200608T185502Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_ListVirtualGateways_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 3add7f54-944b-464a-93ed-57589ed5158d
content-type: application/json
content-length: 331
date: Mon, 08 Jun 2020 20:53:50 GMT
x-envoy-upstream-service-time: 24
server: envoy
Connection: keep-alive

{
	"nextToken": null,
	"virtualGateways": [{
		"arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/apps/virtualGateway/myVirtualGateway",
		"createdAt": 1.591630673505E9,
		"lastUpdatedAt": 1.591630673505E9,
		"meshName": "apps",
		"meshOwner": "123456789012",
		"resourceOwner": "123456789012",
		"version": 1,
		"virtualGatewayName": "myVirtualGateway"
	}]
}
```

## See Also
<a name="API_ListVirtualGateways_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/ListVirtualGateways) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/ListVirtualGateways) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/ListVirtualGateways) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/ListVirtualGateways) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/ListVirtualGateways) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/ListVirtualGateways) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/ListVirtualGateways) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/ListVirtualGateways) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/ListVirtualGateways) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/ListVirtualGateways) 

# ListVirtualNodes
<a name="API_ListVirtualNodes"></a>

Returns a list of existing virtual nodes.

## Request Syntax
<a name="API_ListVirtualNodes_RequestSyntax"></a>

```
GET /v20190125/meshes/meshName/virtualNodes?limit=limit&meshOwner=meshOwner&nextToken=nextToken HTTP/1.1
```

## URI Request Parameters
<a name="API_ListVirtualNodes_RequestParameters"></a>

The request uses the following URI parameters.

 ** [limit](#API_ListVirtualNodes_RequestSyntax) **   <a name="appmesh-ListVirtualNodes-request-uri-limit"></a>
The maximum number of results returned by `ListVirtualNodes` in paginated output. When you use this parameter, `ListVirtualNodes` returns only `limit` results in a single page along with a `nextToken` response element. You can see the remaining results of the initial request by sending another `ListVirtualNodes` request with the returned `nextToken` value. This value can be between 1 and 100. If you don't use this parameter, `ListVirtualNodes` returns up to 100 results and a `nextToken` value if applicable.  
Valid Range: Minimum value of 1. Maximum value of 100.

 ** [meshName](#API_ListVirtualNodes_RequestSyntax) **   <a name="appmesh-ListVirtualNodes-request-uri-meshName"></a>
The name of the service mesh to list virtual nodes in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_ListVirtualNodes_RequestSyntax) **   <a name="appmesh-ListVirtualNodes-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [nextToken](#API_ListVirtualNodes_RequestSyntax) **   <a name="appmesh-ListVirtualNodes-request-uri-nextToken"></a>
The `nextToken` value returned from a previous paginated `ListVirtualNodes` request where `limit` was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the `nextToken` value.

## Request Body
<a name="API_ListVirtualNodes_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_ListVirtualNodes_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "nextToken": "string",
   "virtualNodes": [ 
      { 
         "arn": "string",
         "createdAt": number,
         "lastUpdatedAt": number,
         "meshName": "string",
         "meshOwner": "string",
         "resourceOwner": "string",
         "version": number,
         "virtualNodeName": "string"
      }
   ]
}
```

## Response Elements
<a name="API_ListVirtualNodes_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [nextToken](#API_ListVirtualNodes_ResponseSyntax) **   <a name="appmesh-ListVirtualNodes-response-nextToken"></a>
The `nextToken` value to include in a future `ListVirtualNodes` request. When the results of a `ListVirtualNodes` request exceed `limit`, you can use this value to retrieve the next page of results. This value is `null` when there are no more results to return.  
Type: String

 ** [virtualNodes](#API_ListVirtualNodes_ResponseSyntax) **   <a name="appmesh-ListVirtualNodes-response-virtualNodes"></a>
The list of existing virtual nodes for the specified service mesh.  
Type: Array of [VirtualNodeRef](API_VirtualNodeRef.md) objects

## Errors
<a name="API_ListVirtualNodes_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_ListVirtualNodes_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_ListVirtualNodes_Example_1"></a>

The following example lists the virtual nodes that reside in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_ListVirtualNodes_Example_1_Request"></a>

```
GET /v20190125/meshes/ecs-mesh/virtualNodes HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190227T235730Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_ListVirtualNodes_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 8fbb6448-5519-4f45-97d1-ed4d3238aa69
content-type: application/json
content-length: 941
date: Wed, 27 Feb 2019 23:57:31 GMT
x-envoy-upstream-service-time: 108
server: envoy
Connection: keep-alive

{
  "nextToken": null,
  "virtualNodes": [
    {
      "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualNode/colorteller-vn",
      "meshName": "ecs-mesh",
      "virtualNodeName": "colorteller-vn"
    },
    {
      "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualNode/tcpecho-vn",
      "meshName": "ecs-mesh",
      "virtualNodeName": "tcpecho-vn"
    },
    {
      "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualNode/colorteller-black-vn",
      "meshName": "ecs-mesh",
      "virtualNodeName": "colorteller-black-vn"
    },
    {
      "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualNode/colorgateway-vn",
      "meshName": "ecs-mesh",
      "virtualNodeName": "colorgateway-vn"
    },
    {
      "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualNode/colorteller-red-vn",
      "meshName": "ecs-mesh",
      "virtualNodeName": "colorteller-red-vn"
    },
    {
      "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualNode/colorteller-blue-vn",
      "meshName": "ecs-mesh",
      "virtualNodeName": "colorteller-blue-vn"
    }
  ]
}
```

## See Also
<a name="API_ListVirtualNodes_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/ListVirtualNodes) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/ListVirtualNodes) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/ListVirtualNodes) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/ListVirtualNodes) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/ListVirtualNodes) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/ListVirtualNodes) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/ListVirtualNodes) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/ListVirtualNodes) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/ListVirtualNodes) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/ListVirtualNodes) 

# ListVirtualRouters
<a name="API_ListVirtualRouters"></a>

Returns a list of existing virtual routers in a service mesh.

## Request Syntax
<a name="API_ListVirtualRouters_RequestSyntax"></a>

```
GET /v20190125/meshes/meshName/virtualRouters?limit=limit&meshOwner=meshOwner&nextToken=nextToken HTTP/1.1
```

## URI Request Parameters
<a name="API_ListVirtualRouters_RequestParameters"></a>

The request uses the following URI parameters.

 ** [limit](#API_ListVirtualRouters_RequestSyntax) **   <a name="appmesh-ListVirtualRouters-request-uri-limit"></a>
The maximum number of results returned by `ListVirtualRouters` in paginated output. When you use this parameter, `ListVirtualRouters` returns only `limit` results in a single page along with a `nextToken` response element. You can see the remaining results of the initial request by sending another `ListVirtualRouters` request with the returned `nextToken` value. This value can be between 1 and 100. If you don't use this parameter, `ListVirtualRouters` returns up to 100 results and a `nextToken` value if applicable.  
Valid Range: Minimum value of 1. Maximum value of 100.

 ** [meshName](#API_ListVirtualRouters_RequestSyntax) **   <a name="appmesh-ListVirtualRouters-request-uri-meshName"></a>
The name of the service mesh to list virtual routers in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_ListVirtualRouters_RequestSyntax) **   <a name="appmesh-ListVirtualRouters-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [nextToken](#API_ListVirtualRouters_RequestSyntax) **   <a name="appmesh-ListVirtualRouters-request-uri-nextToken"></a>
The `nextToken` value returned from a previous paginated `ListVirtualRouters` request where `limit` was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the `nextToken` value.

## Request Body
<a name="API_ListVirtualRouters_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_ListVirtualRouters_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "nextToken": "string",
   "virtualRouters": [ 
      { 
         "arn": "string",
         "createdAt": number,
         "lastUpdatedAt": number,
         "meshName": "string",
         "meshOwner": "string",
         "resourceOwner": "string",
         "version": number,
         "virtualRouterName": "string"
      }
   ]
}
```

## Response Elements
<a name="API_ListVirtualRouters_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [nextToken](#API_ListVirtualRouters_ResponseSyntax) **   <a name="appmesh-ListVirtualRouters-response-nextToken"></a>
The `nextToken` value to include in a future `ListVirtualRouters` request. When the results of a `ListVirtualRouters` request exceed `limit`, you can use this value to retrieve the next page of results. This value is `null` when there are no more results to return.  
Type: String

 ** [virtualRouters](#API_ListVirtualRouters_ResponseSyntax) **   <a name="appmesh-ListVirtualRouters-response-virtualRouters"></a>
The list of existing virtual routers for the specified service mesh.  
Type: Array of [VirtualRouterRef](API_VirtualRouterRef.md) objects

## Errors
<a name="API_ListVirtualRouters_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_ListVirtualRouters_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_ListVirtualRouters_Example_1"></a>

The following example lists the virtual routers that reside in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_ListVirtualRouters_Example_1_Request"></a>

```
GET /v20190125/meshes/ecs-mesh/virtualRouters HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190227T235738Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_ListVirtualRouters_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: ec2895b6-ffaf-4d0a-b1dd-830901321588
content-type: application/json
content-length: 341
date: Wed, 27 Feb 2019 23:57:38 GMT
x-envoy-upstream-service-time: 43
server: envoy
Connection: keep-alive

{
  "nextToken": null,
  "virtualRouters": [
    {
      "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualRouter/colorteller-vr",
      "meshName": "ecs-mesh",
      "virtualRouterName": "colorteller-vr"
    },
    {
      "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualRouter/colorgateway-vr",
      "meshName": "ecs-mesh",
      "virtualRouterName": "colorgateway-vr"
    }
  ]
}
```

## See Also
<a name="API_ListVirtualRouters_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/ListVirtualRouters) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/ListVirtualRouters) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/ListVirtualRouters) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/ListVirtualRouters) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/ListVirtualRouters) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/ListVirtualRouters) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/ListVirtualRouters) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/ListVirtualRouters) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/ListVirtualRouters) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/ListVirtualRouters) 

# ListVirtualServices
<a name="API_ListVirtualServices"></a>

Returns a list of existing virtual services in a service mesh.

## Request Syntax
<a name="API_ListVirtualServices_RequestSyntax"></a>

```
GET /v20190125/meshes/meshName/virtualServices?limit=limit&meshOwner=meshOwner&nextToken=nextToken HTTP/1.1
```

## URI Request Parameters
<a name="API_ListVirtualServices_RequestParameters"></a>

The request uses the following URI parameters.

 ** [limit](#API_ListVirtualServices_RequestSyntax) **   <a name="appmesh-ListVirtualServices-request-uri-limit"></a>
The maximum number of results returned by `ListVirtualServices` in paginated output. When you use this parameter, `ListVirtualServices` returns only `limit` results in a single page along with a `nextToken` response element. You can see the remaining results of the initial request by sending another `ListVirtualServices` request with the returned `nextToken` value. This value can be between 1 and 100. If you don't use this parameter, `ListVirtualServices` returns up to 100 results and a `nextToken` value if applicable.  
Valid Range: Minimum value of 1. Maximum value of 100.

 ** [meshName](#API_ListVirtualServices_RequestSyntax) **   <a name="appmesh-ListVirtualServices-request-uri-meshName"></a>
The name of the service mesh to list virtual services in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_ListVirtualServices_RequestSyntax) **   <a name="appmesh-ListVirtualServices-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [nextToken](#API_ListVirtualServices_RequestSyntax) **   <a name="appmesh-ListVirtualServices-request-uri-nextToken"></a>
The `nextToken` value returned from a previous paginated `ListVirtualServices` request where `limit` was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the `nextToken` value.

## Request Body
<a name="API_ListVirtualServices_RequestBody"></a>

The request does not have a request body.

## Response Syntax
<a name="API_ListVirtualServices_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "nextToken": "string",
   "virtualServices": [ 
      { 
         "arn": "string",
         "createdAt": number,
         "lastUpdatedAt": number,
         "meshName": "string",
         "meshOwner": "string",
         "resourceOwner": "string",
         "version": number,
         "virtualServiceName": "string"
      }
   ]
}
```

## Response Elements
<a name="API_ListVirtualServices_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [nextToken](#API_ListVirtualServices_ResponseSyntax) **   <a name="appmesh-ListVirtualServices-response-nextToken"></a>
The `nextToken` value to include in a future `ListVirtualServices` request. When the results of a `ListVirtualServices` request exceed `limit`, you can use this value to retrieve the next page of results. This value is `null` when there are no more results to return.  
Type: String

 ** [virtualServices](#API_ListVirtualServices_ResponseSyntax) **   <a name="appmesh-ListVirtualServices-response-virtualServices"></a>
The list of existing virtual services for the specified service mesh.  
Type: Array of [VirtualServiceRef](API_VirtualServiceRef.md) objects

## Errors
<a name="API_ListVirtualServices_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_ListVirtualServices_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_ListVirtualServices_Example_1"></a>

This example lists the virtual services in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_ListVirtualServices_Example_1_Request"></a>

```
GET /v20190125/meshes/ecs-mesh/virtualServices HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190227T235746Z
Authorization: AUTHPARAMS
```

#### Sample Response
<a name="API_ListVirtualServices_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 1e2ccc92-46aa-4541-ae10-9790266e7436
content-type: application/json
content-length: 629
date: Wed, 27 Feb 2019 23:57:46 GMT
x-envoy-upstream-service-time: 9
server: envoy
Connection: keep-alive

{
  "nextToken": null,
  "virtualServices": [
    {
      "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualService/tcpecho.default.svc.cluster.local",
      "meshName": "ecs-mesh",
      "virtualServiceName": "tcpecho.default.svc.cluster.local"
    },
    {
      "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualService/colorteller.default.svc.cluster.local",
      "meshName": "ecs-mesh",
      "virtualServiceName": "colorteller.default.svc.cluster.local"
    },
    {
      "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualService/colorgateway.default.svc.cluster.local",
      "meshName": "ecs-mesh",
      "virtualServiceName": "colorgateway.default.svc.cluster.local"
    }
  ]
}
```

## See Also
<a name="API_ListVirtualServices_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/ListVirtualServices) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/ListVirtualServices) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/ListVirtualServices) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/ListVirtualServices) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/ListVirtualServices) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/ListVirtualServices) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/ListVirtualServices) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/ListVirtualServices) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/ListVirtualServices) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/ListVirtualServices) 

# TagResource
<a name="API_TagResource"></a>

Associates the specified tags to a resource with the specified `resourceArn`. If existing tags on a resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags associated with that resource are also deleted.

## Request Syntax
<a name="API_TagResource_RequestSyntax"></a>

```
PUT /v20190125/tag?resourceArn=resourceArn HTTP/1.1
Content-type: application/json

{
   "tags": [ 
      { 
         "key": "string",
         "value": "string"
      }
   ]
}
```

## URI Request Parameters
<a name="API_TagResource_RequestParameters"></a>

The request uses the following URI parameters.

 ** [resourceArn](#API_TagResource_RequestSyntax) **   <a name="appmesh-TagResource-request-uri-resourceArn"></a>
The Amazon Resource Name (ARN) of the resource to add tags to.  
Required: Yes

## Request Body
<a name="API_TagResource_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [tags](#API_TagResource_RequestSyntax) **   <a name="appmesh-TagResource-request-tags"></a>
The tags to add to the resource. A tag is an array of key-value pairs. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.  
Type: Array of [TagRef](API_TagRef.md) objects  
Array Members: Minimum number of 0 items. Maximum number of 50 items.  
Required: Yes

## Response Syntax
<a name="API_TagResource_ResponseSyntax"></a>

```
HTTP/1.1 200
```

## Response Elements
<a name="API_TagResource_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.

## Errors
<a name="API_TagResource_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

 ** TooManyTagsException **   
The request exceeds the maximum allowed number of tags allowed per resource. The current limit is 50 user tags per resource. You must reduce the number of tags in the request. None of the tags in this request were applied.  
HTTP Status Code: 400

## See Also
<a name="API_TagResource_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/TagResource) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/TagResource) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/TagResource) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/TagResource) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/TagResource) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/TagResource) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/TagResource) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/TagResource) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/TagResource) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/TagResource) 

# UntagResource
<a name="API_UntagResource"></a>

Deletes specified tags from a resource.

## Request Syntax
<a name="API_UntagResource_RequestSyntax"></a>

```
PUT /v20190125/untag?resourceArn=resourceArn HTTP/1.1
Content-type: application/json

{
   "tagKeys": [ "string" ]
}
```

## URI Request Parameters
<a name="API_UntagResource_RequestParameters"></a>

The request uses the following URI parameters.

 ** [resourceArn](#API_UntagResource_RequestSyntax) **   <a name="appmesh-UntagResource-request-uri-resourceArn"></a>
The Amazon Resource Name (ARN) of the resource to delete tags from.  
Required: Yes

## Request Body
<a name="API_UntagResource_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [tagKeys](#API_UntagResource_RequestSyntax) **   <a name="appmesh-UntagResource-request-tagKeys"></a>
The keys of the tags to be removed.  
Type: Array of strings  
Array Members: Minimum number of 0 items. Maximum number of 50 items.  
Length Constraints: Minimum length of 1. Maximum length of 128.  
Required: Yes

## Response Syntax
<a name="API_UntagResource_ResponseSyntax"></a>

```
HTTP/1.1 200
```

## Response Elements
<a name="API_UntagResource_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.

## Errors
<a name="API_UntagResource_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## See Also
<a name="API_UntagResource_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/UntagResource) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/UntagResource) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/UntagResource) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/UntagResource) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/UntagResource) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/UntagResource) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/UntagResource) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/UntagResource) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/UntagResource) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/UntagResource) 

# UpdateGatewayRoute
<a name="API_UpdateGatewayRoute"></a>

Updates an existing gateway route that is associated to a specified virtual gateway in a service mesh.

## Request Syntax
<a name="API_UpdateGatewayRoute_RequestSyntax"></a>

```
PUT /v20190125/meshes/meshName/virtualGateway/virtualGatewayName/gatewayRoutes/gatewayRouteName?meshOwner=meshOwner HTTP/1.1
Content-type: application/json

{
   "clientToken": "string",
   "spec": { 
      "grpcRoute": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "metadata": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "port": number,
            "serviceName": "string"
         }
      },
      "http2Route": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               },
               "path": { 
                  "exact": "string"
               },
               "prefix": { 
                  "defaultPrefix": "string",
                  "value": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ]
         }
      },
      "httpRoute": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               },
               "path": { 
                  "exact": "string"
               },
               "prefix": { 
                  "defaultPrefix": "string",
                  "value": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ]
         }
      },
      "priority": number
   }
}
```

## URI Request Parameters
<a name="API_UpdateGatewayRoute_RequestParameters"></a>

The request uses the following URI parameters.

 ** [gatewayRouteName](#API_UpdateGatewayRoute_RequestSyntax) **   <a name="appmesh-UpdateGatewayRoute-request-uri-gatewayRouteName"></a>
The name of the gateway route to update.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshName](#API_UpdateGatewayRoute_RequestSyntax) **   <a name="appmesh-UpdateGatewayRoute-request-uri-meshName"></a>
The name of the service mesh that the gateway route resides in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_UpdateGatewayRoute_RequestSyntax) **   <a name="appmesh-UpdateGatewayRoute-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualGatewayName](#API_UpdateGatewayRoute_RequestSyntax) **   <a name="appmesh-UpdateGatewayRoute-request-uri-virtualGatewayName"></a>
The name of the virtual gateway that the gateway route is associated with.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_UpdateGatewayRoute_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [clientToken](#API_UpdateGatewayRoute_RequestSyntax) **   <a name="appmesh-UpdateGatewayRoute-request-clientToken"></a>
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.  
Type: String  
Required: No

 ** [spec](#API_UpdateGatewayRoute_RequestSyntax) **   <a name="appmesh-UpdateGatewayRoute-request-spec"></a>
The new gateway route specification to apply. This overwrites the existing data.  
Type: [GatewayRouteSpec](API_GatewayRouteSpec.md) object  
Required: Yes

## Response Syntax
<a name="API_UpdateGatewayRoute_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "gatewayRouteName": "string",
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "grpcRoute": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "metadata": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "port": number,
            "serviceName": "string"
         }
      },
      "http2Route": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               },
               "path": { 
                  "exact": "string"
               },
               "prefix": { 
                  "defaultPrefix": "string",
                  "value": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ]
         }
      },
      "httpRoute": { 
         "action": { 
            "rewrite": { 
               "hostname": { 
                  "defaultTargetHostname": "string"
               },
               "path": { 
                  "exact": "string"
               },
               "prefix": { 
                  "defaultPrefix": "string",
                  "value": "string"
               }
            },
            "target": { 
               "port": number,
               "virtualService": { 
                  "virtualServiceName": "string"
               }
            }
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "hostname": { 
               "exact": "string",
               "suffix": "string"
            },
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ]
         }
      },
      "priority": number
   },
   "status": { 
      "status": "string"
   },
   "virtualGatewayName": "string"
}
```

## Response Elements
<a name="API_UpdateGatewayRoute_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [gatewayRouteName](#API_UpdateGatewayRoute_ResponseSyntax) **   <a name="appmesh-UpdateGatewayRoute-response-gatewayRouteName"></a>
The name of the gateway route.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [meshName](#API_UpdateGatewayRoute_ResponseSyntax) **   <a name="appmesh-UpdateGatewayRoute-response-meshName"></a>
The name of the service mesh that the resource resides in.   
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_UpdateGatewayRoute_ResponseSyntax) **   <a name="appmesh-UpdateGatewayRoute-response-metadata"></a>
An object that represents metadata for a resource.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_UpdateGatewayRoute_ResponseSyntax) **   <a name="appmesh-UpdateGatewayRoute-response-spec"></a>
The specifications of the gateway route.  
Type: [GatewayRouteSpec](API_GatewayRouteSpec.md) object

 ** [status](#API_UpdateGatewayRoute_ResponseSyntax) **   <a name="appmesh-UpdateGatewayRoute-response-status"></a>
The status of the gateway route.  
Type: [GatewayRouteStatus](API_GatewayRouteStatus.md) object

 ** [virtualGatewayName](#API_UpdateGatewayRoute_ResponseSyntax) **   <a name="appmesh-UpdateGatewayRoute-response-virtualGatewayName"></a>
The virtual gateway that the gateway route is associated with.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_UpdateGatewayRoute_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ConflictException **   
The request contains a client token that was used for a previous update resource call with different specifications. Try the request again with a new client token.  
HTTP Status Code: 409

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** LimitExceededException **   
You have exceeded a service limit for your account. For more information, see [Service Limits](https://docs.aws.amazon.com/app-mesh/latest/userguide/service-quotas.html) in the * AWS App Mesh User Guide*.  
HTTP Status Code: 400

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_UpdateGatewayRoute_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_UpdateGatewayRoute_Example_1"></a>

The following example updates a gateway route named `myGatewayRoute` that is associated to the `myVirtualGateway` virtual gateway in the `apps` service mesh. 

#### Sample Request
<a name="API_UpdateGatewayRoute_Example_1_Request"></a>

```
PUT /v20190125/meshes/apps/virtualGateway/myVirtualGateway/gatewayRoutes/myGatewayRoute HTTP/1.1
Host: appmesh.us-west-2.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.298 Python/3.6.0 Windows/10 botocore/1.13.34
X-Amz-Date: 20200608T192800Z
Authorization: AUTHPARAMS

{
	"spec": {
		"http2Route": {
			"action": {
				"target": {
					"virtualService": {
						"virtualServiceName": "myserviceb.svc.cluster.local"
					}
				}
			},
			"match": {
				"prefix": "/"
			}
		}
	},
	"clientToken": "1aa1111a-1111-1111-111a-a1a1a1aa111a"
}
```

#### Sample Response
<a name="API_UpdateGatewayRoute_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 6c253f78-e011-4533-a926-e75416f06641
content-type: application/json
content-length: 617
date: Mon, 08 Jun 2020 19:28:00 GMT
x-envoy-upstream-service-time: 76
server: envoy
Connection: keep-alive

{
	"gatewayRouteName": "myGatewayRoute",
	"meshName": "myApps",
	"metadata": {
		"arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/apps/virtualGateway/myVirtualGateway/gatewayRoute/myGatewayRoute",
		"createdAt": 1.591642091122E9,
		"lastUpdatedAt": 1.591644481211E9,
		"meshOwner": "123456789012",
		"resourceOwner": "123456789012",
		"uid": "ff111ff2-33ff-4ff4-ffff-111f111f111f",
		"version": 2
	},
	"spec": {
		"grpcRoute": null,
		"http2Route": {
			"action": {
				"target": {
					"virtualService": {
						"virtualServiceName": "myserviceb.svc.cluster.local"
					}
				}
			},
			"match": {
				"prefix": "/"
			}
		},
		"httpRoute": null
	},
	"status": {
		"status": "ACTIVE"
	},
	"virtualGatewayName": "myVirtualGateway"
}
```

## See Also
<a name="API_UpdateGatewayRoute_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/UpdateGatewayRoute) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/UpdateGatewayRoute) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/UpdateGatewayRoute) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/UpdateGatewayRoute) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/UpdateGatewayRoute) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/UpdateGatewayRoute) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/UpdateGatewayRoute) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/UpdateGatewayRoute) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/UpdateGatewayRoute) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/UpdateGatewayRoute) 

# UpdateMesh
<a name="API_UpdateMesh"></a>

Updates an existing service mesh.

## Request Syntax
<a name="API_UpdateMesh_RequestSyntax"></a>

```
PUT /v20190125/meshes/meshName HTTP/1.1
Content-type: application/json

{
   "clientToken": "string",
   "spec": { 
      "egressFilter": { 
         "type": "string"
      },
      "serviceDiscovery": { 
         "ipPreference": "string"
      }
   }
}
```

## URI Request Parameters
<a name="API_UpdateMesh_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_UpdateMesh_RequestSyntax) **   <a name="appmesh-UpdateMesh-request-uri-meshName"></a>
The name of the service mesh to update.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_UpdateMesh_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [clientToken](#API_UpdateMesh_RequestSyntax) **   <a name="appmesh-UpdateMesh-request-clientToken"></a>
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.  
Type: String  
Required: No

 ** [spec](#API_UpdateMesh_RequestSyntax) **   <a name="appmesh-UpdateMesh-request-spec"></a>
The service mesh specification to apply.  
Type: [MeshSpec](API_MeshSpec.md) object  
Required: No

## Response Syntax
<a name="API_UpdateMesh_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "egressFilter": { 
         "type": "string"
      },
      "serviceDiscovery": { 
         "ipPreference": "string"
      }
   },
   "status": { 
      "status": "string"
   }
}
```

## Response Elements
<a name="API_UpdateMesh_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_UpdateMesh_ResponseSyntax) **   <a name="appmesh-UpdateMesh-response-meshName"></a>
The name of the service mesh.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_UpdateMesh_ResponseSyntax) **   <a name="appmesh-UpdateMesh-response-metadata"></a>
The associated metadata for the service mesh.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_UpdateMesh_ResponseSyntax) **   <a name="appmesh-UpdateMesh-response-spec"></a>
The associated specification for the service mesh.  
Type: [MeshSpec](API_MeshSpec.md) object

 ** [status](#API_UpdateMesh_ResponseSyntax) **   <a name="appmesh-UpdateMesh-response-status"></a>
The status of the service mesh.  
Type: [MeshStatus](API_MeshStatus.md) object

## Errors
<a name="API_UpdateMesh_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ConflictException **   
The request contains a client token that was used for a previous update resource call with different specifications. Try the request again with a new client token.  
HTTP Status Code: 409

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## See Also
<a name="API_UpdateMesh_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/UpdateMesh) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/UpdateMesh) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/UpdateMesh) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/UpdateMesh) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/UpdateMesh) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/UpdateMesh) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/UpdateMesh) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/UpdateMesh) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/UpdateMesh) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/UpdateMesh) 

# UpdateRoute
<a name="API_UpdateRoute"></a>

Updates an existing route for a specified service mesh and virtual router.

## Request Syntax
<a name="API_UpdateRoute_RequestSyntax"></a>

```
PUT /v20190125/meshes/meshName/virtualRouter/virtualRouterName/routes/routeName?meshOwner=meshOwner HTTP/1.1
Content-type: application/json

{
   "clientToken": "string",
   "spec": { 
      "grpcRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "metadata": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "methodName": "string",
            "port": number,
            "serviceName": "string"
         },
         "retryPolicy": { 
            "grpcRetryEvents": [ "string" ],
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "http2Route": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ],
            "scheme": "string"
         },
         "retryPolicy": { 
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "httpRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ],
            "scheme": "string"
         },
         "retryPolicy": { 
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "priority": number,
      "tcpRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "port": number
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            }
         }
      }
   }
}
```

## URI Request Parameters
<a name="API_UpdateRoute_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_UpdateRoute_RequestSyntax) **   <a name="appmesh-UpdateRoute-request-uri-meshName"></a>
The name of the service mesh that the route resides in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_UpdateRoute_RequestSyntax) **   <a name="appmesh-UpdateRoute-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [routeName](#API_UpdateRoute_RequestSyntax) **   <a name="appmesh-UpdateRoute-request-uri-routeName"></a>
The name of the route to update.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [virtualRouterName](#API_UpdateRoute_RequestSyntax) **   <a name="appmesh-UpdateRoute-request-uri-virtualRouterName"></a>
The name of the virtual router that the route is associated with.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_UpdateRoute_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [clientToken](#API_UpdateRoute_RequestSyntax) **   <a name="appmesh-UpdateRoute-request-clientToken"></a>
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.  
Type: String  
Required: No

 ** [spec](#API_UpdateRoute_RequestSyntax) **   <a name="appmesh-UpdateRoute-request-spec"></a>
The new route specification to apply. This overwrites the existing data.  
Type: [RouteSpec](API_RouteSpec.md) object  
Required: Yes

## Response Syntax
<a name="API_UpdateRoute_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "routeName": "string",
   "spec": { 
      "grpcRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "metadata": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "methodName": "string",
            "port": number,
            "serviceName": "string"
         },
         "retryPolicy": { 
            "grpcRetryEvents": [ "string" ],
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "http2Route": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ],
            "scheme": "string"
         },
         "retryPolicy": { 
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "httpRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "headers": [ 
               { 
                  "invert": boolean,
                  "match": { ... },
                  "name": "string"
               }
            ],
            "method": "string",
            "path": { 
               "exact": "string",
               "regex": "string"
            },
            "port": number,
            "prefix": "string",
            "queryParameters": [ 
               { 
                  "match": { 
                     "exact": "string"
                  },
                  "name": "string"
               }
            ],
            "scheme": "string"
         },
         "retryPolicy": { 
            "httpRetryEvents": [ "string" ],
            "maxRetries": number,
            "perRetryTimeout": { 
               "unit": "string",
               "value": number
            },
            "tcpRetryEvents": [ "string" ]
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            },
            "perRequest": { 
               "unit": "string",
               "value": number
            }
         }
      },
      "priority": number,
      "tcpRoute": { 
         "action": { 
            "weightedTargets": [ 
               { 
                  "port": number,
                  "virtualNode": "string",
                  "weight": number
               }
            ]
         },
         "match": { 
            "port": number
         },
         "timeout": { 
            "idle": { 
               "unit": "string",
               "value": number
            }
         }
      }
   },
   "status": { 
      "status": "string"
   },
   "virtualRouterName": "string"
}
```

## Response Elements
<a name="API_UpdateRoute_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_UpdateRoute_ResponseSyntax) **   <a name="appmesh-UpdateRoute-response-meshName"></a>
The name of the service mesh that the route resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_UpdateRoute_ResponseSyntax) **   <a name="appmesh-UpdateRoute-response-metadata"></a>
The associated metadata for the route.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [routeName](#API_UpdateRoute_ResponseSyntax) **   <a name="appmesh-UpdateRoute-response-routeName"></a>
The name of the route.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [spec](#API_UpdateRoute_ResponseSyntax) **   <a name="appmesh-UpdateRoute-response-spec"></a>
The specifications of the route.  
Type: [RouteSpec](API_RouteSpec.md) object

 ** [status](#API_UpdateRoute_ResponseSyntax) **   <a name="appmesh-UpdateRoute-response-status"></a>
The status of the route.  
Type: [RouteStatus](API_RouteStatus.md) object

 ** [virtualRouterName](#API_UpdateRoute_ResponseSyntax) **   <a name="appmesh-UpdateRoute-response-virtualRouterName"></a>
The virtual router that the route is associated with.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_UpdateRoute_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ConflictException **   
The request contains a client token that was used for a previous update resource call with different specifications. Try the request again with a new client token.  
HTTP Status Code: 409

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** LimitExceededException **   
You have exceeded a service limit for your account. For more information, see [Service Limits](https://docs.aws.amazon.com/app-mesh/latest/userguide/service-quotas.html) in the * AWS App Mesh User Guide*.  
HTTP Status Code: 400

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_UpdateRoute_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_UpdateRoute_Example_1"></a>

The following example updates a route for the virtual router named `colorteller-vr` in the `ecs-mesh` service mesh. The route directs traffic to two weighted targets: 80% to `colorteller-blue-vn` and 20% to `colorteller-red-vn`.

#### Sample Request
<a name="API_UpdateRoute_Example_1_Request"></a>

```
PUT /v20190125/meshes/ecs-mesh/virtualRouter/colorteller-vr/routes/colorteller-route HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190228T001532Z
Authorization: AUTHPARAMS

{
  "spec": {
    "httpRoute": {
      "action": {
        "weightedTargets": [
          {
            "virtualNode": "colorteller-blue-vn",
            "weight": 8
          },
          {
            "virtualNode": "colorteller-red-vn",
            "weight": 2
          }
        ]
      },
      "match": {
        "prefix": "/"
      }
    }
  },
  "clientToken": "e8bbfdff-5d3a-4e5c-9c32-571bad83b021"
}
```

#### Sample Response
<a name="API_UpdateRoute_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 3375b176-77ba-4f76-be44-98ec4a839b8c
content-type: application/json
content-length: 557
date: Thu, 28 Feb 2019 00:15:32 GMT
x-envoy-upstream-service-time: 56
server: envoy
Connection: keep-alive

{
	"meshName": "ecs-mesh",
	"metadata": {
		"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualRouter/colorteller-vr/route/colorteller-route",
		"createdAt": 1.551311817276E9,
		"lastUpdatedAt": 1.551312932979E9,
		"uid": "1cf3109a-0d7f-438c-b17d-a3785f14ff7b",
		"version": 2
	},
	"routeName": "colorteller-route",
	"spec": {
		"httpRoute": {
			"action": {
				"weightedTargets": [{
					"virtualNode": "colorteller-blue-vn",
					"weight": 8
				}, {
					"virtualNode": "colorteller-red-vn",
					"weight": 2
				}]
			},
			"match": {
				"prefix": "/"
			}
		},
		"tcpRoute": null
	},
	"status": {
		"status": "ACTIVE"
	},
	"virtualRouterName": "colorteller-vr"
}
```

## See Also
<a name="API_UpdateRoute_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/UpdateRoute) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/UpdateRoute) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/UpdateRoute) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/UpdateRoute) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/UpdateRoute) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/UpdateRoute) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/UpdateRoute) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/UpdateRoute) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/UpdateRoute) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/UpdateRoute) 

# UpdateVirtualGateway
<a name="API_UpdateVirtualGateway"></a>

Updates an existing virtual gateway in a specified service mesh.

## Request Syntax
<a name="API_UpdateVirtualGateway_RequestSyntax"></a>

```
PUT /v20190125/meshes/meshName/virtualGateways/virtualGatewayName?meshOwner=meshOwner HTTP/1.1
Content-type: application/json

{
   "clientToken": "string",
   "spec": { 
      "backendDefaults": { 
         "clientPolicy": { 
            "tls": { 
               "certificate": { ... },
               "enforce": boolean,
               "ports": [ number ],
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      },
      "listeners": [ 
         { 
            "connectionPool": { ... },
            "healthCheck": { 
               "healthyThreshold": number,
               "intervalMillis": number,
               "path": "string",
               "port": number,
               "protocol": "string",
               "timeoutMillis": number,
               "unhealthyThreshold": number
            },
            "portMapping": { 
               "port": number,
               "protocol": "string"
            },
            "tls": { 
               "certificate": { ... },
               "mode": "string",
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      ],
      "logging": { 
         "accessLog": { ... }
      }
   }
}
```

## URI Request Parameters
<a name="API_UpdateVirtualGateway_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_UpdateVirtualGateway_RequestSyntax) **   <a name="appmesh-UpdateVirtualGateway-request-uri-meshName"></a>
The name of the service mesh that the virtual gateway resides in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_UpdateVirtualGateway_RequestSyntax) **   <a name="appmesh-UpdateVirtualGateway-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualGatewayName](#API_UpdateVirtualGateway_RequestSyntax) **   <a name="appmesh-UpdateVirtualGateway-request-uri-virtualGatewayName"></a>
The name of the virtual gateway to update.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_UpdateVirtualGateway_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [clientToken](#API_UpdateVirtualGateway_RequestSyntax) **   <a name="appmesh-UpdateVirtualGateway-request-clientToken"></a>
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.  
Type: String  
Required: No

 ** [spec](#API_UpdateVirtualGateway_RequestSyntax) **   <a name="appmesh-UpdateVirtualGateway-request-spec"></a>
The new virtual gateway specification to apply. This overwrites the existing data.  
Type: [VirtualGatewaySpec](API_VirtualGatewaySpec.md) object  
Required: Yes

## Response Syntax
<a name="API_UpdateVirtualGateway_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "backendDefaults": { 
         "clientPolicy": { 
            "tls": { 
               "certificate": { ... },
               "enforce": boolean,
               "ports": [ number ],
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      },
      "listeners": [ 
         { 
            "connectionPool": { ... },
            "healthCheck": { 
               "healthyThreshold": number,
               "intervalMillis": number,
               "path": "string",
               "port": number,
               "protocol": "string",
               "timeoutMillis": number,
               "unhealthyThreshold": number
            },
            "portMapping": { 
               "port": number,
               "protocol": "string"
            },
            "tls": { 
               "certificate": { ... },
               "mode": "string",
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      ],
      "logging": { 
         "accessLog": { ... }
      }
   },
   "status": { 
      "status": "string"
   },
   "virtualGatewayName": "string"
}
```

## Response Elements
<a name="API_UpdateVirtualGateway_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_UpdateVirtualGateway_ResponseSyntax) **   <a name="appmesh-UpdateVirtualGateway-response-meshName"></a>
The name of the service mesh that the virtual gateway resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_UpdateVirtualGateway_ResponseSyntax) **   <a name="appmesh-UpdateVirtualGateway-response-metadata"></a>
An object that represents metadata for a resource.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_UpdateVirtualGateway_ResponseSyntax) **   <a name="appmesh-UpdateVirtualGateway-response-spec"></a>
The specifications of the virtual gateway.  
Type: [VirtualGatewaySpec](API_VirtualGatewaySpec.md) object

 ** [status](#API_UpdateVirtualGateway_ResponseSyntax) **   <a name="appmesh-UpdateVirtualGateway-response-status"></a>
The current status of the virtual gateway.  
Type: [VirtualGatewayStatus](API_VirtualGatewayStatus.md) object

 ** [virtualGatewayName](#API_UpdateVirtualGateway_ResponseSyntax) **   <a name="appmesh-UpdateVirtualGateway-response-virtualGatewayName"></a>
The name of the virtual gateway.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_UpdateVirtualGateway_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ConflictException **   
The request contains a client token that was used for a previous update resource call with different specifications. Try the request again with a new client token.  
HTTP Status Code: 409

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** LimitExceededException **   
You have exceeded a service limit for your account. For more information, see [Service Limits](https://docs.aws.amazon.com/app-mesh/latest/userguide/service-quotas.html) in the * AWS App Mesh User Guide*.  
HTTP Status Code: 400

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_UpdateVirtualGateway_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_UpdateVirtualGateway_Example_1"></a>

The following example updates a virtual gateway named `myVirtualGateway` in the `apps` service mesh. 

#### Sample Request
<a name="API_UpdateVirtualGateway_Example_1_Request"></a>

```
PUT /v20190125/meshes/apps/virtualGateways/myVirtualGateway HTTP/1.1
Host: appmesh.us-west-2.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.298 Python/3.6.0 Windows/10 botocore/1.13.34
X-Amz-Date: 20200706T151140Z
Authorization: AUTHPARAMS

{
	"spec": {
		"listeners": [{
			"portMapping": {
				"port": 8080,
				"protocol": "http2"
			}
		}]
	},
	"clientToken": "1aa1111a-1111-1111-111a-a1a1a1aa111a"
}
```

#### Sample Response
<a name="API_UpdateVirtualGateway_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 009bf6b9-c86a-40ba-b6a4-45cb41badc77
content-type: application/json
content-length: 515
date: Mon, 06 Jul 2020 15:11:40 GMT
x-envoy-upstream-service-time: 34
server: envoy
Connection: keep-alive

{
	"meshName": "apps",
	"metadata": {
		"arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/apps/virtualGateway/myVirtualGateway",
		"createdAt": 1.594048239495E9,
		"lastUpdatedAt": 1.594048300694E9,
		"meshOwner": "123456789012",
		"resourceOwner": "123456789012",
		"uid": "ff111ff2-33ff-4ff4-ffff-111f111f111f",
		"version": 2
	},
	"spec": {
		"backendDefaults": null,
		"listeners": [{
			"healthCheck": null,
			"portMapping": {
				"port": 8080,
				"protocol": "http2"
			},
			"tls": null
		}],
		"logging": null
	},
	"status": {
		"status": "ACTIVE"
	},
	"virtualGatewayName": "myVirtualGateway"
}
```

## See Also
<a name="API_UpdateVirtualGateway_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/UpdateVirtualGateway) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/UpdateVirtualGateway) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/UpdateVirtualGateway) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/UpdateVirtualGateway) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/UpdateVirtualGateway) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/UpdateVirtualGateway) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/UpdateVirtualGateway) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/UpdateVirtualGateway) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/UpdateVirtualGateway) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/UpdateVirtualGateway) 

# UpdateVirtualNode
<a name="API_UpdateVirtualNode"></a>

Updates an existing virtual node in a specified service mesh.

## Request Syntax
<a name="API_UpdateVirtualNode_RequestSyntax"></a>

```
PUT /v20190125/meshes/meshName/virtualNodes/virtualNodeName?meshOwner=meshOwner HTTP/1.1
Content-type: application/json

{
   "clientToken": "string",
   "spec": { 
      "backendDefaults": { 
         "clientPolicy": { 
            "tls": { 
               "certificate": { ... },
               "enforce": boolean,
               "ports": [ number ],
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      },
      "backends": [ 
         { ... }
      ],
      "listeners": [ 
         { 
            "connectionPool": { ... },
            "healthCheck": { 
               "healthyThreshold": number,
               "intervalMillis": number,
               "path": "string",
               "port": number,
               "protocol": "string",
               "timeoutMillis": number,
               "unhealthyThreshold": number
            },
            "outlierDetection": { 
               "baseEjectionDuration": { 
                  "unit": "string",
                  "value": number
               },
               "interval": { 
                  "unit": "string",
                  "value": number
               },
               "maxEjectionPercent": number,
               "maxServerErrors": number
            },
            "portMapping": { 
               "port": number,
               "protocol": "string"
            },
            "timeout": { ... },
            "tls": { 
               "certificate": { ... },
               "mode": "string",
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      ],
      "logging": { 
         "accessLog": { ... }
      },
      "serviceDiscovery": { ... }
   }
}
```

## URI Request Parameters
<a name="API_UpdateVirtualNode_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_UpdateVirtualNode_RequestSyntax) **   <a name="appmesh-UpdateVirtualNode-request-uri-meshName"></a>
The name of the service mesh that the virtual node resides in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_UpdateVirtualNode_RequestSyntax) **   <a name="appmesh-UpdateVirtualNode-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualNodeName](#API_UpdateVirtualNode_RequestSyntax) **   <a name="appmesh-UpdateVirtualNode-request-uri-virtualNodeName"></a>
The name of the virtual node to update.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_UpdateVirtualNode_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [clientToken](#API_UpdateVirtualNode_RequestSyntax) **   <a name="appmesh-UpdateVirtualNode-request-clientToken"></a>
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.  
Type: String  
Required: No

 ** [spec](#API_UpdateVirtualNode_RequestSyntax) **   <a name="appmesh-UpdateVirtualNode-request-spec"></a>
The new virtual node specification to apply. This overwrites the existing data.  
Type: [VirtualNodeSpec](API_VirtualNodeSpec.md) object  
Required: Yes

## Response Syntax
<a name="API_UpdateVirtualNode_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "backendDefaults": { 
         "clientPolicy": { 
            "tls": { 
               "certificate": { ... },
               "enforce": boolean,
               "ports": [ number ],
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      },
      "backends": [ 
         { ... }
      ],
      "listeners": [ 
         { 
            "connectionPool": { ... },
            "healthCheck": { 
               "healthyThreshold": number,
               "intervalMillis": number,
               "path": "string",
               "port": number,
               "protocol": "string",
               "timeoutMillis": number,
               "unhealthyThreshold": number
            },
            "outlierDetection": { 
               "baseEjectionDuration": { 
                  "unit": "string",
                  "value": number
               },
               "interval": { 
                  "unit": "string",
                  "value": number
               },
               "maxEjectionPercent": number,
               "maxServerErrors": number
            },
            "portMapping": { 
               "port": number,
               "protocol": "string"
            },
            "timeout": { ... },
            "tls": { 
               "certificate": { ... },
               "mode": "string",
               "validation": { 
                  "subjectAlternativeNames": { 
                     "match": { 
                        "exact": [ "string" ]
                     }
                  },
                  "trust": { ... }
               }
            }
         }
      ],
      "logging": { 
         "accessLog": { ... }
      },
      "serviceDiscovery": { ... }
   },
   "status": { 
      "status": "string"
   },
   "virtualNodeName": "string"
}
```

## Response Elements
<a name="API_UpdateVirtualNode_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_UpdateVirtualNode_ResponseSyntax) **   <a name="appmesh-UpdateVirtualNode-response-meshName"></a>
The name of the service mesh that the virtual node resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_UpdateVirtualNode_ResponseSyntax) **   <a name="appmesh-UpdateVirtualNode-response-metadata"></a>
The associated metadata for the virtual node.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_UpdateVirtualNode_ResponseSyntax) **   <a name="appmesh-UpdateVirtualNode-response-spec"></a>
The specifications of the virtual node.  
Type: [VirtualNodeSpec](API_VirtualNodeSpec.md) object

 ** [status](#API_UpdateVirtualNode_ResponseSyntax) **   <a name="appmesh-UpdateVirtualNode-response-status"></a>
The current status for the virtual node.  
Type: [VirtualNodeStatus](API_VirtualNodeStatus.md) object

 ** [virtualNodeName](#API_UpdateVirtualNode_ResponseSyntax) **   <a name="appmesh-UpdateVirtualNode-response-virtualNodeName"></a>
The name of the virtual node.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_UpdateVirtualNode_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ConflictException **   
The request contains a client token that was used for a previous update resource call with different specifications. Try the request again with a new client token.  
HTTP Status Code: 409

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** LimitExceededException **   
You have exceeded a service limit for your account. For more information, see [Service Limits](https://docs.aws.amazon.com/app-mesh/latest/userguide/service-quotas.html) in the * AWS App Mesh User Guide*.  
HTTP Status Code: 400

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_UpdateVirtualNode_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_UpdateVirtualNode_Example_1"></a>

The following example updates a virtual node named `colorteller-vn` in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_UpdateVirtualNode_Example_1_Request"></a>

```
PUT /v20190125/meshes/ecs-mesh/virtualNodes/colorteller-vn HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190228T002242Z
Authorization: AUTHPARAMS

{
  "spec": {
    "backends": [],
    "listeners": [
      {
        "healthCheck": {
          "healthyThreshold": 2,
          "intervalMillis": 5000,
          "path": "/ping",
          "port": 9080,
          "protocol": "http",
          "timeoutMillis": 2000,
          "unhealthyThreshold": 2
        },
        "portMapping": {
          "port": 9080,
          "protocol": "http"
        }
      }
    ],
    "serviceDiscovery": {
      "dns": {
        "hostname": "colorteller-white.default.svc.cluster.local"
      }
    }
  },
  "clientToken": "xxxxxxxx-xxxx-xxxx-1111-EXAMPLE11111"
}
```

#### Sample Response
<a name="API_UpdateVirtualNode_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: d6dc2922-f4c0-4077-8107-db673f167a12
content-type: application/json
content-length: 660
date: Thu, 28 Feb 2019 00:22:42 GMT
x-envoy-upstream-service-time: 88
server: envoy
Connection: keep-alive

{
	"meshName": "ecs-mesh",
	"metadata": {
		"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualNode/colorteller-vn",
		"createdAt": 1.551311799179E9,
		"lastUpdatedAt": 1.551313363236E9,
		"uid": "0999e53a-8e0e-4c4c-8764-ae8ebecc296d",
		"version": 2
	},
	"spec": {
		"backends": [],
		"listeners": [{
			"healthCheck": {
				"healthyThreshold": 2,
				"intervalMillis": 5000,
				"path": "/ping",
				"port": 9080,
				"protocol": "http",
				"timeoutMillis": 2000,
				"unhealthyThreshold": 2
			},
			"portMapping": {
				"port": 9080,
				"protocol": "http"
			}
		}],
		"logging": null,
		"serviceDiscovery": {
			"dns": {
				"hostname": "colorteller-white.default.svc.cluster.local"
			}
		}
	},
	"status": {
		"status": "ACTIVE"
	},
	"virtualNodeName": "colorteller-vn"
}
```

## See Also
<a name="API_UpdateVirtualNode_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/UpdateVirtualNode) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/UpdateVirtualNode) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/UpdateVirtualNode) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/UpdateVirtualNode) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/UpdateVirtualNode) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/UpdateVirtualNode) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/UpdateVirtualNode) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/UpdateVirtualNode) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/UpdateVirtualNode) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/UpdateVirtualNode) 

# UpdateVirtualRouter
<a name="API_UpdateVirtualRouter"></a>

Updates an existing virtual router in a specified service mesh.

## Request Syntax
<a name="API_UpdateVirtualRouter_RequestSyntax"></a>

```
PUT /v20190125/meshes/meshName/virtualRouters/virtualRouterName?meshOwner=meshOwner HTTP/1.1
Content-type: application/json

{
   "clientToken": "string",
   "spec": { 
      "listeners": [ 
         { 
            "portMapping": { 
               "port": number,
               "protocol": "string"
            }
         }
      ]
   }
}
```

## URI Request Parameters
<a name="API_UpdateVirtualRouter_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_UpdateVirtualRouter_RequestSyntax) **   <a name="appmesh-UpdateVirtualRouter-request-uri-meshName"></a>
The name of the service mesh that the virtual router resides in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_UpdateVirtualRouter_RequestSyntax) **   <a name="appmesh-UpdateVirtualRouter-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualRouterName](#API_UpdateVirtualRouter_RequestSyntax) **   <a name="appmesh-UpdateVirtualRouter-request-uri-virtualRouterName"></a>
The name of the virtual router to update.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

## Request Body
<a name="API_UpdateVirtualRouter_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [clientToken](#API_UpdateVirtualRouter_RequestSyntax) **   <a name="appmesh-UpdateVirtualRouter-request-clientToken"></a>
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.  
Type: String  
Required: No

 ** [spec](#API_UpdateVirtualRouter_RequestSyntax) **   <a name="appmesh-UpdateVirtualRouter-request-spec"></a>
The new virtual router specification to apply. This overwrites the existing data.  
Type: [VirtualRouterSpec](API_VirtualRouterSpec.md) object  
Required: Yes

## Response Syntax
<a name="API_UpdateVirtualRouter_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "listeners": [ 
         { 
            "portMapping": { 
               "port": number,
               "protocol": "string"
            }
         }
      ]
   },
   "status": { 
      "status": "string"
   },
   "virtualRouterName": "string"
}
```

## Response Elements
<a name="API_UpdateVirtualRouter_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_UpdateVirtualRouter_ResponseSyntax) **   <a name="appmesh-UpdateVirtualRouter-response-meshName"></a>
The name of the service mesh that the virtual router resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_UpdateVirtualRouter_ResponseSyntax) **   <a name="appmesh-UpdateVirtualRouter-response-metadata"></a>
The associated metadata for the virtual router.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_UpdateVirtualRouter_ResponseSyntax) **   <a name="appmesh-UpdateVirtualRouter-response-spec"></a>
The specifications of the virtual router.  
Type: [VirtualRouterSpec](API_VirtualRouterSpec.md) object

 ** [status](#API_UpdateVirtualRouter_ResponseSyntax) **   <a name="appmesh-UpdateVirtualRouter-response-status"></a>
The current status of the virtual router.  
Type: [VirtualRouterStatus](API_VirtualRouterStatus.md) object

 ** [virtualRouterName](#API_UpdateVirtualRouter_ResponseSyntax) **   <a name="appmesh-UpdateVirtualRouter-response-virtualRouterName"></a>
The name of the virtual router.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

## Errors
<a name="API_UpdateVirtualRouter_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ConflictException **   
The request contains a client token that was used for a previous update resource call with different specifications. Try the request again with a new client token.  
HTTP Status Code: 409

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** LimitExceededException **   
You have exceeded a service limit for your account. For more information, see [Service Limits](https://docs.aws.amazon.com/app-mesh/latest/userguide/service-quotas.html) in the * AWS App Mesh User Guide*.  
HTTP Status Code: 400

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_UpdateVirtualRouter_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_UpdateVirtualRouter_Example_1"></a>

The following example updates a virtual router named `colorteller-vr` in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_UpdateVirtualRouter_Example_1_Request"></a>

```
PUT /v20190125/meshes/ecs-mesh/virtualRouters/colorteller-vr HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190228T002506Z
Authorization: AUTHPARAMS

{
  "spec": {},
  "clientToken": "6029e873-0ef2-41b9-957e-2742048c92c3"
}
```

#### Sample Response
<a name="API_UpdateVirtualRouter_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: fba0cb49-d242-46e5-aacd-c4a0fad60413
content-type: application/json
content-length: 336
date: Thu, 28 Feb 2019 00:25:06 GMT
x-envoy-upstream-service-time: 70
server: envoy
Connection: keep-alive

{
  "meshName": "ecs-mesh",
  "metadata": {
    "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualRouter/colorteller-vr",
    "createdAt": 1551311805.476,
    "lastUpdatedAt": 1551313507.39,
    "uid": "79628d34-8c17-42ba-83a5-8a42fd17ec5a",
    "version": 2
  },
  "spec": {
    "listeners": [
      {
        "portMapping": {
          "port": 9080,
          "protocol": "http"
        }
      }
    ]
  },
  "status": {
    "status": "ACTIVE"
  },
  "virtualRouterName": "colorteller-vr"
}
```

## See Also
<a name="API_UpdateVirtualRouter_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/UpdateVirtualRouter) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/UpdateVirtualRouter) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/UpdateVirtualRouter) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/UpdateVirtualRouter) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/UpdateVirtualRouter) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/UpdateVirtualRouter) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/UpdateVirtualRouter) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/UpdateVirtualRouter) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/UpdateVirtualRouter) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/UpdateVirtualRouter) 

# UpdateVirtualService
<a name="API_UpdateVirtualService"></a>

Updates an existing virtual service in a specified service mesh.

## Request Syntax
<a name="API_UpdateVirtualService_RequestSyntax"></a>

```
PUT /v20190125/meshes/meshName/virtualServices/virtualServiceName?meshOwner=meshOwner HTTP/1.1
Content-type: application/json

{
   "clientToken": "string",
   "spec": { 
      "provider": { ... }
   }
}
```

## URI Request Parameters
<a name="API_UpdateVirtualService_RequestParameters"></a>

The request uses the following URI parameters.

 ** [meshName](#API_UpdateVirtualService_RequestSyntax) **   <a name="appmesh-UpdateVirtualService-request-uri-meshName"></a>
The name of the service mesh that the virtual service resides in.  
Length Constraints: Minimum length of 1. Maximum length of 255.  
Required: Yes

 ** [meshOwner](#API_UpdateVirtualService_RequestSyntax) **   <a name="appmesh-UpdateVirtualService-request-uri-meshOwner"></a>
The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html).  
Length Constraints: Fixed length of 12.

 ** [virtualServiceName](#API_UpdateVirtualService_RequestSyntax) **   <a name="appmesh-UpdateVirtualService-request-uri-virtualServiceName"></a>
The name of the virtual service to update.  
Required: Yes

## Request Body
<a name="API_UpdateVirtualService_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [clientToken](#API_UpdateVirtualService_RequestSyntax) **   <a name="appmesh-UpdateVirtualService-request-clientToken"></a>
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.  
Type: String  
Required: No

 ** [spec](#API_UpdateVirtualService_RequestSyntax) **   <a name="appmesh-UpdateVirtualService-request-spec"></a>
The new virtual service specification to apply. This overwrites the existing data.  
Type: [VirtualServiceSpec](API_VirtualServiceSpec.md) object  
Required: Yes

## Response Syntax
<a name="API_UpdateVirtualService_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "meshName": "string",
   "metadata": { 
      "arn": "string",
      "createdAt": number,
      "lastUpdatedAt": number,
      "meshOwner": "string",
      "resourceOwner": "string",
      "uid": "string",
      "version": number
   },
   "spec": { 
      "provider": { ... }
   },
   "status": { 
      "status": "string"
   },
   "virtualServiceName": "string"
}
```

## Response Elements
<a name="API_UpdateVirtualService_ResponseElements"></a>

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [meshName](#API_UpdateVirtualService_ResponseSyntax) **   <a name="appmesh-UpdateVirtualService-response-meshName"></a>
The name of the service mesh that the virtual service resides in.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 255.

 ** [metadata](#API_UpdateVirtualService_ResponseSyntax) **   <a name="appmesh-UpdateVirtualService-response-metadata"></a>
An object that represents metadata for a resource.  
Type: [ResourceMetadata](API_ResourceMetadata.md) object

 ** [spec](#API_UpdateVirtualService_ResponseSyntax) **   <a name="appmesh-UpdateVirtualService-response-spec"></a>
The specifications of the virtual service.  
Type: [VirtualServiceSpec](API_VirtualServiceSpec.md) object

 ** [status](#API_UpdateVirtualService_ResponseSyntax) **   <a name="appmesh-UpdateVirtualService-response-status"></a>
The current status of the virtual service.  
Type: [VirtualServiceStatus](API_VirtualServiceStatus.md) object

 ** [virtualServiceName](#API_UpdateVirtualService_ResponseSyntax) **   <a name="appmesh-UpdateVirtualService-response-virtualServiceName"></a>
The name of the virtual service.  
Type: String

## Errors
<a name="API_UpdateVirtualService_Errors"></a>

 ** BadRequestException **   
The request syntax was malformed. Check your request syntax and try again.  
HTTP Status Code: 400

 ** ConflictException **   
The request contains a client token that was used for a previous update resource call with different specifications. Try the request again with a new client token.  
HTTP Status Code: 409

 ** ForbiddenException **   
You don't have permissions to perform this action.  
HTTP Status Code: 403

 ** InternalServerErrorException **   
The request processing has failed because of an unknown error, exception, or failure.  
HTTP Status Code: 500

 ** LimitExceededException **   
You have exceeded a service limit for your account. For more information, see [Service Limits](https://docs.aws.amazon.com/app-mesh/latest/userguide/service-quotas.html) in the * AWS App Mesh User Guide*.  
HTTP Status Code: 400

 ** NotFoundException **   
The specified resource doesn't exist. Check your request syntax and try again.  
HTTP Status Code: 404

 ** ServiceUnavailableException **   
The request has failed due to a temporary failure of the service.  
HTTP Status Code: 503

 ** TooManyRequestsException **   
The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.  
HTTP Status Code: 429

## Examples
<a name="API_UpdateVirtualService_Examples"></a>

In the following example or examples, the Authorization header contents (`AUTHPARAMS`) must be replaced with an AWS Signature Version 4 signature. For more information about creating these signatures, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the * AWS General Reference*.

You need to learn how to sign HTTP requests only if you intend to manually create them. When you use the [AWS Command Line Interface (AWS CLI)](http://aws.amazon.com/cli/) or one of the [AWS SDKs](http://aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you with the access key that you specify when you configure the tools. When you use these tools, you don't need to learn how to sign requests yourself.

### Example
<a name="API_UpdateVirtualService_Example_1"></a>

This example updates a virtual service named `colorgateway.default.svc.cluster.local` in the `ecs-mesh` service mesh.

#### Sample Request
<a name="API_UpdateVirtualService_Example_1_Request"></a>

```
PUT /v20190125/meshes/ecs-mesh/virtualServices/colorgateway.default.svc.cluster.local HTTP/1.1
Host: appmesh.us-east-1.amazonaws.com
Accept-Encoding: identity
User-Agent: aws-cli/1.16.56 Python/3.7.0 Darwin/17.7.0 botocore/1.12.46
X-Amz-Date: 20190228T002829Z
Authorization: AUTHPARAMS

{
  "spec": {
    "provider": {
      "virtualNode": {
        "virtualNodeName": "colorgateway-vn"
      }
    }
  },
  "clientToken": "c207a9a1-5828-4d73-9e8e-1d3b9350b2ac"
}
```

#### Sample Response
<a name="API_UpdateVirtualService_Example_1_Response"></a>

```
HTTP/1.1 200 OK
x-amzn-requestid: 60d5fb65-ac74-4523-a1df-9e56da84fa84
content-type: application/json
content-length: 456
date: Thu, 28 Feb 2019 00:28:29 GMT
x-envoy-upstream-service-time: 88
server: envoy
Connection: keep-alive

{
	"meshName": "ecs-mesh",
	"metadata": {
		"arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/ecs-mesh/virtualService/colorgateway.default.svc.cluster.local",
		"createdAt": 1.551311807444E9,
		"lastUpdatedAt": 1.551313709898E9,
		"uid": "dd06064b-e542-40a9-bbc7-e381a47ea0e0",
		"version": 2
	},
	"spec": {
		"provider": {
			"virtualNode": {
				"virtualNodeName": "colorgateway-vn"
			},
			"virtualRouter": null
		}
	},
	"status": {
		"status": "ACTIVE"
	},
	"virtualServiceName": "colorgateway.default.svc.cluster.local"
}
```

## See Also
<a name="API_UpdateVirtualService_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/appmesh-2019-01-25/UpdateVirtualService) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/appmesh-2019-01-25/UpdateVirtualService) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/appmesh-2019-01-25/UpdateVirtualService) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/appmesh-2019-01-25/UpdateVirtualService) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/appmesh-2019-01-25/UpdateVirtualService) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/appmesh-2019-01-25/UpdateVirtualService) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/appmesh-2019-01-25/UpdateVirtualService) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/appmesh-2019-01-25/UpdateVirtualService) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/appmesh-2019-01-25/UpdateVirtualService) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/appmesh-2019-01-25/UpdateVirtualService) 