@collaborne/custom-cloudformation-resources
Version:
Custom CloudFormation resources
82 lines (81 loc) • 3.13 kB
TypeScript
import type { SchemaType } from '@collaborne/json-schema-to-type';
import { ContinuationRequired, CustomResource, Response } from '../custom-resource';
import { Logger } from '../logger';
declare const SCHEMA: {
type: "object";
properties: {
DomainName: {
type: "string";
};
CertificateTransparencyLoggingPreference: {
type: "string";
enum: string[];
};
DomainValidationOptions: {
type: "array";
items: {
oneOf: readonly [{
type: "object";
properties: {
DomainName: {
type: "string";
};
ValidationDomain: {
type: "string";
};
};
required: ("DomainName" | "ValidationDomain")[];
}, {
type: "object";
properties: {
DomainName: {
type: "string";
};
HostedZoneId: {
type: "string";
};
};
required: ("DomainName" | "HostedZoneId")[];
}];
};
};
Tags: {
type: "array";
items: {
type: "object";
properties: {
Key: {
type: "string";
};
Value: {
type: "string";
};
};
required: "Key"[];
};
};
};
additionalProperties: true;
required: "DomainName"[];
};
interface ResourceAttributes {
Arn: string;
CertificateId: string;
}
export declare class ACMCertificate extends CustomResource<ResourceAttributes, typeof SCHEMA, Response<ResourceAttributes>> {
private acm;
private route53;
constructor(logicalResourceId: string, logger: Logger);
createResource(physicalResourceId: string, params: SchemaType<typeof SCHEMA>, continuationAttributes: Response<ResourceAttributes>): Promise<Response<ResourceAttributes> | ContinuationRequired<Response<ResourceAttributes>>>;
deleteResource(physicalResourceId: string, params: SchemaType<typeof SCHEMA>): Promise<Response<ResourceAttributes>>;
updateResource(physicalResourceId: string, params: SchemaType<typeof SCHEMA>, oldParams: unknown, continuationAttributes: Response<ResourceAttributes>): Promise<Response<ResourceAttributes> | ContinuationRequired<Response<ResourceAttributes>>>;
private findCertificateArn;
/**
* Get the required resource records for validation
*/
private getValidationResourceRecords;
private createCertificate;
private findChangedAttributes;
protected maybeContinuation(response: Response<ResourceAttributes>): Promise<Response<ResourceAttributes> | ContinuationRequired<Response<ResourceAttributes>>>;
}
export {};