agent-claw: automated task changes

This commit is contained in:
daniel
2026-05-06 18:55:16 -05:00
parent 38905bb1e9
commit 732b00fb66
8494 changed files with 2018127 additions and 4 deletions

View File

@@ -0,0 +1,178 @@
/**
* Specify what changes require manual approval.
*/
export declare enum RequireApproval {
/**
* Approval is not required
*/
NEVER = "never",
/**
* Manual approval required for any change to the stack
*/
ANYCHANGE = "any-change",
/**
* Manual approval required if changes involve a broadening of permissions or security group rules
*/
BROADENING = "broadening"
}
/**
* Default CDK CLI options that apply to all commands
*/
export interface DefaultCdkOptions {
/**
* List of stacks to deploy
*
* Requried if `all` is not set
*
* @default - []
*/
readonly stacks?: string[];
/**
* Deploy all stacks
*
* Requried if `stacks` is not set
*
* @default - false
*/
readonly all?: boolean;
/**
* command-line for executing your app or a cloud assembly directory
* e.g. "node bin/my-app.js"
* or
* "cdk.out"
*
* @default - read from cdk.json
*/
readonly app?: string;
/**
* Role to pass to CloudFormation for deployment
*
* @default - use the bootstrap cfn-exec role
*/
readonly roleArn?: string;
/**
* Additional context
*
* @default - no additional context
*/
readonly context?: {
[name: string]: string;
};
/**
* Print trace for stack warnings
*
* @default false
*/
readonly trace?: boolean;
/**
* Do not construct stacks with warnings
*
* @default false
*/
readonly strict?: boolean;
/**
* Perform context lookups.
*
* Synthesis fails if this is disabled and context lookups need
* to be performed
*
* @default true
*/
readonly lookups?: boolean;
/**
* Ignores synthesis errors, which will likely produce an invalid output
*
* @default false
*/
readonly ignoreErrors?: boolean;
/**
* Use JSON output instead of YAML when templates are printed
* to STDOUT
*
* @default false
*/
readonly json?: boolean;
/**
* show debug logs
*
* @default false
*/
readonly verbose?: boolean;
/**
* enable emission of additional debugging information, such as creation stack
* traces of tokens
*
* @default false
*/
readonly debug?: boolean;
/**
* Use the indicated AWS profile as the default environment
*
* @default - no profile is used
*/
readonly profile?: string;
/**
* Use the indicated proxy. Will read from
* HTTPS_PROXY environment if specified
*
* @default - no proxy
*/
readonly proxy?: string;
/**
* Path to CA certificate to use when validating HTTPS
* requests.
*
* @default - read from AWS_CA_BUNDLE environment variable
*/
readonly caBundlePath?: string;
/**
* Force trying to fetch EC2 instance credentials
*
* @default - guess EC2 instance status
*/
readonly ec2Creds?: boolean;
/**
* Include "AWS::CDK::Metadata" resource in synthesized templates
*
* @default true
*/
readonly versionReporting?: boolean;
/**
* Include "aws:cdk:path" CloudFormation metadata for each resource
*
* @default true
*/
readonly pathMetadata?: boolean;
/**
* Include "aws:asset:*" CloudFormation metadata for resources that use assets
*
* @default true
*/
readonly assetMetadata?: boolean;
/**
* Copy assets to the output directory
*
* Needed for local debugging the source files with SAM CLI
*
* @default false
*/
readonly staging?: boolean;
/**
* Emits the synthesized cloud assembly into a directory
*
* @default cdk.out
*/
readonly output?: string;
/**
* Show relevant notices
*
* @default true
*/
readonly notices?: boolean;
/**
* Show colors and other style from console output
*
* @default true
*/
readonly color?: boolean;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,92 @@
import type { DefaultCdkOptions, RequireApproval } from './common';
/**
* Options to use with cdk deploy
*/
export interface DeployOptions extends DefaultCdkOptions {
/**
* Only perform action on the given stack
*
* @default false
*/
readonly exclusively?: boolean;
/**
* Name of the toolkit stack to use/deploy
*
* @default CDKToolkit
*/
readonly toolkitStackName?: string;
/**
* Reuse the assets with the given asset IDs
*
* @default - do not reuse assets
*/
readonly reuseAssets?: string[];
/**
* Optional name to use for the CloudFormation change set.
* If not provided, a name will be generated automatically.
*
* @default - auto generate a name
*/
readonly changeSetName?: string;
/**
* Always deploy, even if templates are identical.
* @default false
*/
readonly force?: boolean;
/**
* Rollback failed deployments
*
* @default true
*/
readonly rollback?: boolean;
/**
* ARNs of SNS topics that CloudFormation will notify with stack related events
*
* @default - no notifications
*/
readonly notificationArns?: string[];
/**
* What kind of security changes require approval
*
* @default RequireApproval.NEVER
*/
readonly requireApproval?: RequireApproval;
/**
* Whether to execute the ChangeSet
* Not providing `execute` parameter will result in execution of ChangeSet
* @default true
*/
readonly execute?: boolean;
/**
* Additional parameters for CloudFormation at deploy time
* @default {}
*/
readonly parameters?: {
[name: string]: string;
};
/**
* Use previous values for unspecified parameters
*
* If not set, all parameters must be specified for every deployment.
*
* @default true
*/
readonly usePreviousParameters?: boolean;
/**
* Path to file where stack outputs will be written after a successful deploy as JSON
* @default - Outputs are not written to any file
*/
readonly outputsFile?: string;
/**
* Whether we are on a CI system
*
* @default false
*/
readonly ci?: boolean;
/**
* Deploy multiple stacks in parallel
*
* @default 1
*/
readonly concurrency?: number;
}

View File

@@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVwbG95LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERlZmF1bHRDZGtPcHRpb25zLCBSZXF1aXJlQXBwcm92YWwgfSBmcm9tICcuL2NvbW1vbic7XG5cbi8qKlxuICogT3B0aW9ucyB0byB1c2Ugd2l0aCBjZGsgZGVwbG95XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95T3B0aW9ucyBleHRlbmRzIERlZmF1bHRDZGtPcHRpb25zIHtcbiAgLyoqXG4gICAqIE9ubHkgcGVyZm9ybSBhY3Rpb24gb24gdGhlIGdpdmVuIHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBleGNsdXNpdmVseT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHRvb2xraXQgc3RhY2sgdG8gdXNlL2RlcGxveVxuICAgKlxuICAgKiBAZGVmYXVsdCBDREtUb29sa2l0XG4gICAqL1xuICByZWFkb25seSB0b29sa2l0U3RhY2tOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXVzZSB0aGUgYXNzZXRzIHdpdGggdGhlIGdpdmVuIGFzc2V0IElEc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRvIG5vdCByZXVzZSBhc3NldHNcbiAgICovXG4gIHJlYWRvbmx5IHJldXNlQXNzZXRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5hbWUgdG8gdXNlIGZvciB0aGUgQ2xvdWRGb3JtYXRpb24gY2hhbmdlIHNldC5cbiAgICogSWYgbm90IHByb3ZpZGVkLCBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRvIGdlbmVyYXRlIGEgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlU2V0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQWx3YXlzIGRlcGxveSwgZXZlbiBpZiB0ZW1wbGF0ZXMgYXJlIGlkZW50aWNhbC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUm9sbGJhY2sgZmFpbGVkIGRlcGxveW1lbnRzXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGxiYWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQVJOcyBvZiBTTlMgdG9waWNzIHRoYXQgQ2xvdWRGb3JtYXRpb24gd2lsbCBub3RpZnkgd2l0aCBzdGFjayByZWxhdGVkIGV2ZW50c1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG5vdGlmaWNhdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hhdCBraW5kIG9mIHNlY3VyaXR5IGNoYW5nZXMgcmVxdWlyZSBhcHByb3ZhbFxuICAgKlxuICAgKiBAZGVmYXVsdCBSZXF1aXJlQXBwcm92YWwuTkVWRVJcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVBcHByb3ZhbD86IFJlcXVpcmVBcHByb3ZhbDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBleGVjdXRlIHRoZSBDaGFuZ2VTZXRcbiAgICogTm90IHByb3ZpZGluZyBgZXhlY3V0ZWAgcGFyYW1ldGVyIHdpbGwgcmVzdWx0IGluIGV4ZWN1dGlvbiBvZiBDaGFuZ2VTZXRcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgcGFyYW1ldGVycyBmb3IgQ2xvdWRGb3JtYXRpb24gYXQgZGVwbG95IHRpbWVcbiAgICogQGRlZmF1bHQge31cbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVXNlIHByZXZpb3VzIHZhbHVlcyBmb3IgdW5zcGVjaWZpZWQgcGFyYW1ldGVyc1xuICAgKlxuICAgKiBJZiBub3Qgc2V0LCBhbGwgcGFyYW1ldGVycyBtdXN0IGJlIHNwZWNpZmllZCBmb3IgZXZlcnkgZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlUHJldmlvdXNQYXJhbWV0ZXJzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUGF0aCB0byBmaWxlIHdoZXJlIHN0YWNrIG91dHB1dHMgd2lsbCBiZSB3cml0dGVuIGFmdGVyIGEgc3VjY2Vzc2Z1bCBkZXBsb3kgYXMgSlNPTlxuICAgKiBAZGVmYXVsdCAtIE91dHB1dHMgYXJlIG5vdCB3cml0dGVuIHRvIGFueSBmaWxlXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRzRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB3ZSBhcmUgb24gYSBDSSBzeXN0ZW1cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNpPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVwbG95IG11bHRpcGxlIHN0YWNrcyBpbiBwYXJhbGxlbFxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBjb25jdXJyZW5jeT86IG51bWJlcjtcbn1cbiJdfQ==

View File

@@ -0,0 +1,18 @@
import type { DefaultCdkOptions } from './common';
/**
* Options to use with cdk destroy
*/
export interface DestroyOptions extends DefaultCdkOptions {
/**
* Do not ask for permission before destroying stacks
*
* @default false
*/
readonly force?: boolean;
/**
* Only destroy the given stack
*
* @default false
*/
readonly exclusively?: boolean;
}

View File

@@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlc3Ryb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGVmYXVsdENka09wdGlvbnMgfSBmcm9tICcuL2NvbW1vbic7XG5cbi8qKlxuICogT3B0aW9ucyB0byB1c2Ugd2l0aCBjZGsgZGVzdHJveVxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlc3Ryb3lPcHRpb25zIGV4dGVuZHMgRGVmYXVsdENka09wdGlvbnMge1xuICAvKipcbiAgICogRG8gbm90IGFzayBmb3IgcGVybWlzc2lvbiBiZWZvcmUgZGVzdHJveWluZyBzdGFja3NcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT25seSBkZXN0cm95IHRoZSBnaXZlbiBzdGFja1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVzaXZlbHk/OiBib29sZWFuO1xufVxuIl19

View File

@@ -0,0 +1,3 @@
export * from './common';
export * from './deploy';
export * from './destroy';

View File

@@ -0,0 +1,20 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./common"), exports);
__exportStar(require("./deploy"), exports);
__exportStar(require("./destroy"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLDJDQUF5QjtBQUN6Qiw0Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbW1vbic7XG5leHBvcnQgKiBmcm9tICcuL2RlcGxveSc7XG5leHBvcnQgKiBmcm9tICcuL2Rlc3Ryb3knO1xuIl19

View File

@@ -0,0 +1,3 @@
export * from './schema';
export * from './commands';
export * from './test-case';

View File

@@ -0,0 +1,20 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./schema"), exports);
__exportStar(require("./commands"), exports);
__exportStar(require("./test-case"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQiw4Q0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NjaGVtYSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzJztcbmV4cG9ydCAqIGZyb20gJy4vdGVzdC1jYXNlJztcbiJdfQ==

View File

@@ -0,0 +1,35 @@
import type { TestCase } from './test-case';
/**
* Definitions for the integration testing manifest
*/
export interface IntegManifest {
/**
* Version of the manifest
*/
readonly version: string;
/**
* Enable lookups for this test. If lookups are enabled
* then `stackUpdateWorkflow` must be set to false.
* Lookups should only be enabled when you are explicitly testing
* lookups.
*
* @default false
*/
readonly enableLookups?: boolean;
/**
* Additional context to use when performing
* a synth. Any context provided here will override
* any default context
*
* @default - no additional context
*/
readonly synthContext?: {
[name: string]: string;
};
/**
* test cases
*/
readonly testCases: {
[testName: string]: TestCase;
};
}

View File

@@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRlc3RDYXNlIH0gZnJvbSAnLi90ZXN0LWNhc2UnO1xuLyoqXG4gKiBEZWZpbml0aW9ucyBmb3IgdGhlIGludGVncmF0aW9uIHRlc3RpbmcgbWFuaWZlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlZ01hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgdGhlIG1hbmlmZXN0XG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBsb29rdXBzIGZvciB0aGlzIHRlc3QuIElmIGxvb2t1cHMgYXJlIGVuYWJsZWRcbiAgICogdGhlbiBgc3RhY2tVcGRhdGVXb3JrZmxvd2AgbXVzdCBiZSBzZXQgdG8gZmFsc2UuXG4gICAqIExvb2t1cHMgc2hvdWxkIG9ubHkgYmUgZW5hYmxlZCB3aGVuIHlvdSBhcmUgZXhwbGljaXRseSB0ZXN0aW5nXG4gICAqIGxvb2t1cHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVMb29rdXBzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBjb250ZXh0IHRvIHVzZSB3aGVuIHBlcmZvcm1pbmdcbiAgICogYSBzeW50aC4gQW55IGNvbnRleHQgcHJvdmlkZWQgaGVyZSB3aWxsIG92ZXJyaWRlXG4gICAqIGFueSBkZWZhdWx0IGNvbnRleHRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhZGRpdGlvbmFsIGNvbnRleHRcbiAgICovXG4gIHJlYWRvbmx5IHN5bnRoQ29udGV4dD86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiB0ZXN0IGNhc2VzXG4gICAqL1xuICByZWFkb25seSB0ZXN0Q2FzZXM6IHsgW3Rlc3ROYW1lOiBzdHJpbmddOiBUZXN0Q2FzZSB9O1xufVxuIl19

View File

@@ -0,0 +1,186 @@
import type { DeployOptions, DestroyOptions } from './commands';
/**
* The set of options to control the workflow of the test runner
*/
export interface TestOptions {
/**
* Run update workflow on this test case
* This should only be set to false to test scenarios
* that are not possible to test as part of the update workflow
*
* @default true
*/
readonly stackUpdateWorkflow?: boolean;
/**
* Additional options to use for each CDK command
*
* @default - runner default options
*/
readonly cdkCommandOptions?: CdkCommands;
/**
* Additional commands to run at predefined points in the test workflow
*
* e.g. { postDeploy: ['yarn', 'test'] }
*
* @default - no hooks
*/
readonly hooks?: Hooks;
/**
* Whether or not to include asset hashes in the diff
* Asset hashes can introduces a lot of unneccessary noise into tests,
* but there are some cases where asset hashes _should_ be included. For example
* any tests involving custom resources or bundling
*
* @default false
*/
readonly diffAssets?: boolean;
/**
* List of CloudFormation resource types in this stack that can
* be destroyed as part of an update without failing the test.
*
* This list should only include resources that for this specific
* integration test we are sure will not cause errors or an outage if
* destroyed. For example, maybe we know that a new resource will be created
* first before the old resource is destroyed which prevents any outage.
*
* e.g. ['AWS::IAM::Role']
*
* @default - do not allow destruction of any resources on update
*/
readonly allowDestroy?: string[];
/**
* Limit deployment to these regions
*
* @default - can run in any region
*/
readonly regions?: string[];
}
/**
* Represents an integration test case
*/
export interface TestCase extends TestOptions {
/**
* Stacks that should be tested as part of this test case
* The stackNames will be passed as args to the cdk commands
* so dependent stacks will be automatically deployed unless
* `exclusively` is passed
*/
readonly stacks: string[];
/**
* The node id of the stack that contains assertions.
* This is the value that can be used to deploy the stack with the CDK CLI
*
* @default - no assertion stack
*/
readonly assertionStack?: string;
/**
* The name of the stack that contains assertions
*
* @default - no assertion stack
*/
readonly assertionStackName?: string;
}
/**
* Commands to run at predefined points during the
* integration test workflow
*/
export interface Hooks {
/**
* Commands to run prior to deploying the cdk stacks
* in the integration test
*
* @default - no commands
*/
readonly preDeploy?: string[];
/**
* Commands to run prior after deploying the cdk stacks
* in the integration test
*
* @default - no commands
*/
readonly postDeploy?: string[];
/**
* Commands to run prior to destroying the cdk stacks
* in the integration test
*
* @default - no commands
*/
readonly preDestroy?: string[];
/**
* Commands to run after destroying the cdk stacks
* in the integration test
*
* @default - no commands
*/
readonly postDestroy?: string[];
}
/**
* Represents a cdk command
* i.e. `synth`, `deploy`, & `destroy`
*/
export interface CdkCommand {
/**
* Whether or not to run this command as part of the workflow
* This can be used if you only want to test some of the workflow
* for example enable `synth` and disable `deploy` & `destroy` in order
* to limit the test to synthesis
*
* @default true
*/
readonly enabled?: boolean;
/**
* If the runner should expect this command to fail
*
* @default false
*/
readonly expectError?: boolean;
/**
* This can be used in combination with `expectedError`
* to validate that a specific message is returned.
*
* @default - do not validate message
*/
readonly expectedMessage?: string;
}
/**
* Represents a cdk deploy command
*/
export interface DeployCommand extends CdkCommand {
/**
* Additional arguments to pass to the command
* This can be used to test specific CLI functionality
*
* @default - only default args are used
*/
readonly args?: DeployOptions;
}
/**
* Represents a cdk destroy command
*/
export interface DestroyCommand extends CdkCommand {
/**
* Additional arguments to pass to the command
* This can be used to test specific CLI functionality
*
* @default - only default args are used
*/
readonly args?: DestroyOptions;
}
/**
* Options for specific cdk commands that are run
* as part of the integration test workflow
*/
export interface CdkCommands {
/**
* Options to for the cdk deploy command
*
* @default - default deploy options
*/
readonly deploy?: DeployCommand;
/**
* Options to for the cdk destroy command
*
* @default - default destroy options
*/
readonly destroy?: DestroyCommand;
}

File diff suppressed because one or more lines are too long