143 lines
4.9 KiB
TypeScript
143 lines
4.9 KiB
TypeScript
import type { Construct } from 'constructs';
|
|
import type { Architecture } from './architecture';
|
|
import type { Code } from './code';
|
|
import type { ILayerVersionRef, LayerVersionReference } from './lambda.generated';
|
|
import { Runtime } from './runtime';
|
|
import type { IResource, RemovalPolicy } from '../../core';
|
|
import { Resource } from '../../core';
|
|
/**
|
|
* Non runtime options
|
|
*/
|
|
export interface LayerVersionOptions {
|
|
/**
|
|
* The description the this Lambda Layer.
|
|
*
|
|
* @default - No description.
|
|
*/
|
|
readonly description?: string;
|
|
/**
|
|
* The SPDX licence identifier or URL to the license file for this layer.
|
|
*
|
|
* @default - No license information will be recorded.
|
|
*/
|
|
readonly license?: string;
|
|
/**
|
|
* The name of the layer.
|
|
*
|
|
* @default - A name will be generated.
|
|
*/
|
|
readonly layerVersionName?: string;
|
|
/**
|
|
* Whether to retain this version of the layer when a new version is added
|
|
* or when the stack is deleted.
|
|
*
|
|
* @default RemovalPolicy.DESTROY
|
|
*/
|
|
readonly removalPolicy?: RemovalPolicy;
|
|
}
|
|
export interface LayerVersionProps extends LayerVersionOptions {
|
|
/**
|
|
* The runtimes compatible with this Layer.
|
|
*
|
|
* @default - All runtimes are supported.
|
|
*/
|
|
readonly compatibleRuntimes?: Runtime[];
|
|
/**
|
|
* The system architectures compatible with this layer.
|
|
* @default [Architecture.X86_64]
|
|
*/
|
|
readonly compatibleArchitectures?: Architecture[];
|
|
/**
|
|
* The content of this Layer.
|
|
*
|
|
* Using `Code.fromInline` is not supported.
|
|
*/
|
|
readonly code: Code;
|
|
}
|
|
export interface ILayerVersion extends IResource, ILayerVersionRef {
|
|
/**
|
|
* The ARN of the Lambda Layer version that this Layer defines.
|
|
* @attribute
|
|
*/
|
|
readonly layerVersionArn: string;
|
|
/**
|
|
* The runtimes compatible with this Layer.
|
|
*
|
|
* @default - All supported runtimes. Setting this to Runtime.ALL is equivalent to leaving it undefined.
|
|
*/
|
|
readonly compatibleRuntimes?: Runtime[];
|
|
/**
|
|
* Add permission for this layer version to specific entities. Usage within
|
|
* the same account where the layer is defined is always allowed and does not
|
|
* require calling this method. Note that the principal that creates the
|
|
* Lambda function using the layer (for example, a CloudFormation changeset
|
|
* execution role) also needs to have the ``lambda:GetLayerVersion``
|
|
* permission on the layer version.
|
|
*
|
|
* @param id the ID of the grant in the construct tree.
|
|
* @param permission the identification of the grantee.
|
|
*/
|
|
addPermission(id: string, permission: LayerVersionPermission): void;
|
|
}
|
|
/**
|
|
* A reference to a Lambda Layer version.
|
|
*/
|
|
declare abstract class LayerVersionBase extends Resource implements ILayerVersion {
|
|
abstract readonly layerVersionArn: string;
|
|
abstract readonly compatibleRuntimes?: Runtime[];
|
|
get layerVersionRef(): LayerVersionReference;
|
|
addPermission(id: string, permission: LayerVersionPermission): void;
|
|
}
|
|
/**
|
|
* Identification of an account (or organization) that is allowed to access a Lambda Layer Version.
|
|
*/
|
|
export interface LayerVersionPermission {
|
|
/**
|
|
* The AWS Account id of the account that is authorized to use a Lambda Layer Version. The wild-card ``'*'`` can be
|
|
* used to grant access to "any" account (or any account in an organization when ``organizationId`` is specified).
|
|
*/
|
|
readonly accountId: string;
|
|
/**
|
|
* The ID of the AWS Organization to which the grant is restricted.
|
|
*
|
|
* Can only be specified if ``accountId`` is ``'*'``
|
|
*/
|
|
readonly organizationId?: string;
|
|
}
|
|
/**
|
|
* Properties necessary to import a LayerVersion.
|
|
*/
|
|
export interface LayerVersionAttributes {
|
|
/**
|
|
* The ARN of the LayerVersion.
|
|
*/
|
|
readonly layerVersionArn: string;
|
|
/**
|
|
* The list of compatible runtimes with this Layer.
|
|
*/
|
|
readonly compatibleRuntimes?: Runtime[];
|
|
}
|
|
/**
|
|
* Defines a new Lambda Layer version.
|
|
*/
|
|
export declare class LayerVersion extends LayerVersionBase {
|
|
/** Uniquely identifies this class. */
|
|
static readonly PROPERTY_INJECTION_ID: string;
|
|
/**
|
|
* Imports a layer version by ARN. Assumes it is compatible with all Lambda runtimes.
|
|
*/
|
|
static fromLayerVersionArn(scope: Construct, id: string, layerVersionArn: string): ILayerVersion;
|
|
/**
|
|
* Imports a Layer that has been defined externally.
|
|
*
|
|
* @param scope the parent Construct that will use the imported layer.
|
|
* @param id the id of the imported layer in the construct tree.
|
|
* @param attrs the properties of the imported layer.
|
|
*/
|
|
static fromLayerVersionAttributes(scope: Construct, id: string, attrs: LayerVersionAttributes): ILayerVersion;
|
|
readonly layerVersionArn: string;
|
|
readonly compatibleRuntimes?: Runtime[];
|
|
constructor(scope: Construct, id: string, props: LayerVersionProps);
|
|
}
|
|
export {};
|