82 lines
2.6 KiB
TypeScript
82 lines
2.6 KiB
TypeScript
import type * as iam from '../../aws-iam';
|
||
import type { IResource } from '../../core';
|
||
import type { IHostedZoneRef } from '../../interfaces/generated/aws-route53-interfaces.generated';
|
||
export interface INamedHostedZoneRef extends IHostedZoneRef {
|
||
readonly name: string;
|
||
}
|
||
/**
|
||
* Imported or created hosted zone
|
||
*/
|
||
export interface IHostedZone extends IResource, INamedHostedZoneRef {
|
||
/**
|
||
* ID of this hosted zone, such as "Z23ABC4XYZL05B"
|
||
*
|
||
* @attribute
|
||
*/
|
||
readonly hostedZoneId: string;
|
||
/**
|
||
* FQDN of this hosted zone
|
||
*/
|
||
readonly zoneName: string;
|
||
/**
|
||
* ARN of this hosted zone, such as arn:${Partition}:route53:::hostedzone/${Id}
|
||
*
|
||
* @attribute
|
||
*/
|
||
readonly hostedZoneArn: string;
|
||
/**
|
||
* Returns the set of name servers for the specific hosted zone. For example:
|
||
* ns1.example.com.
|
||
*
|
||
* This attribute will be undefined for private hosted zones or hosted zones imported from another stack.
|
||
*
|
||
* @attribute
|
||
*/
|
||
readonly hostedZoneNameServers?: string[];
|
||
/**
|
||
* Grant permissions to add delegation records to this zone
|
||
*/
|
||
grantDelegation(grantee: iam.IGrantable, options?: GrantDelegationOptions): iam.Grant;
|
||
}
|
||
/**
|
||
* Options for the delegation permissions granted
|
||
*/
|
||
export interface GrantDelegationOptions {
|
||
/**
|
||
* List of hosted zone names to allow delegation to in the grant permissions.
|
||
* If the delegated zone name contains an unresolved token,
|
||
* it must resolve to a zone name that satisfies the requirements according to the documentation:
|
||
* https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/specifying-conditions-route53.html#route53_rrset_conditionkeys_normalization
|
||
*
|
||
* > All letters must be lowercase.
|
||
* > The DNS name must be without the trailing dot.
|
||
* > Characters other than a–z, 0–9, - (hyphen), _ (underscore), and . (period, as a delimiter between labels) must use escape codes in the format \three-digit octal code. For example, \052 is the octal code for character *.
|
||
*
|
||
* @default the grant allows delegation to any hosted zone
|
||
*/
|
||
readonly delegatedZoneNames?: string[];
|
||
}
|
||
/**
|
||
* Reference to a hosted zone
|
||
*/
|
||
export interface HostedZoneAttributes {
|
||
/**
|
||
* Identifier of the hosted zone
|
||
*/
|
||
readonly hostedZoneId: string;
|
||
/**
|
||
* Name of the hosted zone
|
||
*/
|
||
readonly zoneName: string;
|
||
}
|
||
/**
|
||
* Reference to a public hosted zone
|
||
*/
|
||
export interface PublicHostedZoneAttributes extends HostedZoneAttributes {
|
||
}
|
||
/**
|
||
* Reference to a private hosted zone
|
||
*/
|
||
export interface PrivateHostedZoneAttributes extends HostedZoneAttributes {
|
||
}
|