@altostra/core
Version:
Core library for shared types and logic
77 lines (76 loc) • 3.67 kB
TypeScript
import type { CloudFormationResourceByType } from "../CloudFormation/Types";
import type { AwsApiGatewayBasePath, AwsApiGatewayDeployment, AwsApiGatewayDomain, AwsApiGatewayMethod, AwsApiGatewayResource, AwsApiGatewayRestApi, AwsApiGatewayStage } from "./AwsApiGateway";
import type { AwsCloudFormationStack } from "./AwsCloudFormation";
import type { AwsCloudFrontDistribution } from "./AwsCloudFront";
import type { AwsCloudWatchResources } from "./AwsCloudWatch";
import type { AwsCustomResource } from "./AwsCustomResource";
import type { AwsDynamoDbTable } from "./AwsDynamoDb";
import type { AwsIamRole } from "./AwsIam";
import type { AwsKinesisDataStreamResource, AwsKinesisDeliveryStream } from "./AwsKinesis";
import type { AwsLambdaPermission } from "./AwsLambda";
import type { AwsS3Bucket } from "./AwsS3";
import type { AwsSamServerlessApi, AwsSamServerlessFunction, AwsSamServerlessSimpleTable } from "./AwsSamServerless";
import type { AwsSnsTopic, AwsSnsTopicSubscriptionResource } from "./AwsSns";
import type { AwsSimpleQueueResource } from "./AwsSqs";
import type { HostedZone, RecordSet } from "./Route53";
export { type AwsTemplateOutput, type CloudFormationTag, type CloudFormationTags, isAwsTemplateOutput, mergeTemplates, type S3Location, } from "../CloudFormation";
export { type CloudFormationString, isCloudFormationString, isCloudFormationValue as isCloudFormationStringValidation, } from "../CloudFormation/IntrinsicFunctions";
export { AwsSamTemplate, ServerlessTags } from "../ServerlessAppModel";
/**
* API Reference
* https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
* https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html
*/
export declare type AwsResourceByType = CloudFormationResourceByType & {
[K in AwsApiGatewayBasePath['Type']]: AwsApiGatewayBasePath;
} & {
[K in AwsApiGatewayDeployment['Type']]: AwsApiGatewayDeployment;
} & {
[K in AwsApiGatewayDomain['Type']]: AwsApiGatewayDomain;
} & {
[K in AwsApiGatewayMethod['Type']]: AwsApiGatewayMethod;
} & {
[K in AwsApiGatewayResource['Type']]: AwsApiGatewayResource;
} & {
[K in AwsApiGatewayRestApi['Type']]: AwsApiGatewayRestApi;
} & {
[K in AwsApiGatewayStage['Type']]: AwsApiGatewayStage;
} & {
[K in AwsCloudFormationStack['Type']]: AwsCloudFormationStack;
} & {
[K in AwsCloudFrontDistribution['Type']]: AwsCloudFrontDistribution;
} & {
[K in AwsCustomResource['Type']]: AwsCustomResource;
} & {
[K in AwsDynamoDbTable['Type']]: AwsDynamoDbTable;
} & {
[K in AwsIamRole['Type']]: AwsIamRole;
} & {
[K in AwsKinesisDataStreamResource['Type']]: AwsKinesisDataStreamResource;
} & {
[K in AwsKinesisDeliveryStream['Type']]: AwsKinesisDeliveryStream;
} & {
[K in AwsLambdaPermission['Type']]: AwsLambdaPermission;
} & {
[K in AwsS3Bucket['Type']]: AwsS3Bucket;
} & {
[K in AwsSamServerlessApi['Type']]: AwsSamServerlessApi;
} & {
[K in AwsSamServerlessFunction['Type']]: AwsSamServerlessFunction;
} & {
[K in AwsSamServerlessSimpleTable['Type']]: AwsSamServerlessSimpleTable;
} & {
[K in AwsSimpleQueueResource['Type']]: AwsSimpleQueueResource;
} & {
[K in AwsSnsTopic['Type']]: AwsSnsTopic;
} & {
[K in AwsSnsTopicSubscriptionResource['Type']]: AwsSnsTopicSubscriptionResource;
} & {
[K in HostedZone['Type']]: HostedZone;
} & {
[K in keyof AwsCloudWatchResources]: AwsCloudWatchResources[K];
} & {
[K in RecordSet['Type']]: RecordSet;
};
export declare type AwsResourceType = keyof AwsResourceByType;
export declare type AwsResource = AwsResourceByType[AwsResourceType];