# FileAssetSource

Represents the source for a file asset.

- Source: [`core/lib/assets.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/core/lib/assets.ts#L100)
- Type last changed: v2.187.0 · 31 Mar 2025

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import * as cdk from 'aws-cdk-lib';
const fileAssetSource: cdk.FileAssetSource = {
  sourceHash: 'sourceHash',

  // the properties below are optional
  deployTime: false,
  displayName: 'displayName',
  executable: ['executable'],
  fileName: 'fileName',
  packaging: cdk.FileAssetPackaging.ZIP_DIRECTORY,
};
```

## Properties

- `deployTime`: boolean = false — Whether or not the asset needs to exist beyond deployment time;

  i.e.
  are copied over to a different location and not needed afterwards.
  Setting this property to true has an impact on the lifecycle of the asset,
  because we will assume that it is safe to delete after the CloudFormation
  deployment succeeds.

  For example, Lambda Function assets are copied over to Lambda during
  deployment. Therefore, it is not necessary to store the asset in S3, so
  we consider those deployTime assets.

- `displayName`: string = The asset hash is used to display the asset — A display name for this asset.

  If supplied, the display name will be used in locations where the asset
  identifier is printed, like in the CLI progress information.

  **Default:** The asset hash is used to display the asset

- `executable`: string[] = Exactly one of `fileName` and `executable` is required — An external command that will produce the packaged asset.

  The command should produce the location of a ZIP file on `stdout`.

  **Default:** Exactly one of `fileName` and `executable` is required

- `fileName`: string = Exactly one of `fileName` and `executable` is required — The path, relative to the root of the cloud assembly, in which this asset source resides.

  This can be a path to a file or a directory, depending on the
  packaging type.

  **Default:** Exactly one of `fileName` and `executable` is required

- `packaging`: [FileAssetPackaging](/cdk/api/v2/docs/aws-cdk-lib.FileAssetPackaging.html) = Required if `fileName` is specified. — Which type of packaging to perform.

  **Default:** Required if `fileName` is specified.

- `sourceHash`: string (required) — A hash on the content source.

  This hash is used to uniquely identify this
  asset throughout the system. If this value doesn't change, the asset will
  not be rebuilt or republished.
