'2.0', 'metadata' => ['apiVersion' => '2018-10-01', 'endpointPrefix' => 'appmesh', 'jsonVersion' => '1.1', 'protocol' => 'rest-json', 'serviceFullName' => 'AWS App Mesh', 'serviceId' => 'App Mesh', 'signatureVersion' => 'v4', 'signingName' => 'appmesh', 'uid' => 'appmesh-2018-10-01'], 'operations' => ['CreateMesh' => ['name' => 'CreateMesh', 'http' => ['method' => 'PUT', 'requestUri' => '/meshes', 'responseCode' => 200], 'input' => ['shape' => 'CreateMeshInput'], 'output' => ['shape' => 'CreateMeshOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ConflictException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'LimitExceededException'], ['shape' => 'NotFoundException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']], 'idempotent' => \true], 'CreateRoute' => ['name' => 'CreateRoute', 'http' => ['method' => 'PUT', 'requestUri' => '/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes', 'responseCode' => 200], 'input' => ['shape' => 'CreateRouteInput'], 'output' => ['shape' => 'CreateRouteOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ConflictException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'LimitExceededException'], ['shape' => 'NotFoundException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']], 'idempotent' => \true], 'CreateVirtualNode' => ['name' => 'CreateVirtualNode', 'http' => ['method' => 'PUT', 'requestUri' => '/meshes/{meshName}/virtualNodes', 'responseCode' => 200], 'input' => ['shape' => 'CreateVirtualNodeInput'], 'output' => ['shape' => 'CreateVirtualNodeOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ConflictException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'LimitExceededException'], ['shape' => 'NotFoundException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']], 'idempotent' => \true], 'CreateVirtualRouter' => ['name' => 'CreateVirtualRouter', 'http' => ['method' => 'PUT', 'requestUri' => '/meshes/{meshName}/virtualRouters', 'responseCode' => 200], 'input' => ['shape' => 'CreateVirtualRouterInput'], 'output' => ['shape' => 'CreateVirtualRouterOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ConflictException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'LimitExceededException'], ['shape' => 'NotFoundException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']], 'idempotent' => \true], 'DeleteMesh' => ['name' => 'DeleteMesh', 'http' => ['method' => 'DELETE', 'requestUri' => '/meshes/{meshName}', 'responseCode' => 200], 'input' => ['shape' => 'DeleteMeshInput'], 'output' => ['shape' => 'DeleteMeshOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'NotFoundException'], ['shape' => 'ResourceInUseException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']], 'idempotent' => \true], 'DeleteRoute' => ['name' => 'DeleteRoute', 'http' => ['method' => 'DELETE', 'requestUri' => '/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}', 'responseCode' => 200], 'input' => ['shape' => 'DeleteRouteInput'], 'output' => ['shape' => 'DeleteRouteOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'NotFoundException'], ['shape' => 'ResourceInUseException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']], 'idempotent' => \true], 'DeleteVirtualNode' => ['name' => 'DeleteVirtualNode', 'http' => ['method' => 'DELETE', 'requestUri' => '/meshes/{meshName}/virtualNodes/{virtualNodeName}', 'responseCode' => 200], 'input' => ['shape' => 'DeleteVirtualNodeInput'], 'output' => ['shape' => 'DeleteVirtualNodeOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'NotFoundException'], ['shape' => 'ResourceInUseException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']], 'idempotent' => \true], 'DeleteVirtualRouter' => ['name' => 'DeleteVirtualRouter', 'http' => ['method' => 'DELETE', 'requestUri' => '/meshes/{meshName}/virtualRouters/{virtualRouterName}', 'responseCode' => 200], 'input' => ['shape' => 'DeleteVirtualRouterInput'], 'output' => ['shape' => 'DeleteVirtualRouterOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'NotFoundException'], ['shape' => 'ResourceInUseException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']], 'idempotent' => \true], 'DescribeMesh' => ['name' => 'DescribeMesh', 'http' => ['method' => 'GET', 'requestUri' => '/meshes/{meshName}', 'responseCode' => 200], 'input' => ['shape' => 'DescribeMeshInput'], 'output' => ['shape' => 'DescribeMeshOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'NotFoundException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']]], 'DescribeRoute' => ['name' => 'DescribeRoute', 'http' => ['method' => 'GET', 'requestUri' => '/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}', 'responseCode' => 200], 'input' => ['shape' => 'DescribeRouteInput'], 'output' => ['shape' => 'DescribeRouteOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'NotFoundException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']]], 'DescribeVirtualNode' => ['name' => 'DescribeVirtualNode', 'http' => ['method' => 'GET', 'requestUri' => '/meshes/{meshName}/virtualNodes/{virtualNodeName}', 'responseCode' => 200], 'input' => ['shape' => 'DescribeVirtualNodeInput'], 'output' => ['shape' => 'DescribeVirtualNodeOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'NotFoundException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']]], 'DescribeVirtualRouter' => ['name' => 'DescribeVirtualRouter', 'http' => ['method' => 'GET', 'requestUri' => '/meshes/{meshName}/virtualRouters/{virtualRouterName}', 'responseCode' => 200], 'input' => ['shape' => 'DescribeVirtualRouterInput'], 'output' => ['shape' => 'DescribeVirtualRouterOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'NotFoundException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']]], 'ListMeshes' => ['name' => 'ListMeshes', 'http' => ['method' => 'GET', 'requestUri' => '/meshes', 'responseCode' => 200], 'input' => ['shape' => 'ListMeshesInput'], 'output' => ['shape' => 'ListMeshesOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'NotFoundException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']]], 'ListRoutes' => ['name' => 'ListRoutes', 'http' => ['method' => 'GET', 'requestUri' => '/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes', 'responseCode' => 200], 'input' => ['shape' => 'ListRoutesInput'], 'output' => ['shape' => 'ListRoutesOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'NotFoundException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']]], 'ListVirtualNodes' => ['name' => 'ListVirtualNodes', 'http' => ['method' => 'GET', 'requestUri' => '/meshes/{meshName}/virtualNodes', 'responseCode' => 200], 'input' => ['shape' => 'ListVirtualNodesInput'], 'output' => ['shape' => 'ListVirtualNodesOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'NotFoundException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']]], 'ListVirtualRouters' => ['name' => 'ListVirtualRouters', 'http' => ['method' => 'GET', 'requestUri' => '/meshes/{meshName}/virtualRouters', 'responseCode' => 200], 'input' => ['shape' => 'ListVirtualRoutersInput'], 'output' => ['shape' => 'ListVirtualRoutersOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'NotFoundException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']]], 'UpdateRoute' => ['name' => 'UpdateRoute', 'http' => ['method' => 'PUT', 'requestUri' => '/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}', 'responseCode' => 200], 'input' => ['shape' => 'UpdateRouteInput'], 'output' => ['shape' => 'UpdateRouteOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ConflictException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'LimitExceededException'], ['shape' => 'NotFoundException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']], 'idempotent' => \true], 'UpdateVirtualNode' => ['name' => 'UpdateVirtualNode', 'http' => ['method' => 'PUT', 'requestUri' => '/meshes/{meshName}/virtualNodes/{virtualNodeName}', 'responseCode' => 200], 'input' => ['shape' => 'UpdateVirtualNodeInput'], 'output' => ['shape' => 'UpdateVirtualNodeOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ConflictException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'LimitExceededException'], ['shape' => 'NotFoundException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']], 'idempotent' => \true], 'UpdateVirtualRouter' => ['name' => 'UpdateVirtualRouter', 'http' => ['method' => 'PUT', 'requestUri' => '/meshes/{meshName}/virtualRouters/{virtualRouterName}', 'responseCode' => 200], 'input' => ['shape' => 'UpdateVirtualRouterInput'], 'output' => ['shape' => 'UpdateVirtualRouterOutput'], 'errors' => [['shape' => 'BadRequestException'], ['shape' => 'ConflictException'], ['shape' => 'ForbiddenException'], ['shape' => 'InternalServerErrorException'], ['shape' => 'LimitExceededException'], ['shape' => 'NotFoundException'], ['shape' => 'ServiceUnavailableException'], ['shape' => 'TooManyRequestsException']], 'idempotent' => \true]], 'shapes' => ['ServiceName' => ['type' => 'string'], 'InternalServerErrorException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true, 'error' => ['code' => 'InternalServerErrorException', 'httpStatusCode' => 500, 'fault' => \true]], 'HealthCheckThreshold' => ['type' => 'integer', 'min' => 2, 'max' => 10], 'DeleteMeshOutput' => ['type' => 'structure', 'members' => ['mesh' => ['shape' => 'MeshData']], 'payload' => 'mesh'], 'Long' => ['type' => 'long', 'box' => \true], 'ForbiddenException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true, 'error' => ['code' => 'ForbiddenException', 'httpStatusCode' => 403, 'senderFault' => \true]], 'UpdateVirtualRouterOutput' => ['type' => 'structure', 'members' => ['virtualRouter' => ['shape' => 'VirtualRouterData']], 'payload' => 'virtualRouter'], 'MeshStatusCode' => ['type' => 'string', 'enum' => ['ACTIVE', 'DELETED', 'INACTIVE']], 'PortNumber' => ['type' => 'integer', 'min' => 1, 'max' => 65535], 'WeightedTarget' => ['type' => 'structure', 'members' => ['virtualNode' => ['shape' => 'ResourceName'], 'weight' => ['shape' => 'PercentInt']]], 'VirtualNodeList' => ['type' => 'list', 'member' => ['shape' => 'VirtualNodeRef']], 'CreateRouteOutput' => ['type' => 'structure', 'members' => ['route' => ['shape' => 'RouteData']], 'payload' => 'route'], 'RouteList' => ['type' => 'list', 'member' => ['shape' => 'RouteRef']], 'DeleteVirtualNodeInput' => ['type' => 'structure', 'required' => ['meshName', 'virtualNodeName'], 'members' => ['meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName'], 'virtualNodeName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualNodeName']]], 'ListVirtualRoutersLimit' => ['type' => 'integer', 'box' => \true, 'min' => 1, 'max' => 100], 'DnsServiceDiscovery' => ['type' => 'structure', 'members' => ['serviceName' => ['shape' => 'ServiceName']]], 'ConflictException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true, 'error' => ['code' => 'ConflictException', 'httpStatusCode' => 409, 'senderFault' => \true]], 'HealthCheckIntervalMillis' => ['type' => 'long', 'box' => \true, 'min' => 5000, 'max' => 300000], 'VirtualNodeRef' => ['type' => 'structure', 'members' => ['arn' => ['shape' => 'Arn'], 'meshName' => ['shape' => 'ResourceName'], 'virtualNodeName' => ['shape' => 'ResourceName']]], 'DescribeRouteOutput' => ['type' => 'structure', 'members' => ['route' => ['shape' => 'RouteData']], 'payload' => 'route'], 'ServiceDiscovery' => ['type' => 'structure', 'members' => ['dns' => ['shape' => 'DnsServiceDiscovery']]], 'MeshStatus' => ['type' => 'structure', 'members' => ['status' => ['shape' => 'MeshStatusCode']]], 'VirtualNodeData' => ['type' => 'structure', 'required' => ['meshName', 'virtualNodeName'], 'members' => ['meshName' => ['shape' => 'ResourceName'], 'metadata' => ['shape' => 'ResourceMetadata'], 'spec' => ['shape' => 'VirtualNodeSpec'], 'status' => ['shape' => 'VirtualNodeStatus'], 'virtualNodeName' => ['shape' => 'ResourceName']]], 'VirtualNodeSpec' => ['type' => 'structure', 'members' => ['backends' => ['shape' => 'Backends'], 'listeners' => ['shape' => 'Listeners'], 'serviceDiscovery' => ['shape' => 'ServiceDiscovery']]], 'ServiceNames' => ['type' => 'list', 'member' => ['shape' => 'ServiceName'], 'max' => 10], 'MeshRef' => ['type' => 'structure', 'members' => ['arn' => ['shape' => 'Arn'], 'meshName' => ['shape' => 'ResourceName']]], 'DescribeVirtualRouterInput' => ['type' => 'structure', 'required' => ['meshName', 'virtualRouterName'], 'members' => ['meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName'], 'virtualRouterName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName']]], 'DescribeVirtualRouterOutput' => ['type' => 'structure', 'members' => ['virtualRouter' => ['shape' => 'VirtualRouterData']], 'payload' => 'virtualRouter'], 'LimitExceededException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true, 'error' => ['code' => 'LimitExceededException', 'httpStatusCode' => 400, 'senderFault' => \true]], 'UpdateRouteOutput' => ['type' => 'structure', 'members' => ['route' => ['shape' => 'RouteData']], 'payload' => 'route'], 'HttpRouteAction' => ['type' => 'structure', 'members' => ['weightedTargets' => ['shape' => 'WeightedTargets']]], 'CreateVirtualRouterOutput' => ['type' => 'structure', 'members' => ['virtualRouter' => ['shape' => 'VirtualRouterData']], 'payload' => 'virtualRouter'], 'HealthCheckTimeoutMillis' => ['type' => 'long', 'box' => \true, 'min' => 2000, 'max' => 60000], 'CreateVirtualRouterInput' => ['type' => 'structure', 'required' => ['meshName', 'spec', 'virtualRouterName'], 'members' => ['clientToken' => ['shape' => 'String', 'idempotencyToken' => \true], 'meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName'], 'spec' => ['shape' => 'VirtualRouterSpec'], 'virtualRouterName' => ['shape' => 'ResourceName']]], 'RouteStatus' => ['type' => 'structure', 'members' => ['status' => ['shape' => 'RouteStatusCode']]], 'ListMeshesInput' => ['type' => 'structure', 'members' => ['limit' => ['shape' => 'ListMeshesLimit', 'location' => 'querystring', 'locationName' => 'limit'], 'nextToken' => ['shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken']]], 'VirtualRouterStatus' => ['type' => 'structure', 'members' => ['status' => ['shape' => 'VirtualRouterStatusCode']]], 'TooManyRequestsException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true, 'error' => ['code' => 'TooManyRequestsException', 'httpStatusCode' => 429, 'senderFault' => \true]], 'ListMeshesOutput' => ['type' => 'structure', 'required' => ['meshes'], 'members' => ['meshes' => ['shape' => 'MeshList'], 'nextToken' => ['shape' => 'String']]], 'DescribeVirtualNodeOutput' => ['type' => 'structure', 'members' => ['virtualNode' => ['shape' => 'VirtualNodeData']], 'payload' => 'virtualNode'], 'CreateMeshOutput' => ['type' => 'structure', 'members' => ['mesh' => ['shape' => 'MeshData']], 'payload' => 'mesh'], 'ResourceName' => ['type' => 'string', 'min' => 1, 'max' => 255], 'RouteData' => ['type' => 'structure', 'required' => ['meshName', 'routeName', 'virtualRouterName'], 'members' => ['meshName' => ['shape' => 'ResourceName'], 'metadata' => ['shape' => 'ResourceMetadata'], 'routeName' => ['shape' => 'ResourceName'], 'spec' => ['shape' => 'RouteSpec'], 'status' => ['shape' => 'RouteStatus'], 'virtualRouterName' => ['shape' => 'ResourceName']]], 'Arn' => ['type' => 'string'], 'NotFoundException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true, 'error' => ['code' => 'NotFoundException', 'httpStatusCode' => 404, 'senderFault' => \true]], 'UpdateVirtualNodeInput' => ['type' => 'structure', 'required' => ['meshName', 'spec', 'virtualNodeName'], 'members' => ['clientToken' => ['shape' => 'String', 'idempotencyToken' => \true], 'meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName'], 'spec' => ['shape' => 'VirtualNodeSpec'], 'virtualNodeName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualNodeName']]], 'DeleteRouteInput' => ['type' => 'structure', 'required' => ['meshName', 'routeName', 'virtualRouterName'], 'members' => ['meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName'], 'routeName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'routeName'], 'virtualRouterName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName']]], 'ServiceUnavailableException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true, 'error' => ['code' => 'ServiceUnavailableException', 'httpStatusCode' => 503, 'fault' => \true]], 'Listeners' => ['type' => 'list', 'member' => ['shape' => 'Listener']], 'ListRoutesInput' => ['type' => 'structure', 'required' => ['meshName', 'virtualRouterName'], 'members' => ['limit' => ['shape' => 'ListRoutesLimit', 'location' => 'querystring', 'locationName' => 'limit'], 'meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName'], 'nextToken' => ['shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken'], 'virtualRouterName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName']]], 'HttpRoute' => ['type' => 'structure', 'members' => ['action' => ['shape' => 'HttpRouteAction'], 'match' => ['shape' => 'HttpRouteMatch']]], 'Timestamp' => ['type' => 'timestamp'], 'ListRoutesOutput' => ['type' => 'structure', 'required' => ['routes'], 'members' => ['nextToken' => ['shape' => 'String'], 'routes' => ['shape' => 'RouteList']]], 'RouteSpec' => ['type' => 'structure', 'members' => ['httpRoute' => ['shape' => 'HttpRoute']]], 'DescribeVirtualNodeInput' => ['type' => 'structure', 'required' => ['meshName', 'virtualNodeName'], 'members' => ['meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName'], 'virtualNodeName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualNodeName']]], 'VirtualRouterRef' => ['type' => 'structure', 'members' => ['arn' => ['shape' => 'Arn'], 'meshName' => ['shape' => 'ResourceName'], 'virtualRouterName' => ['shape' => 'ResourceName']]], 'VirtualRouterStatusCode' => ['type' => 'string', 'enum' => ['ACTIVE', 'DELETED', 'INACTIVE']], 'ListVirtualNodesOutput' => ['type' => 'structure', 'required' => ['virtualNodes'], 'members' => ['nextToken' => ['shape' => 'String'], 'virtualNodes' => ['shape' => 'VirtualNodeList']]], 'DeleteVirtualNodeOutput' => ['type' => 'structure', 'members' => ['virtualNode' => ['shape' => 'VirtualNodeData']], 'payload' => 'virtualNode'], 'UpdateVirtualRouterInput' => ['type' => 'structure', 'required' => ['meshName', 'spec', 'virtualRouterName'], 'members' => ['clientToken' => ['shape' => 'String', 'idempotencyToken' => \true], 'meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName'], 'spec' => ['shape' => 'VirtualRouterSpec'], 'virtualRouterName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName']]], 'ResourceInUseException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true, 'error' => ['code' => 'ResourceInUseException', 'httpStatusCode' => 409, 'senderFault' => \true]], 'DescribeRouteInput' => ['type' => 'structure', 'required' => ['meshName', 'routeName', 'virtualRouterName'], 'members' => ['meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName'], 'routeName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'routeName'], 'virtualRouterName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName']]], 'ListVirtualRoutersOutput' => ['type' => 'structure', 'required' => ['virtualRouters'], 'members' => ['nextToken' => ['shape' => 'String'], 'virtualRouters' => ['shape' => 'VirtualRouterList']]], 'CreateVirtualNodeOutput' => ['type' => 'structure', 'members' => ['virtualNode' => ['shape' => 'VirtualNodeData']], 'payload' => 'virtualNode'], 'DeleteVirtualRouterOutput' => ['type' => 'structure', 'members' => ['virtualRouter' => ['shape' => 'VirtualRouterData']], 'payload' => 'virtualRouter'], 'ListRoutesLimit' => ['type' => 'integer', 'box' => \true, 'min' => 1, 'max' => 100], 'PortProtocol' => ['type' => 'string', 'enum' => ['http', 'tcp']], 'MeshList' => ['type' => 'list', 'member' => ['shape' => 'MeshRef']], 'ResourceMetadata' => ['type' => 'structure', 'members' => ['arn' => ['shape' => 'Arn'], 'createdAt' => ['shape' => 'Timestamp'], 'lastUpdatedAt' => ['shape' => 'Timestamp'], 'uid' => ['shape' => 'String'], 'version' => ['shape' => 'Long']]], 'CreateMeshInput' => ['type' => 'structure', 'required' => ['meshName'], 'members' => ['clientToken' => ['shape' => 'String', 'idempotencyToken' => \true], 'meshName' => ['shape' => 'ResourceName']]], 'PortMapping' => ['type' => 'structure', 'members' => ['port' => ['shape' => 'PortNumber'], 'protocol' => ['shape' => 'PortProtocol']]], 'VirtualNodeStatusCode' => ['type' => 'string', 'enum' => ['ACTIVE', 'DELETED', 'INACTIVE']], 'DeleteVirtualRouterInput' => ['type' => 'structure', 'required' => ['meshName', 'virtualRouterName'], 'members' => ['meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName'], 'virtualRouterName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName']]], 'VirtualRouterSpec' => ['type' => 'structure', 'members' => ['serviceNames' => ['shape' => 'ServiceNames']]], 'UpdateRouteInput' => ['type' => 'structure', 'required' => ['meshName', 'routeName', 'spec', 'virtualRouterName'], 'members' => ['clientToken' => ['shape' => 'String', 'idempotencyToken' => \true], 'meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName'], 'routeName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'routeName'], 'spec' => ['shape' => 'RouteSpec'], 'virtualRouterName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName']]], 'PercentInt' => ['type' => 'integer', 'min' => 0, 'max' => 100], 'ListMeshesLimit' => ['type' => 'integer', 'box' => \true, 'min' => 1, 'max' => 100], 'DescribeMeshInput' => ['type' => 'structure', 'required' => ['meshName'], 'members' => ['meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName']]], 'DescribeMeshOutput' => ['type' => 'structure', 'members' => ['mesh' => ['shape' => 'MeshData']], 'payload' => 'mesh'], 'VirtualRouterData' => ['type' => 'structure', 'required' => ['meshName', 'virtualRouterName'], 'members' => ['meshName' => ['shape' => 'ResourceName'], 'metadata' => ['shape' => 'ResourceMetadata'], 'spec' => ['shape' => 'VirtualRouterSpec'], 'status' => ['shape' => 'VirtualRouterStatus'], 'virtualRouterName' => ['shape' => 'ResourceName']]], 'VirtualRouterList' => ['type' => 'list', 'member' => ['shape' => 'VirtualRouterRef']], 'Listener' => ['type' => 'structure', 'members' => ['healthCheck' => ['shape' => 'HealthCheckPolicy'], 'portMapping' => ['shape' => 'PortMapping']]], 'String' => ['type' => 'string'], 'HealthCheckPolicy' => ['type' => 'structure', 'required' => ['healthyThreshold', 'intervalMillis', 'protocol', 'timeoutMillis', 'unhealthyThreshold'], 'members' => ['healthyThreshold' => ['shape' => 'HealthCheckThreshold'], 'intervalMillis' => ['shape' => 'HealthCheckIntervalMillis'], 'path' => ['shape' => 'String'], 'port' => ['shape' => 'PortNumber'], 'protocol' => ['shape' => 'PortProtocol'], 'timeoutMillis' => ['shape' => 'HealthCheckTimeoutMillis'], 'unhealthyThreshold' => ['shape' => 'HealthCheckThreshold']]], 'ListVirtualRoutersInput' => ['type' => 'structure', 'required' => ['meshName'], 'members' => ['limit' => ['shape' => 'ListVirtualRoutersLimit', 'location' => 'querystring', 'locationName' => 'limit'], 'meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName'], 'nextToken' => ['shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken']]], 'CreateVirtualNodeInput' => ['type' => 'structure', 'required' => ['meshName', 'spec', 'virtualNodeName'], 'members' => ['clientToken' => ['shape' => 'String', 'idempotencyToken' => \true], 'meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName'], 'spec' => ['shape' => 'VirtualNodeSpec'], 'virtualNodeName' => ['shape' => 'ResourceName']]], 'BadRequestException' => ['type' => 'structure', 'members' => ['message' => ['shape' => 'String']], 'exception' => \true, 'error' => ['code' => 'BadRequestException', 'httpStatusCode' => 400, 'senderFault' => \true]], 'MeshData' => ['type' => 'structure', 'required' => ['meshName', 'metadata'], 'members' => ['meshName' => ['shape' => 'ResourceName'], 'metadata' => ['shape' => 'ResourceMetadata'], 'status' => ['shape' => 'MeshStatus']]], 'ListVirtualNodesLimit' => ['type' => 'integer', 'box' => \true, 'min' => 1, 'max' => 100], 'WeightedTargets' => ['type' => 'list', 'member' => ['shape' => 'WeightedTarget']], 'DeleteMeshInput' => ['type' => 'structure', 'required' => ['meshName'], 'members' => ['meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName']]], 'HttpRouteMatch' => ['type' => 'structure', 'members' => ['prefix' => ['shape' => 'String']]], 'DeleteRouteOutput' => ['type' => 'structure', 'members' => ['route' => ['shape' => 'RouteData']], 'payload' => 'route'], 'Backends' => ['type' => 'list', 'member' => ['shape' => 'ServiceName']], 'CreateRouteInput' => ['type' => 'structure', 'required' => ['meshName', 'routeName', 'spec', 'virtualRouterName'], 'members' => ['clientToken' => ['shape' => 'String', 'idempotencyToken' => \true], 'meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName'], 'routeName' => ['shape' => 'ResourceName'], 'spec' => ['shape' => 'RouteSpec'], 'virtualRouterName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'virtualRouterName']]], 'VirtualNodeStatus' => ['type' => 'structure', 'members' => ['status' => ['shape' => 'VirtualNodeStatusCode']]], 'ListVirtualNodesInput' => ['type' => 'structure', 'required' => ['meshName'], 'members' => ['limit' => ['shape' => 'ListVirtualNodesLimit', 'location' => 'querystring', 'locationName' => 'limit'], 'meshName' => ['shape' => 'ResourceName', 'location' => 'uri', 'locationName' => 'meshName'], 'nextToken' => ['shape' => 'String', 'location' => 'querystring', 'locationName' => 'nextToken']]], 'RouteRef' => ['type' => 'structure', 'members' => ['arn' => ['shape' => 'Arn'], 'meshName' => ['shape' => 'ResourceName'], 'routeName' => ['shape' => 'ResourceName'], 'virtualRouterName' => ['shape' => 'ResourceName']]], 'RouteStatusCode' => ['type' => 'string', 'enum' => ['ACTIVE', 'DELETED', 'INACTIVE']], 'UpdateVirtualNodeOutput' => ['type' => 'structure', 'members' => ['virtualNode' => ['shape' => 'VirtualNodeData']], 'payload' => 'virtualNode']]];