UNPKG

@altostra/core

Version:

Core library for shared types and logic

48 lines (47 loc) 1.82 kB
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;