@altostra/core
Version:
Core library for shared types and logic
135 lines (134 loc) • 13.9 kB
TypeScript
import type { ResourceId } from "../Blueprint";
import type { AccessPolicy, AccessPolicyType } from "./AccessPolicy";
import type { Auth0Application, Auth0ApplicationType } from "./Auth0Application";
import type { CDN, CDNType } from "./CDN";
import type { CloudFormationCustomResources, CloudFormationCustomResourcesType } from "./CloudFormationCustomResources";
import type { CognitoUserPool, CognitoUserPoolType } from "./CognitoUserPool";
import type { ComputeFunction, ComputeFunctionType } from "./ComputeFunction";
import { type DataFirehose, type DataFirehoseType } from "./DataFirehose";
import type { DataStream, DataStreamType } from "./DataStream";
import type { DocDBCluster, DocDBClusterType } from "./DocumentDB/DocDBCluster";
import type { Domain, DomainType } from "./Domain";
import type { DomainName, DomainNameType } from "./DomainName";
import type { EventBridgeRule, EventBridgeRuleType, EventBus, EventBusType } from "./EventBridge";
import type { ExternalResource, ExternalResourceType } from "./ExternalResource";
import type { ExternalSystem, ExternalSystemByType, ExternalSystemType } from "./ExternalSystem";
import type { FargateServerlessContainer, FargateServerlessContainerType } from "./FargateServerlessContainer";
import type { FargateServerlessService, FargateServerlessServiceType } from "./FargateServerlessService";
import type { FileStore, FileStoreType } from "./FileStore";
import type { ManagedKey, ManagedKeyType } from "./ManagedKey";
import type { Queue, QueueByType, QueueType } from "./MessageQueue";
import type { NotificationTopic, NotificationTopicType } from "./NotificationTopic";
import type { OpenSearchResourceType, OpenSearch } from "./OpenSearch";
import type { RelationalDBResourceByType, RelationalDBResourceType, RelationDBResource } from "./RelationalDatabase";
import type { Scheduler, SchedulerType } from "./Scheduler";
import type { SSMResource, SSMResourceType } from "./SSM";
import type { TableResource, TableResourceByType, TableResourceType } from "./Table";
import type { VendorService, VendorServiceType } from "./VendorService";
import type { WebApiResource, WebApiResourceByType, WebApiResourceType } from "./WebApi";
export * from "./AccessPolicy";
export * from "./Auth0Application";
export * from "./CloudFormationCustomResources";
export * from "./CognitoUserPool";
export * from "./Common";
export * from "./ComputeFunction";
export * from "./DataFirehose";
export * from "./DataStream";
export * from "./Domain";
export * from "./DomainName";
export * from "./EventBridge";
export * from "./ExternalSystem";
export * from "./FileStore";
export * from "./ManagedKey";
export * from "./MessageQueue";
export * from "./NotificationTopic";
export * from "./OpenSearch";
export * from "./RelationalDatabase";
export * from "./ResourceId";
export * from "./Scheduler";
export * from "./Table";
export * from "./VendorService";
export * from "./WebApi";
export declare type ResourceTemplate<T extends Resource> = Omit<T, 'id'> & Partial<Pick<T, 'id'>>;
export declare type ResourceTemplateByType<T extends ResourceType> = ResourceTemplate<ResourceByType[T]>;
export declare type ResourceType = AccessPolicyType | Auth0ApplicationType | CDNType | CloudFormationCustomResourcesType | CognitoUserPoolType | ComputeFunctionType | DataFirehoseType | DataStreamType | DocDBClusterType | DomainNameType | DomainType | EventBridgeRuleType | EventBusType | ExternalResourceType | ExternalSystemType | FargateServerlessContainerType | FargateServerlessServiceType | FileStoreType | ManagedKeyType | NotificationTopicType | OpenSearchResourceType | QueueType | RelationalDBResourceType | SchedulerType | SSMResourceType | TableResourceType | VendorServiceType | WebApiResourceType;
export declare type Resource = AccessPolicy | Auth0Application | CDN | CloudFormationCustomResources | CognitoUserPool | ComputeFunction | DataFirehose | DataStream | DocDBCluster | Domain | DomainName | EventBridgeRule | EventBus | ExternalResource | ExternalSystem | FargateServerlessContainer | FargateServerlessService | FileStore | ManagedKey | NotificationTopic | OpenSearch | Queue | RelationDBResource | Scheduler | SSMResource | TableResource | VendorService | WebApiResource;
export declare type ResourceByType = ExternalSystemByType & QueueByType & RelationalDBResourceByType & TableResourceByType & WebApiResourceByType & {
[K in AccessPolicyType]: AccessPolicy;
} & {
[K in Auth0ApplicationType]: Auth0Application;
} & {
[K in CDNType]: CDN;
} & {
[K in CloudFormationCustomResourcesType]: CloudFormationCustomResources;
} & {
[K in CognitoUserPoolType]: CognitoUserPool;
} & {
[K in ComputeFunctionType]: ComputeFunction;
} & {
[K in DataFirehoseType]: DataFirehose;
} & {
[K in DataStreamType]: DataStream;
} & {
[K in DocDBClusterType]: DocDBCluster;
} & {
[K in DomainNameType]: DomainName;
} & {
[K in DomainType]: Domain;
} & {
[K in EventBridgeRuleType]: EventBridgeRule;
} & {
[K in EventBusType]: EventBus;
} & {
[K in ExternalResourceType]: ExternalResource;
} & {
[K in FargateServerlessContainerType]: FargateServerlessContainer;
} & {
[K in FargateServerlessServiceType]: FargateServerlessService;
} & {
[K in FileStoreType]: FileStore;
} & {
[K in ManagedKeyType]: ManagedKey;
} & {
[K in NotificationTopicType]: NotificationTopic;
} & {
[K in OpenSearchResourceType]: OpenSearch;
} & {
[K in SchedulerType]: Scheduler;
} & {
[K in SSMResourceType]: SSMResource;
} & {
[K in VendorServiceType]: VendorService;
};
export interface Identifiable {
id: ResourceId;
}
export declare type Template<T extends Identifiable> = Omit<T, 'id'>;
export declare function isResourceTemplate<T extends Identifiable>(resource: T | Template<T>): resource is Template<T>;
export declare function isResource<T extends Identifiable>(resource: T | Template<T>): resource is T;
export declare const isAnyResource: import("@altostra/type-validations/lib/taggedUnionOf").TaggedUnionValidation<import("./ComputeFunction").ZipComputeFunction | import("./ComputeFunction").ImageComputeFunction | AccessPolicy | Auth0Application | CDN | CloudFormationCustomResources | CognitoUserPool | DataFirehose | DataStream | DocDBCluster | import("./Domain").SimpleDomain | import("./Domain").RegisteredDomain | DomainName | EventBus | EventBridgeRule | import("./Table").SimpleTable | import("./Table").Table | FileStore | ManagedKey | import("./MessageQueue").FifoMessageQueue | import("./MessageQueue").MessageQueue | NotificationTopic | RelationDBResource | import("./ExternalResource/ExternalDataBase").ExternalRelationalDatabase | import("./ExternalResource/SimpleExternalResource").SimpleExternalResource | import("./ExternalResource/ExternalDynamoTable").ExternalDynamoDBTable | ExternalSystem | FargateServerlessContainer | Scheduler | SSMResource | VendorService | import("./WebApi").Api | import("./WebApi").ApiDomainName | import("./WebApi").ApiEndpoint | import("./WebApi").ApiProxyEndpoint | import("./WebApi/WebSocket/WebSocketApi").WebSocketApi | import("./WebApi/WebSocket/WebSocketRoute").WebSocketRoute | {
type: string;
requirements: {
vCPU: any;
memory: any;
};
vpcConfig: {
vpcId: any;
securityGroupIds: any;
subnetIds: any;
};
scaling: {
instances: any;
};
image: {
name: any;
uri: any;
port: any;
healthCheckPath: any;
};
environment: import("./ComputeFunction").FunctionEnvironment | undefined;
policies: import("../../aws/Arn").Arn | import("../../aws/IamRoleName").IamRoleName | import("../../aws/CloudFormation/IntrinsicFunctions").Cidr | import("../../aws/CloudFormation/IntrinsicFunctions").Base64 | import("../../aws/CloudFormation/IntrinsicFunctions").And | import("../../aws/CloudFormation/IntrinsicFunctions").Equals | import("../../aws/CloudFormation/IntrinsicFunctions").Not | import("../../aws/CloudFormation/IntrinsicFunctions").Or | import("../../aws/CloudFormation/IntrinsicFunctions").FindInMap | import("../../aws/CloudFormation/IntrinsicFunctions").GetAtt | import("../../aws/CloudFormation/IntrinsicFunctions").GetAZs | import("../../aws/CloudFormation/IntrinsicFunctions").If | import("../../aws/CloudFormation/IntrinsicFunctions").ImportValue | import("../../aws/CloudFormation/IntrinsicFunctions").Join | import("../../aws/CloudFormation/IntrinsicFunctions").Length | import("../../aws/CloudFormation/IntrinsicFunctions").Ref | import("../../aws/CloudFormation/IntrinsicFunctions").Select | import("../../aws/CloudFormation/IntrinsicFunctions").Split | import("../../aws/CloudFormation/IntrinsicFunctions").Sub | import("../../aws/CloudFormation/IntrinsicFunctions/Transform").Transform | import("../../aws/CloudFormation/PolicyDocument").IamPolicyDocument | (import("../../aws/Arn").Arn | import("../../aws/IamRoleName").IamRoleName | import("../../aws/CloudFormation/IntrinsicFunctions").Cidr | import("../../aws/CloudFormation/IntrinsicFunctions").Base64 | import("../../aws/CloudFormation/IntrinsicFunctions").And | import("../../aws/CloudFormation/IntrinsicFunctions").Equals | import("../../aws/CloudFormation/IntrinsicFunctions").Not | import("../../aws/CloudFormation/IntrinsicFunctions").Or | import("../../aws/CloudFormation/IntrinsicFunctions").FindInMap | import("../../aws/CloudFormation/IntrinsicFunctions").GetAtt | import("../../aws/CloudFormation/IntrinsicFunctions").GetAZs | import("../../aws/CloudFormation/IntrinsicFunctions").If | import("../../aws/CloudFormation/IntrinsicFunctions").ImportValue | import("../../aws/CloudFormation/IntrinsicFunctions").Join | import("../../aws/CloudFormation/IntrinsicFunctions").Length | import("../../aws/CloudFormation/IntrinsicFunctions").Ref | import("../../aws/CloudFormation/IntrinsicFunctions").Select | import("../../aws/CloudFormation/IntrinsicFunctions").Split | import("../../aws/CloudFormation/IntrinsicFunctions").Sub | import("../../aws/CloudFormation/IntrinsicFunctions/Transform").Transform | import("../../aws/CloudFormation/PolicyDocument").IamPolicyDocument)[] | (import("../../aws/Arn").Arn | import("../../aws/IamRoleName").IamRoleName | import("../../aws/CloudFormation/IntrinsicFunctions").Cidr | import("../../aws/CloudFormation/IntrinsicFunctions").Base64 | import("../../aws/CloudFormation/IntrinsicFunctions").And | import("../../aws/CloudFormation/IntrinsicFunctions").Equals | import("../../aws/CloudFormation/IntrinsicFunctions").Not | import("../../aws/CloudFormation/IntrinsicFunctions").Or | import("../../aws/CloudFormation/IntrinsicFunctions").FindInMap | import("../../aws/CloudFormation/IntrinsicFunctions").GetAtt | import("../../aws/CloudFormation/IntrinsicFunctions").GetAZs | import("../../aws/CloudFormation/IntrinsicFunctions").If | import("../../aws/CloudFormation/IntrinsicFunctions").ImportValue | import("../../aws/CloudFormation/IntrinsicFunctions").Join | import("../../aws/CloudFormation/IntrinsicFunctions").Length | import("../../aws/CloudFormation/IntrinsicFunctions").Ref | import("../../aws/CloudFormation/IntrinsicFunctions").Select | import("../../aws/CloudFormation/IntrinsicFunctions").Split | import("../../aws/CloudFormation/IntrinsicFunctions").Sub | import("../../aws/CloudFormation/IntrinsicFunctions/Transform").Transform | import("../../aws/CloudFormation/PolicyDocument").IamPolicyDocument | (import("../../aws/Arn").Arn | import("../../aws/IamRoleName").IamRoleName | import("../../aws/CloudFormation/IntrinsicFunctions").Cidr | import("../../aws/CloudFormation/IntrinsicFunctions").Base64 | import("../../aws/CloudFormation/IntrinsicFunctions").And | import("../../aws/CloudFormation/IntrinsicFunctions").Equals | import("../../aws/CloudFormation/IntrinsicFunctions").Not | import("../../aws/CloudFormation/IntrinsicFunctions").Or | import("../../aws/CloudFormation/IntrinsicFunctions").FindInMap | import("../../aws/CloudFormation/IntrinsicFunctions").GetAtt | import("../../aws/CloudFormation/IntrinsicFunctions").GetAZs | import("../../aws/CloudFormation/IntrinsicFunctions").If | import("../../aws/CloudFormation/IntrinsicFunctions").ImportValue | import("../../aws/CloudFormation/IntrinsicFunctions").Join | import("../../aws/CloudFormation/IntrinsicFunctions").Length | import("../../aws/CloudFormation/IntrinsicFunctions").Ref | import("../../aws/CloudFormation/IntrinsicFunctions").Select | import("../../aws/CloudFormation/IntrinsicFunctions").Split | import("../../aws/CloudFormation/IntrinsicFunctions").Sub | import("../../aws/CloudFormation/IntrinsicFunctions/Transform").Transform | import("../../aws/CloudFormation/PolicyDocument").IamPolicyDocument)[])[] | undefined;
description: string | undefined;
name: string;
id: ResourceId;
}, "type", "resource.compute.function" | "resource.access.policy" | "resource.auth0.application" | "resource.cdn" | "resource.cloud-formation.custom-resources" | "resource.cognito.user-pool" | "resource.data-firehose" | "resource.data-stream" | "resource.docdb.cluster" | "resource.domain" | "resource.dns.name" | "resource.event-bridge.event-bus" | "resource.event-bridge.rule" | "resource.table.simple" | "resource.table" | "resource.file-store" | "resource.key-management.key" | "resource.message-queue.fifo" | "resource.message-queue" | "resource.notification-topic" | "resource.rdb.cluster" | "resource.rdb.instance" | "resource.external" | "resource.rdb.proxy" | "resource.rdb.parameters" | "resource.rdb.serverless" | "resource.external.blueprint" | "resource.external.url" | "resource.compute.serverless-container" | "resource.compute.web-service" | "resource.scheduler" | "resource.ssm" | "resource.vendor.service" | "resource.api" | "resource.api.domain-name" | "resource.api.endpoint" | "resource.api.proxy-endpoint" | "resource.web-socket.api" | "resource.web-socket.route">;