# ServiceProps

Extends: ServiceProps
Extends: DnsServiceProps
Used as props by: 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#L147)

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import * as cdk from 'aws-cdk-lib';
import { aws_servicediscovery as servicediscovery } from 'aws-cdk-lib';

declare const namespace: servicediscovery.INamespace;
const serviceProps: servicediscovery.ServiceProps = {
  namespace: namespace,

  // the properties below are optional
  customHealthCheck: {
    failureThreshold: 123,
  },
  description: 'description',
  discoveryType: servicediscovery.DiscoveryType.API,
  dnsRecordType: servicediscovery.DnsRecordType.A,
  dnsTtl: cdk.Duration.minutes(30),
  healthCheck: {
    failureThreshold: 123,
    resourcePath: 'resourcePath',
    type: servicediscovery.HealthCheckType.HTTP,
  },
  loadBalancer: false,
  name: 'name',
  routingPolicy: servicediscovery.RoutingPolicy.WEIGHTED,
};
```

## Properties

- `customHealthCheck`: [HealthCheckCustomConfig](/cdk/api/v2/docs/aws-cdk-lib.aws_servicediscovery.HealthCheckCustomConfig.html) = none — Structure containing failure threshold for a custom health checker.

  Only one of healthCheckConfig or healthCheckCustomConfig can be specified.
  See: https://docs.aws.amazon.com/cloud-map/latest/api/API_HealthCheckCustomConfig.html

- `description`: string = none — A description of the service.

- `discoveryType`: [DiscoveryType](/cdk/api/v2/docs/aws-cdk-lib.aws_servicediscovery.DiscoveryType.html) = DNS_AND_API — Controls how instances within this service can be discovered.

- `dnsRecordType`: [DnsRecordType](/cdk/api/v2/docs/aws-cdk-lib.aws_servicediscovery.DnsRecordType.html) = A — The DNS type of the record that you want AWS Cloud Map to create.

  Supported record types
  include A, AAAA, A and AAAA (A_AAAA), CNAME, and SRV.

- `dnsTtl`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) = Duration.minutes(1) — The amount of time, in seconds, that you want DNS resolvers to cache the settings for this record.

- `healthCheck`: [HealthCheckConfig](/cdk/api/v2/docs/aws-cdk-lib.aws_servicediscovery.HealthCheckConfig.html) = none — Settings for an optional health check.

  If you specify health check settings, AWS Cloud Map associates the health
  check with the records that you specify in DnsConfig. Only one of healthCheckConfig or healthCheckCustomConfig can
  be specified. Not valid for PrivateDnsNamespaces. If you use healthCheck, you can only register IP instances to
  this service.

- `loadBalancer`: boolean = false — Whether or not this service will have an Elastic LoadBalancer registered to it as an AliasTargetInstance.

  Setting this to `true` correctly configures the `routingPolicy`
  and performs some additional validation.

- `name`: string — A name for the Service.

  **Default:** CloudFormation-generated name

- `namespace`: [INamespace](/cdk/api/v2/docs/aws-cdk-lib.aws_servicediscovery.INamespace.html) (required) — The namespace that you want to use for DNS configuration.

- `routingPolicy`: [RoutingPolicy](/cdk/api/v2/docs/aws-cdk-lib.aws_servicediscovery.RoutingPolicy.html) — The routing policy that you want to apply to all DNS records that AWS Cloud Map creates when you register an instance and specify this service.

  **Default:** WEIGHTED for CNAME records and when loadBalancer is true, MULTIVALUE otherwise
