UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

108 lines (107 loc) 3.59 kB
import { ISynthesisSession } from './types'; import * as cxschema from '../../../cloud-assembly-schema'; import { FileAssetSource, DockerImageAssetSource } from '../assets'; import { Stack } from '../stack'; /** * Build an asset manifest from assets added to a stack * * This class does not need to be used by app builders; it is only necessary for building Stack Synthesizers. */ export declare class AssetManifestBuilder { private readonly files; private readonly dockerImages; /** * Add a file asset to the manifest with default settings * * Derive the region from the stack, use the asset hash as the key, copy the * file extension over, and set the prefix. */ defaultAddFileAsset(stack: Stack, asset: FileAssetSource, target: AssetManifestFileDestination): cxschema.FileDestination; /** * Add a docker image asset to the manifest with default settings * * Derive the region from the stack, use the asset hash as the key, and set the prefix. */ defaultAddDockerImageAsset(stack: Stack, asset: DockerImageAssetSource, target: AssetManifestDockerImageDestination): cxschema.DockerImageDestination; /** * Add a file asset source and destination to the manifest * * sourceHash should be unique for every source. */ addFileAsset(stack: Stack, sourceHash: string, source: cxschema.FileSource, dest: cxschema.FileDestination): cxschema.FileDestination; /** * Add a docker asset source and destination to the manifest * * sourceHash should be unique for every source. */ addDockerImageAsset(stack: Stack, sourceHash: string, source: cxschema.DockerImageSource, dest: cxschema.DockerImageDestination): cxschema.DockerImageDestination; /** * Whether there are any assets registered in the manifest */ get hasAssets(): boolean; /** * Write the manifest to disk, and add it to the synthesis session * * Return the artifact id, which should be added to the `additionalDependencies` * field of the stack artifact. */ emitManifest(stack: Stack, session: ISynthesisSession, options?: cxschema.AssetManifestOptions, dependencies?: string[]): string; private manifestEnvName; } /** * The destination for a file asset, when it is given to the AssetManifestBuilder */ export interface AssetManifestFileDestination { /** * Bucket name where the file asset should be written */ readonly bucketName: string; /** * Prefix to prepend to the asset hash * * @default '' */ readonly bucketPrefix?: string; /** * Role to use for uploading * * @default - current role */ readonly role?: RoleOptions; } /** * The destination for a docker image asset, when it is given to the AssetManifestBuilder */ export interface AssetManifestDockerImageDestination { /** * Repository name where the docker image asset should be written */ readonly repositoryName: string; /** * Prefix to add to the asset hash to make the Docker image tag * * @default '' */ readonly dockerTagPrefix?: string; /** * Role to use to perform the upload * * @default - No role */ readonly role?: RoleOptions; } /** * Options for specifying a role */ export interface RoleOptions { /** * ARN of the role to assume */ readonly assumeRoleArn: string; /** * External ID to use when assuming the role * * @default - No external ID */ readonly assumeRoleExternalId?: string; }