# VirtualServiceProvider

Represents the properties needed to define the provider for a VirtualService.

- Source: [`aws-appmesh/lib/virtual-service.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-appmesh/lib/virtual-service.ts#L205)

## Example

```ts
declare const mesh: appmesh.Mesh;

const node = new appmesh.VirtualNode(this, 'node', {
  mesh,
  serviceDiscovery: appmesh.ServiceDiscovery.dns('node'),
});

const virtualService = new appmesh.VirtualService(this, 'service-1', {
  virtualServiceProvider: appmesh.VirtualServiceProvider.virtualNode(node),
  virtualServiceName: 'service1.domain.local',
});

node.addBackend(appmesh.Backend.virtualService(virtualService));
```

## Initializer

```ts
new VirtualServiceProvider()
```

## Methods

- `bind(_construct: Construct): VirtualServiceProviderConfig` — Enforces mutual exclusivity for VirtualService provider types.

- `none(mesh: IMesh): VirtualServiceProvider // chainable` (static) — Returns an Empty Provider for a VirtualService.

  This provides no routing capabilities
  and should only be used as a placeholder

- `virtualNode(virtualNode: IVirtualNode): VirtualServiceProvider // chainable` (static) — Returns a VirtualNode based Provider for a VirtualService.

- `virtualRouter(virtualRouter: IVirtualRouter): VirtualServiceProvider // chainable` (static) — Returns a VirtualRouter based Provider for a VirtualService.
