UNPKG

@altostra/core

Version:

Core library for shared types and logic

80 lines (79 loc) • 8.08 kB
import type { Arn } from "../../aws/CustomTypes/Arn"; import type { IamRoleName } from "../../aws/CustomTypes/IamRoleName"; import type { CloudFormationString } from "../../aws/SamTemplate/AwsSamTemplate"; import type { IamPolicyDocument } from "../../aws/SamTemplate/IamPolicyDocument"; import type { NonEmptyString } from "../../common/CustomTypes/NonEmptyString"; import type { NaturalNumber } from "../../common/CustomTypes/Numerics"; import type { Path } from "../../common/CustomTypes/Path"; import type { SecurityGroupId } from "../../common/CustomTypes/SecurityGroupId"; import type { SubnetId } from "../../common/CustomTypes/SubnetId"; import type { Dict } from "../Common"; import type { ResourceBase } from "./Common"; export declare const MAX_FUNCTION_LAYERS_COUNT = 5; export declare const MAX_SUPPORTED_CONCURRENCY = 10000; export declare type ComputeFunctionType = 'resource.compute.function'; interface ImageConfig { workingDirectory?: string; commands?: string[]; entryPoints?: string[]; } interface ComputeFunctionBase extends ResourceBase { type: ComputeFunctionType; packageType?: PackageType; entryPoint?: string; runtime?: string; code?: string; imageUri?: string; imageConfig?: ImageConfig; memory: number; timeout: number; layers?: Arn[]; environment?: FunctionEnvironment; tags?: Record<string, string>; policies?: PolicyReference | PolicyReference[]; reservedConcurrency?: NaturalNumber | 0; provisionedConcurrency?: NaturalNumber | 0; vpcConfig?: FunctionVpcConfiguration; trace?: boolean; endpointUrl?: EndpointUrlConfiguration; } export interface ZipComputeFunction extends ComputeFunctionBase { packageType?: 'zip'; entryPoint: string; runtime: string; snapStart?: boolean; } export interface ImageComputeFunction extends ComputeFunctionBase { packageType: 'image'; imageUri: string; snapStart?: false; } export declare type PackageType = 'image' | 'zip'; export declare type ComputeFunction = ImageComputeFunction | ZipComputeFunction; export interface FunctionVpcConfiguration { securityGroupIds: SecurityGroupId[]; subnetIds: SubnetId[]; } export declare const isFunctionVpcConfiguration: import("@altostra/type-validations").ObjectOfTypeValidation<FunctionVpcConfiguration>; export interface FunctionEnvironment { variables?: Dict<string, string>; } export declare type PolicyReference = CloudFormationString<Arn | IamRoleName> | IamPolicyDocument; export declare const isPolicyRef: import("@altostra/type-validations").TypeValidation<Arn | 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 | IamPolicyDocument | (Arn | 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 | IamPolicyDocument)[]>; export declare const functionPolicyFromString: (data: string) => Arn | 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 | IamPolicyDocument | (Arn | 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 | IamPolicyDocument)[]; export declare const isEnvironment: import("@altostra/type-validations").ObjectOfTypeValidation<FunctionEnvironment>; export declare const isComputeFunction: import("@altostra/type-validations").TypeValidation<ZipComputeFunction | ImageComputeFunction>; export declare function isSecurityGroupIds(val: unknown): boolean; export declare function isSubnetIds(val: unknown): boolean; export interface EndpointUrlConfiguration { enabled: boolean; authenticated: boolean; } export interface EntryPoint { path?: Path; fileName: NonEmptyString; handler: NonEmptyString; } export declare function parseEntryPoint(entryPoint: string): EntryPoint; export declare function isEntryPoint(value: unknown): boolean; export {};