aws-cdk-lib.aws_apigateway.DomainName

class DomainName (construct)

LanguageType name
.NETAmazon.CDK.AWS.APIGateway.DomainName
Gogithub.com/aws/aws-cdk-go/awscdk/v2/awsapigateway#DomainName
Javasoftware.amazon.awscdk.services.apigateway.DomainName
Pythonaws_cdk.aws_apigateway.DomainName
TypeScript (source)aws-cdk-lib » aws_apigateway » DomainName

Implements IConstruct, IDependable, IResource, IDomainName

Example

declare const api: apigateway.RestApi;

const domainName = apigateway.DomainName.fromDomainNameAttributes(this, 'DomainName', {
  domainName: 'domainName',
  domainNameAliasHostedZoneId: 'domainNameAliasHostedZoneId',
  domainNameAliasTarget: 'domainNameAliasTarget',
});

new apigateway.BasePathMapping(this, 'BasePathMapping', {
  domainName: domainName,
  restApi: api,
});

Initializer

new DomainName(scope: Construct, id: string, props: DomainNameProps)

Parameters

  • scope Construct
  • id string
  • props DomainNameProps

Construct Props

NameTypeDescription
certificateICertificateThe reference to an AWS-managed certificate for use by the edge-optimized endpoint for the domain name.
domainNamestringThe custom domain name for your API.
basePath?stringThe base path name that callers of the API must provide in the URL after the domain name (e.g. example.com/base-path). If you specify this property, it can't be an empty string.
endpointType?EndpointTypeThe type of endpoint for this DomainName.
mapping?IRestApiIf specified, all requests to this domain will be mapped to the production deployment of this API.
mtls?MTLSConfigThe mutual TLS authentication configuration for a custom domain name.
securityPolicy?SecurityPolicyThe Transport Layer Security (TLS) version + cipher suite for this domain name.

certificate

Type: ICertificate

The reference to an AWS-managed certificate for use by the edge-optimized endpoint for the domain name.

For "EDGE" domain names, the certificate needs to be in the US East (N. Virginia) region.


domainName

Type: string

The custom domain name for your API.

Uppercase letters are not supported.


basePath?

Type: string (optional, default: map requests from the domain root (e.g. example.com).)

The base path name that callers of the API must provide in the URL after the domain name (e.g. example.com/base-path). If you specify this property, it can't be an empty string.


endpointType?

Type: EndpointType (optional, default: REGIONAL)

The type of endpoint for this DomainName.


mapping?

Type: IRestApi (optional, default: you will have to call addBasePathMapping to map this domain to API endpoints.)

If specified, all requests to this domain will be mapped to the production deployment of this API.

If you wish to map this domain to multiple APIs with different base paths, use addBasePathMapping or addApiMapping.


mtls?

Type: MTLSConfig (optional, default: mTLS is not configured.)

The mutual TLS authentication configuration for a custom domain name.


securityPolicy?

Type: SecurityPolicy (optional, default: SecurityPolicy.TLS_1_2)

The Transport Layer Security (TLS) version + cipher suite for this domain name.

See also: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html

Properties

NameTypeDescription
domainNamestringThe domain name (e.g. example.com).
domainNameAliasDomainNamestringThe Route53 alias target to use in order to connect a record set to this domain through an alias.
domainNameAliasHostedZoneIdstringThe Route53 hosted zone ID to use in order to connect a record set to this domain through an alias.
envResourceEnvironmentThe environment this resource belongs to.
nodeNodeThe tree node.
stackStackThe stack in which this resource is defined.

domainName

Type: string

The domain name (e.g. example.com).


domainNameAliasDomainName

Type: string

The Route53 alias target to use in order to connect a record set to this domain through an alias.


domainNameAliasHostedZoneId

Type: string

The Route53 hosted zone ID to use in order to connect a record set to this domain through an alias.


env

Type: ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.


node

Type: Node

The tree node.


stack

Type: Stack

The stack in which this resource is defined.

Methods

NameDescription
addApiMapping(targetStage, options?)Maps this domain to an API endpoint.
addBasePathMapping(targetApi, options?)Maps this domain to an API endpoint.
applyRemovalPolicy(policy)Apply the given removal policy to this resource.
toString()Returns a string representation of this construct.
static fromDomainNameAttributes(scope, id, attrs)Imports an existing domain name.

addApiMapping(targetStage, options?)

public addApiMapping(targetStage: IStage, options?: ApiMappingOptions): void

Parameters

  • targetStage IStage — the target API stage.
  • options ApiMappingOptions — Options for mapping to a stage.

Maps this domain to an API endpoint.

This uses the ApiMapping from ApiGatewayV2 which supports multi-level paths, but also only supports:

  • SecurityPolicy.TLS_1_2
  • EndpointType.REGIONAL

addBasePathMapping(targetApi, options?)

public addBasePathMapping(targetApi: IRestApi, options?: BasePathMappingOptions): BasePathMapping

Parameters

  • targetApi IRestApi — That target API endpoint, requests will be mapped to the deployment stage.
  • options BasePathMappingOptions — Options for mapping to base path with or without a stage.

Returns

  • BasePathMapping

Maps this domain to an API endpoint.

This uses the BasePathMapping from ApiGateway v1 which does not support multi-level paths.

If you need to create a mapping for a multi-level path use addApiMapping instead.


applyRemovalPolicy(policy)

public applyRemovalPolicy(policy: RemovalPolicy): void

Parameters

  • policy RemovalPolicy

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.

The resource can be deleted (RemovalPolicy.DESTROY), or left in your AWS account for data recovery and cleanup later (RemovalPolicy.RETAIN).


toString()

public toString(): string

Returns

  • string

Returns a string representation of this construct.


static fromDomainNameAttributes(scope, id, attrs)

public static fromDomainNameAttributes(scope: Construct, id: string, attrs: DomainNameAttributes): IDomainName

Parameters

  • scope Construct
  • id string
  • attrs DomainNameAttributes

Returns

  • IDomainName

Imports an existing domain name.