SDK for PHP 3.x

Client: Aws\AppMesh\AppMeshClient
Service ID: appmesh
Version: 2019-01-25

This page describes the parameters and results for the operations of the AWS App Mesh (2019-01-25), and shows how to use the Aws\AppMesh\AppMeshClient object to call the described operations. This documentation is specific to the 2019-01-25 API version of the service.

Operation Summary

Each of the following operations can be created from a client using $client->getCommand('CommandName'), where "CommandName" is the name of one of the following operations. Note: a command is a value that encapsulates an operation and the parameters used to create an HTTP request.

You can also create and send a command immediately using the magic methods available on a client object: $client->commandName(/* parameters */). You can send the command asynchronously (returning a promise) by appending the word "Async" to the operation name: $client->commandNameAsync(/* parameters */).

CreateGatewayRoute ( array $params = [] )
Creates a gateway route.
CreateMesh ( array $params = [] )
Creates a service mesh.
CreateRoute ( array $params = [] )
Creates a route that is associated with a virtual router.
CreateVirtualGateway ( array $params = [] )
Creates a virtual gateway.
CreateVirtualNode ( array $params = [] )
Creates a virtual node within a service mesh.
CreateVirtualRouter ( array $params = [] )
Creates a virtual router within a service mesh.
CreateVirtualService ( array $params = [] )
Creates a virtual service within a service mesh.
DeleteGatewayRoute ( array $params = [] )
Deletes an existing gateway route.
DeleteMesh ( array $params = [] )
Deletes an existing service mesh.
DeleteRoute ( array $params = [] )
Deletes an existing route.
DeleteVirtualGateway ( array $params = [] )
Deletes an existing virtual gateway.
DeleteVirtualNode ( array $params = [] )
Deletes an existing virtual node.
DeleteVirtualRouter ( array $params = [] )
Deletes an existing virtual router.
DeleteVirtualService ( array $params = [] )
Deletes an existing virtual service.
DescribeGatewayRoute ( array $params = [] )
Describes an existing gateway route.
DescribeMesh ( array $params = [] )
Describes an existing service mesh.
DescribeRoute ( array $params = [] )
Describes an existing route.
DescribeVirtualGateway ( array $params = [] )
Describes an existing virtual gateway.
DescribeVirtualNode ( array $params = [] )
Describes an existing virtual node.
DescribeVirtualRouter ( array $params = [] )
Describes an existing virtual router.
DescribeVirtualService ( array $params = [] )
Describes an existing virtual service.
ListGatewayRoutes ( array $params = [] )
Returns a list of existing gateway routes that are associated to a virtual gateway.
ListMeshes ( array $params = [] )
Returns a list of existing service meshes.
ListRoutes ( array $params = [] )
Returns a list of existing routes in a service mesh.
ListTagsForResource ( array $params = [] )
List the tags for an App Mesh resource.
ListVirtualGateways ( array $params = [] )
Returns a list of existing virtual gateways in a service mesh.
ListVirtualNodes ( array $params = [] )
Returns a list of existing virtual nodes.
ListVirtualRouters ( array $params = [] )
Returns a list of existing virtual routers in a service mesh.
ListVirtualServices ( array $params = [] )
Returns a list of existing virtual services in a service mesh.
TagResource ( array $params = [] )
Associates the specified tags to a resource with the specified resourceArn.
UntagResource ( array $params = [] )
Deletes specified tags from a resource.
UpdateGatewayRoute ( array $params = [] )
Updates an existing gateway route that is associated to a specified virtual gateway in a service mesh.
UpdateMesh ( array $params = [] )
Updates an existing service mesh.
UpdateRoute ( array $params = [] )
Updates an existing route for a specified service mesh and virtual router.
UpdateVirtualGateway ( array $params = [] )
Updates an existing virtual gateway in a specified service mesh.
UpdateVirtualNode ( array $params = [] )
Updates an existing virtual node in a specified service mesh.
UpdateVirtualRouter ( array $params = [] )
Updates an existing virtual router in a specified service mesh.
UpdateVirtualService ( array $params = [] )
Updates an existing virtual service in a specified service mesh.

Paginators

Paginators handle automatically iterating over paginated API results. Paginators are associated with specific API operations, and they accept the parameters that the corresponding API operation accepts. You can get a paginator from a client class using getPaginator($paginatorName, $operationParameters). This client supports the following paginators:

ListGatewayRoutes
ListMeshes
ListRoutes
ListTagsForResource
ListVirtualGateways
ListVirtualNodes
ListVirtualRouters
ListVirtualServices

Operations

CreateGatewayRoute

$result = $client->createGatewayRoute([/* ... */]);
$promise = $client->createGatewayRouteAsync([/* ... */]);

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.

Parameter Syntax

$result = $client->createGatewayRoute([
    'clientToken' => '<string>',
    'gatewayRouteName' => '<string>', // REQUIRED
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'spec' => [ // REQUIRED
        'grpcRoute' => [
            'action' => [ // REQUIRED
                'rewrite' => [
                    'hostname' => [
                        'defaultTargetHostname' => 'ENABLED|DISABLED',
                    ],
                ],
                'target' => [ // REQUIRED
                    'port' => <integer>,
                    'virtualService' => [ // REQUIRED
                        'virtualServiceName' => '<string>', // REQUIRED
                    ],
                ],
            ],
            'match' => [ // REQUIRED
                'hostname' => [
                    'exact' => '<string>',
                    'suffix' => '<string>',
                ],
                'metadata' => [
                    [
                        'invert' => true || false,
                        'match' => [
                            'exact' => '<string>',
                            'prefix' => '<string>',
                            'range' => [
                                'end' => <integer>, // REQUIRED
                                'start' => <integer>, // REQUIRED
                            ],
                            'regex' => '<string>',
                            'suffix' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'port' => <integer>,
                'serviceName' => '<string>',
            ],
        ],
        'http2Route' => [
            'action' => [ // REQUIRED
                'rewrite' => [
                    'hostname' => [
                        'defaultTargetHostname' => 'ENABLED|DISABLED',
                    ],
                    'path' => [
                        'exact' => '<string>',
                    ],
                    'prefix' => [
                        'defaultPrefix' => 'ENABLED|DISABLED',
                        'value' => '<string>',
                    ],
                ],
                'target' => [ // REQUIRED
                    'port' => <integer>,
                    'virtualService' => [ // REQUIRED
                        'virtualServiceName' => '<string>', // REQUIRED
                    ],
                ],
            ],
            'match' => [ // REQUIRED
                'headers' => [
                    [
                        'invert' => true || false,
                        'match' => [
                            'exact' => '<string>',
                            'prefix' => '<string>',
                            'range' => [
                                'end' => <integer>, // REQUIRED
                                'start' => <integer>, // REQUIRED
                            ],
                            'regex' => '<string>',
                            'suffix' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'hostname' => [
                    'exact' => '<string>',
                    'suffix' => '<string>',
                ],
                'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                'path' => [
                    'exact' => '<string>',
                    'regex' => '<string>',
                ],
                'port' => <integer>,
                'prefix' => '<string>',
                'queryParameters' => [
                    [
                        'match' => [
                            'exact' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
            ],
        ],
        'httpRoute' => [
            'action' => [ // REQUIRED
                'rewrite' => [
                    'hostname' => [
                        'defaultTargetHostname' => 'ENABLED|DISABLED',
                    ],
                    'path' => [
                        'exact' => '<string>',
                    ],
                    'prefix' => [
                        'defaultPrefix' => 'ENABLED|DISABLED',
                        'value' => '<string>',
                    ],
                ],
                'target' => [ // REQUIRED
                    'port' => <integer>,
                    'virtualService' => [ // REQUIRED
                        'virtualServiceName' => '<string>', // REQUIRED
                    ],
                ],
            ],
            'match' => [ // REQUIRED
                'headers' => [
                    [
                        'invert' => true || false,
                        'match' => [
                            'exact' => '<string>',
                            'prefix' => '<string>',
                            'range' => [
                                'end' => <integer>, // REQUIRED
                                'start' => <integer>, // REQUIRED
                            ],
                            'regex' => '<string>',
                            'suffix' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'hostname' => [
                    'exact' => '<string>',
                    'suffix' => '<string>',
                ],
                'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                'path' => [
                    'exact' => '<string>',
                    'regex' => '<string>',
                ],
                'port' => <integer>,
                'prefix' => '<string>',
                'queryParameters' => [
                    [
                        'match' => [
                            'exact' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
            ],
        ],
        'priority' => <integer>,
    ],
    'tags' => [
        [
            'key' => '<string>', // REQUIRED
            'value' => '<string>', // REQUIRED
        ],
        // ...
    ],
    'virtualGatewayName' => '<string>', // REQUIRED
]);

Parameter Details

Members
clientToken
Type: string

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

gatewayRouteName
Required: Yes
Type: string

The name to use for the gateway route.

meshName
Required: Yes
Type: string

The name of the service mesh to create the gateway route in.

meshOwner
Type: string

The Amazon Web Services 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.

spec
Required: Yes
Type: GatewayRouteSpec structure

The gateway route specification to apply.

tags
Type: Array of TagRef structures

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.

virtualGatewayName
Required: Yes
Type: string

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.

Result Syntax

[
    'gatewayRoute' => [
        'gatewayRouteName' => '<string>',
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'grpcRoute' => [
                'action' => [
                    'rewrite' => [
                        'hostname' => [
                            'defaultTargetHostname' => 'ENABLED|DISABLED',
                        ],
                    ],
                    'target' => [
                        'port' => <integer>,
                        'virtualService' => [
                            'virtualServiceName' => '<string>',
                        ],
                    ],
                ],
                'match' => [
                    'hostname' => [
                        'exact' => '<string>',
                        'suffix' => '<string>',
                    ],
                    'metadata' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'port' => <integer>,
                    'serviceName' => '<string>',
                ],
            ],
            'http2Route' => [
                'action' => [
                    'rewrite' => [
                        'hostname' => [
                            'defaultTargetHostname' => 'ENABLED|DISABLED',
                        ],
                        'path' => [
                            'exact' => '<string>',
                        ],
                        'prefix' => [
                            'defaultPrefix' => 'ENABLED|DISABLED',
                            'value' => '<string>',
                        ],
                    ],
                    'target' => [
                        'port' => <integer>,
                        'virtualService' => [
                            'virtualServiceName' => '<string>',
                        ],
                    ],
                ],
                'match' => [
                    'headers' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'hostname' => [
                        'exact' => '<string>',
                        'suffix' => '<string>',
                    ],
                    'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                    'path' => [
                        'exact' => '<string>',
                        'regex' => '<string>',
                    ],
                    'port' => <integer>,
                    'prefix' => '<string>',
                    'queryParameters' => [
                        [
                            'match' => [
                                'exact' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                ],
            ],
            'httpRoute' => [
                'action' => [
                    'rewrite' => [
                        'hostname' => [
                            'defaultTargetHostname' => 'ENABLED|DISABLED',
                        ],
                        'path' => [
                            'exact' => '<string>',
                        ],
                        'prefix' => [
                            'defaultPrefix' => 'ENABLED|DISABLED',
                            'value' => '<string>',
                        ],
                    ],
                    'target' => [
                        'port' => <integer>,
                        'virtualService' => [
                            'virtualServiceName' => '<string>',
                        ],
                    ],
                ],
                'match' => [
                    'headers' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'hostname' => [
                        'exact' => '<string>',
                        'suffix' => '<string>',
                    ],
                    'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                    'path' => [
                        'exact' => '<string>',
                        'regex' => '<string>',
                    ],
                    'port' => <integer>,
                    'prefix' => '<string>',
                    'queryParameters' => [
                        [
                            'match' => [
                                'exact' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                ],
            ],
            'priority' => <integer>,
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualGatewayName' => '<string>',
    ],
]

Result Details

Members
gatewayRoute
Required: Yes
Type: GatewayRouteData structure

The full description of your gateway route following the create call.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

LimitExceededException:

You have exceeded a service limit for your account. For more information, see Service Limits in the App Mesh User Guide.

CreateMesh

$result = $client->createMesh([/* ... */]);
$promise = $client->createMeshAsync([/* ... */]);

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.

Parameter Syntax

$result = $client->createMesh([
    'clientToken' => '<string>',
    'meshName' => '<string>', // REQUIRED
    'spec' => [
        'egressFilter' => [
            'type' => 'ALLOW_ALL|DROP_ALL', // REQUIRED
        ],
        'serviceDiscovery' => [
            'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
        ],
    ],
    'tags' => [
        [
            'key' => '<string>', // REQUIRED
            'value' => '<string>', // REQUIRED
        ],
        // ...
    ],
]);

Parameter Details

Members
clientToken
Type: string

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

meshName
Required: Yes
Type: string

The name to use for the service mesh.

spec
Type: MeshSpec structure

The service mesh specification to apply.

tags
Type: Array of TagRef structures

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.

Result Syntax

[
    'mesh' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'egressFilter' => [
                'type' => 'ALLOW_ALL|DROP_ALL',
            ],
            'serviceDiscovery' => [
                'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
    ],
]

Result Details

Members
mesh
Required: Yes
Type: MeshData structure

The full description of your service mesh following the create call.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

LimitExceededException:

You have exceeded a service limit for your account. For more information, see Service Limits in the App Mesh User Guide.

CreateRoute

$result = $client->createRoute([/* ... */]);
$promise = $client->createRouteAsync([/* ... */]);

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.

Parameter Syntax

$result = $client->createRoute([
    'clientToken' => '<string>',
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'routeName' => '<string>', // REQUIRED
    'spec' => [ // REQUIRED
        'grpcRoute' => [
            'action' => [ // REQUIRED
                'weightedTargets' => [ // REQUIRED
                    [
                        'port' => <integer>,
                        'virtualNode' => '<string>', // REQUIRED
                        'weight' => <integer>, // REQUIRED
                    ],
                    // ...
                ],
            ],
            'match' => [ // REQUIRED
                'metadata' => [
                    [
                        'invert' => true || false,
                        'match' => [
                            'exact' => '<string>',
                            'prefix' => '<string>',
                            'range' => [
                                'end' => <integer>, // REQUIRED
                                'start' => <integer>, // REQUIRED
                            ],
                            'regex' => '<string>',
                            'suffix' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'methodName' => '<string>',
                'port' => <integer>,
                'serviceName' => '<string>',
            ],
            'retryPolicy' => [
                'grpcRetryEvents' => ['<string>', ...],
                'httpRetryEvents' => ['<string>', ...],
                'maxRetries' => <integer>, // REQUIRED
                'perRetryTimeout' => [ // REQUIRED
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
                'tcpRetryEvents' => ['<string>', ...],
            ],
            'timeout' => [
                'idle' => [
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
                'perRequest' => [
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
            ],
        ],
        'http2Route' => [
            'action' => [ // REQUIRED
                'weightedTargets' => [ // REQUIRED
                    [
                        'port' => <integer>,
                        'virtualNode' => '<string>', // REQUIRED
                        'weight' => <integer>, // REQUIRED
                    ],
                    // ...
                ],
            ],
            'match' => [ // REQUIRED
                'headers' => [
                    [
                        'invert' => true || false,
                        'match' => [
                            'exact' => '<string>',
                            'prefix' => '<string>',
                            'range' => [
                                'end' => <integer>, // REQUIRED
                                'start' => <integer>, // REQUIRED
                            ],
                            'regex' => '<string>',
                            'suffix' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                'path' => [
                    'exact' => '<string>',
                    'regex' => '<string>',
                ],
                'port' => <integer>,
                'prefix' => '<string>',
                'queryParameters' => [
                    [
                        'match' => [
                            'exact' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'scheme' => 'http|https',
            ],
            'retryPolicy' => [
                'httpRetryEvents' => ['<string>', ...],
                'maxRetries' => <integer>, // REQUIRED
                'perRetryTimeout' => [ // REQUIRED
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
                'tcpRetryEvents' => ['<string>', ...],
            ],
            'timeout' => [
                'idle' => [
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
                'perRequest' => [
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
            ],
        ],
        'httpRoute' => [
            'action' => [ // REQUIRED
                'weightedTargets' => [ // REQUIRED
                    [
                        'port' => <integer>,
                        'virtualNode' => '<string>', // REQUIRED
                        'weight' => <integer>, // REQUIRED
                    ],
                    // ...
                ],
            ],
            'match' => [ // REQUIRED
                'headers' => [
                    [
                        'invert' => true || false,
                        'match' => [
                            'exact' => '<string>',
                            'prefix' => '<string>',
                            'range' => [
                                'end' => <integer>, // REQUIRED
                                'start' => <integer>, // REQUIRED
                            ],
                            'regex' => '<string>',
                            'suffix' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                'path' => [
                    'exact' => '<string>',
                    'regex' => '<string>',
                ],
                'port' => <integer>,
                'prefix' => '<string>',
                'queryParameters' => [
                    [
                        'match' => [
                            'exact' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'scheme' => 'http|https',
            ],
            'retryPolicy' => [
                'httpRetryEvents' => ['<string>', ...],
                'maxRetries' => <integer>, // REQUIRED
                'perRetryTimeout' => [ // REQUIRED
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
                'tcpRetryEvents' => ['<string>', ...],
            ],
            'timeout' => [
                'idle' => [
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
                'perRequest' => [
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
            ],
        ],
        'priority' => <integer>,
        'tcpRoute' => [
            'action' => [ // REQUIRED
                'weightedTargets' => [ // REQUIRED
                    [
                        'port' => <integer>,
                        'virtualNode' => '<string>', // REQUIRED
                        'weight' => <integer>, // REQUIRED
                    ],
                    // ...
                ],
            ],
            'match' => [
                'port' => <integer>,
            ],
            'timeout' => [
                'idle' => [
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
            ],
        ],
    ],
    'tags' => [
        [
            'key' => '<string>', // REQUIRED
            'value' => '<string>', // REQUIRED
        ],
        // ...
    ],
    'virtualRouterName' => '<string>', // REQUIRED
]);

Parameter Details

Members
clientToken
Type: string

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

meshName
Required: Yes
Type: string

The name of the service mesh to create the route in.

meshOwner
Type: string

The Amazon Web Services 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.

routeName
Required: Yes
Type: string

The name to use for the route.

spec
Required: Yes
Type: RouteSpec structure

The route specification to apply.

tags
Type: Array of TagRef structures

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.

virtualRouterName
Required: Yes
Type: string

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.

Result Syntax

[
    'route' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'routeName' => '<string>',
        'spec' => [
            'grpcRoute' => [
                'action' => [
                    'weightedTargets' => [
                        [
                            'port' => <integer>,
                            'virtualNode' => '<string>',
                            'weight' => <integer>,
                        ],
                        // ...
                    ],
                ],
                'match' => [
                    'metadata' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'methodName' => '<string>',
                    'port' => <integer>,
                    'serviceName' => '<string>',
                ],
                'retryPolicy' => [
                    'grpcRetryEvents' => ['<string>', ...],
                    'httpRetryEvents' => ['<string>', ...],
                    'maxRetries' => <integer>,
                    'perRetryTimeout' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'tcpRetryEvents' => ['<string>', ...],
                ],
                'timeout' => [
                    'idle' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'perRequest' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                ],
            ],
            'http2Route' => [
                'action' => [
                    'weightedTargets' => [
                        [
                            'port' => <integer>,
                            'virtualNode' => '<string>',
                            'weight' => <integer>,
                        ],
                        // ...
                    ],
                ],
                'match' => [
                    'headers' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                    'path' => [
                        'exact' => '<string>',
                        'regex' => '<string>',
                    ],
                    'port' => <integer>,
                    'prefix' => '<string>',
                    'queryParameters' => [
                        [
                            'match' => [
                                'exact' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'scheme' => 'http|https',
                ],
                'retryPolicy' => [
                    'httpRetryEvents' => ['<string>', ...],
                    'maxRetries' => <integer>,
                    'perRetryTimeout' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'tcpRetryEvents' => ['<string>', ...],
                ],
                'timeout' => [
                    'idle' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'perRequest' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                ],
            ],
            'httpRoute' => [
                'action' => [
                    'weightedTargets' => [
                        [
                            'port' => <integer>,
                            'virtualNode' => '<string>',
                            'weight' => <integer>,
                        ],
                        // ...
                    ],
                ],
                'match' => [
                    'headers' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                    'path' => [
                        'exact' => '<string>',
                        'regex' => '<string>',
                    ],
                    'port' => <integer>,
                    'prefix' => '<string>',
                    'queryParameters' => [
                        [
                            'match' => [
                                'exact' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'scheme' => 'http|https',
                ],
                'retryPolicy' => [
                    'httpRetryEvents' => ['<string>', ...],
                    'maxRetries' => <integer>,
                    'perRetryTimeout' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'tcpRetryEvents' => ['<string>', ...],
                ],
                'timeout' => [
                    'idle' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'perRequest' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                ],
            ],
            'priority' => <integer>,
            'tcpRoute' => [
                'action' => [
                    'weightedTargets' => [
                        [
                            'port' => <integer>,
                            'virtualNode' => '<string>',
                            'weight' => <integer>,
                        ],
                        // ...
                    ],
                ],
                'match' => [
                    'port' => <integer>,
                ],
                'timeout' => [
                    'idle' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                ],
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualRouterName' => '<string>',
    ],
]

Result Details

Members
route
Required: Yes
Type: RouteData structure

The full description of your mesh following the create call.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

LimitExceededException:

You have exceeded a service limit for your account. For more information, see Service Limits in the App Mesh User Guide.

CreateVirtualGateway

$result = $client->createVirtualGateway([/* ... */]);
$promise = $client->createVirtualGatewayAsync([/* ... */]);

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.

Parameter Syntax

$result = $client->createVirtualGateway([
    'clientToken' => '<string>',
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'spec' => [ // REQUIRED
        'backendDefaults' => [
            'clientPolicy' => [
                'tls' => [
                    'certificate' => [
                        'file' => [
                            'certificateChain' => '<string>', // REQUIRED
                            'privateKey' => '<string>', // REQUIRED
                        ],
                        'sds' => [
                            'secretName' => '<string>', // REQUIRED
                        ],
                    ],
                    'enforce' => true || false,
                    'ports' => [<integer>, ...],
                    'validation' => [ // REQUIRED
                        'subjectAlternativeNames' => [
                            'match' => [ // REQUIRED
                                'exact' => ['<string>', ...], // REQUIRED
                            ],
                        ],
                        'trust' => [ // REQUIRED
                            'acm' => [
                                'certificateAuthorityArns' => ['<string>', ...], // REQUIRED
                            ],
                            'file' => [
                                'certificateChain' => '<string>', // REQUIRED
                            ],
                            'sds' => [
                                'secretName' => '<string>', // REQUIRED
                            ],
                        ],
                    ],
                ],
            ],
        ],
        'listeners' => [ // REQUIRED
            [
                'connectionPool' => [
                    'grpc' => [
                        'maxRequests' => <integer>, // REQUIRED
                    ],
                    'http' => [
                        'maxConnections' => <integer>, // REQUIRED
                        'maxPendingRequests' => <integer>,
                    ],
                    'http2' => [
                        'maxRequests' => <integer>, // REQUIRED
                    ],
                ],
                'healthCheck' => [
                    'healthyThreshold' => <integer>, // REQUIRED
                    'intervalMillis' => <integer>, // REQUIRED
                    'path' => '<string>',
                    'port' => <integer>,
                    'protocol' => 'http|http2|grpc', // REQUIRED
                    'timeoutMillis' => <integer>, // REQUIRED
                    'unhealthyThreshold' => <integer>, // REQUIRED
                ],
                'portMapping' => [ // REQUIRED
                    'port' => <integer>, // REQUIRED
                    'protocol' => 'http|http2|grpc', // REQUIRED
                ],
                'tls' => [
                    'certificate' => [ // REQUIRED
                        'acm' => [
                            'certificateArn' => '<string>', // REQUIRED
                        ],
                        'file' => [
                            'certificateChain' => '<string>', // REQUIRED
                            'privateKey' => '<string>', // REQUIRED
                        ],
                        'sds' => [
                            'secretName' => '<string>', // REQUIRED
                        ],
                    ],
                    'mode' => 'STRICT|PERMISSIVE|DISABLED', // REQUIRED
                    'validation' => [
                        'subjectAlternativeNames' => [
                            'match' => [ // REQUIRED
                                'exact' => ['<string>', ...], // REQUIRED
                            ],
                        ],
                        'trust' => [ // REQUIRED
                            'file' => [
                                'certificateChain' => '<string>', // REQUIRED
                            ],
                            'sds' => [
                                'secretName' => '<string>', // REQUIRED
                            ],
                        ],
                    ],
                ],
            ],
            // ...
        ],
        'logging' => [
            'accessLog' => [
                'file' => [
                    'format' => [
                        'json' => [
                            [
                                'key' => '<string>', // REQUIRED
                                'value' => '<string>', // REQUIRED
                            ],
                            // ...
                        ],
                        'text' => '<string>',
                    ],
                    'path' => '<string>', // REQUIRED
                ],
            ],
        ],
    ],
    'tags' => [
        [
            'key' => '<string>', // REQUIRED
            'value' => '<string>', // REQUIRED
        ],
        // ...
    ],
    'virtualGatewayName' => '<string>', // REQUIRED
]);

Parameter Details

Members
clientToken
Type: string

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

meshName
Required: Yes
Type: string

The name of the service mesh to create the virtual gateway in.

meshOwner
Type: string

The Amazon Web Services 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.

spec
Required: Yes
Type: VirtualGatewaySpec structure

The virtual gateway specification to apply.

tags
Type: Array of TagRef structures

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.

virtualGatewayName
Required: Yes
Type: string

The name to use for the virtual gateway.

Result Syntax

[
    'virtualGateway' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'backendDefaults' => [
                'clientPolicy' => [
                    'tls' => [
                        'certificate' => [
                            'file' => [
                                'certificateChain' => '<string>',
                                'privateKey' => '<string>',
                            ],
                            'sds' => [
                                'secretName' => '<string>',
                            ],
                        ],
                        'enforce' => true || false,
                        'ports' => [<integer>, ...],
                        'validation' => [
                            'subjectAlternativeNames' => [
                                'match' => [
                                    'exact' => ['<string>', ...],
                                ],
                            ],
                            'trust' => [
                                'acm' => [
                                    'certificateAuthorityArns' => ['<string>', ...],
                                ],
                                'file' => [
                                    'certificateChain' => '<string>',
                                ],
                                'sds' => [
                                    'secretName' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
            ],
            'listeners' => [
                [
                    'connectionPool' => [
                        'grpc' => [
                            'maxRequests' => <integer>,
                        ],
                        'http' => [
                            'maxConnections' => <integer>,
                            'maxPendingRequests' => <integer>,
                        ],
                        'http2' => [
                            'maxRequests' => <integer>,
                        ],
                    ],
                    'healthCheck' => [
                        'healthyThreshold' => <integer>,
                        'intervalMillis' => <integer>,
                        'path' => '<string>',
                        'port' => <integer>,
                        'protocol' => 'http|http2|grpc',
                        'timeoutMillis' => <integer>,
                        'unhealthyThreshold' => <integer>,
                    ],
                    'portMapping' => [
                        'port' => <integer>,
                        'protocol' => 'http|http2|grpc',
                    ],
                    'tls' => [
                        'certificate' => [
                            'acm' => [
                                'certificateArn' => '<string>',
                            ],
                            'file' => [
                                'certificateChain' => '<string>',
                                'privateKey' => '<string>',
                            ],
                            'sds' => [
                                'secretName' => '<string>',
                            ],
                        ],
                        'mode' => 'STRICT|PERMISSIVE|DISABLED',
                        'validation' => [
                            'subjectAlternativeNames' => [
                                'match' => [
                                    'exact' => ['<string>', ...],
                                ],
                            ],
                            'trust' => [
                                'file' => [
                                    'certificateChain' => '<string>',
                                ],
                                'sds' => [
                                    'secretName' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
                // ...
            ],
            'logging' => [
                'accessLog' => [
                    'file' => [
                        'format' => [
                            'json' => [
                                [
                                    'key' => '<string>',
                                    'value' => '<string>',
                                ],
                                // ...
                            ],
                            'text' => '<string>',
                        ],
                        'path' => '<string>',
                    ],
                ],
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualGatewayName' => '<string>',
    ],
]

Result Details

Members
virtualGateway
Required: Yes
Type: VirtualGatewayData structure

The full description of your virtual gateway following the create call.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

LimitExceededException:

You have exceeded a service limit for your account. For more information, see Service Limits in the App Mesh User Guide.

CreateVirtualNode

$result = $client->createVirtualNode([/* ... */]);
$promise = $client->createVirtualNodeAsync([/* ... */]);

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.

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. 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 in the App Mesh User Guide.

Parameter Syntax

$result = $client->createVirtualNode([
    'clientToken' => '<string>',
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'spec' => [ // REQUIRED
        'backendDefaults' => [
            'clientPolicy' => [
                'tls' => [
                    'certificate' => [
                        'file' => [
                            'certificateChain' => '<string>', // REQUIRED
                            'privateKey' => '<string>', // REQUIRED
                        ],
                        'sds' => [
                            'secretName' => '<string>', // REQUIRED
                        ],
                    ],
                    'enforce' => true || false,
                    'ports' => [<integer>, ...],
                    'validation' => [ // REQUIRED
                        'subjectAlternativeNames' => [
                            'match' => [ // REQUIRED
                                'exact' => ['<string>', ...], // REQUIRED
                            ],
                        ],
                        'trust' => [ // REQUIRED
                            'acm' => [
                                'certificateAuthorityArns' => ['<string>', ...], // REQUIRED
                            ],
                            'file' => [
                                'certificateChain' => '<string>', // REQUIRED
                            ],
                            'sds' => [
                                'secretName' => '<string>', // REQUIRED
                            ],
                        ],
                    ],
                ],
            ],
        ],
        'backends' => [
            [
                'virtualService' => [
                    'clientPolicy' => [
                        'tls' => [
                            'certificate' => [
                                'file' => [
                                    'certificateChain' => '<string>', // REQUIRED
                                    'privateKey' => '<string>', // REQUIRED
                                ],
                                'sds' => [
                                    'secretName' => '<string>', // REQUIRED
                                ],
                            ],
                            'enforce' => true || false,
                            'ports' => [<integer>, ...],
                            'validation' => [ // REQUIRED
                                'subjectAlternativeNames' => [
                                    'match' => [ // REQUIRED
                                        'exact' => ['<string>', ...], // REQUIRED
                                    ],
                                ],
                                'trust' => [ // REQUIRED
                                    'acm' => [
                                        'certificateAuthorityArns' => ['<string>', ...], // REQUIRED
                                    ],
                                    'file' => [
                                        'certificateChain' => '<string>', // REQUIRED
                                    ],
                                    'sds' => [
                                        'secretName' => '<string>', // REQUIRED
                                    ],
                                ],
                            ],
                        ],
                    ],
                    'virtualServiceName' => '<string>', // REQUIRED
                ],
            ],
            // ...
        ],
        'listeners' => [
            [
                'connectionPool' => [
                    'grpc' => [
                        'maxRequests' => <integer>, // REQUIRED
                    ],
                    'http' => [
                        'maxConnections' => <integer>, // REQUIRED
                        'maxPendingRequests' => <integer>,
                    ],
                    'http2' => [
                        'maxRequests' => <integer>, // REQUIRED
                    ],
                    'tcp' => [
                        'maxConnections' => <integer>, // REQUIRED
                    ],
                ],
                'healthCheck' => [
                    'healthyThreshold' => <integer>, // REQUIRED
                    'intervalMillis' => <integer>, // REQUIRED
                    'path' => '<string>',
                    'port' => <integer>,
                    'protocol' => 'http|tcp|http2|grpc', // REQUIRED
                    'timeoutMillis' => <integer>, // REQUIRED
                    'unhealthyThreshold' => <integer>, // REQUIRED
                ],
                'outlierDetection' => [
                    'baseEjectionDuration' => [ // REQUIRED
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'interval' => [ // REQUIRED
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'maxEjectionPercent' => <integer>, // REQUIRED
                    'maxServerErrors' => <integer>, // REQUIRED
                ],
                'portMapping' => [ // REQUIRED
                    'port' => <integer>, // REQUIRED
                    'protocol' => 'http|tcp|http2|grpc', // REQUIRED
                ],
                'timeout' => [
                    'grpc' => [
                        'idle' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                        'perRequest' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                    ],
                    'http' => [
                        'idle' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                        'perRequest' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                    ],
                    'http2' => [
                        'idle' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                        'perRequest' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                    ],
                    'tcp' => [
                        'idle' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                    ],
                ],
                'tls' => [
                    'certificate' => [ // REQUIRED
                        'acm' => [
                            'certificateArn' => '<string>', // REQUIRED
                        ],
                        'file' => [
                            'certificateChain' => '<string>', // REQUIRED
                            'privateKey' => '<string>', // REQUIRED
                        ],
                        'sds' => [
                            'secretName' => '<string>', // REQUIRED
                        ],
                    ],
                    'mode' => 'STRICT|PERMISSIVE|DISABLED', // REQUIRED
                    'validation' => [
                        'subjectAlternativeNames' => [
                            'match' => [ // REQUIRED
                                'exact' => ['<string>', ...], // REQUIRED
                            ],
                        ],
                        'trust' => [ // REQUIRED
                            'file' => [
                                'certificateChain' => '<string>', // REQUIRED
                            ],
                            'sds' => [
                                'secretName' => '<string>', // REQUIRED
                            ],
                        ],
                    ],
                ],
            ],
            // ...
        ],
        'logging' => [
            'accessLog' => [
                'file' => [
                    'format' => [
                        'json' => [
                            [
                                'key' => '<string>', // REQUIRED
                                'value' => '<string>', // REQUIRED
                            ],
                            // ...
                        ],
                        'text' => '<string>',
                    ],
                    'path' => '<string>', // REQUIRED
                ],
            ],
        ],
        'serviceDiscovery' => [
            'awsCloudMap' => [
                'attributes' => [
                    [
                        'key' => '<string>', // REQUIRED
                        'value' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
                'namespaceName' => '<string>', // REQUIRED
                'serviceName' => '<string>', // REQUIRED
            ],
            'dns' => [
                'hostname' => '<string>', // REQUIRED
                'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
                'responseType' => 'LOADBALANCER|ENDPOINTS',
            ],
        ],
    ],
    'tags' => [
        [
            'key' => '<string>', // REQUIRED
            'value' => '<string>', // REQUIRED
        ],
        // ...
    ],
    'virtualNodeName' => '<string>', // REQUIRED
]);

Parameter Details

Members
clientToken
Type: string

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

meshName
Required: Yes
Type: string

The name of the service mesh to create the virtual node in.

meshOwner
Type: string

The Amazon Web Services 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.

spec
Required: Yes
Type: VirtualNodeSpec structure

The virtual node specification to apply.

tags
Type: Array of TagRef structures

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.

virtualNodeName
Required: Yes
Type: string

The name to use for the virtual node.

Result Syntax

[
    'virtualNode' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'backendDefaults' => [
                'clientPolicy' => [
                    'tls' => [
                        'certificate' => [
                            'file' => [
                                'certificateChain' => '<string>',
                                'privateKey' => '<string>',
                            ],
                            'sds' => [
                                'secretName' => '<string>',
                            ],
                        ],
                        'enforce' => true || false,
                        'ports' => [<integer>, ...],
                        'validation' => [
                            'subjectAlternativeNames' => [
                                'match' => [
                                    'exact' => ['<string>', ...],
                                ],
                            ],
                            'trust' => [
                                'acm' => [
                                    'certificateAuthorityArns' => ['<string>', ...],
                                ],
                                'file' => [
                                    'certificateChain' => '<string>',
                                ],
                                'sds' => [
                                    'secretName' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
            ],
            'backends' => [
                [
                    'virtualService' => [
                        'clientPolicy' => [
                            'tls' => [
                                'certificate' => [
                                    'file' => [
                                        'certificateChain' => '<string>',
                                        'privateKey' => '<string>',
                                    ],
                                    'sds' => [
                                        'secretName' => '<string>',
                                    ],
                                ],
                                'enforce' => true || false,
                                'ports' => [<integer>, ...],
                                'validation' => [
                                    'subjectAlternativeNames' => [
                                        'match' => [
                                            'exact' => ['<string>', ...],
                                        ],
                                    ],
                                    'trust' => [
                                        'acm' => [
                                            'certificateAuthorityArns' => ['<string>', ...],
                                        ],
                                        'file' => [
                                            'certificateChain' => '<string>',
                                        ],
                                        'sds' => [
                                            'secretName' => '<string>',
                                        ],
                                    ],
                                ],
                            ],
                        ],
                        'virtualServiceName' => '<string>',
                    ],
                ],
                // ...
            ],
            'listeners' => [
                [
                    'connectionPool' => [
                        'grpc' => [
                            'maxRequests' => <integer>,
                        ],
                        'http' => [
                            'maxConnections' => <integer>,
                            'maxPendingRequests' => <integer>,
                        ],
                        'http2' => [
                            'maxRequests' => <integer>,
                        ],
                        'tcp' => [
                            'maxConnections' => <integer>,
                        ],
                    ],
                    'healthCheck' => [
                        'healthyThreshold' => <integer>,
                        'intervalMillis' => <integer>,
                        'path' => '<string>',
                        'port' => <integer>,
                        'protocol' => 'http|tcp|http2|grpc',
                        'timeoutMillis' => <integer>,
                        'unhealthyThreshold' => <integer>,
                    ],
                    'outlierDetection' => [
                        'baseEjectionDuration' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                        'interval' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                        'maxEjectionPercent' => <integer>,
                        'maxServerErrors' => <integer>,
                    ],
                    'portMapping' => [
                        'port' => <integer>,
                        'protocol' => 'http|tcp|http2|grpc',
                    ],
                    'timeout' => [
                        'grpc' => [
                            'idle' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                            'perRequest' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                        ],
                        'http' => [
                            'idle' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                            'perRequest' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                        ],
                        'http2' => [
                            'idle' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                            'perRequest' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                        ],
                        'tcp' => [
                            'idle' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                        ],
                    ],
                    'tls' => [
                        'certificate' => [
                            'acm' => [
                                'certificateArn' => '<string>',
                            ],
                            'file' => [
                                'certificateChain' => '<string>',
                                'privateKey' => '<string>',
                            ],
                            'sds' => [
                                'secretName' => '<string>',
                            ],
                        ],
                        'mode' => 'STRICT|PERMISSIVE|DISABLED',
                        'validation' => [
                            'subjectAlternativeNames' => [
                                'match' => [
                                    'exact' => ['<string>', ...],
                                ],
                            ],
                            'trust' => [
                                'file' => [
                                    'certificateChain' => '<string>',
                                ],
                                'sds' => [
                                    'secretName' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
                // ...
            ],
            'logging' => [
                'accessLog' => [
                    'file' => [
                        'format' => [
                            'json' => [
                                [
                                    'key' => '<string>',
                                    'value' => '<string>',
                                ],
                                // ...
                            ],
                            'text' => '<string>',
                        ],
                        'path' => '<string>',
                    ],
                ],
            ],
            'serviceDiscovery' => [
                'awsCloudMap' => [
                    'attributes' => [
                        [
                            'key' => '<string>',
                            'value' => '<string>',
                        ],
                        // ...
                    ],
                    'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
                    'namespaceName' => '<string>',
                    'serviceName' => '<string>',
                ],
                'dns' => [
                    'hostname' => '<string>',
                    'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
                    'responseType' => 'LOADBALANCER|ENDPOINTS',
                ],
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualNodeName' => '<string>',
    ],
]

Result Details

Members
virtualNode
Required: Yes
Type: VirtualNodeData structure

The full description of your virtual node following the create call.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

LimitExceededException:

You have exceeded a service limit for your account. For more information, see Service Limits in the App Mesh User Guide.

CreateVirtualRouter

$result = $client->createVirtualRouter([/* ... */]);
$promise = $client->createVirtualRouterAsync([/* ... */]);

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.

Parameter Syntax

$result = $client->createVirtualRouter([
    'clientToken' => '<string>',
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'spec' => [ // REQUIRED
        'listeners' => [
            [
                'portMapping' => [ // REQUIRED
                    'port' => <integer>, // REQUIRED
                    'protocol' => 'http|tcp|http2|grpc', // REQUIRED
                ],
            ],
            // ...
        ],
    ],
    'tags' => [
        [
            'key' => '<string>', // REQUIRED
            'value' => '<string>', // REQUIRED
        ],
        // ...
    ],
    'virtualRouterName' => '<string>', // REQUIRED
]);

Parameter Details

Members
clientToken
Type: string

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

meshName
Required: Yes
Type: string

The name of the service mesh to create the virtual router in.

meshOwner
Type: string

The Amazon Web Services 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.

spec
Required: Yes
Type: VirtualRouterSpec structure

The virtual router specification to apply.

tags
Type: Array of TagRef structures

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.

virtualRouterName
Required: Yes
Type: string

The name to use for the virtual router.

Result Syntax

[
    'virtualRouter' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'listeners' => [
                [
                    'portMapping' => [
                        'port' => <integer>,
                        'protocol' => 'http|tcp|http2|grpc',
                    ],
                ],
                // ...
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualRouterName' => '<string>',
    ],
]

Result Details

Members
virtualRouter
Required: Yes
Type: VirtualRouterData structure

The full description of your virtual router following the create call.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

LimitExceededException:

You have exceeded a service limit for your account. For more information, see Service Limits in the App Mesh User Guide.

CreateVirtualService

$result = $client->createVirtualService([/* ... */]);
$promise = $client->createVirtualServiceAsync([/* ... */]);

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.

Parameter Syntax

$result = $client->createVirtualService([
    'clientToken' => '<string>',
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'spec' => [ // REQUIRED
        'provider' => [
            'virtualNode' => [
                'virtualNodeName' => '<string>', // REQUIRED
            ],
            'virtualRouter' => [
                'virtualRouterName' => '<string>', // REQUIRED
            ],
        ],
    ],
    'tags' => [
        [
            'key' => '<string>', // REQUIRED
            'value' => '<string>', // REQUIRED
        ],
        // ...
    ],
    'virtualServiceName' => '<string>', // REQUIRED
]);

Parameter Details

Members
clientToken
Type: string

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

meshName
Required: Yes
Type: string

The name of the service mesh to create the virtual service in.

meshOwner
Type: string

The Amazon Web Services 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.

spec
Required: Yes
Type: VirtualServiceSpec structure

The virtual service specification to apply.

tags
Type: Array of TagRef structures

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.

virtualServiceName
Required: Yes
Type: string

The name to use for the virtual service.

Result Syntax

[
    'virtualService' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'provider' => [
                'virtualNode' => [
                    'virtualNodeName' => '<string>',
                ],
                'virtualRouter' => [
                    'virtualRouterName' => '<string>',
                ],
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualServiceName' => '<string>',
    ],
]

Result Details

Members
virtualService
Required: Yes
Type: VirtualServiceData structure

The full description of your virtual service following the create call.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

LimitExceededException:

You have exceeded a service limit for your account. For more information, see Service Limits in the App Mesh User Guide.

DeleteGatewayRoute

$result = $client->deleteGatewayRoute([/* ... */]);
$promise = $client->deleteGatewayRouteAsync([/* ... */]);

Deletes an existing gateway route.

Parameter Syntax

$result = $client->deleteGatewayRoute([
    'gatewayRouteName' => '<string>', // REQUIRED
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'virtualGatewayName' => '<string>', // REQUIRED
]);

Parameter Details

Members
gatewayRouteName
Required: Yes
Type: string

The name of the gateway route to delete.

meshName
Required: Yes
Type: string

The name of the service mesh to delete the gateway route from.

meshOwner
Type: string

The Amazon Web Services 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.

virtualGatewayName
Required: Yes
Type: string

The name of the virtual gateway to delete the route from.

Result Syntax

[
    'gatewayRoute' => [
        'gatewayRouteName' => '<string>',
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'grpcRoute' => [
                'action' => [
                    'rewrite' => [
                        'hostname' => [
                            'defaultTargetHostname' => 'ENABLED|DISABLED',
                        ],
                    ],
                    'target' => [
                        'port' => <integer>,
                        'virtualService' => [
                            'virtualServiceName' => '<string>',
                        ],
                    ],
                ],
                'match' => [
                    'hostname' => [
                        'exact' => '<string>',
                        'suffix' => '<string>',
                    ],
                    'metadata' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'port' => <integer>,
                    'serviceName' => '<string>',
                ],
            ],
            'http2Route' => [
                'action' => [
                    'rewrite' => [
                        'hostname' => [
                            'defaultTargetHostname' => 'ENABLED|DISABLED',
                        ],
                        'path' => [
                            'exact' => '<string>',
                        ],
                        'prefix' => [
                            'defaultPrefix' => 'ENABLED|DISABLED',
                            'value' => '<string>',
                        ],
                    ],
                    'target' => [
                        'port' => <integer>,
                        'virtualService' => [
                            'virtualServiceName' => '<string>',
                        ],
                    ],
                ],
                'match' => [
                    'headers' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'hostname' => [
                        'exact' => '<string>',
                        'suffix' => '<string>',
                    ],
                    'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                    'path' => [
                        'exact' => '<string>',
                        'regex' => '<string>',
                    ],
                    'port' => <integer>,
                    'prefix' => '<string>',
                    'queryParameters' => [
                        [
                            'match' => [
                                'exact' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                ],
            ],
            'httpRoute' => [
                'action' => [
                    'rewrite' => [
                        'hostname' => [
                            'defaultTargetHostname' => 'ENABLED|DISABLED',
                        ],
                        'path' => [
                            'exact' => '<string>',
                        ],
                        'prefix' => [
                            'defaultPrefix' => 'ENABLED|DISABLED',
                            'value' => '<string>',
                        ],
                    ],
                    'target' => [
                        'port' => <integer>,
                        'virtualService' => [
                            'virtualServiceName' => '<string>',
                        ],
                    ],
                ],
                'match' => [
                    'headers' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'hostname' => [
                        'exact' => '<string>',
                        'suffix' => '<string>',
                    ],
                    'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                    'path' => [
                        'exact' => '<string>',
                        'regex' => '<string>',
                    ],
                    'port' => <integer>,
                    'prefix' => '<string>',
                    'queryParameters' => [
                        [
                            'match' => [
                                'exact' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                ],
            ],
            'priority' => <integer>,
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualGatewayName' => '<string>',
    ],
]

Result Details

Members
gatewayRoute
Required: Yes
Type: GatewayRouteData structure

The gateway route that was deleted.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ResourceInUseException:

You can't delete the specified resource because it's in use or required by another resource.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

DeleteMesh

$result = $client->deleteMesh([/* ... */]);
$promise = $client->deleteMeshAsync([/* ... */]);

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.

Parameter Syntax

$result = $client->deleteMesh([
    'meshName' => '<string>', // REQUIRED
]);

Parameter Details

Members
meshName
Required: Yes
Type: string

The name of the service mesh to delete.

Result Syntax

[
    'mesh' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'egressFilter' => [
                'type' => 'ALLOW_ALL|DROP_ALL',
            ],
            'serviceDiscovery' => [
                'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
    ],
]

Result Details

Members
mesh
Required: Yes
Type: MeshData structure

The service mesh that was deleted.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ResourceInUseException:

You can't delete the specified resource because it's in use or required by another resource.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

DeleteRoute

$result = $client->deleteRoute([/* ... */]);
$promise = $client->deleteRouteAsync([/* ... */]);

Deletes an existing route.

Parameter Syntax

$result = $client->deleteRoute([
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'routeName' => '<string>', // REQUIRED
    'virtualRouterName' => '<string>', // REQUIRED
]);

Parameter Details

Members
meshName
Required: Yes
Type: string

The name of the service mesh to delete the route in.

meshOwner
Type: string

The Amazon Web Services 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.

routeName
Required: Yes
Type: string

The name of the route to delete.

virtualRouterName
Required: Yes
Type: string

The name of the virtual router to delete the route in.

Result Syntax

[
    'route' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'routeName' => '<string>',
        'spec' => [
            'grpcRoute' => [
                'action' => [
                    'weightedTargets' => [
                        [
                            'port' => <integer>,
                            'virtualNode' => '<string>',
                            'weight' => <integer>,
                        ],
                        // ...
                    ],
                ],
                'match' => [
                    'metadata' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'methodName' => '<string>',
                    'port' => <integer>,
                    'serviceName' => '<string>',
                ],
                'retryPolicy' => [
                    'grpcRetryEvents' => ['<string>', ...],
                    'httpRetryEvents' => ['<string>', ...],
                    'maxRetries' => <integer>,
                    'perRetryTimeout' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'tcpRetryEvents' => ['<string>', ...],
                ],
                'timeout' => [
                    'idle' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'perRequest' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                ],
            ],
            'http2Route' => [
                'action' => [
                    'weightedTargets' => [
                        [
                            'port' => <integer>,
                            'virtualNode' => '<string>',
                            'weight' => <integer>,
                        ],
                        // ...
                    ],
                ],
                'match' => [
                    'headers' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                    'path' => [
                        'exact' => '<string>',
                        'regex' => '<string>',
                    ],
                    'port' => <integer>,
                    'prefix' => '<string>',
                    'queryParameters' => [
                        [
                            'match' => [
                                'exact' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'scheme' => 'http|https',
                ],
                'retryPolicy' => [
                    'httpRetryEvents' => ['<string>', ...],
                    'maxRetries' => <integer>,
                    'perRetryTimeout' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'tcpRetryEvents' => ['<string>', ...],
                ],
                'timeout' => [
                    'idle' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'perRequest' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                ],
            ],
            'httpRoute' => [
                'action' => [
                    'weightedTargets' => [
                        [
                            'port' => <integer>,
                            'virtualNode' => '<string>',
                            'weight' => <integer>,
                        ],
                        // ...
                    ],
                ],
                'match' => [
                    'headers' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                    'path' => [
                        'exact' => '<string>',
                        'regex' => '<string>',
                    ],
                    'port' => <integer>,
                    'prefix' => '<string>',
                    'queryParameters' => [
                        [
                            'match' => [
                                'exact' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'scheme' => 'http|https',
                ],
                'retryPolicy' => [
                    'httpRetryEvents' => ['<string>', ...],
                    'maxRetries' => <integer>,
                    'perRetryTimeout' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'tcpRetryEvents' => ['<string>', ...],
                ],
                'timeout' => [
                    'idle' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'perRequest' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                ],
            ],
            'priority' => <integer>,
            'tcpRoute' => [
                'action' => [
                    'weightedTargets' => [
                        [
                            'port' => <integer>,
                            'virtualNode' => '<string>',
                            'weight' => <integer>,
                        ],
                        // ...
                    ],
                ],
                'match' => [
                    'port' => <integer>,
                ],
                'timeout' => [
                    'idle' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                ],
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualRouterName' => '<string>',
    ],
]

Result Details

Members
route
Required: Yes
Type: RouteData structure

The route that was deleted.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ResourceInUseException:

You can't delete the specified resource because it's in use or required by another resource.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

DeleteVirtualGateway

$result = $client->deleteVirtualGateway([/* ... */]);
$promise = $client->deleteVirtualGatewayAsync([/* ... */]);

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

Parameter Syntax

$result = $client->deleteVirtualGateway([
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'virtualGatewayName' => '<string>', // REQUIRED
]);

Parameter Details

Members
meshName
Required: Yes
Type: string

The name of the service mesh to delete the virtual gateway from.

meshOwner
Type: string

The Amazon Web Services 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.

virtualGatewayName
Required: Yes
Type: string

The name of the virtual gateway to delete.

Result Syntax

[
    'virtualGateway' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'backendDefaults' => [
                'clientPolicy' => [
                    'tls' => [
                        'certificate' => [
                            'file' => [
                                'certificateChain' => '<string>',
                                'privateKey' => '<string>',
                            ],
                            'sds' => [
                                'secretName' => '<string>',
                            ],
                        ],
                        'enforce' => true || false,
                        'ports' => [<integer>, ...],
                        'validation' => [
                            'subjectAlternativeNames' => [
                                'match' => [
                                    'exact' => ['<string>', ...],
                                ],
                            ],
                            'trust' => [
                                'acm' => [
                                    'certificateAuthorityArns' => ['<string>', ...],
                                ],
                                'file' => [
                                    'certificateChain' => '<string>',
                                ],
                                'sds' => [
                                    'secretName' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
            ],
            'listeners' => [
                [
                    'connectionPool' => [
                        'grpc' => [
                            'maxRequests' => <integer>,
                        ],
                        'http' => [
                            'maxConnections' => <integer>,
                            'maxPendingRequests' => <integer>,
                        ],
                        'http2' => [
                            'maxRequests' => <integer>,
                        ],
                    ],
                    'healthCheck' => [
                        'healthyThreshold' => <integer>,
                        'intervalMillis' => <integer>,
                        'path' => '<string>',
                        'port' => <integer>,
                        'protocol' => 'http|http2|grpc',
                        'timeoutMillis' => <integer>,
                        'unhealthyThreshold' => <integer>,
                    ],
                    'portMapping' => [
                        'port' => <integer>,
                        'protocol' => 'http|http2|grpc',
                    ],
                    'tls' => [
                        'certificate' => [
                            'acm' => [
                                'certificateArn' => '<string>',
                            ],
                            'file' => [
                                'certificateChain' => '<string>',
                                'privateKey' => '<string>',
                            ],
                            'sds' => [
                                'secretName' => '<string>',
                            ],
                        ],
                        'mode' => 'STRICT|PERMISSIVE|DISABLED',
                        'validation' => [
                            'subjectAlternativeNames' => [
                                'match' => [
                                    'exact' => ['<string>', ...],
                                ],
                            ],
                            'trust' => [
                                'file' => [
                                    'certificateChain' => '<string>',
                                ],
                                'sds' => [
                                    'secretName' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
                // ...
            ],
            'logging' => [
                'accessLog' => [
                    'file' => [
                        'format' => [
                            'json' => [
                                [
                                    'key' => '<string>',
                                    'value' => '<string>',
                                ],
                                // ...
                            ],
                            'text' => '<string>',
                        ],
                        'path' => '<string>',
                    ],
                ],
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualGatewayName' => '<string>',
    ],
]

Result Details

Members
virtualGateway
Required: Yes
Type: VirtualGatewayData structure

The virtual gateway that was deleted.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ResourceInUseException:

You can't delete the specified resource because it's in use or required by another resource.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

DeleteVirtualNode

$result = $client->deleteVirtualNode([/* ... */]);
$promise = $client->deleteVirtualNodeAsync([/* ... */]);

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.

Parameter Syntax

$result = $client->deleteVirtualNode([
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'virtualNodeName' => '<string>', // REQUIRED
]);

Parameter Details

Members
meshName
Required: Yes
Type: string

The name of the service mesh to delete the virtual node in.

meshOwner
Type: string

The Amazon Web Services 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.

virtualNodeName
Required: Yes
Type: string

The name of the virtual node to delete.

Result Syntax

[
    'virtualNode' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'backendDefaults' => [
                'clientPolicy' => [
                    'tls' => [
                        'certificate' => [
                            'file' => [
                                'certificateChain' => '<string>',
                                'privateKey' => '<string>',
                            ],
                            'sds' => [
                                'secretName' => '<string>',
                            ],
                        ],
                        'enforce' => true || false,
                        'ports' => [<integer>, ...],
                        'validation' => [
                            'subjectAlternativeNames' => [
                                'match' => [
                                    'exact' => ['<string>', ...],
                                ],
                            ],
                            'trust' => [
                                'acm' => [
                                    'certificateAuthorityArns' => ['<string>', ...],
                                ],
                                'file' => [
                                    'certificateChain' => '<string>',
                                ],
                                'sds' => [
                                    'secretName' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
            ],
            'backends' => [
                [
                    'virtualService' => [
                        'clientPolicy' => [
                            'tls' => [
                                'certificate' => [
                                    'file' => [
                                        'certificateChain' => '<string>',
                                        'privateKey' => '<string>',
                                    ],
                                    'sds' => [
                                        'secretName' => '<string>',
                                    ],
                                ],
                                'enforce' => true || false,
                                'ports' => [<integer>, ...],
                                'validation' => [
                                    'subjectAlternativeNames' => [
                                        'match' => [
                                            'exact' => ['<string>', ...],
                                        ],
                                    ],
                                    'trust' => [
                                        'acm' => [
                                            'certificateAuthorityArns' => ['<string>', ...],
                                        ],
                                        'file' => [
                                            'certificateChain' => '<string>',
                                        ],
                                        'sds' => [
                                            'secretName' => '<string>',
                                        ],
                                    ],
                                ],
                            ],
                        ],
                        'virtualServiceName' => '<string>',
                    ],
                ],
                // ...
            ],
            'listeners' => [
                [
                    'connectionPool' => [
                        'grpc' => [
                            'maxRequests' => <integer>,
                        ],
                        'http' => [
                            'maxConnections' => <integer>,
                            'maxPendingRequests' => <integer>,
                        ],
                        'http2' => [
                            'maxRequests' => <integer>,
                        ],
                        'tcp' => [
                            'maxConnections' => <integer>,
                        ],
                    ],
                    'healthCheck' => [
                        'healthyThreshold' => <integer>,
                        'intervalMillis' => <integer>,
                        'path' => '<string>',
                        'port' => <integer>,
                        'protocol' => 'http|tcp|http2|grpc',
                        'timeoutMillis' => <integer>,
                        'unhealthyThreshold' => <integer>,
                    ],
                    'outlierDetection' => [
                        'baseEjectionDuration' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                        'interval' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                        'maxEjectionPercent' => <integer>,
                        'maxServerErrors' => <integer>,
                    ],
                    'portMapping' => [
                        'port' => <integer>,
                        'protocol' => 'http|tcp|http2|grpc',
                    ],
                    'timeout' => [
                        'grpc' => [
                            'idle' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                            'perRequest' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                        ],
                        'http' => [
                            'idle' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                            'perRequest' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                        ],
                        'http2' => [
                            'idle' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                            'perRequest' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                        ],
                        'tcp' => [
                            'idle' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                        ],
                    ],
                    'tls' => [
                        'certificate' => [
                            'acm' => [
                                'certificateArn' => '<string>',
                            ],
                            'file' => [
                                'certificateChain' => '<string>',
                                'privateKey' => '<string>',
                            ],
                            'sds' => [
                                'secretName' => '<string>',
                            ],
                        ],
                        'mode' => 'STRICT|PERMISSIVE|DISABLED',
                        'validation' => [
                            'subjectAlternativeNames' => [
                                'match' => [
                                    'exact' => ['<string>', ...],
                                ],
                            ],
                            'trust' => [
                                'file' => [
                                    'certificateChain' => '<string>',
                                ],
                                'sds' => [
                                    'secretName' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
                // ...
            ],
            'logging' => [
                'accessLog' => [
                    'file' => [
                        'format' => [
                            'json' => [
                                [
                                    'key' => '<string>',
                                    'value' => '<string>',
                                ],
                                // ...
                            ],
                            'text' => '<string>',
                        ],
                        'path' => '<string>',
                    ],
                ],
            ],
            'serviceDiscovery' => [
                'awsCloudMap' => [
                    'attributes' => [
                        [
                            'key' => '<string>',
                            'value' => '<string>',
                        ],
                        // ...
                    ],
                    'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
                    'namespaceName' => '<string>',
                    'serviceName' => '<string>',
                ],
                'dns' => [
                    'hostname' => '<string>',
                    'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
                    'responseType' => 'LOADBALANCER|ENDPOINTS',
                ],
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualNodeName' => '<string>',
    ],
]

Result Details

Members
virtualNode
Required: Yes
Type: VirtualNodeData structure

The virtual node that was deleted.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ResourceInUseException:

You can't delete the specified resource because it's in use or required by another resource.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

DeleteVirtualRouter

$result = $client->deleteVirtualRouter([/* ... */]);
$promise = $client->deleteVirtualRouterAsync([/* ... */]);

Deletes an existing virtual router.

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

Parameter Syntax

$result = $client->deleteVirtualRouter([
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'virtualRouterName' => '<string>', // REQUIRED
]);

Parameter Details

Members
meshName
Required: Yes
Type: string

The name of the service mesh to delete the virtual router in.

meshOwner
Type: string

The Amazon Web Services 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.

virtualRouterName
Required: Yes
Type: string

The name of the virtual router to delete.

Result Syntax

[
    'virtualRouter' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'listeners' => [
                [
                    'portMapping' => [
                        'port' => <integer>,
                        'protocol' => 'http|tcp|http2|grpc',
                    ],
                ],
                // ...
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualRouterName' => '<string>',
    ],
]

Result Details

Members
virtualRouter
Required: Yes
Type: VirtualRouterData structure

The virtual router that was deleted.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ResourceInUseException:

You can't delete the specified resource because it's in use or required by another resource.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

DeleteVirtualService

$result = $client->deleteVirtualService([/* ... */]);
$promise = $client->deleteVirtualServiceAsync([/* ... */]);

Deletes an existing virtual service.

Parameter Syntax

$result = $client->deleteVirtualService([
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'virtualServiceName' => '<string>', // REQUIRED
]);

Parameter Details

Members
meshName
Required: Yes
Type: string

The name of the service mesh to delete the virtual service in.

meshOwner
Type: string

The Amazon Web Services 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.

virtualServiceName
Required: Yes
Type: string

The name of the virtual service to delete.

Result Syntax

[
    'virtualService' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'provider' => [
                'virtualNode' => [
                    'virtualNodeName' => '<string>',
                ],
                'virtualRouter' => [
                    'virtualRouterName' => '<string>',
                ],
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualServiceName' => '<string>',
    ],
]

Result Details

Members
virtualService
Required: Yes
Type: VirtualServiceData structure

The virtual service that was deleted.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ResourceInUseException:

You can't delete the specified resource because it's in use or required by another resource.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

DescribeGatewayRoute

$result = $client->describeGatewayRoute([/* ... */]);
$promise = $client->describeGatewayRouteAsync([/* ... */]);

Describes an existing gateway route.

Parameter Syntax

$result = $client->describeGatewayRoute([
    'gatewayRouteName' => '<string>', // REQUIRED
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'virtualGatewayName' => '<string>', // REQUIRED
]);

Parameter Details

Members
gatewayRouteName
Required: Yes
Type: string

The name of the gateway route to describe.

meshName
Required: Yes
Type: string

The name of the service mesh that the gateway route resides in.

meshOwner
Type: string

The Amazon Web Services 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.

virtualGatewayName
Required: Yes
Type: string

The name of the virtual gateway that the gateway route is associated with.

Result Syntax

[
    'gatewayRoute' => [
        'gatewayRouteName' => '<string>',
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'grpcRoute' => [
                'action' => [
                    'rewrite' => [
                        'hostname' => [
                            'defaultTargetHostname' => 'ENABLED|DISABLED',
                        ],
                    ],
                    'target' => [
                        'port' => <integer>,
                        'virtualService' => [
                            'virtualServiceName' => '<string>',
                        ],
                    ],
                ],
                'match' => [
                    'hostname' => [
                        'exact' => '<string>',
                        'suffix' => '<string>',
                    ],
                    'metadata' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'port' => <integer>,
                    'serviceName' => '<string>',
                ],
            ],
            'http2Route' => [
                'action' => [
                    'rewrite' => [
                        'hostname' => [
                            'defaultTargetHostname' => 'ENABLED|DISABLED',
                        ],
                        'path' => [
                            'exact' => '<string>',
                        ],
                        'prefix' => [
                            'defaultPrefix' => 'ENABLED|DISABLED',
                            'value' => '<string>',
                        ],
                    ],
                    'target' => [
                        'port' => <integer>,
                        'virtualService' => [
                            'virtualServiceName' => '<string>',
                        ],
                    ],
                ],
                'match' => [
                    'headers' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'hostname' => [
                        'exact' => '<string>',
                        'suffix' => '<string>',
                    ],
                    'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                    'path' => [
                        'exact' => '<string>',
                        'regex' => '<string>',
                    ],
                    'port' => <integer>,
                    'prefix' => '<string>',
                    'queryParameters' => [
                        [
                            'match' => [
                                'exact' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                ],
            ],
            'httpRoute' => [
                'action' => [
                    'rewrite' => [
                        'hostname' => [
                            'defaultTargetHostname' => 'ENABLED|DISABLED',
                        ],
                        'path' => [
                            'exact' => '<string>',
                        ],
                        'prefix' => [
                            'defaultPrefix' => 'ENABLED|DISABLED',
                            'value' => '<string>',
                        ],
                    ],
                    'target' => [
                        'port' => <integer>,
                        'virtualService' => [
                            'virtualServiceName' => '<string>',
                        ],
                    ],
                ],
                'match' => [
                    'headers' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'hostname' => [
                        'exact' => '<string>',
                        'suffix' => '<string>',
                    ],
                    'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                    'path' => [
                        'exact' => '<string>',
                        'regex' => '<string>',
                    ],
                    'port' => <integer>,
                    'prefix' => '<string>',
                    'queryParameters' => [
                        [
                            'match' => [
                                'exact' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                ],
            ],
            'priority' => <integer>,
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualGatewayName' => '<string>',
    ],
]

Result Details

Members
gatewayRoute
Required: Yes
Type: GatewayRouteData structure

The full description of your gateway route.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

DescribeMesh

$result = $client->describeMesh([/* ... */]);
$promise = $client->describeMeshAsync([/* ... */]);

Describes an existing service mesh.

Parameter Syntax

$result = $client->describeMesh([
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
]);

Parameter Details

Members
meshName
Required: Yes
Type: string

The name of the service mesh to describe.

meshOwner
Type: string

The Amazon Web Services 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.

Result Syntax

[
    'mesh' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'egressFilter' => [
                'type' => 'ALLOW_ALL|DROP_ALL',
            ],
            'serviceDiscovery' => [
                'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
    ],
]

Result Details

Members
mesh
Required: Yes
Type: MeshData structure

The full description of your service mesh.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

DescribeRoute

$result = $client->describeRoute([/* ... */]);
$promise = $client->describeRouteAsync([/* ... */]);

Describes an existing route.

Parameter Syntax

$result = $client->describeRoute([
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'routeName' => '<string>', // REQUIRED
    'virtualRouterName' => '<string>', // REQUIRED
]);

Parameter Details

Members
meshName
Required: Yes
Type: string

The name of the service mesh that the route resides in.

meshOwner
Type: string

The Amazon Web Services 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.

routeName
Required: Yes
Type: string

The name of the route to describe.

virtualRouterName
Required: Yes
Type: string

The name of the virtual router that the route is associated with.

Result Syntax

[
    'route' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'routeName' => '<string>',
        'spec' => [
            'grpcRoute' => [
                'action' => [
                    'weightedTargets' => [
                        [
                            'port' => <integer>,
                            'virtualNode' => '<string>',
                            'weight' => <integer>,
                        ],
                        // ...
                    ],
                ],
                'match' => [
                    'metadata' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'methodName' => '<string>',
                    'port' => <integer>,
                    'serviceName' => '<string>',
                ],
                'retryPolicy' => [
                    'grpcRetryEvents' => ['<string>', ...],
                    'httpRetryEvents' => ['<string>', ...],
                    'maxRetries' => <integer>,
                    'perRetryTimeout' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'tcpRetryEvents' => ['<string>', ...],
                ],
                'timeout' => [
                    'idle' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'perRequest' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                ],
            ],
            'http2Route' => [
                'action' => [
                    'weightedTargets' => [
                        [
                            'port' => <integer>,
                            'virtualNode' => '<string>',
                            'weight' => <integer>,
                        ],
                        // ...
                    ],
                ],
                'match' => [
                    'headers' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                    'path' => [
                        'exact' => '<string>',
                        'regex' => '<string>',
                    ],
                    'port' => <integer>,
                    'prefix' => '<string>',
                    'queryParameters' => [
                        [
                            'match' => [
                                'exact' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'scheme' => 'http|https',
                ],
                'retryPolicy' => [
                    'httpRetryEvents' => ['<string>', ...],
                    'maxRetries' => <integer>,
                    'perRetryTimeout' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'tcpRetryEvents' => ['<string>', ...],
                ],
                'timeout' => [
                    'idle' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'perRequest' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                ],
            ],
            'httpRoute' => [
                'action' => [
                    'weightedTargets' => [
                        [
                            'port' => <integer>,
                            'virtualNode' => '<string>',
                            'weight' => <integer>,
                        ],
                        // ...
                    ],
                ],
                'match' => [
                    'headers' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                    'path' => [
                        'exact' => '<string>',
                        'regex' => '<string>',
                    ],
                    'port' => <integer>,
                    'prefix' => '<string>',
                    'queryParameters' => [
                        [
                            'match' => [
                                'exact' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'scheme' => 'http|https',
                ],
                'retryPolicy' => [
                    'httpRetryEvents' => ['<string>', ...],
                    'maxRetries' => <integer>,
                    'perRetryTimeout' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'tcpRetryEvents' => ['<string>', ...],
                ],
                'timeout' => [
                    'idle' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'perRequest' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                ],
            ],
            'priority' => <integer>,
            'tcpRoute' => [
                'action' => [
                    'weightedTargets' => [
                        [
                            'port' => <integer>,
                            'virtualNode' => '<string>',
                            'weight' => <integer>,
                        ],
                        // ...
                    ],
                ],
                'match' => [
                    'port' => <integer>,
                ],
                'timeout' => [
                    'idle' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                ],
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualRouterName' => '<string>',
    ],
]

Result Details

Members
route
Required: Yes
Type: RouteData structure

The full description of your route.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

DescribeVirtualGateway

$result = $client->describeVirtualGateway([/* ... */]);
$promise = $client->describeVirtualGatewayAsync([/* ... */]);

Describes an existing virtual gateway.

Parameter Syntax

$result = $client->describeVirtualGateway([
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'virtualGatewayName' => '<string>', // REQUIRED
]);

Parameter Details

Members
meshName
Required: Yes
Type: string

The name of the service mesh that the gateway route resides in.

meshOwner
Type: string

The Amazon Web Services 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.

virtualGatewayName
Required: Yes
Type: string

The name of the virtual gateway to describe.

Result Syntax

[
    'virtualGateway' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'backendDefaults' => [
                'clientPolicy' => [
                    'tls' => [
                        'certificate' => [
                            'file' => [
                                'certificateChain' => '<string>',
                                'privateKey' => '<string>',
                            ],
                            'sds' => [
                                'secretName' => '<string>',
                            ],
                        ],
                        'enforce' => true || false,
                        'ports' => [<integer>, ...],
                        'validation' => [
                            'subjectAlternativeNames' => [
                                'match' => [
                                    'exact' => ['<string>', ...],
                                ],
                            ],
                            'trust' => [
                                'acm' => [
                                    'certificateAuthorityArns' => ['<string>', ...],
                                ],
                                'file' => [
                                    'certificateChain' => '<string>',
                                ],
                                'sds' => [
                                    'secretName' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
            ],
            'listeners' => [
                [
                    'connectionPool' => [
                        'grpc' => [
                            'maxRequests' => <integer>,
                        ],
                        'http' => [
                            'maxConnections' => <integer>,
                            'maxPendingRequests' => <integer>,
                        ],
                        'http2' => [
                            'maxRequests' => <integer>,
                        ],
                    ],
                    'healthCheck' => [
                        'healthyThreshold' => <integer>,
                        'intervalMillis' => <integer>,
                        'path' => '<string>',
                        'port' => <integer>,
                        'protocol' => 'http|http2|grpc',
                        'timeoutMillis' => <integer>,
                        'unhealthyThreshold' => <integer>,
                    ],
                    'portMapping' => [
                        'port' => <integer>,
                        'protocol' => 'http|http2|grpc',
                    ],
                    'tls' => [
                        'certificate' => [
                            'acm' => [
                                'certificateArn' => '<string>',
                            ],
                            'file' => [
                                'certificateChain' => '<string>',
                                'privateKey' => '<string>',
                            ],
                            'sds' => [
                                'secretName' => '<string>',
                            ],
                        ],
                        'mode' => 'STRICT|PERMISSIVE|DISABLED',
                        'validation' => [
                            'subjectAlternativeNames' => [
                                'match' => [
                                    'exact' => ['<string>', ...],
                                ],
                            ],
                            'trust' => [
                                'file' => [
                                    'certificateChain' => '<string>',
                                ],
                                'sds' => [
                                    'secretName' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
                // ...
            ],
            'logging' => [
                'accessLog' => [
                    'file' => [
                        'format' => [
                            'json' => [
                                [
                                    'key' => '<string>',
                                    'value' => '<string>',
                                ],
                                // ...
                            ],
                            'text' => '<string>',
                        ],
                        'path' => '<string>',
                    ],
                ],
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualGatewayName' => '<string>',
    ],
]

Result Details

Members
virtualGateway
Required: Yes
Type: VirtualGatewayData structure

The full description of your virtual gateway.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

DescribeVirtualNode

$result = $client->describeVirtualNode([/* ... */]);
$promise = $client->describeVirtualNodeAsync([/* ... */]);

Describes an existing virtual node.

Parameter Syntax

$result = $client->describeVirtualNode([
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'virtualNodeName' => '<string>', // REQUIRED
]);

Parameter Details

Members
meshName
Required: Yes
Type: string

The name of the service mesh that the virtual node resides in.

meshOwner
Type: string

The Amazon Web Services 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.

virtualNodeName
Required: Yes
Type: string

The name of the virtual node to describe.

Result Syntax

[
    'virtualNode' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'backendDefaults' => [
                'clientPolicy' => [
                    'tls' => [
                        'certificate' => [
                            'file' => [
                                'certificateChain' => '<string>',
                                'privateKey' => '<string>',
                            ],
                            'sds' => [
                                'secretName' => '<string>',
                            ],
                        ],
                        'enforce' => true || false,
                        'ports' => [<integer>, ...],
                        'validation' => [
                            'subjectAlternativeNames' => [
                                'match' => [
                                    'exact' => ['<string>', ...],
                                ],
                            ],
                            'trust' => [
                                'acm' => [
                                    'certificateAuthorityArns' => ['<string>', ...],
                                ],
                                'file' => [
                                    'certificateChain' => '<string>',
                                ],
                                'sds' => [
                                    'secretName' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
            ],
            'backends' => [
                [
                    'virtualService' => [
                        'clientPolicy' => [
                            'tls' => [
                                'certificate' => [
                                    'file' => [
                                        'certificateChain' => '<string>',
                                        'privateKey' => '<string>',
                                    ],
                                    'sds' => [
                                        'secretName' => '<string>',
                                    ],
                                ],
                                'enforce' => true || false,
                                'ports' => [<integer>, ...],
                                'validation' => [
                                    'subjectAlternativeNames' => [
                                        'match' => [
                                            'exact' => ['<string>', ...],
                                        ],
                                    ],
                                    'trust' => [
                                        'acm' => [
                                            'certificateAuthorityArns' => ['<string>', ...],
                                        ],
                                        'file' => [
                                            'certificateChain' => '<string>',
                                        ],
                                        'sds' => [
                                            'secretName' => '<string>',
                                        ],
                                    ],
                                ],
                            ],
                        ],
                        'virtualServiceName' => '<string>',
                    ],
                ],
                // ...
            ],
            'listeners' => [
                [
                    'connectionPool' => [
                        'grpc' => [
                            'maxRequests' => <integer>,
                        ],
                        'http' => [
                            'maxConnections' => <integer>,
                            'maxPendingRequests' => <integer>,
                        ],
                        'http2' => [
                            'maxRequests' => <integer>,
                        ],
                        'tcp' => [
                            'maxConnections' => <integer>,
                        ],
                    ],
                    'healthCheck' => [
                        'healthyThreshold' => <integer>,
                        'intervalMillis' => <integer>,
                        'path' => '<string>',
                        'port' => <integer>,
                        'protocol' => 'http|tcp|http2|grpc',
                        'timeoutMillis' => <integer>,
                        'unhealthyThreshold' => <integer>,
                    ],
                    'outlierDetection' => [
                        'baseEjectionDuration' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                        'interval' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                        'maxEjectionPercent' => <integer>,
                        'maxServerErrors' => <integer>,
                    ],
                    'portMapping' => [
                        'port' => <integer>,
                        'protocol' => 'http|tcp|http2|grpc',
                    ],
                    'timeout' => [
                        'grpc' => [
                            'idle' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                            'perRequest' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                        ],
                        'http' => [
                            'idle' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                            'perRequest' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                        ],
                        'http2' => [
                            'idle' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                            'perRequest' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                        ],
                        'tcp' => [
                            'idle' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                        ],
                    ],
                    'tls' => [
                        'certificate' => [
                            'acm' => [
                                'certificateArn' => '<string>',
                            ],
                            'file' => [
                                'certificateChain' => '<string>',
                                'privateKey' => '<string>',
                            ],
                            'sds' => [
                                'secretName' => '<string>',
                            ],
                        ],
                        'mode' => 'STRICT|PERMISSIVE|DISABLED',
                        'validation' => [
                            'subjectAlternativeNames' => [
                                'match' => [
                                    'exact' => ['<string>', ...],
                                ],
                            ],
                            'trust' => [
                                'file' => [
                                    'certificateChain' => '<string>',
                                ],
                                'sds' => [
                                    'secretName' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
                // ...
            ],
            'logging' => [
                'accessLog' => [
                    'file' => [
                        'format' => [
                            'json' => [
                                [
                                    'key' => '<string>',
                                    'value' => '<string>',
                                ],
                                // ...
                            ],
                            'text' => '<string>',
                        ],
                        'path' => '<string>',
                    ],
                ],
            ],
            'serviceDiscovery' => [
                'awsCloudMap' => [
                    'attributes' => [
                        [
                            'key' => '<string>',
                            'value' => '<string>',
                        ],
                        // ...
                    ],
                    'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
                    'namespaceName' => '<string>',
                    'serviceName' => '<string>',
                ],
                'dns' => [
                    'hostname' => '<string>',
                    'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
                    'responseType' => 'LOADBALANCER|ENDPOINTS',
                ],
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualNodeName' => '<string>',
    ],
]

Result Details

Members
virtualNode
Required: Yes
Type: VirtualNodeData structure

The full description of your virtual node.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

DescribeVirtualRouter

$result = $client->describeVirtualRouter([/* ... */]);
$promise = $client->describeVirtualRouterAsync([/* ... */]);

Describes an existing virtual router.

Parameter Syntax

$result = $client->describeVirtualRouter([
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'virtualRouterName' => '<string>', // REQUIRED
]);

Parameter Details

Members
meshName
Required: Yes
Type: string

The name of the service mesh that the virtual router resides in.

meshOwner
Type: string

The Amazon Web Services 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.

virtualRouterName
Required: Yes
Type: string

The name of the virtual router to describe.

Result Syntax

[
    'virtualRouter' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'listeners' => [
                [
                    'portMapping' => [
                        'port' => <integer>,
                        'protocol' => 'http|tcp|http2|grpc',
                    ],
                ],
                // ...
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualRouterName' => '<string>',
    ],
]

Result Details

Members
virtualRouter
Required: Yes
Type: VirtualRouterData structure

The full description of your virtual router.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

DescribeVirtualService

$result = $client->describeVirtualService([/* ... */]);
$promise = $client->describeVirtualServiceAsync([/* ... */]);

Describes an existing virtual service.

Parameter Syntax

$result = $client->describeVirtualService([
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'virtualServiceName' => '<string>', // REQUIRED
]);

Parameter Details

Members
meshName
Required: Yes
Type: string

The name of the service mesh that the virtual service resides in.

meshOwner
Type: string

The Amazon Web Services 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.

virtualServiceName
Required: Yes
Type: string

The name of the virtual service to describe.

Result Syntax

[
    'virtualService' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'provider' => [
                'virtualNode' => [
                    'virtualNodeName' => '<string>',
                ],
                'virtualRouter' => [
                    'virtualRouterName' => '<string>',
                ],
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualServiceName' => '<string>',
    ],
]

Result Details

Members
virtualService
Required: Yes
Type: VirtualServiceData structure

The full description of your virtual service.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

ListGatewayRoutes

$result = $client->listGatewayRoutes([/* ... */]);
$promise = $client->listGatewayRoutesAsync([/* ... */]);

Returns a list of existing gateway routes that are associated to a virtual gateway.

Parameter Syntax

$result = $client->listGatewayRoutes([
    'limit' => <integer>,
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'nextToken' => '<string>',
    'virtualGatewayName' => '<string>', // REQUIRED
]);

Parameter Details

Members
limit
Type: int

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.

meshName
Required: Yes
Type: string

The name of the service mesh to list gateway routes in.

meshOwner
Type: string

The Amazon Web Services 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.

nextToken
Type: string

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
Required: Yes
Type: string

The name of the virtual gateway to list gateway routes in.

Result Syntax

[
    'gatewayRoutes' => [
        [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'gatewayRouteName' => '<string>',
            'lastUpdatedAt' => <DateTime>,
            'meshName' => '<string>',
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'version' => <integer>,
            'virtualGatewayName' => '<string>',
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
gatewayRoutes
Required: Yes
Type: Array of GatewayRouteRef structures

The list of existing gateway routes for the specified service mesh and virtual gateway.

nextToken
Type: string

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.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

ListMeshes

$result = $client->listMeshes([/* ... */]);
$promise = $client->listMeshesAsync([/* ... */]);

Returns a list of existing service meshes.

Parameter Syntax

$result = $client->listMeshes([
    'limit' => <integer>,
    'nextToken' => '<string>',
]);

Parameter Details

Members
limit
Type: int

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.

nextToken
Type: string

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.

Result Syntax

[
    'meshes' => [
        [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshName' => '<string>',
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'version' => <integer>,
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
meshes
Required: Yes
Type: Array of MeshRef structures

The list of existing service meshes.

nextToken
Type: string

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.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

ListRoutes

$result = $client->listRoutes([/* ... */]);
$promise = $client->listRoutesAsync([/* ... */]);

Returns a list of existing routes in a service mesh.

Parameter Syntax

$result = $client->listRoutes([
    'limit' => <integer>,
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'nextToken' => '<string>',
    'virtualRouterName' => '<string>', // REQUIRED
]);

Parameter Details

Members
limit
Type: int

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.

meshName
Required: Yes
Type: string

The name of the service mesh to list routes in.

meshOwner
Type: string

The Amazon Web Services 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.

nextToken
Type: string

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
Required: Yes
Type: string

The name of the virtual router to list routes in.

Result Syntax

[
    'nextToken' => '<string>',
    'routes' => [
        [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshName' => '<string>',
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'routeName' => '<string>',
            'version' => <integer>,
            'virtualRouterName' => '<string>',
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

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.

routes
Required: Yes
Type: Array of RouteRef structures

The list of existing routes for the specified service mesh and virtual router.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

ListTagsForResource

$result = $client->listTagsForResource([/* ... */]);
$promise = $client->listTagsForResourceAsync([/* ... */]);

List the tags for an App Mesh resource.

Parameter Syntax

$result = $client->listTagsForResource([
    'limit' => <integer>,
    'nextToken' => '<string>',
    'resourceArn' => '<string>', // REQUIRED
]);

Parameter Details

Members
limit
Type: int

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.

nextToken
Type: string

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
Required: Yes
Type: string

The Amazon Resource Name (ARN) that identifies the resource to list the tags for.

Result Syntax

[
    'nextToken' => '<string>',
    'tags' => [
        [
            'key' => '<string>',
            'value' => '<string>',
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

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.

tags
Required: Yes
Type: Array of TagRef structures

The tags for the resource.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

ListVirtualGateways

$result = $client->listVirtualGateways([/* ... */]);
$promise = $client->listVirtualGatewaysAsync([/* ... */]);

Returns a list of existing virtual gateways in a service mesh.

Parameter Syntax

$result = $client->listVirtualGateways([
    'limit' => <integer>,
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'nextToken' => '<string>',
]);

Parameter Details

Members
limit
Type: int

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.

meshName
Required: Yes
Type: string

The name of the service mesh to list virtual gateways in.

meshOwner
Type: string

The Amazon Web Services 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.

nextToken
Type: string

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.

Result Syntax

[
    'nextToken' => '<string>',
    'virtualGateways' => [
        [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshName' => '<string>',
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'version' => <integer>,
            'virtualGatewayName' => '<string>',
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

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.

virtualGateways
Required: Yes
Type: Array of VirtualGatewayRef structures

The list of existing virtual gateways for the specified service mesh.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

ListVirtualNodes

$result = $client->listVirtualNodes([/* ... */]);
$promise = $client->listVirtualNodesAsync([/* ... */]);

Returns a list of existing virtual nodes.

Parameter Syntax

$result = $client->listVirtualNodes([
    'limit' => <integer>,
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'nextToken' => '<string>',
]);

Parameter Details

Members
limit
Type: int

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.

meshName
Required: Yes
Type: string

The name of the service mesh to list virtual nodes in.

meshOwner
Type: string

The Amazon Web Services 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.

nextToken
Type: string

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.

Result Syntax

[
    'nextToken' => '<string>',
    'virtualNodes' => [
        [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshName' => '<string>',
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'version' => <integer>,
            'virtualNodeName' => '<string>',
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

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.

virtualNodes
Required: Yes
Type: Array of VirtualNodeRef structures

The list of existing virtual nodes for the specified service mesh.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

ListVirtualRouters

$result = $client->listVirtualRouters([/* ... */]);
$promise = $client->listVirtualRoutersAsync([/* ... */]);

Returns a list of existing virtual routers in a service mesh.

Parameter Syntax

$result = $client->listVirtualRouters([
    'limit' => <integer>,
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'nextToken' => '<string>',
]);

Parameter Details

Members
limit
Type: int

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.

meshName
Required: Yes
Type: string

The name of the service mesh to list virtual routers in.

meshOwner
Type: string

The Amazon Web Services 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.

nextToken
Type: string

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.

Result Syntax

[
    'nextToken' => '<string>',
    'virtualRouters' => [
        [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshName' => '<string>',
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'version' => <integer>,
            'virtualRouterName' => '<string>',
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

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.

virtualRouters
Required: Yes
Type: Array of VirtualRouterRef structures

The list of existing virtual routers for the specified service mesh.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

ListVirtualServices

$result = $client->listVirtualServices([/* ... */]);
$promise = $client->listVirtualServicesAsync([/* ... */]);

Returns a list of existing virtual services in a service mesh.

Parameter Syntax

$result = $client->listVirtualServices([
    'limit' => <integer>,
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'nextToken' => '<string>',
]);

Parameter Details

Members
limit
Type: int

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.

meshName
Required: Yes
Type: string

The name of the service mesh to list virtual services in.

meshOwner
Type: string

The Amazon Web Services 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.

nextToken
Type: string

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.

Result Syntax

[
    'nextToken' => '<string>',
    'virtualServices' => [
        [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshName' => '<string>',
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'version' => <integer>,
            'virtualServiceName' => '<string>',
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

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.

virtualServices
Required: Yes
Type: Array of VirtualServiceRef structures

The list of existing virtual services for the specified service mesh.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

TagResource

$result = $client->tagResource([/* ... */]);
$promise = $client->tagResourceAsync([/* ... */]);

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.

Parameter Syntax

$result = $client->tagResource([
    'resourceArn' => '<string>', // REQUIRED
    'tags' => [ // REQUIRED
        [
            'key' => '<string>', // REQUIRED
            'value' => '<string>', // REQUIRED
        ],
        // ...
    ],
]);

Parameter Details

Members
resourceArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the resource to add tags to.

tags
Required: Yes
Type: Array of TagRef structures

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.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

UntagResource

$result = $client->untagResource([/* ... */]);
$promise = $client->untagResourceAsync([/* ... */]);

Deletes specified tags from a resource.

Parameter Syntax

$result = $client->untagResource([
    'resourceArn' => '<string>', // REQUIRED
    'tagKeys' => ['<string>', ...], // REQUIRED
]);

Parameter Details

Members
resourceArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the resource to delete tags from.

tagKeys
Required: Yes
Type: Array of strings

The keys of the tags to be removed.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

UpdateGatewayRoute

$result = $client->updateGatewayRoute([/* ... */]);
$promise = $client->updateGatewayRouteAsync([/* ... */]);

Updates an existing gateway route that is associated to a specified virtual gateway in a service mesh.

Parameter Syntax

$result = $client->updateGatewayRoute([
    'clientToken' => '<string>',
    'gatewayRouteName' => '<string>', // REQUIRED
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'spec' => [ // REQUIRED
        'grpcRoute' => [
            'action' => [ // REQUIRED
                'rewrite' => [
                    'hostname' => [
                        'defaultTargetHostname' => 'ENABLED|DISABLED',
                    ],
                ],
                'target' => [ // REQUIRED
                    'port' => <integer>,
                    'virtualService' => [ // REQUIRED
                        'virtualServiceName' => '<string>', // REQUIRED
                    ],
                ],
            ],
            'match' => [ // REQUIRED
                'hostname' => [
                    'exact' => '<string>',
                    'suffix' => '<string>',
                ],
                'metadata' => [
                    [
                        'invert' => true || false,
                        'match' => [
                            'exact' => '<string>',
                            'prefix' => '<string>',
                            'range' => [
                                'end' => <integer>, // REQUIRED
                                'start' => <integer>, // REQUIRED
                            ],
                            'regex' => '<string>',
                            'suffix' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'port' => <integer>,
                'serviceName' => '<string>',
            ],
        ],
        'http2Route' => [
            'action' => [ // REQUIRED
                'rewrite' => [
                    'hostname' => [
                        'defaultTargetHostname' => 'ENABLED|DISABLED',
                    ],
                    'path' => [
                        'exact' => '<string>',
                    ],
                    'prefix' => [
                        'defaultPrefix' => 'ENABLED|DISABLED',
                        'value' => '<string>',
                    ],
                ],
                'target' => [ // REQUIRED
                    'port' => <integer>,
                    'virtualService' => [ // REQUIRED
                        'virtualServiceName' => '<string>', // REQUIRED
                    ],
                ],
            ],
            'match' => [ // REQUIRED
                'headers' => [
                    [
                        'invert' => true || false,
                        'match' => [
                            'exact' => '<string>',
                            'prefix' => '<string>',
                            'range' => [
                                'end' => <integer>, // REQUIRED
                                'start' => <integer>, // REQUIRED
                            ],
                            'regex' => '<string>',
                            'suffix' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'hostname' => [
                    'exact' => '<string>',
                    'suffix' => '<string>',
                ],
                'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                'path' => [
                    'exact' => '<string>',
                    'regex' => '<string>',
                ],
                'port' => <integer>,
                'prefix' => '<string>',
                'queryParameters' => [
                    [
                        'match' => [
                            'exact' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
            ],
        ],
        'httpRoute' => [
            'action' => [ // REQUIRED
                'rewrite' => [
                    'hostname' => [
                        'defaultTargetHostname' => 'ENABLED|DISABLED',
                    ],
                    'path' => [
                        'exact' => '<string>',
                    ],
                    'prefix' => [
                        'defaultPrefix' => 'ENABLED|DISABLED',
                        'value' => '<string>',
                    ],
                ],
                'target' => [ // REQUIRED
                    'port' => <integer>,
                    'virtualService' => [ // REQUIRED
                        'virtualServiceName' => '<string>', // REQUIRED
                    ],
                ],
            ],
            'match' => [ // REQUIRED
                'headers' => [
                    [
                        'invert' => true || false,
                        'match' => [
                            'exact' => '<string>',
                            'prefix' => '<string>',
                            'range' => [
                                'end' => <integer>, // REQUIRED
                                'start' => <integer>, // REQUIRED
                            ],
                            'regex' => '<string>',
                            'suffix' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'hostname' => [
                    'exact' => '<string>',
                    'suffix' => '<string>',
                ],
                'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                'path' => [
                    'exact' => '<string>',
                    'regex' => '<string>',
                ],
                'port' => <integer>,
                'prefix' => '<string>',
                'queryParameters' => [
                    [
                        'match' => [
                            'exact' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
            ],
        ],
        'priority' => <integer>,
    ],
    'virtualGatewayName' => '<string>', // REQUIRED
]);

Parameter Details

Members
clientToken
Type: string

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

gatewayRouteName
Required: Yes
Type: string

The name of the gateway route to update.

meshName
Required: Yes
Type: string

The name of the service mesh that the gateway route resides in.

meshOwner
Type: string

The Amazon Web Services 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.

spec
Required: Yes
Type: GatewayRouteSpec structure

The new gateway route specification to apply. This overwrites the existing data.

virtualGatewayName
Required: Yes
Type: string

The name of the virtual gateway that the gateway route is associated with.

Result Syntax

[
    'gatewayRoute' => [
        'gatewayRouteName' => '<string>',
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'grpcRoute' => [
                'action' => [
                    'rewrite' => [
                        'hostname' => [
                            'defaultTargetHostname' => 'ENABLED|DISABLED',
                        ],
                    ],
                    'target' => [
                        'port' => <integer>,
                        'virtualService' => [
                            'virtualServiceName' => '<string>',
                        ],
                    ],
                ],
                'match' => [
                    'hostname' => [
                        'exact' => '<string>',
                        'suffix' => '<string>',
                    ],
                    'metadata' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'port' => <integer>,
                    'serviceName' => '<string>',
                ],
            ],
            'http2Route' => [
                'action' => [
                    'rewrite' => [
                        'hostname' => [
                            'defaultTargetHostname' => 'ENABLED|DISABLED',
                        ],
                        'path' => [
                            'exact' => '<string>',
                        ],
                        'prefix' => [
                            'defaultPrefix' => 'ENABLED|DISABLED',
                            'value' => '<string>',
                        ],
                    ],
                    'target' => [
                        'port' => <integer>,
                        'virtualService' => [
                            'virtualServiceName' => '<string>',
                        ],
                    ],
                ],
                'match' => [
                    'headers' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'hostname' => [
                        'exact' => '<string>',
                        'suffix' => '<string>',
                    ],
                    'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                    'path' => [
                        'exact' => '<string>',
                        'regex' => '<string>',
                    ],
                    'port' => <integer>,
                    'prefix' => '<string>',
                    'queryParameters' => [
                        [
                            'match' => [
                                'exact' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                ],
            ],
            'httpRoute' => [
                'action' => [
                    'rewrite' => [
                        'hostname' => [
                            'defaultTargetHostname' => 'ENABLED|DISABLED',
                        ],
                        'path' => [
                            'exact' => '<string>',
                        ],
                        'prefix' => [
                            'defaultPrefix' => 'ENABLED|DISABLED',
                            'value' => '<string>',
                        ],
                    ],
                    'target' => [
                        'port' => <integer>,
                        'virtualService' => [
                            'virtualServiceName' => '<string>',
                        ],
                    ],
                ],
                'match' => [
                    'headers' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'hostname' => [
                        'exact' => '<string>',
                        'suffix' => '<string>',
                    ],
                    'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                    'path' => [
                        'exact' => '<string>',
                        'regex' => '<string>',
                    ],
                    'port' => <integer>,
                    'prefix' => '<string>',
                    'queryParameters' => [
                        [
                            'match' => [
                                'exact' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                ],
            ],
            'priority' => <integer>,
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualGatewayName' => '<string>',
    ],
]

Result Details

Members
gatewayRoute
Required: Yes
Type: GatewayRouteData structure

A full description of the gateway route that was updated.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

LimitExceededException:

You have exceeded a service limit for your account. For more information, see Service Limits in the App Mesh User Guide.

UpdateMesh

$result = $client->updateMesh([/* ... */]);
$promise = $client->updateMeshAsync([/* ... */]);

Updates an existing service mesh.

Parameter Syntax

$result = $client->updateMesh([
    'clientToken' => '<string>',
    'meshName' => '<string>', // REQUIRED
    'spec' => [
        'egressFilter' => [
            'type' => 'ALLOW_ALL|DROP_ALL', // REQUIRED
        ],
        'serviceDiscovery' => [
            'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
        ],
    ],
]);

Parameter Details

Members
clientToken
Type: string

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

meshName
Required: Yes
Type: string

The name of the service mesh to update.

spec
Type: MeshSpec structure

The service mesh specification to apply.

Result Syntax

[
    'mesh' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'egressFilter' => [
                'type' => 'ALLOW_ALL|DROP_ALL',
            ],
            'serviceDiscovery' => [
                'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
    ],
]

Result Details

Members
mesh
Required: Yes
Type: MeshData structure

An object that represents a service mesh returned by a describe operation.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

UpdateRoute

$result = $client->updateRoute([/* ... */]);
$promise = $client->updateRouteAsync([/* ... */]);

Updates an existing route for a specified service mesh and virtual router.

Parameter Syntax

$result = $client->updateRoute([
    'clientToken' => '<string>',
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'routeName' => '<string>', // REQUIRED
    'spec' => [ // REQUIRED
        'grpcRoute' => [
            'action' => [ // REQUIRED
                'weightedTargets' => [ // REQUIRED
                    [
                        'port' => <integer>,
                        'virtualNode' => '<string>', // REQUIRED
                        'weight' => <integer>, // REQUIRED
                    ],
                    // ...
                ],
            ],
            'match' => [ // REQUIRED
                'metadata' => [
                    [
                        'invert' => true || false,
                        'match' => [
                            'exact' => '<string>',
                            'prefix' => '<string>',
                            'range' => [
                                'end' => <integer>, // REQUIRED
                                'start' => <integer>, // REQUIRED
                            ],
                            'regex' => '<string>',
                            'suffix' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'methodName' => '<string>',
                'port' => <integer>,
                'serviceName' => '<string>',
            ],
            'retryPolicy' => [
                'grpcRetryEvents' => ['<string>', ...],
                'httpRetryEvents' => ['<string>', ...],
                'maxRetries' => <integer>, // REQUIRED
                'perRetryTimeout' => [ // REQUIRED
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
                'tcpRetryEvents' => ['<string>', ...],
            ],
            'timeout' => [
                'idle' => [
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
                'perRequest' => [
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
            ],
        ],
        'http2Route' => [
            'action' => [ // REQUIRED
                'weightedTargets' => [ // REQUIRED
                    [
                        'port' => <integer>,
                        'virtualNode' => '<string>', // REQUIRED
                        'weight' => <integer>, // REQUIRED
                    ],
                    // ...
                ],
            ],
            'match' => [ // REQUIRED
                'headers' => [
                    [
                        'invert' => true || false,
                        'match' => [
                            'exact' => '<string>',
                            'prefix' => '<string>',
                            'range' => [
                                'end' => <integer>, // REQUIRED
                                'start' => <integer>, // REQUIRED
                            ],
                            'regex' => '<string>',
                            'suffix' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                'path' => [
                    'exact' => '<string>',
                    'regex' => '<string>',
                ],
                'port' => <integer>,
                'prefix' => '<string>',
                'queryParameters' => [
                    [
                        'match' => [
                            'exact' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'scheme' => 'http|https',
            ],
            'retryPolicy' => [
                'httpRetryEvents' => ['<string>', ...],
                'maxRetries' => <integer>, // REQUIRED
                'perRetryTimeout' => [ // REQUIRED
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
                'tcpRetryEvents' => ['<string>', ...],
            ],
            'timeout' => [
                'idle' => [
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
                'perRequest' => [
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
            ],
        ],
        'httpRoute' => [
            'action' => [ // REQUIRED
                'weightedTargets' => [ // REQUIRED
                    [
                        'port' => <integer>,
                        'virtualNode' => '<string>', // REQUIRED
                        'weight' => <integer>, // REQUIRED
                    ],
                    // ...
                ],
            ],
            'match' => [ // REQUIRED
                'headers' => [
                    [
                        'invert' => true || false,
                        'match' => [
                            'exact' => '<string>',
                            'prefix' => '<string>',
                            'range' => [
                                'end' => <integer>, // REQUIRED
                                'start' => <integer>, // REQUIRED
                            ],
                            'regex' => '<string>',
                            'suffix' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                'path' => [
                    'exact' => '<string>',
                    'regex' => '<string>',
                ],
                'port' => <integer>,
                'prefix' => '<string>',
                'queryParameters' => [
                    [
                        'match' => [
                            'exact' => '<string>',
                        ],
                        'name' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'scheme' => 'http|https',
            ],
            'retryPolicy' => [
                'httpRetryEvents' => ['<string>', ...],
                'maxRetries' => <integer>, // REQUIRED
                'perRetryTimeout' => [ // REQUIRED
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
                'tcpRetryEvents' => ['<string>', ...],
            ],
            'timeout' => [
                'idle' => [
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
                'perRequest' => [
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
            ],
        ],
        'priority' => <integer>,
        'tcpRoute' => [
            'action' => [ // REQUIRED
                'weightedTargets' => [ // REQUIRED
                    [
                        'port' => <integer>,
                        'virtualNode' => '<string>', // REQUIRED
                        'weight' => <integer>, // REQUIRED
                    ],
                    // ...
                ],
            ],
            'match' => [
                'port' => <integer>,
            ],
            'timeout' => [
                'idle' => [
                    'unit' => 's|ms',
                    'value' => <integer>,
                ],
            ],
        ],
    ],
    'virtualRouterName' => '<string>', // REQUIRED
]);

Parameter Details

Members
clientToken
Type: string

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

meshName
Required: Yes
Type: string

The name of the service mesh that the route resides in.

meshOwner
Type: string

The Amazon Web Services 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.

routeName
Required: Yes
Type: string

The name of the route to update.

spec
Required: Yes
Type: RouteSpec structure

The new route specification to apply. This overwrites the existing data.

virtualRouterName
Required: Yes
Type: string

The name of the virtual router that the route is associated with.

Result Syntax

[
    'route' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'routeName' => '<string>',
        'spec' => [
            'grpcRoute' => [
                'action' => [
                    'weightedTargets' => [
                        [
                            'port' => <integer>,
                            'virtualNode' => '<string>',
                            'weight' => <integer>,
                        ],
                        // ...
                    ],
                ],
                'match' => [
                    'metadata' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'methodName' => '<string>',
                    'port' => <integer>,
                    'serviceName' => '<string>',
                ],
                'retryPolicy' => [
                    'grpcRetryEvents' => ['<string>', ...],
                    'httpRetryEvents' => ['<string>', ...],
                    'maxRetries' => <integer>,
                    'perRetryTimeout' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'tcpRetryEvents' => ['<string>', ...],
                ],
                'timeout' => [
                    'idle' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'perRequest' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                ],
            ],
            'http2Route' => [
                'action' => [
                    'weightedTargets' => [
                        [
                            'port' => <integer>,
                            'virtualNode' => '<string>',
                            'weight' => <integer>,
                        ],
                        // ...
                    ],
                ],
                'match' => [
                    'headers' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                    'path' => [
                        'exact' => '<string>',
                        'regex' => '<string>',
                    ],
                    'port' => <integer>,
                    'prefix' => '<string>',
                    'queryParameters' => [
                        [
                            'match' => [
                                'exact' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'scheme' => 'http|https',
                ],
                'retryPolicy' => [
                    'httpRetryEvents' => ['<string>', ...],
                    'maxRetries' => <integer>,
                    'perRetryTimeout' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'tcpRetryEvents' => ['<string>', ...],
                ],
                'timeout' => [
                    'idle' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'perRequest' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                ],
            ],
            'httpRoute' => [
                'action' => [
                    'weightedTargets' => [
                        [
                            'port' => <integer>,
                            'virtualNode' => '<string>',
                            'weight' => <integer>,
                        ],
                        // ...
                    ],
                ],
                'match' => [
                    'headers' => [
                        [
                            'invert' => true || false,
                            'match' => [
                                'exact' => '<string>',
                                'prefix' => '<string>',
                                'range' => [
                                    'end' => <integer>,
                                    'start' => <integer>,
                                ],
                                'regex' => '<string>',
                                'suffix' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'method' => 'GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH',
                    'path' => [
                        'exact' => '<string>',
                        'regex' => '<string>',
                    ],
                    'port' => <integer>,
                    'prefix' => '<string>',
                    'queryParameters' => [
                        [
                            'match' => [
                                'exact' => '<string>',
                            ],
                            'name' => '<string>',
                        ],
                        // ...
                    ],
                    'scheme' => 'http|https',
                ],
                'retryPolicy' => [
                    'httpRetryEvents' => ['<string>', ...],
                    'maxRetries' => <integer>,
                    'perRetryTimeout' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'tcpRetryEvents' => ['<string>', ...],
                ],
                'timeout' => [
                    'idle' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'perRequest' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                ],
            ],
            'priority' => <integer>,
            'tcpRoute' => [
                'action' => [
                    'weightedTargets' => [
                        [
                            'port' => <integer>,
                            'virtualNode' => '<string>',
                            'weight' => <integer>,
                        ],
                        // ...
                    ],
                ],
                'match' => [
                    'port' => <integer>,
                ],
                'timeout' => [
                    'idle' => [
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                ],
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualRouterName' => '<string>',
    ],
]

Result Details

Members
route
Required: Yes
Type: RouteData structure

A full description of the route that was updated.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

LimitExceededException:

You have exceeded a service limit for your account. For more information, see Service Limits in the App Mesh User Guide.

UpdateVirtualGateway

$result = $client->updateVirtualGateway([/* ... */]);
$promise = $client->updateVirtualGatewayAsync([/* ... */]);

Updates an existing virtual gateway in a specified service mesh.

Parameter Syntax

$result = $client->updateVirtualGateway([
    'clientToken' => '<string>',
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'spec' => [ // REQUIRED
        'backendDefaults' => [
            'clientPolicy' => [
                'tls' => [
                    'certificate' => [
                        'file' => [
                            'certificateChain' => '<string>', // REQUIRED
                            'privateKey' => '<string>', // REQUIRED
                        ],
                        'sds' => [
                            'secretName' => '<string>', // REQUIRED
                        ],
                    ],
                    'enforce' => true || false,
                    'ports' => [<integer>, ...],
                    'validation' => [ // REQUIRED
                        'subjectAlternativeNames' => [
                            'match' => [ // REQUIRED
                                'exact' => ['<string>', ...], // REQUIRED
                            ],
                        ],
                        'trust' => [ // REQUIRED
                            'acm' => [
                                'certificateAuthorityArns' => ['<string>', ...], // REQUIRED
                            ],
                            'file' => [
                                'certificateChain' => '<string>', // REQUIRED
                            ],
                            'sds' => [
                                'secretName' => '<string>', // REQUIRED
                            ],
                        ],
                    ],
                ],
            ],
        ],
        'listeners' => [ // REQUIRED
            [
                'connectionPool' => [
                    'grpc' => [
                        'maxRequests' => <integer>, // REQUIRED
                    ],
                    'http' => [
                        'maxConnections' => <integer>, // REQUIRED
                        'maxPendingRequests' => <integer>,
                    ],
                    'http2' => [
                        'maxRequests' => <integer>, // REQUIRED
                    ],
                ],
                'healthCheck' => [
                    'healthyThreshold' => <integer>, // REQUIRED
                    'intervalMillis' => <integer>, // REQUIRED
                    'path' => '<string>',
                    'port' => <integer>,
                    'protocol' => 'http|http2|grpc', // REQUIRED
                    'timeoutMillis' => <integer>, // REQUIRED
                    'unhealthyThreshold' => <integer>, // REQUIRED
                ],
                'portMapping' => [ // REQUIRED
                    'port' => <integer>, // REQUIRED
                    'protocol' => 'http|http2|grpc', // REQUIRED
                ],
                'tls' => [
                    'certificate' => [ // REQUIRED
                        'acm' => [
                            'certificateArn' => '<string>', // REQUIRED
                        ],
                        'file' => [
                            'certificateChain' => '<string>', // REQUIRED
                            'privateKey' => '<string>', // REQUIRED
                        ],
                        'sds' => [
                            'secretName' => '<string>', // REQUIRED
                        ],
                    ],
                    'mode' => 'STRICT|PERMISSIVE|DISABLED', // REQUIRED
                    'validation' => [
                        'subjectAlternativeNames' => [
                            'match' => [ // REQUIRED
                                'exact' => ['<string>', ...], // REQUIRED
                            ],
                        ],
                        'trust' => [ // REQUIRED
                            'file' => [
                                'certificateChain' => '<string>', // REQUIRED
                            ],
                            'sds' => [
                                'secretName' => '<string>', // REQUIRED
                            ],
                        ],
                    ],
                ],
            ],
            // ...
        ],
        'logging' => [
            'accessLog' => [
                'file' => [
                    'format' => [
                        'json' => [
                            [
                                'key' => '<string>', // REQUIRED
                                'value' => '<string>', // REQUIRED
                            ],
                            // ...
                        ],
                        'text' => '<string>',
                    ],
                    'path' => '<string>', // REQUIRED
                ],
            ],
        ],
    ],
    'virtualGatewayName' => '<string>', // REQUIRED
]);

Parameter Details

Members
clientToken
Type: string

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

meshName
Required: Yes
Type: string

The name of the service mesh that the virtual gateway resides in.

meshOwner
Type: string

The Amazon Web Services 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.

spec
Required: Yes
Type: VirtualGatewaySpec structure

The new virtual gateway specification to apply. This overwrites the existing data.

virtualGatewayName
Required: Yes
Type: string

The name of the virtual gateway to update.

Result Syntax

[
    'virtualGateway' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'backendDefaults' => [
                'clientPolicy' => [
                    'tls' => [
                        'certificate' => [
                            'file' => [
                                'certificateChain' => '<string>',
                                'privateKey' => '<string>',
                            ],
                            'sds' => [
                                'secretName' => '<string>',
                            ],
                        ],
                        'enforce' => true || false,
                        'ports' => [<integer>, ...],
                        'validation' => [
                            'subjectAlternativeNames' => [
                                'match' => [
                                    'exact' => ['<string>', ...],
                                ],
                            ],
                            'trust' => [
                                'acm' => [
                                    'certificateAuthorityArns' => ['<string>', ...],
                                ],
                                'file' => [
                                    'certificateChain' => '<string>',
                                ],
                                'sds' => [
                                    'secretName' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
            ],
            'listeners' => [
                [
                    'connectionPool' => [
                        'grpc' => [
                            'maxRequests' => <integer>,
                        ],
                        'http' => [
                            'maxConnections' => <integer>,
                            'maxPendingRequests' => <integer>,
                        ],
                        'http2' => [
                            'maxRequests' => <integer>,
                        ],
                    ],
                    'healthCheck' => [
                        'healthyThreshold' => <integer>,
                        'intervalMillis' => <integer>,
                        'path' => '<string>',
                        'port' => <integer>,
                        'protocol' => 'http|http2|grpc',
                        'timeoutMillis' => <integer>,
                        'unhealthyThreshold' => <integer>,
                    ],
                    'portMapping' => [
                        'port' => <integer>,
                        'protocol' => 'http|http2|grpc',
                    ],
                    'tls' => [
                        'certificate' => [
                            'acm' => [
                                'certificateArn' => '<string>',
                            ],
                            'file' => [
                                'certificateChain' => '<string>',
                                'privateKey' => '<string>',
                            ],
                            'sds' => [
                                'secretName' => '<string>',
                            ],
                        ],
                        'mode' => 'STRICT|PERMISSIVE|DISABLED',
                        'validation' => [
                            'subjectAlternativeNames' => [
                                'match' => [
                                    'exact' => ['<string>', ...],
                                ],
                            ],
                            'trust' => [
                                'file' => [
                                    'certificateChain' => '<string>',
                                ],
                                'sds' => [
                                    'secretName' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
                // ...
            ],
            'logging' => [
                'accessLog' => [
                    'file' => [
                        'format' => [
                            'json' => [
                                [
                                    'key' => '<string>',
                                    'value' => '<string>',
                                ],
                                // ...
                            ],
                            'text' => '<string>',
                        ],
                        'path' => '<string>',
                    ],
                ],
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualGatewayName' => '<string>',
    ],
]

Result Details

Members
virtualGateway
Required: Yes
Type: VirtualGatewayData structure

A full description of the virtual gateway that was updated.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

LimitExceededException:

You have exceeded a service limit for your account. For more information, see Service Limits in the App Mesh User Guide.

UpdateVirtualNode

$result = $client->updateVirtualNode([/* ... */]);
$promise = $client->updateVirtualNodeAsync([/* ... */]);

Updates an existing virtual node in a specified service mesh.

Parameter Syntax

$result = $client->updateVirtualNode([
    'clientToken' => '<string>',
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'spec' => [ // REQUIRED
        'backendDefaults' => [
            'clientPolicy' => [
                'tls' => [
                    'certificate' => [
                        'file' => [
                            'certificateChain' => '<string>', // REQUIRED
                            'privateKey' => '<string>', // REQUIRED
                        ],
                        'sds' => [
                            'secretName' => '<string>', // REQUIRED
                        ],
                    ],
                    'enforce' => true || false,
                    'ports' => [<integer>, ...],
                    'validation' => [ // REQUIRED
                        'subjectAlternativeNames' => [
                            'match' => [ // REQUIRED
                                'exact' => ['<string>', ...], // REQUIRED
                            ],
                        ],
                        'trust' => [ // REQUIRED
                            'acm' => [
                                'certificateAuthorityArns' => ['<string>', ...], // REQUIRED
                            ],
                            'file' => [
                                'certificateChain' => '<string>', // REQUIRED
                            ],
                            'sds' => [
                                'secretName' => '<string>', // REQUIRED
                            ],
                        ],
                    ],
                ],
            ],
        ],
        'backends' => [
            [
                'virtualService' => [
                    'clientPolicy' => [
                        'tls' => [
                            'certificate' => [
                                'file' => [
                                    'certificateChain' => '<string>', // REQUIRED
                                    'privateKey' => '<string>', // REQUIRED
                                ],
                                'sds' => [
                                    'secretName' => '<string>', // REQUIRED
                                ],
                            ],
                            'enforce' => true || false,
                            'ports' => [<integer>, ...],
                            'validation' => [ // REQUIRED
                                'subjectAlternativeNames' => [
                                    'match' => [ // REQUIRED
                                        'exact' => ['<string>', ...], // REQUIRED
                                    ],
                                ],
                                'trust' => [ // REQUIRED
                                    'acm' => [
                                        'certificateAuthorityArns' => ['<string>', ...], // REQUIRED
                                    ],
                                    'file' => [
                                        'certificateChain' => '<string>', // REQUIRED
                                    ],
                                    'sds' => [
                                        'secretName' => '<string>', // REQUIRED
                                    ],
                                ],
                            ],
                        ],
                    ],
                    'virtualServiceName' => '<string>', // REQUIRED
                ],
            ],
            // ...
        ],
        'listeners' => [
            [
                'connectionPool' => [
                    'grpc' => [
                        'maxRequests' => <integer>, // REQUIRED
                    ],
                    'http' => [
                        'maxConnections' => <integer>, // REQUIRED
                        'maxPendingRequests' => <integer>,
                    ],
                    'http2' => [
                        'maxRequests' => <integer>, // REQUIRED
                    ],
                    'tcp' => [
                        'maxConnections' => <integer>, // REQUIRED
                    ],
                ],
                'healthCheck' => [
                    'healthyThreshold' => <integer>, // REQUIRED
                    'intervalMillis' => <integer>, // REQUIRED
                    'path' => '<string>',
                    'port' => <integer>,
                    'protocol' => 'http|tcp|http2|grpc', // REQUIRED
                    'timeoutMillis' => <integer>, // REQUIRED
                    'unhealthyThreshold' => <integer>, // REQUIRED
                ],
                'outlierDetection' => [
                    'baseEjectionDuration' => [ // REQUIRED
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'interval' => [ // REQUIRED
                        'unit' => 's|ms',
                        'value' => <integer>,
                    ],
                    'maxEjectionPercent' => <integer>, // REQUIRED
                    'maxServerErrors' => <integer>, // REQUIRED
                ],
                'portMapping' => [ // REQUIRED
                    'port' => <integer>, // REQUIRED
                    'protocol' => 'http|tcp|http2|grpc', // REQUIRED
                ],
                'timeout' => [
                    'grpc' => [
                        'idle' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                        'perRequest' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                    ],
                    'http' => [
                        'idle' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                        'perRequest' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                    ],
                    'http2' => [
                        'idle' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                        'perRequest' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                    ],
                    'tcp' => [
                        'idle' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                    ],
                ],
                'tls' => [
                    'certificate' => [ // REQUIRED
                        'acm' => [
                            'certificateArn' => '<string>', // REQUIRED
                        ],
                        'file' => [
                            'certificateChain' => '<string>', // REQUIRED
                            'privateKey' => '<string>', // REQUIRED
                        ],
                        'sds' => [
                            'secretName' => '<string>', // REQUIRED
                        ],
                    ],
                    'mode' => 'STRICT|PERMISSIVE|DISABLED', // REQUIRED
                    'validation' => [
                        'subjectAlternativeNames' => [
                            'match' => [ // REQUIRED
                                'exact' => ['<string>', ...], // REQUIRED
                            ],
                        ],
                        'trust' => [ // REQUIRED
                            'file' => [
                                'certificateChain' => '<string>', // REQUIRED
                            ],
                            'sds' => [
                                'secretName' => '<string>', // REQUIRED
                            ],
                        ],
                    ],
                ],
            ],
            // ...
        ],
        'logging' => [
            'accessLog' => [
                'file' => [
                    'format' => [
                        'json' => [
                            [
                                'key' => '<string>', // REQUIRED
                                'value' => '<string>', // REQUIRED
                            ],
                            // ...
                        ],
                        'text' => '<string>',
                    ],
                    'path' => '<string>', // REQUIRED
                ],
            ],
        ],
        'serviceDiscovery' => [
            'awsCloudMap' => [
                'attributes' => [
                    [
                        'key' => '<string>', // REQUIRED
                        'value' => '<string>', // REQUIRED
                    ],
                    // ...
                ],
                'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
                'namespaceName' => '<string>', // REQUIRED
                'serviceName' => '<string>', // REQUIRED
            ],
            'dns' => [
                'hostname' => '<string>', // REQUIRED
                'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
                'responseType' => 'LOADBALANCER|ENDPOINTS',
            ],
        ],
    ],
    'virtualNodeName' => '<string>', // REQUIRED
]);

Parameter Details

Members
clientToken
Type: string

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

meshName
Required: Yes
Type: string

The name of the service mesh that the virtual node resides in.

meshOwner
Type: string

The Amazon Web Services 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.

spec
Required: Yes
Type: VirtualNodeSpec structure

The new virtual node specification to apply. This overwrites the existing data.

virtualNodeName
Required: Yes
Type: string

The name of the virtual node to update.

Result Syntax

[
    'virtualNode' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'backendDefaults' => [
                'clientPolicy' => [
                    'tls' => [
                        'certificate' => [
                            'file' => [
                                'certificateChain' => '<string>',
                                'privateKey' => '<string>',
                            ],
                            'sds' => [
                                'secretName' => '<string>',
                            ],
                        ],
                        'enforce' => true || false,
                        'ports' => [<integer>, ...],
                        'validation' => [
                            'subjectAlternativeNames' => [
                                'match' => [
                                    'exact' => ['<string>', ...],
                                ],
                            ],
                            'trust' => [
                                'acm' => [
                                    'certificateAuthorityArns' => ['<string>', ...],
                                ],
                                'file' => [
                                    'certificateChain' => '<string>',
                                ],
                                'sds' => [
                                    'secretName' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
            ],
            'backends' => [
                [
                    'virtualService' => [
                        'clientPolicy' => [
                            'tls' => [
                                'certificate' => [
                                    'file' => [
                                        'certificateChain' => '<string>',
                                        'privateKey' => '<string>',
                                    ],
                                    'sds' => [
                                        'secretName' => '<string>',
                                    ],
                                ],
                                'enforce' => true || false,
                                'ports' => [<integer>, ...],
                                'validation' => [
                                    'subjectAlternativeNames' => [
                                        'match' => [
                                            'exact' => ['<string>', ...],
                                        ],
                                    ],
                                    'trust' => [
                                        'acm' => [
                                            'certificateAuthorityArns' => ['<string>', ...],
                                        ],
                                        'file' => [
                                            'certificateChain' => '<string>',
                                        ],
                                        'sds' => [
                                            'secretName' => '<string>',
                                        ],
                                    ],
                                ],
                            ],
                        ],
                        'virtualServiceName' => '<string>',
                    ],
                ],
                // ...
            ],
            'listeners' => [
                [
                    'connectionPool' => [
                        'grpc' => [
                            'maxRequests' => <integer>,
                        ],
                        'http' => [
                            'maxConnections' => <integer>,
                            'maxPendingRequests' => <integer>,
                        ],
                        'http2' => [
                            'maxRequests' => <integer>,
                        ],
                        'tcp' => [
                            'maxConnections' => <integer>,
                        ],
                    ],
                    'healthCheck' => [
                        'healthyThreshold' => <integer>,
                        'intervalMillis' => <integer>,
                        'path' => '<string>',
                        'port' => <integer>,
                        'protocol' => 'http|tcp|http2|grpc',
                        'timeoutMillis' => <integer>,
                        'unhealthyThreshold' => <integer>,
                    ],
                    'outlierDetection' => [
                        'baseEjectionDuration' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                        'interval' => [
                            'unit' => 's|ms',
                            'value' => <integer>,
                        ],
                        'maxEjectionPercent' => <integer>,
                        'maxServerErrors' => <integer>,
                    ],
                    'portMapping' => [
                        'port' => <integer>,
                        'protocol' => 'http|tcp|http2|grpc',
                    ],
                    'timeout' => [
                        'grpc' => [
                            'idle' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                            'perRequest' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                        ],
                        'http' => [
                            'idle' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                            'perRequest' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                        ],
                        'http2' => [
                            'idle' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                            'perRequest' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                        ],
                        'tcp' => [
                            'idle' => [
                                'unit' => 's|ms',
                                'value' => <integer>,
                            ],
                        ],
                    ],
                    'tls' => [
                        'certificate' => [
                            'acm' => [
                                'certificateArn' => '<string>',
                            ],
                            'file' => [
                                'certificateChain' => '<string>',
                                'privateKey' => '<string>',
                            ],
                            'sds' => [
                                'secretName' => '<string>',
                            ],
                        ],
                        'mode' => 'STRICT|PERMISSIVE|DISABLED',
                        'validation' => [
                            'subjectAlternativeNames' => [
                                'match' => [
                                    'exact' => ['<string>', ...],
                                ],
                            ],
                            'trust' => [
                                'file' => [
                                    'certificateChain' => '<string>',
                                ],
                                'sds' => [
                                    'secretName' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
                // ...
            ],
            'logging' => [
                'accessLog' => [
                    'file' => [
                        'format' => [
                            'json' => [
                                [
                                    'key' => '<string>',
                                    'value' => '<string>',
                                ],
                                // ...
                            ],
                            'text' => '<string>',
                        ],
                        'path' => '<string>',
                    ],
                ],
            ],
            'serviceDiscovery' => [
                'awsCloudMap' => [
                    'attributes' => [
                        [
                            'key' => '<string>',
                            'value' => '<string>',
                        ],
                        // ...
                    ],
                    'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
                    'namespaceName' => '<string>',
                    'serviceName' => '<string>',
                ],
                'dns' => [
                    'hostname' => '<string>',
                    'ipPreference' => 'IPv6_PREFERRED|IPv4_PREFERRED|IPv4_ONLY|IPv6_ONLY',
                    'responseType' => 'LOADBALANCER|ENDPOINTS',
                ],
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualNodeName' => '<string>',
    ],
]

Result Details

Members
virtualNode
Required: Yes
Type: VirtualNodeData structure

A full description of the virtual node that was updated.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

LimitExceededException:

You have exceeded a service limit for your account. For more information, see Service Limits in the App Mesh User Guide.

UpdateVirtualRouter

$result = $client->updateVirtualRouter([/* ... */]);
$promise = $client->updateVirtualRouterAsync([/* ... */]);

Updates an existing virtual router in a specified service mesh.

Parameter Syntax

$result = $client->updateVirtualRouter([
    'clientToken' => '<string>',
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'spec' => [ // REQUIRED
        'listeners' => [
            [
                'portMapping' => [ // REQUIRED
                    'port' => <integer>, // REQUIRED
                    'protocol' => 'http|tcp|http2|grpc', // REQUIRED
                ],
            ],
            // ...
        ],
    ],
    'virtualRouterName' => '<string>', // REQUIRED
]);

Parameter Details

Members
clientToken
Type: string

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

meshName
Required: Yes
Type: string

The name of the service mesh that the virtual router resides in.

meshOwner
Type: string

The Amazon Web Services 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.

spec
Required: Yes
Type: VirtualRouterSpec structure

The new virtual router specification to apply. This overwrites the existing data.

virtualRouterName
Required: Yes
Type: string

The name of the virtual router to update.

Result Syntax

[
    'virtualRouter' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'listeners' => [
                [
                    'portMapping' => [
                        'port' => <integer>,
                        'protocol' => 'http|tcp|http2|grpc',
                    ],
                ],
                // ...
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualRouterName' => '<string>',
    ],
]

Result Details

Members
virtualRouter
Required: Yes
Type: VirtualRouterData structure

A full description of the virtual router that was updated.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

LimitExceededException:

You have exceeded a service limit for your account. For more information, see Service Limits in the App Mesh User Guide.

UpdateVirtualService

$result = $client->updateVirtualService([/* ... */]);
$promise = $client->updateVirtualServiceAsync([/* ... */]);

Updates an existing virtual service in a specified service mesh.

Parameter Syntax

$result = $client->updateVirtualService([
    'clientToken' => '<string>',
    'meshName' => '<string>', // REQUIRED
    'meshOwner' => '<string>',
    'spec' => [ // REQUIRED
        'provider' => [
            'virtualNode' => [
                'virtualNodeName' => '<string>', // REQUIRED
            ],
            'virtualRouter' => [
                'virtualRouterName' => '<string>', // REQUIRED
            ],
        ],
    ],
    'virtualServiceName' => '<string>', // REQUIRED
]);

Parameter Details

Members
clientToken
Type: string

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

meshName
Required: Yes
Type: string

The name of the service mesh that the virtual service resides in.

meshOwner
Type: string

The Amazon Web Services 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.

spec
Required: Yes
Type: VirtualServiceSpec structure

The new virtual service specification to apply. This overwrites the existing data.

virtualServiceName
Required: Yes
Type: string

The name of the virtual service to update.

Result Syntax

[
    'virtualService' => [
        'meshName' => '<string>',
        'metadata' => [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'lastUpdatedAt' => <DateTime>,
            'meshOwner' => '<string>',
            'resourceOwner' => '<string>',
            'uid' => '<string>',
            'version' => <integer>,
        ],
        'spec' => [
            'provider' => [
                'virtualNode' => [
                    'virtualNodeName' => '<string>',
                ],
                'virtualRouter' => [
                    'virtualRouterName' => '<string>',
                ],
            ],
        ],
        'status' => [
            'status' => 'ACTIVE|INACTIVE|DELETED',
        ],
        'virtualServiceName' => '<string>',
    ],
]

Result Details

Members
virtualService
Required: Yes
Type: VirtualServiceData structure

A full description of the virtual service that was updated.

Errors

NotFoundException:

The specified resource doesn't exist. Check your request syntax and try again.

BadRequestException:

The request syntax was malformed. Check your request syntax and try again.

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.

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.

ForbiddenException:

You don't have permissions to perform this action.

ServiceUnavailableException:

The request has failed due to a temporary failure of the service.

InternalServerErrorException:

The request processing has failed because of an unknown error, exception, or failure.

LimitExceededException:

You have exceeded a service limit for your account. For more information, see Service Limits in the App Mesh User Guide.

Shapes

AccessLog

Description

An object that represents the access logging information for a virtual node.

Members
file
Type: FileAccessLog structure

The file object to send virtual node access logs to.

AwsCloudMapInstanceAttribute

Description

An object that represents the Cloud Map attribute information for your virtual node.

Cloud Map is not available in the eu-south-1 Region.

Members
key
Required: Yes
Type: string

The name of an Cloud Map service instance attribute key. Any Cloud Map service instance that contains the specified key and value is returned.

value
Required: Yes
Type: string

The value of an Cloud Map service instance attribute key. Any Cloud Map service instance that contains the specified key and value is returned.

AwsCloudMapServiceDiscovery

Description

An object that represents the Cloud Map service discovery information for your virtual node.

Cloud Map is not available in the eu-south-1 Region.

Members
attributes
Type: Array of AwsCloudMapInstanceAttribute structures

A string map that contains attributes with values that you can use to filter instances by any custom attribute that you specified when you registered the instance. Only instances that match all of the specified key/value pairs will be returned.

ipPreference
Type: string

The preferred IP version that this virtual node uses. Setting the IP preference on the virtual node only overrides the IP preference set for the mesh on this specific node.

namespaceName
Required: Yes
Type: string

The name of the Cloud Map namespace to use.

serviceName
Required: Yes
Type: string

The name of the Cloud Map service to use.

Backend

Description

An object that represents the backends that a virtual node is expected to send outbound traffic to.

Members
virtualService
Type: VirtualServiceBackend structure

Specifies a virtual service to use as a backend.

BackendDefaults

Description

An object that represents the default properties for a backend.

Members
clientPolicy
Type: ClientPolicy structure

A reference to an object that represents a client policy.

BadRequestException

Description

The request syntax was malformed. Check your request syntax and try again.

Members
message
Type: string

ClientPolicy

Description

An object that represents a client policy.

Members
tls
Type: ClientPolicyTls structure

A reference to an object that represents a Transport Layer Security (TLS) client policy.

ClientPolicyTls

Description

A reference to an object that represents a Transport Layer Security (TLS) client policy.

Members
certificate
Type: ClientTlsCertificate structure

A reference to an object that represents a client's TLS certificate.

enforce
Type: boolean

Whether the policy is enforced. The default is True, if a value isn't specified.

ports
Type: Array of ints

One or more ports that the policy is enforced for.

validation
Required: Yes
Type: TlsValidationContext structure

A reference to an object that represents a TLS validation context.

ClientTlsCertificate

Description

An object that represents the client's certificate.

Members
file
Type: ListenerTlsFileCertificate structure

An object that represents a local file certificate. The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see Transport Layer Security (TLS).

sds
Type: ListenerTlsSdsCertificate structure

A reference to an object that represents a client's TLS Secret Discovery Service certificate.

ConflictException

Description

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.

Members
message
Type: string

DnsServiceDiscovery

Description

An object that represents the DNS service discovery information for your virtual node.

Members
hostname
Required: Yes
Type: string

Specifies the DNS service discovery hostname for the virtual node.

ipPreference
Type: string

The preferred IP version that this virtual node uses. Setting the IP preference on the virtual node only overrides the IP preference set for the mesh on this specific node.

responseType
Type: string

Specifies the DNS response type for the virtual node.

Duration

Description

An object that represents a duration of time.

Members
unit
Type: string

A unit of time.

value
Type: long (int|float)

A number of time units.

EgressFilter

Description

An object that represents the egress filter rules for a service mesh.

Members
type
Required: Yes
Type: string

The egress filter type. By default, the type is DROP_ALL, which allows egress only from virtual nodes to other defined resources in the service mesh (and any traffic to *.amazonaws.com for Amazon Web Services API calls). You can set the egress filter type to ALLOW_ALL to allow egress to any endpoint inside or outside of the service mesh.

FileAccessLog

Description

An object that represents an access log file.

Members
format
Type: LoggingFormat structure

The specified format for the logs. The format is either json_format or text_format.

path
Required: Yes
Type: string

The file path to write access logs to. You can use /dev/stdout to send access logs to standard out and configure your Envoy container to use a log driver, such as awslogs, to export the access logs to a log storage service such as Amazon CloudWatch Logs. You can also specify a path in the Envoy container's file system to write the files to disk.

The Envoy process must have write permissions to the path that you specify here. Otherwise, Envoy fails to bootstrap properly.

ForbiddenException

Description

You don't have permissions to perform this action.

Members
message
Type: string

GatewayRouteData

Description

An object that represents a gateway route returned by a describe operation.

Members
gatewayRouteName
Required: Yes
Type: string

The name of the gateway route.

meshName
Required: Yes
Type: string

The name of the service mesh that the resource resides in.

metadata
Required: Yes
Type: ResourceMetadata structure

An object that represents metadata for a resource.

spec
Required: Yes
Type: GatewayRouteSpec structure

The specifications of the gateway route.

status
Required: Yes
Type: GatewayRouteStatus structure

The status of the gateway route.

virtualGatewayName
Required: Yes
Type: string

The virtual gateway that the gateway route is associated with.

GatewayRouteHostnameMatch

Description

An object representing the gateway route host name to match.

Members
exact
Type: string

The exact host name to match on.

suffix
Type: string

The specified ending characters of the host name to match on.

GatewayRouteHostnameRewrite

Description

An object representing the gateway route host name to rewrite.

Members
defaultTargetHostname
Type: string

The default target host name to write to.

GatewayRouteRef

Description

An object that represents a gateway route returned by a list operation.

Members
arn
Required: Yes
Type: string

The full Amazon Resource Name (ARN) for the gateway route.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The Unix epoch timestamp in seconds for when the resource was created.

gatewayRouteName
Required: Yes
Type: string

The name of the gateway route.

lastUpdatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The Unix epoch timestamp in seconds for when the resource was last updated.

meshName
Required: Yes
Type: string

The name of the service mesh that the resource resides in.

meshOwner
Required: Yes
Type: string

The Amazon Web Services 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.

resourceOwner
Required: Yes
Type: string

The Amazon Web Services IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with shared meshes.

version
Required: Yes
Type: long (int|float)

The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.

virtualGatewayName
Required: Yes
Type: string

The virtual gateway that the gateway route is associated with.

GatewayRouteSpec

Description

An object that represents a gateway route specification. Specify one gateway route type.

Members
grpcRoute
Type: GrpcGatewayRoute structure

An object that represents the specification of a gRPC gateway route.

http2Route
Type: HttpGatewayRoute structure

An object that represents the specification of an HTTP/2 gateway route.

httpRoute
Type: HttpGatewayRoute structure

An object that represents the specification of an HTTP gateway route.

priority
Type: int

The ordering of the gateway routes spec.

GatewayRouteStatus

Description

An object that represents the current status of a gateway route.

Members
status
Required: Yes
Type: string

The current status for the gateway route.

GatewayRouteTarget

Description

An object that represents a gateway route target.

Members
port
Type: int

The port number of the gateway route target.

virtualService
Required: Yes
Type: GatewayRouteVirtualService structure

An object that represents a virtual service gateway route target.

GatewayRouteVirtualService

Description

An object that represents the virtual service that traffic is routed to.

Members
virtualServiceName
Required: Yes
Type: string

The name of the virtual service that traffic is routed to.

GrpcGatewayRoute

Description

An object that represents a gRPC gateway route.

Members
action
Required: Yes
Type: GrpcGatewayRouteAction structure

An object that represents the action to take if a match is determined.

match
Required: Yes
Type: GrpcGatewayRouteMatch structure

An object that represents the criteria for determining a request match.

GrpcGatewayRouteAction

Description

An object that represents the action to take if a match is determined.

Members
rewrite
Type: GrpcGatewayRouteRewrite structure

The gateway route action to rewrite.

target
Required: Yes
Type: GatewayRouteTarget structure

An object that represents the target that traffic is routed to when a request matches the gateway route.

GrpcGatewayRouteMatch

Description

An object that represents the criteria for determining a request match.

Members
hostname
Type: GatewayRouteHostnameMatch structure

The gateway route host name to be matched on.

metadata
Type: Array of GrpcGatewayRouteMetadata structures

The gateway route metadata to be matched on.

port
Type: int

The gateway route port to be matched on.

serviceName
Type: string

The fully qualified domain name for the service to match from the request.

GrpcGatewayRouteMetadata

Description

An object representing the metadata of the gateway route.

Members
invert
Type: boolean

Specify True to match anything except the match criteria. The default value is False.

match
Type: GrpcMetadataMatchMethod structure

The criteria for determining a metadata match.

name
Required: Yes
Type: string

A name for the gateway route metadata.

GrpcGatewayRouteRewrite

Description

An object that represents the gateway route to rewrite.

Members
hostname
Type: GatewayRouteHostnameRewrite structure

The host name of the gateway route to rewrite.

GrpcMetadataMatchMethod

Description

An object representing the method header to be matched.

Members
exact
Type: string

The exact method header to be matched on.

prefix
Type: string

The specified beginning characters of the method header to be matched on.

range
Type: MatchRange structure

An object that represents the range of values to match on. The first character of the range is included in the range, though the last character is not. For example, if the range specified were 1-100, only values 1-99 would be matched.

regex
Type: string

The regex used to match the method header.

suffix
Type: string

The specified ending characters of the method header to match on.

GrpcRetryPolicy

Description

An object that represents a retry policy. Specify at least one value for at least one of the types of RetryEvents, a value for maxRetries, and a value for perRetryTimeout. Both server-error and gateway-error under httpRetryEvents include the Envoy reset policy. For more information on the reset policy, see the Envoy documentation.

Members
grpcRetryEvents
Type: Array of strings

Specify at least one of the valid values.

httpRetryEvents
Type: Array of strings

Specify at least one of the following values.

  • server-error – HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511

  • gateway-error – HTTP status codes 502, 503, and 504

  • client-error – HTTP status code 409

  • stream-error – Retry on refused stream

maxRetries
Required: Yes
Type: long (int|float)

The maximum number of retry attempts.

perRetryTimeout
Required: Yes
Type: Duration structure

The timeout for each retry attempt.

tcpRetryEvents
Type: Array of strings

Specify a valid value. The event occurs before any processing of a request has started and is encountered when the upstream is temporarily or permanently unavailable.

GrpcRoute

Description

An object that represents a gRPC route type.

Members
action
Required: Yes
Type: GrpcRouteAction structure

An object that represents the action to take if a match is determined.

match
Required: Yes
Type: GrpcRouteMatch structure

An object that represents the criteria for determining a request match.

retryPolicy
Type: GrpcRetryPolicy structure

An object that represents a retry policy.

timeout
Type: GrpcTimeout structure

An object that represents types of timeouts.

GrpcRouteAction

Description

An object that represents the action to take if a match is determined.

Members
weightedTargets
Required: Yes
Type: Array of WeightedTarget structures

An object that represents the targets that traffic is routed to when a request matches the route.

GrpcRouteMatch

Description

An object that represents the criteria for determining a request match.

Members
metadata
Type: Array of GrpcRouteMetadata structures

An object that represents the data to match from the request.

methodName
Type: string

The method name to match from the request. If you specify a name, you must also specify a serviceName.

port
Type: int

The port number to match on.

serviceName
Type: string

The fully qualified domain name for the service to match from the request.

GrpcRouteMetadata

Description

An object that represents the match metadata for the route.

Members
invert
Type: boolean

Specify True to match anything except the match criteria. The default value is False.

match

An object that represents the data to match from the request.

name
Required: Yes
Type: string

The name of the route.

GrpcRouteMetadataMatchMethod

Description

An object that represents the match method. Specify one of the match values.

Members
exact
Type: string

The value sent by the client must match the specified value exactly.

prefix
Type: string

The value sent by the client must begin with the specified characters.

range
Type: MatchRange structure

An object that represents the range of values to match on.

regex
Type: string

The value sent by the client must include the specified characters.

suffix
Type: string

The value sent by the client must end with the specified characters.

GrpcTimeout

Description

An object that represents types of timeouts.

Members
idle
Type: Duration structure

An object that represents an idle timeout. An idle timeout bounds the amount of time that a connection may be idle. The default value is none.

perRequest
Type: Duration structure

An object that represents a per request timeout. The default value is 15 seconds. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route.

HeaderMatchMethod

Description

An object that represents the method and value to match with the header value sent in a request. Specify one match method.

Members
exact
Type: string

The value sent by the client must match the specified value exactly.

prefix
Type: string

The value sent by the client must begin with the specified characters.

range
Type: MatchRange structure

An object that represents the range of values to match on.

regex
Type: string

The value sent by the client must include the specified characters.

suffix
Type: string

The value sent by the client must end with the specified characters.

HealthCheckPolicy

Description

An object that represents the health check policy for a virtual node's listener.

Members
healthyThreshold
Required: Yes
Type: int

The number of consecutive successful health checks that must occur before declaring listener healthy.

intervalMillis
Required: Yes
Type: long (int|float)

The time period in milliseconds between each health check execution.

path
Type: string

The destination path for the health check request. This value is only used if the specified protocol is HTTP or HTTP/2. For any other protocol, this value is ignored.

port
Type: int

The destination port for the health check request. This port must match the port defined in the PortMapping for the listener.

protocol
Required: Yes
Type: string

The protocol for the health check request. If you specify grpc, then your service must conform to the GRPC Health Checking Protocol.

timeoutMillis
Required: Yes
Type: long (int|float)

The amount of time to wait when receiving a response from the health check, in milliseconds.

unhealthyThreshold
Required: Yes
Type: int

The number of consecutive failed health checks that must occur before declaring a virtual node unhealthy.

HttpGatewayRoute

Description

An object that represents an HTTP gateway route.

Members
action
Required: Yes
Type: HttpGatewayRouteAction structure

An object that represents the action to take if a match is determined.

match
Required: Yes
Type: HttpGatewayRouteMatch structure

An object that represents the criteria for determining a request match.

HttpGatewayRouteAction

Description

An object that represents the action to take if a match is determined.

Members
rewrite
Type: HttpGatewayRouteRewrite structure

The gateway route action to rewrite.

target
Required: Yes
Type: GatewayRouteTarget structure

An object that represents the target that traffic is routed to when a request matches the gateway route.

HttpGatewayRouteHeader

Description

An object that represents the HTTP header in the gateway route.

Members
invert
Type: boolean

Specify True to match anything except the match criteria. The default value is False.

match
Type: HeaderMatchMethod structure

An object that represents the method and value to match with the header value sent in a request. Specify one match method.

name
Required: Yes
Type: string

A name for the HTTP header in the gateway route that will be matched on.

HttpGatewayRouteMatch

Description

An object that represents the criteria for determining a request match.

Members
headers
Type: Array of HttpGatewayRouteHeader structures

The client request headers to match on.

hostname
Type: GatewayRouteHostnameMatch structure

The host name to match on.

method
Type: string

The method to match on.

path
Type: HttpPathMatch structure

The path to match on.

port
Type: int

The port number to match on.

prefix
Type: string

Specifies the path to match requests with. This parameter must always start with /, which by itself matches all requests to the virtual service name. You can also match for path-based routing of requests. For example, if your virtual service name is my-service.local and you want the route to match requests to my-service.local/metrics, your prefix should be /metrics.

queryParameters
Type: Array of HttpQueryParameter structures

The query parameter to match on.

HttpGatewayRoutePathRewrite

Description

An object that represents the path to rewrite.

Members
exact
Type: string

The exact path to rewrite.

HttpGatewayRoutePrefixRewrite

Description

An object representing the beginning characters of the route to rewrite.

Members
defaultPrefix
Type: string

The default prefix used to replace the incoming route prefix when rewritten.

value
Type: string

The value used to replace the incoming route prefix when rewritten.

HttpPathMatch

Description

An object representing the path to match in the request.

Members
exact
Type: string

The exact path to match on.

regex
Type: string

The regex used to match the path.

HttpQueryParameter

Description

An object that represents the query parameter in the request.

Members
match
Type: QueryParameterMatch structure

The query parameter to match on.

name
Required: Yes
Type: string

A name for the query parameter that will be matched on.

HttpRetryPolicy

Description

An object that represents a retry policy. Specify at least one value for at least one of the types of RetryEvents, a value for maxRetries, and a value for perRetryTimeout. Both server-error and gateway-error under httpRetryEvents include the Envoy reset policy. For more information on the reset policy, see the Envoy documentation.

Members
httpRetryEvents
Type: Array of strings

Specify at least one of the following values.

  • server-error – HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511

  • gateway-error – HTTP status codes 502, 503, and 504

  • client-error – HTTP status code 409

  • stream-error – Retry on refused stream

maxRetries
Required: Yes
Type: long (int|float)

The maximum number of retry attempts.

perRetryTimeout
Required: Yes
Type: Duration structure

The timeout for each retry attempt.

tcpRetryEvents
Type: Array of strings

Specify a valid value. The event occurs before any processing of a request has started and is encountered when the upstream is temporarily or permanently unavailable.

HttpRoute

Description

An object that represents an HTTP or HTTP/2 route type.

Members
action
Required: Yes
Type: HttpRouteAction structure

An object that represents the action to take if a match is determined.

match
Required: Yes
Type: HttpRouteMatch structure

An object that represents the criteria for determining a request match.

retryPolicy
Type: HttpRetryPolicy structure

An object that represents a retry policy.

timeout
Type: HttpTimeout structure

An object that represents types of timeouts.

HttpRouteAction

Description

An object that represents the action to take if a match is determined.

Members
weightedTargets
Required: Yes
Type: Array of WeightedTarget structures

An object that represents the targets that traffic is routed to when a request matches the route.

HttpRouteHeader

Description

An object that represents the HTTP header in the request.

Members
invert
Type: boolean

Specify True to match anything except the match criteria. The default value is False.

match
Type: HeaderMatchMethod structure

The HeaderMatchMethod object.

name
Required: Yes
Type: string

A name for the HTTP header in the client request that will be matched on.

HttpRouteMatch

Description

An object that represents the requirements for a route to match HTTP requests for a virtual router.

Members
headers
Type: Array of HttpRouteHeader structures

The client request headers to match on.

method
Type: string

The client request method to match on. Specify only one.

path
Type: HttpPathMatch structure

The client request path to match on.

port
Type: int

The port number to match on.

prefix
Type: string

Specifies the path to match requests with. This parameter must always start with /, which by itself matches all requests to the virtual service name. You can also match for path-based routing of requests. For example, if your virtual service name is my-service.local and you want the route to match requests to my-service.local/metrics, your prefix should be /metrics.

queryParameters
Type: Array of HttpQueryParameter structures

The client request query parameters to match on.

scheme
Type: string

The client request scheme to match on. Specify only one. Applicable only for HTTP2 routes.

HttpTimeout

Description

An object that represents types of timeouts.

Members
idle
Type: Duration structure

An object that represents an idle timeout. An idle timeout bounds the amount of time that a connection may be idle. The default value is none.

perRequest
Type: Duration structure

An object that represents a per request timeout. The default value is 15 seconds. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route.

InternalServerErrorException

Description

The request processing has failed because of an unknown error, exception, or failure.

Members
message
Type: string

JsonFormatRef

Description

An object that represents the key value pairs for the JSON.

Members
key
Required: Yes
Type: string

The specified key for the JSON.

value
Required: Yes
Type: string

The specified value for the JSON.

LimitExceededException

Description

You have exceeded a service limit for your account. For more information, see Service Limits in the App Mesh User Guide.

Members
message
Type: string

Listener

Description

An object that represents a listener for a virtual node.

Members
connectionPool
Type: VirtualNodeConnectionPool structure

The connection pool information for the listener.

healthCheck
Type: HealthCheckPolicy structure

The health check information for the listener.

outlierDetection
Type: OutlierDetection structure

The outlier detection information for the listener.

portMapping
Required: Yes
Type: PortMapping structure

The port mapping information for the listener.

timeout
Type: ListenerTimeout structure

An object that represents timeouts for different protocols.

tls
Type: ListenerTls structure

A reference to an object that represents the Transport Layer Security (TLS) properties for a listener.

ListenerTimeout

Description

An object that represents timeouts for different protocols.

Members
grpc
Type: GrpcTimeout structure

An object that represents types of timeouts.

http
Type: HttpTimeout structure

An object that represents types of timeouts.

http2
Type: HttpTimeout structure

An object that represents types of timeouts.

tcp
Type: TcpTimeout structure

An object that represents types of timeouts.

ListenerTls

Description

An object that represents the Transport Layer Security (TLS) properties for a listener.

Members
certificate
Required: Yes
Type: ListenerTlsCertificate structure

A reference to an object that represents a listener's Transport Layer Security (TLS) certificate.

mode
Required: Yes
Type: string

Specify one of the following modes.

  • STRICT – Listener only accepts connections with TLS enabled.

  • PERMISSIVE – Listener accepts connections with or without TLS enabled.

  • DISABLED – Listener only accepts connections without TLS.

validation

A reference to an object that represents a listener's Transport Layer Security (TLS) validation context.

ListenerTlsAcmCertificate

Description

An object that represents an Certificate Manager certificate.

Members
certificateArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) for the certificate. The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see Transport Layer Security (TLS).

ListenerTlsCertificate

Description

An object that represents a listener's Transport Layer Security (TLS) certificate.

Members
acm
Type: ListenerTlsAcmCertificate structure

A reference to an object that represents an Certificate Manager certificate.

file
Type: ListenerTlsFileCertificate structure

A reference to an object that represents a local file certificate.

sds
Type: ListenerTlsSdsCertificate structure

A reference to an object that represents a listener's Secret Discovery Service certificate.

ListenerTlsFileCertificate

Description

An object that represents a local file certificate. The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see Transport Layer Security (TLS).

Members
certificateChain
Required: Yes
Type: string

The certificate chain for the certificate.

privateKey
Required: Yes
Type: string

The private key for a certificate stored on the file system of the virtual node that the proxy is running on.

ListenerTlsSdsCertificate

Description

An object that represents the listener's Secret Discovery Service certificate. The proxy must be configured with a local SDS provider via a Unix Domain Socket. See App Mesh TLS documentation for more info.

Members
secretName
Required: Yes
Type: string

A reference to an object that represents the name of the secret requested from the Secret Discovery Service provider representing Transport Layer Security (TLS) materials like a certificate or certificate chain.

ListenerTlsValidationContext

Description

An object that represents a listener's Transport Layer Security (TLS) validation context.

Members
subjectAlternativeNames
Type: SubjectAlternativeNames structure

A reference to an object that represents the SANs for a listener's Transport Layer Security (TLS) validation context.

trust
Required: Yes
Type: ListenerTlsValidationContextTrust structure

A reference to where to retrieve the trust chain when validating a peer’s Transport Layer Security (TLS) certificate.

ListenerTlsValidationContextTrust

Description

An object that represents a listener's Transport Layer Security (TLS) validation context trust.

Members
file

An object that represents a Transport Layer Security (TLS) validation context trust for a local file.

sds

A reference to an object that represents a listener's Transport Layer Security (TLS) Secret Discovery Service validation context trust.

Logging

Description

An object that represents the logging information for a virtual node.

Members
accessLog
Type: AccessLog structure

The access log configuration for a virtual node.

LoggingFormat

Description

An object that represents the format for the logs.

Members
json
Type: Array of JsonFormatRef structures

text
Type: string

MatchRange

Description

An object that represents the range of values to match on. The first character of the range is included in the range, though the last character is not. For example, if the range specified were 1-100, only values 1-99 would be matched.

Members
end
Required: Yes
Type: long (int|float)

The end of the range.

start
Required: Yes
Type: long (int|float)

The start of the range.

MeshData

Description

An object that represents a service mesh returned by a describe operation.

Members
meshName
Required: Yes
Type: string

The name of the service mesh.

metadata
Required: Yes
Type: ResourceMetadata structure

The associated metadata for the service mesh.

spec
Required: Yes
Type: MeshSpec structure

The associated specification for the service mesh.

status
Required: Yes
Type: MeshStatus structure

The status of the service mesh.

MeshRef

Description

An object that represents a service mesh returned by a list operation.

Members
arn
Required: Yes
Type: string

The full Amazon Resource Name (ARN) of the service mesh.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The Unix epoch timestamp in seconds for when the resource was created.

lastUpdatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The Unix epoch timestamp in seconds for when the resource was last updated.

meshName
Required: Yes
Type: string

The name of the service mesh.

meshOwner
Required: Yes
Type: string

The Amazon Web Services 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.

resourceOwner
Required: Yes
Type: string

The Amazon Web Services IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with shared meshes.

version
Required: Yes
Type: long (int|float)

The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.

MeshServiceDiscovery

Description

An object that represents the service discovery information for a service mesh.

Members
ipPreference
Type: string

The IP version to use to control traffic within the mesh.

MeshSpec

Description

An object that represents the specification of a service mesh.

Members
egressFilter
Type: EgressFilter structure

The egress filter rules for the service mesh.

serviceDiscovery
Type: MeshServiceDiscovery structure

An object that represents the service discovery information for a service mesh.

MeshStatus

Description

An object that represents the status of a service mesh.

Members
status
Type: string

The current mesh status.

NotFoundException

Description

The specified resource doesn't exist. Check your request syntax and try again.

Members
message
Type: string

OutlierDetection

Description

An object that represents the outlier detection for a virtual node's listener.

Members
baseEjectionDuration
Required: Yes
Type: Duration structure

The base amount of time for which a host is ejected.

interval
Required: Yes
Type: Duration structure

The time interval between ejection sweep analysis.

maxEjectionPercent
Required: Yes
Type: int

Maximum percentage of hosts in load balancing pool for upstream service that can be ejected. Will eject at least one host regardless of the value.

maxServerErrors
Required: Yes
Type: long (int|float)

Number of consecutive 5xx errors required for ejection.

PortMapping

Description

An object that represents a port mapping.

Members
port
Required: Yes
Type: int

The port used for the port mapping.

protocol
Required: Yes
Type: string

The protocol used for the port mapping. Specify one protocol.

QueryParameterMatch

Description

An object representing the query parameter to match.

Members
exact
Type: string

The exact query parameter to match on.

ResourceInUseException

Description

You can't delete the specified resource because it's in use or required by another resource.

Members
message
Type: string

ResourceMetadata

Description

An object that represents metadata for a resource.

Members
arn
Required: Yes
Type: string

The full Amazon Resource Name (ARN) for the resource.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The Unix epoch timestamp in seconds for when the resource was created.

lastUpdatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The Unix epoch timestamp in seconds for when the resource was last updated.

meshOwner
Required: Yes
Type: string

The Amazon Web Services 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.

resourceOwner
Required: Yes
Type: string

The Amazon Web Services IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with shared meshes.

uid
Required: Yes
Type: string

The unique identifier for the resource.

version
Required: Yes
Type: long (int|float)

The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.

RouteData

Description

An object that represents a route returned by a describe operation.

Members
meshName
Required: Yes
Type: string

The name of the service mesh that the route resides in.

metadata
Required: Yes
Type: ResourceMetadata structure

The associated metadata for the route.

routeName
Required: Yes
Type: string

The name of the route.

spec
Required: Yes
Type: RouteSpec structure

The specifications of the route.

status
Required: Yes
Type: RouteStatus structure

The status of the route.

virtualRouterName
Required: Yes
Type: string

The virtual router that the route is associated with.

RouteRef

Description

An object that represents a route returned by a list operation.

Members
arn
Required: Yes
Type: string

The full Amazon Resource Name (ARN) for the route.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The Unix epoch timestamp in seconds for when the resource was created.

lastUpdatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The Unix epoch timestamp in seconds for when the resource was last updated.

meshName
Required: Yes
Type: string

The name of the service mesh that the route resides in.

meshOwner
Required: Yes
Type: string

The Amazon Web Services 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.

resourceOwner
Required: Yes
Type: string

The Amazon Web Services IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with shared meshes.

routeName
Required: Yes
Type: string

The name of the route.

version
Required: Yes
Type: long (int|float)

The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.

virtualRouterName
Required: Yes
Type: string

The virtual router that the route is associated with.

RouteSpec

Description

An object that represents a route specification. Specify one route type.

Members
grpcRoute
Type: GrpcRoute structure

An object that represents the specification of a gRPC route.

http2Route
Type: HttpRoute structure

An object that represents the specification of an HTTP/2 route.

httpRoute
Type: HttpRoute structure

An object that represents the specification of an HTTP route.

priority
Type: int

The priority for the route. Routes are matched based on the specified value, where 0 is the highest priority.

tcpRoute
Type: TcpRoute structure

An object that represents the specification of a TCP route.

RouteStatus

Description

An object that represents the current status of a route.

Members
status
Required: Yes
Type: string

The current status for the route.

ServiceDiscovery

Description

An object that represents the service discovery information for a virtual node.

Members
awsCloudMap
Type: AwsCloudMapServiceDiscovery structure

Specifies any Cloud Map information for the virtual node.

dns
Type: DnsServiceDiscovery structure

Specifies the DNS information for the virtual node.

ServiceUnavailableException

Description

The request has failed due to a temporary failure of the service.

Members
message
Type: string

SubjectAlternativeNameMatchers

Description

An object that represents the methods by which a subject alternative name on a peer Transport Layer Security (TLS) certificate can be matched.

Members
exact
Required: Yes
Type: Array of strings

The values sent must match the specified values exactly.

SubjectAlternativeNames

Description

An object that represents the subject alternative names secured by the certificate.

Members
match
Required: Yes
Type: SubjectAlternativeNameMatchers structure

An object that represents the criteria for determining a SANs match.

TagRef

Description

Optional metadata that you apply to a resource 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.

Members
key
Required: Yes
Type: string

One part of a key-value pair that make up a tag. A key is a general label that acts like a category for more specific tag values.

value
Required: Yes
Type: string

The optional part of a key-value pair that make up a tag. A value acts as a descriptor within a tag category (key).

TcpRoute

Description

An object that represents a TCP route type.

Members
action
Required: Yes
Type: TcpRouteAction structure

The action to take if a match is determined.

match
Type: TcpRouteMatch structure

An object that represents the criteria for determining a request match.

timeout
Type: TcpTimeout structure

An object that represents types of timeouts.

TcpRouteAction

Description

An object that represents the action to take if a match is determined.

Members
weightedTargets
Required: Yes
Type: Array of WeightedTarget structures

An object that represents the targets that traffic is routed to when a request matches the route.

TcpRouteMatch

Description

An object representing the TCP route to match.

Members
port
Type: int

The port number to match on.

TcpTimeout

Description

An object that represents types of timeouts.

Members
idle
Type: Duration structure

An object that represents an idle timeout. An idle timeout bounds the amount of time that a connection may be idle. The default value is none.

TlsValidationContext

Description

An object that represents how the proxy will validate its peer during Transport Layer Security (TLS) negotiation.

Members
subjectAlternativeNames
Type: SubjectAlternativeNames structure

A reference to an object that represents the SANs for a Transport Layer Security (TLS) validation context. If you don't specify SANs on the terminating mesh endpoint, the Envoy proxy for that node doesn't verify the SAN on a peer client certificate. If you don't specify SANs on the originating mesh endpoint, the SAN on the certificate provided by the terminating endpoint must match the mesh endpoint service discovery configuration. Since SPIRE vended certificates have a SPIFFE ID as a name, you must set the SAN since the name doesn't match the service discovery name.

trust
Required: Yes
Type: TlsValidationContextTrust structure

A reference to where to retrieve the trust chain when validating a peer’s Transport Layer Security (TLS) certificate.

TlsValidationContextAcmTrust

Description

An object that represents a Transport Layer Security (TLS) validation context trust for an Certificate Manager certificate.

Members
certificateAuthorityArns
Required: Yes
Type: Array of strings

One or more ACM Amazon Resource Name (ARN)s.

TlsValidationContextFileTrust

Description

An object that represents a Transport Layer Security (TLS) validation context trust for a local file.

Members
certificateChain
Required: Yes
Type: string

The certificate trust chain for a certificate stored on the file system of the virtual node that the proxy is running on.

TlsValidationContextSdsTrust

Description

An object that represents a Transport Layer Security (TLS) Secret Discovery Service validation context trust. The proxy must be configured with a local SDS provider via a Unix Domain Socket. See App Mesh TLS documentation for more info.

Members
secretName
Required: Yes
Type: string

A reference to an object that represents the name of the secret for a Transport Layer Security (TLS) Secret Discovery Service validation context trust.

TlsValidationContextTrust

Description

An object that represents a Transport Layer Security (TLS) validation context trust.

Members
acm

A reference to an object that represents a Transport Layer Security (TLS) validation context trust for an Certificate Manager certificate.

file

An object that represents a Transport Layer Security (TLS) validation context trust for a local file.

sds

A reference to an object that represents a Transport Layer Security (TLS) Secret Discovery Service validation context trust.

TooManyRequestsException

Description

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.

Members
message
Type: string

TooManyTagsException

Description

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.

Members
message
Type: string

VirtualGatewayAccessLog

Description

The access log configuration for a virtual gateway.

Members
file
Type: VirtualGatewayFileAccessLog structure

The file object to send virtual gateway access logs to.

VirtualGatewayBackendDefaults

Description

An object that represents the default properties for a backend.

Members
clientPolicy
Type: VirtualGatewayClientPolicy structure

A reference to an object that represents a client policy.

VirtualGatewayClientPolicy

Description

An object that represents a client policy.

Members
tls

A reference to an object that represents a Transport Layer Security (TLS) client policy.

VirtualGatewayClientPolicyTls

Description

An object that represents a Transport Layer Security (TLS) client policy.

Members
certificate

A reference to an object that represents a virtual gateway's client's Transport Layer Security (TLS) certificate.

enforce
Type: boolean

Whether the policy is enforced. The default is True, if a value isn't specified.

ports
Type: Array of ints

One or more ports that the policy is enforced for.

validation
Required: Yes
Type: VirtualGatewayTlsValidationContext structure

A reference to an object that represents a Transport Layer Security (TLS) validation context.

VirtualGatewayClientTlsCertificate

Description

An object that represents the virtual gateway's client's Transport Layer Security (TLS) certificate.

Members
file

An object that represents a local file certificate. The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see Transport Layer Security (TLS) .

sds

A reference to an object that represents a virtual gateway's client's Secret Discovery Service certificate.

VirtualGatewayConnectionPool

Description

An object that represents the type of virtual gateway connection pool.

Only one protocol is used at a time and should be the same protocol as the one chosen under port mapping.

If not present the default value for maxPendingRequests is 2147483647.

Members
grpc

An object that represents a type of connection pool.

http

An object that represents a type of connection pool.

http2

An object that represents a type of connection pool.

VirtualGatewayData

Description

An object that represents a virtual gateway returned by a describe operation.

Members
meshName
Required: Yes
Type: string

The name of the service mesh that the virtual gateway resides in.

metadata
Required: Yes
Type: ResourceMetadata structure

An object that represents metadata for a resource.

spec
Required: Yes
Type: VirtualGatewaySpec structure

The specifications of the virtual gateway.

status
Required: Yes
Type: VirtualGatewayStatus structure

The current status of the virtual gateway.

virtualGatewayName
Required: Yes
Type: string

The name of the virtual gateway.

VirtualGatewayFileAccessLog

Description

An object that represents an access log file.

Members
format
Type: LoggingFormat structure

The specified format for the virtual gateway access logs. It can be either json_format or text_format.

path
Required: Yes
Type: string

The file path to write access logs to. You can use /dev/stdout to send access logs to standard out and configure your Envoy container to use a log driver, such as awslogs, to export the access logs to a log storage service such as Amazon CloudWatch Logs. You can also specify a path in the Envoy container's file system to write the files to disk.

VirtualGatewayGrpcConnectionPool

Description

An object that represents a type of connection pool.

Members
maxRequests
Required: Yes
Type: int

Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster.

VirtualGatewayHealthCheckPolicy

Description

An object that represents the health check policy for a virtual gateway's listener.

Members
healthyThreshold
Required: Yes
Type: int

The number of consecutive successful health checks that must occur before declaring the listener healthy.

intervalMillis
Required: Yes
Type: long (int|float)

The time period in milliseconds between each health check execution.

path
Type: string

The destination path for the health check request. This value is only used if the specified protocol is HTTP or HTTP/2. For any other protocol, this value is ignored.

port
Type: int

The destination port for the health check request. This port must match the port defined in the PortMapping for the listener.

protocol
Required: Yes
Type: string

The protocol for the health check request. If you specify grpc, then your service must conform to the GRPC Health Checking Protocol.

timeoutMillis
Required: Yes
Type: long (int|float)

The amount of time to wait when receiving a response from the health check, in milliseconds.

unhealthyThreshold
Required: Yes
Type: int

The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy.

VirtualGatewayHttp2ConnectionPool

Description

An object that represents a type of connection pool.

Members
maxRequests
Required: Yes
Type: int

Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster.

VirtualGatewayHttpConnectionPool

Description

An object that represents a type of connection pool.

Members
maxConnections
Required: Yes
Type: int

Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster.

maxPendingRequests
Type: int

Number of overflowing requests after max_connections Envoy will queue to upstream cluster.

VirtualGatewayListener

Description

An object that represents a listener for a virtual gateway.

Members
connectionPool

The connection pool information for the virtual gateway listener.

healthCheck

The health check information for the listener.

portMapping
Required: Yes
Type: VirtualGatewayPortMapping structure

The port mapping information for the listener.

tls
Type: VirtualGatewayListenerTls structure

A reference to an object that represents the Transport Layer Security (TLS) properties for the listener.

VirtualGatewayListenerTls

Description

An object that represents the Transport Layer Security (TLS) properties for a listener.

Members
certificate
Required: Yes
Type: VirtualGatewayListenerTlsCertificate structure

An object that represents a Transport Layer Security (TLS) certificate.

mode
Required: Yes
Type: string

Specify one of the following modes.

  • STRICT – Listener only accepts connections with TLS enabled.

  • PERMISSIVE – Listener accepts connections with or without TLS enabled.

  • DISABLED – Listener only accepts connections without TLS.

validation

A reference to an object that represents a virtual gateway's listener's Transport Layer Security (TLS) validation context.

VirtualGatewayListenerTlsAcmCertificate

Description

An object that represents an Certificate Manager certificate.

Members
certificateArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) for the certificate. The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see Transport Layer Security (TLS).

VirtualGatewayListenerTlsCertificate

Description

An object that represents a listener's Transport Layer Security (TLS) certificate.

Members
acm

A reference to an object that represents an Certificate Manager certificate.

file

A reference to an object that represents a local file certificate.

sds

A reference to an object that represents a virtual gateway's listener's Secret Discovery Service certificate.

VirtualGatewayListenerTlsFileCertificate

Description

An object that represents a local file certificate. The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see Transport Layer Security (TLS).

Members
certificateChain
Required: Yes
Type: string

The certificate chain for the certificate.

privateKey
Required: Yes
Type: string

The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on.

VirtualGatewayListenerTlsSdsCertificate

Description

An object that represents the virtual gateway's listener's Secret Discovery Service certificate.The proxy must be configured with a local SDS provider via a Unix Domain Socket. See App MeshTLS documentation for more info.

Members
secretName
Required: Yes
Type: string

A reference to an object that represents the name of the secret secret requested from the Secret Discovery Service provider representing Transport Layer Security (TLS) materials like a certificate or certificate chain.

VirtualGatewayListenerTlsValidationContext

Description

An object that represents a virtual gateway's listener's Transport Layer Security (TLS) validation context.

Members
subjectAlternativeNames
Type: SubjectAlternativeNames structure

A reference to an object that represents the SANs for a virtual gateway listener's Transport Layer Security (TLS) validation context.

trust
Required: Yes
Type: VirtualGatewayListenerTlsValidationContextTrust structure

A reference to where to retrieve the trust chain when validating a peer’s Transport Layer Security (TLS) certificate.

VirtualGatewayListenerTlsValidationContextTrust

Description

An object that represents a virtual gateway's listener's Transport Layer Security (TLS) validation context trust.

Members
file

An object that represents a Transport Layer Security (TLS) validation context trust for a local file.

sds

A reference to an object that represents a virtual gateway's listener's Transport Layer Security (TLS) Secret Discovery Service validation context trust.

VirtualGatewayLogging

Description

An object that represents logging information.

Members
accessLog
Type: VirtualGatewayAccessLog structure

The access log configuration.

VirtualGatewayPortMapping

Description

An object that represents a port mapping.

Members
port
Required: Yes
Type: int

The port used for the port mapping. Specify one protocol.

protocol
Required: Yes
Type: string

The protocol used for the port mapping.

VirtualGatewayRef

Description

An object that represents a virtual gateway returned by a list operation.

Members
arn
Required: Yes
Type: string

The full Amazon Resource Name (ARN) for the resource.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The Unix epoch timestamp in seconds for when the resource was created.

lastUpdatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The Unix epoch timestamp in seconds for when the resource was last updated.

meshName
Required: Yes
Type: string

The name of the service mesh that the resource resides in.

meshOwner
Required: Yes
Type: string

The Amazon Web Services 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.

resourceOwner
Required: Yes
Type: string

The Amazon Web Services IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with shared meshes.

version
Required: Yes
Type: long (int|float)

The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.

virtualGatewayName
Required: Yes
Type: string

The name of the resource.

VirtualGatewaySpec

Description

An object that represents the specification of a service mesh resource.

Members
backendDefaults

A reference to an object that represents the defaults for backends.

listeners
Required: Yes
Type: Array of VirtualGatewayListener structures

The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener.

logging
Type: VirtualGatewayLogging structure

An object that represents logging information.

VirtualGatewayStatus

Description

An object that represents the status of the mesh resource.

Members
status
Required: Yes
Type: string

The current status.

VirtualGatewayTlsValidationContext

Description

An object that represents a Transport Layer Security (TLS) validation context.

Members
subjectAlternativeNames
Type: SubjectAlternativeNames structure

A reference to an object that represents the SANs for a virtual gateway's listener's Transport Layer Security (TLS) validation context.

trust
Required: Yes
Type: VirtualGatewayTlsValidationContextTrust structure

A reference to where to retrieve the trust chain when validating a peer’s Transport Layer Security (TLS) certificate.

VirtualGatewayTlsValidationContextAcmTrust

Description

An object that represents a Transport Layer Security (TLS) validation context trust for an Certificate Manager certificate.

Members
certificateAuthorityArns
Required: Yes
Type: Array of strings

One or more ACM Amazon Resource Name (ARN)s.

VirtualGatewayTlsValidationContextFileTrust

Description

An object that represents a Transport Layer Security (TLS) validation context trust for a local file.

Members
certificateChain
Required: Yes
Type: string

The certificate trust chain for a certificate stored on the file system of the virtual node that the proxy is running on.

VirtualGatewayTlsValidationContextSdsTrust

Description

An object that represents a virtual gateway's listener's Transport Layer Security (TLS) Secret Discovery Service validation context trust. The proxy must be configured with a local SDS provider via a Unix Domain Socket. See App Mesh TLS documentation for more info.

Members
secretName
Required: Yes
Type: string

A reference to an object that represents the name of the secret for a virtual gateway's Transport Layer Security (TLS) Secret Discovery Service validation context trust.

VirtualGatewayTlsValidationContextTrust

Description

An object that represents a Transport Layer Security (TLS) validation context trust.

Members
acm

A reference to an object that represents a Transport Layer Security (TLS) validation context trust for an Certificate Manager certificate.

file

An object that represents a Transport Layer Security (TLS) validation context trust for a local file.

sds

A reference to an object that represents a virtual gateway's Transport Layer Security (TLS) Secret Discovery Service validation context trust.

VirtualNodeConnectionPool

Description

An object that represents the type of virtual node connection pool.

Only one protocol is used at a time and should be the same protocol as the one chosen under port mapping.

If not present the default value for maxPendingRequests is 2147483647.

Members
grpc

An object that represents a type of connection pool.

http

An object that represents a type of connection pool.

http2

An object that represents a type of connection pool.

tcp

An object that represents a type of connection pool.

VirtualNodeData

Description

An object that represents a virtual node returned by a describe operation.

Members
meshName
Required: Yes
Type: string

The name of the service mesh that the virtual node resides in.

metadata
Required: Yes
Type: ResourceMetadata structure

The associated metadata for the virtual node.

spec
Required: Yes
Type: VirtualNodeSpec structure

The specifications of the virtual node.

status
Required: Yes
Type: VirtualNodeStatus structure

The current status for the virtual node.

virtualNodeName
Required: Yes
Type: string

The name of the virtual node.

VirtualNodeGrpcConnectionPool

Description

An object that represents a type of connection pool.

Members
maxRequests
Required: Yes
Type: int

Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster.

VirtualNodeHttp2ConnectionPool

Description

An object that represents a type of connection pool.

Members
maxRequests
Required: Yes
Type: int

Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster.

VirtualNodeHttpConnectionPool

Description

An object that represents a type of connection pool.

Members
maxConnections
Required: Yes
Type: int

Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster.

maxPendingRequests
Type: int

Number of overflowing requests after max_connections Envoy will queue to upstream cluster.

VirtualNodeRef

Description

An object that represents a virtual node returned by a list operation.

Members
arn
Required: Yes
Type: string

The full Amazon Resource Name (ARN) for the virtual node.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The Unix epoch timestamp in seconds for when the resource was created.

lastUpdatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The Unix epoch timestamp in seconds for when the resource was last updated.

meshName
Required: Yes
Type: string

The name of the service mesh that the virtual node resides in.

meshOwner
Required: Yes
Type: string

The Amazon Web Services 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.

resourceOwner
Required: Yes
Type: string

The Amazon Web Services IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with shared meshes.

version
Required: Yes
Type: long (int|float)

The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.

virtualNodeName
Required: Yes
Type: string

The name of the virtual node.

VirtualNodeServiceProvider

Description

An object that represents a virtual node service provider.

Members
virtualNodeName
Required: Yes
Type: string

The name of the virtual node that is acting as a service provider.

VirtualNodeSpec

Description

An object that represents the specification of a virtual node.

Members
backendDefaults
Type: BackendDefaults structure

A reference to an object that represents the defaults for backends.

backends
Type: Array of Backend structures

The backends that the virtual node is expected to send outbound traffic to.

listeners
Type: Array of Listener structures

The listener that the virtual node is expected to receive inbound traffic from. You can specify one listener.

logging
Type: Logging structure

The inbound and outbound access logging information for the virtual node.

serviceDiscovery
Type: ServiceDiscovery structure

The service discovery information for the virtual node. If your virtual node does not expect ingress traffic, you can omit this parameter. If you specify a listener, then you must specify service discovery information.

VirtualNodeStatus

Description

An object that represents the current status of the virtual node.

Members
status
Required: Yes
Type: string

The current status of the virtual node.

VirtualNodeTcpConnectionPool

Description

An object that represents a type of connection pool.

Members
maxConnections
Required: Yes
Type: int

Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster.

VirtualRouterData

Description

An object that represents a virtual router returned by a describe operation.

Members
meshName
Required: Yes
Type: string

The name of the service mesh that the virtual router resides in.

metadata
Required: Yes
Type: ResourceMetadata structure

The associated metadata for the virtual router.

spec
Required: Yes
Type: VirtualRouterSpec structure

The specifications of the virtual router.

status
Required: Yes
Type: VirtualRouterStatus structure

The current status of the virtual router.

virtualRouterName
Required: Yes
Type: string

The name of the virtual router.

VirtualRouterListener

Description

An object that represents a virtual router listener.

Members
portMapping
Required: Yes
Type: PortMapping structure

An object that represents a port mapping.

VirtualRouterRef

Description

An object that represents a virtual router returned by a list operation.

Members
arn
Required: Yes
Type: string

The full Amazon Resource Name (ARN) for the virtual router.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The Unix epoch timestamp in seconds for when the resource was created.

lastUpdatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The Unix epoch timestamp in seconds for when the resource was last updated.

meshName
Required: Yes
Type: string

The name of the service mesh that the virtual router resides in.

meshOwner
Required: Yes
Type: string

The Amazon Web Services 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.

resourceOwner
Required: Yes
Type: string

The Amazon Web Services IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with shared meshes.

version
Required: Yes
Type: long (int|float)

The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.

virtualRouterName
Required: Yes
Type: string

The name of the virtual router.

VirtualRouterServiceProvider

Description

An object that represents a virtual node service provider.

Members
virtualRouterName
Required: Yes
Type: string

The name of the virtual router that is acting as a service provider.

VirtualRouterSpec

Description

An object that represents the specification of a virtual router.

Members
listeners
Type: Array of VirtualRouterListener structures

The listeners that the virtual router is expected to receive inbound traffic from. You can specify one listener.

VirtualRouterStatus

Description

An object that represents the status of a virtual router.

Members
status
Required: Yes
Type: string

The current status of the virtual router.

VirtualServiceBackend

Description

An object that represents a virtual service backend for a virtual node.

Members
clientPolicy
Type: ClientPolicy structure

A reference to an object that represents the client policy for a backend.

virtualServiceName
Required: Yes
Type: string

The name of the virtual service that is acting as a virtual node backend.

VirtualServiceData

Description

An object that represents a virtual service returned by a describe operation.

Members
meshName
Required: Yes
Type: string

The name of the service mesh that the virtual service resides in.

metadata
Required: Yes
Type: ResourceMetadata structure

An object that represents metadata for a resource.

spec
Required: Yes
Type: VirtualServiceSpec structure

The specifications of the virtual service.

status
Required: Yes
Type: VirtualServiceStatus structure

The current status of the virtual service.

virtualServiceName
Required: Yes
Type: string

The name of the virtual service.

VirtualServiceProvider

Description

An object that represents the provider for a virtual service.

Members
virtualNode
Type: VirtualNodeServiceProvider structure

The virtual node associated with a virtual service.

virtualRouter

The virtual router associated with a virtual service.

VirtualServiceRef

Description

An object that represents a virtual service returned by a list operation.

Members
arn
Required: Yes
Type: string

The full Amazon Resource Name (ARN) for the virtual service.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The Unix epoch timestamp in seconds for when the resource was created.

lastUpdatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The Unix epoch timestamp in seconds for when the resource was last updated.

meshName
Required: Yes
Type: string

The name of the service mesh that the virtual service resides in.

meshOwner
Required: Yes
Type: string

The Amazon Web Services 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.

resourceOwner
Required: Yes
Type: string

The Amazon Web Services IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with shared meshes.

version
Required: Yes
Type: long (int|float)

The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.

virtualServiceName
Required: Yes
Type: string

The name of the virtual service.

VirtualServiceSpec

Description

An object that represents the specification of a virtual service.

Members
provider
Type: VirtualServiceProvider structure

The App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router.

VirtualServiceStatus

Description

An object that represents the status of a virtual service.

Members
status
Required: Yes
Type: string

The current status of the virtual service.

WeightedTarget

Description

An object that represents a target and its relative weight. Traffic is distributed across targets according to their relative weight. For example, a weighted target with a relative weight of 50 receives five times as much traffic as one with a relative weight of 10. The total weight for all targets combined must be less than or equal to 100.

Members
port
Type: int

The targeted port of the weighted object.

virtualNode
Required: Yes
Type: string

The virtual node to associate with the weighted target.

weight
Required: Yes
Type: int

The relative weight of the weighted target.