@altostra/core
Version:
Core library for shared types and logic
80 lines (79 loc) • 8.08 kB
TypeScript
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 {};