# DiscoveryType

Specifies information about the discovery type of a service.

- Source: [`aws-servicediscovery/lib/service.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-servicediscovery/lib/service.ts#L453)
- Type last changed: v2.38.0 · 17 Aug 2022

## Example

```ts
import * as ec2 from '../../aws-ec2';
import * as elbv2 from '../../aws-elasticloadbalancingv2';
import * as cdk from '../../core';
import * as servicediscovery from '../lib';

const app = new cdk.App();
const stack = new cdk.Stack(app, 'aws-servicediscovery-integ');

const vpc = new ec2.Vpc(stack, 'Vpc', { maxAzs: 2 });

const namespace = new servicediscovery.PrivateDnsNamespace(stack, 'Namespace', {
  name: 'boobar.com',
  vpc,
});

const service = namespace.createService('Service', {
  dnsRecordType: servicediscovery.DnsRecordType.A_AAAA,
  dnsTtl: cdk.Duration.seconds(30),
  loadBalancer: true,
});

const loadbalancer = new elbv2.ApplicationLoadBalancer(stack, 'LB', { vpc, internetFacing: true });

service.registerLoadBalancer('Loadbalancer', loadbalancer);

const arnService = namespace.createService('ArnService', {
  discoveryType: servicediscovery.DiscoveryType.API,
});

arnService.registerNonIpInstance('NonIpInstance', {
  customAttributes: { arn: 'arn://' },
});

app.synth();
```

## Members

| Member | Description |
| --- | --- |
| `API` | Instances are discoverable via API only. |
| `DNS_AND_API` | Instances are discoverable via DNS or API. |

## Referenced by

- [`DnsServiceProps`](/v2/docs/aws-cdk-lib.aws_servicediscovery.DnsServiceProps).discoveryType
- [`IService`](/v2/docs/aws-cdk-lib.aws_servicediscovery.IService).discoveryType
- [`Service`](/v2/docs/aws-cdk-lib.aws_servicediscovery.Service).discoveryType
- [`ServiceAttributes`](/v2/docs/aws-cdk-lib.aws_servicediscovery.ServiceAttributes).discoveryType
