forked from pzimmermann/serverless-domain-manager
-
Notifications
You must be signed in to change notification settings - Fork 1
/
DomainInfo.ts
37 lines (31 loc) · 1.41 KB
/
DomainInfo.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/**
* Wrapper class for Custom Domain information
*/
class DomainInfo {
public domainName: string;
public hostedZoneId: string;
public securityPolicy: string;
/**
* Sometimes, the getDomainName call doesn't return either a distributionHostedZoneId or a regionalHostedZoneId.
* AFAICT, this only happens with edge-optimized endpoints.
* The hostedZoneId for these endpoints is always the one below.
* Docs: https://docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region
* PR: https://github.com/amplify-education/serverless-domain-manager/pull/171
*/
private defaultHostedZoneId: string = "Z2FDTNDATAQYW2";
private defaultSecurityPolicy: string = "TLS_1_2";
constructor(data: any) {
this.domainName = data.distributionDomainName
|| data.regionalDomainName
|| data.DomainNameConfigurations && data.DomainNameConfigurations[0].ApiGatewayDomainName
|| data.DomainName;
this.hostedZoneId = data.distributionHostedZoneId
|| data.regionalHostedZoneId
|| data.DomainNameConfigurations && data.DomainNameConfigurations[0].HostedZoneId
|| this.defaultHostedZoneId;
this.securityPolicy = data.securityPolicy
|| data.DomainNameConfigurations && data.DomainNameConfigurations[0].SecurityPolicy
|| this.defaultSecurityPolicy;
}
}
export = DomainInfo;