@altostra/core
Version:
Core library for shared types and logic
48 lines (47 loc) • 1.82 kB
TypeScript
import type { DNSName } from "../../../common/CustomTypes/DNSName";
import type { Integer } from "../../../common/CustomTypes/Integer";
import type { AwsResourceCommon } from "../common";
import type { CloudFormationString } from "../IntrinsicFunctions";
export declare type RecordSetResourceType = 'AWS::Route53::RecordSet';
export interface RecordSet extends AwsResourceCommon {
Type: RecordSetResourceType;
Properties: RecordSetProperties;
}
export interface RecordSetPropertiesBase {
Comment?: string;
Failover?: string;
GeoLocation?: object;
HealthCheckId?: string;
MultiValueAnswer?: boolean;
Name: DNSName;
Region?: string;
ResourceRecords?: string[];
SetIdentifier?: string;
TTL?: string;
Type: RecordSetType;
Weight?: Integer;
}
export interface AliasRecordSetProperties extends RecordSetPropertiesBase {
Type: RecordSetType;
AliasTarget: AliasTarget;
ResourceRecords?: undefined;
}
export interface DataRecordSetProperties extends RecordSetPropertiesBase {
Type: RecordSetType;
AliasTarget: CloudFormationString;
ResourceRecords: string[];
}
export declare type HostedZoneSpecification = {
HostedZoneId: CloudFormationString;
} | {
HostedZoneName: DNSName;
};
export declare type RecordSetProperties = HostedZoneSpecification & (AliasRecordSetProperties | DataRecordSetProperties);
export declare type RecordSetType = 'A' | 'AAAA' | 'CAA' | 'CNAME' | 'MX' | 'NAPTR' | 'NS' | 'PTR' | 'SOA' | 'SPF' | 'SRV' | 'TXT';
export declare const CLOUD_FRONT_HOSTED_ZONE_ID = "Z2FDTNDATAQYW2";
export interface AliasTarget {
DNSName: CloudFormationString;
EvaluateTargetHealth?: boolean;
HostedZoneId: CloudFormationString;
}
export declare function aliasTargetFromCloudFrontDistribution(resourceId: string): AliasTarget;