export interface TagRef {
    /** 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. */
    key: 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). */
    value: string;
}
export interface HttpGatewayRoute {
    /** An object that represents the criteria for determining a request match. */
    match: any;
    /** An object that represents the action to take if a match is determined. */
    action: any;
}
export interface GrpcGatewayRoute {
    /** An object that represents the criteria for determining a request match. */
    match: any;
    /** An object that represents the action to take if a match is determined. */
    action: any;
}
export interface GatewayRouteSpec {
    /** The ordering of the gateway routes spec. */
    priority?: number;
    /** An object that represents the specification of an HTTP gateway route. */
    httpRoute?: HttpGatewayRoute;
    /** An object that represents the specification of an HTTP/2 gateway route. */
    http2Route?: HttpGatewayRoute;
    /** An object that represents the specification of a gRPC gateway route. */
    grpcRoute?: GrpcGatewayRoute;
}
export interface EgressFilter {
    /** 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  */
    type: 'ALLOW_ALL' | 'DROP_ALL';
}
export interface MeshServiceDiscovery {
    /** The IP version to use to control traffic within the mesh. */
    ipPreference?: 'IPv6_PREFERRED' | 'IPv4_PREFERRED' | 'IPv4_ONLY' | 'IPv6_ONLY';
}
export interface MeshSpec {
    /** The egress filter rules for the service mesh. */
    egressFilter?: EgressFilter;
    serviceDiscovery?: MeshServiceDiscovery;
}
export interface HttpRoute {
    /** An object that represents the criteria for determining a request match. */
    match: any;
    /** An object that represents the action to take if a match is determined. */
    action: any;
    /** An object that represents a retry policy. */
    retryPolicy?: any;
    /** An object that represents types of timeouts. */
    timeout?: any;
}
export interface TcpRoute {
    /** The action to take if a match is determined. */
    action: any;
    /** An object that represents types of timeouts. */
    timeout?: any;
    /** An object that represents the criteria for determining a request match. */
    match?: any;
}
export interface GrpcRoute {
    /** An object that represents the action to take if a match is determined. */
    action: any;
    /** An object that represents the criteria for determining a request match. */
    match: any;
    /** An object that represents a retry policy. */
    retryPolicy?: any;
    /** An object that represents types of timeouts. */
    timeout?: any;
}
export interface RouteSpec {
    /** The priority for the route. Routes are matched based on the specified value, where 0 is the highest priority. */
    priority?: number;
    /** An object that represents the specification of an HTTP route. */
    httpRoute?: HttpRoute;
    /** An object that represents the specification of a TCP route. */
    tcpRoute?: TcpRoute;
    /** An object that represents the specification of an HTTP/2 route. */
    http2Route?: HttpRoute;
    /** An object that represents the specification of a gRPC route. */
    grpcRoute?: GrpcRoute;
}
export interface VirtualGatewayBackendDefaults {
    /** A reference to an object that represents a client policy. */
    clientPolicy?: any;
}
export interface VirtualGatewayLogging {
    /** The access log configuration. */
    accessLog?: any;
}
export interface VirtualGatewaySpec {
    /** A reference to an object that represents the defaults for backends. */
    backendDefaults?: VirtualGatewayBackendDefaults;
    /** The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener. */
    listeners: any[];
    logging?: VirtualGatewayLogging;
}
export interface BackendDefaults {
    /** A reference to an object that represents a client policy. */
    clientPolicy?: any;
}
export interface Logging {
    /** The access log configuration for a virtual node. */
    accessLog?: any;
}
export interface VirtualNodeSpec {
    /** 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 disc */
    serviceDiscovery?: {
        dns?: any;
    } | {
        awsCloudMap?: any;
    };
    /** The listener that the virtual node is expected to receive inbound traffic from. You can specify one listener. */
    listeners?: any[];
    /** The backends that the virtual node is expected to send outbound traffic to. */
    backends?: any[];
    /** A reference to an object that represents the defaults for backends. */
    backendDefaults?: BackendDefaults;
    /** The inbound and outbound access logging information for the virtual node. */
    logging?: Logging;
}
export interface VirtualRouterSpec {
    /** The listeners that the virtual router is expected to receive inbound traffic from. You can specify one listener. */
    listeners?: any[];
}
export interface VirtualServiceSpec {
    /** The App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router. */
    provider?: {
        virtualNode?: any;
    } | {
        virtualRouter?: any;
    };
}
export interface DeleteGatewayRouteInput {
    /** The name of the gateway route to delete. */
    gatewayRouteName: string;
    /** The name of the service mesh to delete the gateway route from. */
    meshName: string;
    /** The name of the virtual gateway to delete the route from. */
    virtualGatewayName: 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  */
    meshOwner?: string;
}
export interface DeleteMeshInput {
    /** The name of the service mesh to delete. */
    meshName: string;
}
export interface DeleteRouteInput {
    /** The name of the service mesh to delete the route in. */
    meshName: string;
    /** The name of the route to delete. */
    routeName: string;
    /** The name of the virtual router to delete the route in. */
    virtualRouterName: 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  */
    meshOwner?: string;
}
export interface DeleteVirtualGatewayInput {
    /** The name of the service mesh to delete the virtual gateway from. */
    meshName: string;
    /** The name of the virtual gateway to delete. */
    virtualGatewayName: 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  */
    meshOwner?: string;
}
/** Deletes a virtual node input. */
export interface DeleteVirtualNodeInput {
    /** The name of the service mesh to delete the virtual node in. */
    meshName: string;
    /** The name of the virtual node to delete. */
    virtualNodeName: 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  */
    meshOwner?: string;
}
export interface DeleteVirtualRouterInput {
    /** The name of the service mesh to delete the virtual router in. */
    meshName: string;
    /** The name of the virtual router to delete. */
    virtualRouterName: 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  */
    meshOwner?: string;
}
export interface DeleteVirtualServiceInput {
    /** The name of the service mesh to delete the virtual service in. */
    meshName: string;
    /** The name of the virtual service to delete. */
    virtualServiceName: 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  */
    meshOwner?: string;
}
export interface DescribeGatewayRouteInput {
    /** The name of the gateway route to describe. */
    gatewayRouteName: string;
    /** The name of the service mesh that the gateway route resides in. */
    meshName: string;
    /** The name of the virtual gateway that the gateway route is associated with. */
    virtualGatewayName: 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  */
    meshOwner?: string;
}
export interface DescribeMeshInput {
    /** The name of the service mesh to describe. */
    meshName: 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  */
    meshOwner?: string;
}
export interface DescribeRouteInput {
    /** The name of the service mesh that the route resides in. */
    meshName: string;
    /** The name of the route to describe. */
    routeName: string;
    /** The name of the virtual router that the route is associated with. */
    virtualRouterName: 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  */
    meshOwner?: string;
}
export interface DescribeVirtualGatewayInput {
    /** The name of the service mesh that the gateway route resides in. */
    meshName: string;
    /** The name of the virtual gateway to describe. */
    virtualGatewayName: 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  */
    meshOwner?: string;
}
export interface DescribeVirtualNodeInput {
    /** The name of the service mesh that the virtual node resides in. */
    meshName: string;
    /** The name of the virtual node to describe. */
    virtualNodeName: 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  */
    meshOwner?: string;
}
export interface DescribeVirtualRouterInput {
    /** The name of the service mesh that the virtual router resides in. */
    meshName: string;
    /** The name of the virtual router to describe. */
    virtualRouterName: 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  */
    meshOwner?: string;
}
export interface DescribeVirtualServiceInput {
    /** The name of the service mesh that the virtual service resides in. */
    meshName: string;
    /** The name of the virtual service to describe. */
    virtualServiceName: 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  */
    meshOwner?: string;
}
export interface ListGatewayRoutesInput {
    /** The name of the service mesh to list gateway routes in. */
    meshName: string;
    /** The name of the virtual gateway to list gateway routes in. */
    virtualGatewayName: string;
    /** 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 respo */
    limit?: number;
    /** 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  */
    meshOwner?: 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 pre */
    nextToken?: string;
}
export interface ListMeshesInput {
    /** 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. Y */
    limit?: number;
    /** 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 r */
    nextToken?: string;
}
export interface ListRoutesInput {
    /** The name of the service mesh to list routes in. */
    meshName: string;
    /** The name of the virtual router to list routes in. */
    virtualRouterName: string;
    /** 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. Y */
    limit?: number;
    /** 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  */
    meshOwner?: 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 r */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) that identifies the resource to list the tags for. */
    resourceArn: string;
    /** 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 nextTok */
    limit?: number;
    /** 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 p */
    nextToken?: string;
}
export interface ListVirtualGatewaysInput {
    /** The name of the service mesh to list virtual gateways in. */
    meshName: string;
    /** 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 r */
    limit?: number;
    /** 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  */
    meshOwner?: 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 p */
    nextToken?: string;
}
export interface ListVirtualNodesInput {
    /** The name of the service mesh to list virtual nodes in. */
    meshName: string;
    /** 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 respons */
    limit?: number;
    /** 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  */
    meshOwner?: 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 prev */
    nextToken?: string;
}
export interface ListVirtualRoutersInput {
    /** The name of the service mesh to list virtual routers in. */
    meshName: string;
    /** 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 res */
    limit?: number;
    /** 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  */
    meshOwner?: 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 pr */
    nextToken?: string;
}
export interface ListVirtualServicesInput {
    /** The name of the service mesh to list virtual services in. */
    meshName: string;
    /** 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 r */
    limit?: number;
    /** 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  */
    meshOwner?: 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 p */
    nextToken?: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to add tags to. */
    resourceArn: string;
    /** 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. */
    tags: TagRef[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to delete tags from. */
    resourceArn: string;
    /** The keys of the tags to be removed. */
    tagKeys: string[];
}
export interface UpdateGatewayRouteInput {
    /** The name of the gateway route to update. */
    gatewayRouteName: string;
    /** The name of the service mesh that the gateway route resides in. */
    meshName: string;
    /** The new gateway route specification to apply. This overwrites the existing data. */
    spec: GatewayRouteSpec;
    /** The name of the virtual gateway that the gateway route is associated with. */
    virtualGatewayName: 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. */
    clientToken?: 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  */
    meshOwner?: string;
}
export interface UpdateMeshInput {
    /** The name of the service mesh to update. */
    meshName: 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. */
    clientToken?: string;
    /** The service mesh specification to apply. */
    spec?: MeshSpec;
}
export interface UpdateRouteInput {
    /** The name of the service mesh that the route resides in. */
    meshName: string;
    /** The name of the route to update. */
    routeName: string;
    /** The new route specification to apply. This overwrites the existing data. */
    spec: RouteSpec;
    /** The name of the virtual router that the route is associated with. */
    virtualRouterName: 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. */
    clientToken?: 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  */
    meshOwner?: string;
}
export interface UpdateVirtualGatewayInput {
    /** The name of the service mesh that the virtual gateway resides in. */
    meshName: string;
    /** The new virtual gateway specification to apply. This overwrites the existing data. */
    spec: VirtualGatewaySpec;
    /** The name of the virtual gateway to update. */
    virtualGatewayName: 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. */
    clientToken?: 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  */
    meshOwner?: string;
}
export interface UpdateVirtualNodeInput {
    /** The name of the service mesh that the virtual node resides in. */
    meshName: string;
    /** The new virtual node specification to apply. This overwrites the existing data. */
    spec: VirtualNodeSpec;
    /** The name of the virtual node to update. */
    virtualNodeName: 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. */
    clientToken?: 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  */
    meshOwner?: string;
}
export interface UpdateVirtualRouterInput {
    /** The name of the service mesh that the virtual router resides in. */
    meshName: string;
    /** The new virtual router specification to apply. This overwrites the existing data. */
    spec: VirtualRouterSpec;
    /** The name of the virtual router to update. */
    virtualRouterName: 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. */
    clientToken?: 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  */
    meshOwner?: string;
}
export interface UpdateVirtualServiceInput {
    /** The name of the service mesh that the virtual service resides in. */
    meshName: string;
    /** The new virtual service specification to apply. This overwrites the existing data. */
    spec: VirtualServiceSpec;
    /** The name of the virtual service to update. */
    virtualServiceName: 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. */
    clientToken?: 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  */
    meshOwner?: string;
}
/** App Mesh service binding for Step Functions SDK integrations. */
export declare class AppMesh {
    constructor();
    deleteGatewayRoute<T>(params: DeleteGatewayRouteInput): Promise<T>;
    deleteMesh<T>(params: DeleteMeshInput): Promise<T>;
    deleteRoute<T>(params: DeleteRouteInput): Promise<T>;
    deleteVirtualGateway<T>(params: DeleteVirtualGatewayInput): Promise<T>;
    deleteVirtualNode<T>(params: DeleteVirtualNodeInput): Promise<T>;
    deleteVirtualRouter<T>(params: DeleteVirtualRouterInput): Promise<T>;
    deleteVirtualService<T>(params: DeleteVirtualServiceInput): Promise<T>;
    describeGatewayRoute<T>(params: DescribeGatewayRouteInput): Promise<T>;
    describeMesh<T>(params: DescribeMeshInput): Promise<T>;
    describeRoute<T>(params: DescribeRouteInput): Promise<T>;
    describeVirtualGateway<T>(params: DescribeVirtualGatewayInput): Promise<T>;
    describeVirtualNode<T>(params: DescribeVirtualNodeInput): Promise<T>;
    describeVirtualRouter<T>(params: DescribeVirtualRouterInput): Promise<T>;
    describeVirtualService<T>(params: DescribeVirtualServiceInput): Promise<T>;
    listGatewayRoutes<T>(params: ListGatewayRoutesInput): Promise<T>;
    listMeshes<T>(params: ListMeshesInput): Promise<T>;
    listRoutes<T>(params: ListRoutesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listVirtualGateways<T>(params: ListVirtualGatewaysInput): Promise<T>;
    listVirtualNodes<T>(params: ListVirtualNodesInput): Promise<T>;
    listVirtualRouters<T>(params: ListVirtualRoutersInput): Promise<T>;
    listVirtualServices<T>(params: ListVirtualServicesInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateGatewayRoute<T>(params: UpdateGatewayRouteInput): Promise<T>;
    updateMesh<T>(params: UpdateMeshInput): Promise<T>;
    updateRoute<T>(params: UpdateRouteInput): Promise<T>;
    updateVirtualGateway<T>(params: UpdateVirtualGatewayInput): Promise<T>;
    updateVirtualNode<T>(params: UpdateVirtualNodeInput): Promise<T>;
    updateVirtualRouter<T>(params: UpdateVirtualRouterInput): Promise<T>;
    updateVirtualService<T>(params: UpdateVirtualServiceInput): Promise<T>;
}
//# sourceMappingURL=AppMesh.d.ts.map