/*! * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ /** * This file is not generated from the core library. Please regenerate from * 'packages/toolkit', e.g. `npm run generateConfigurationAttributes -w packages/toolkit` */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ import * as vscode from "vscode"; export interface AwsSamDebuggerConfiguration extends vscode.DebugConfiguration { aws?: AWSConnection; invokeTarget: TemplateTargetProperties | CodeTargetProperties | APITargetProperties; lambda?: LambdaProperties; sam?: SAMCLIProperties; api?: APIGatewayProperties; } /** * AWS connection details */ export interface AWSConnection { /** * The AWS credentials provider and name to use during the invocation. Example: credential profile "default" would be entered as `profile:default`. */ credentials?: string; /** * AWS region to use during the invocation. */ region?: string; } /** * Configures the application to launch */ export interface TemplateTargetProperties { /** * Path to the CFN/SAM template. */ templatePath: string; /** * Resource name of an AWS::Lambda::Function or AWS::Serverless::Function to invoke. */ logicalId: string; /** * The type of invocation to launch. Possible values: * * `template` uses a CFN/SAM Template as an entrypoint * * `code` invokes Lambda code directly. * * `api` uses the CFN/SAM Template to emulate API Gateway */ target: "template"; } /** * Configures the application to launch */ export interface CodeTargetProperties { /** * Lambda Function handler to invoke. */ lambdaHandler: string; /** * The root of the project, used to determine where in the file-system to locate the lambdaHandler. */ projectRoot: string; /** * The type of invocation to launch. Possible values: * * `template` uses a CFN/SAM Template as an entrypoint * * `code` invokes Lambda code directly. * * `api` uses the CFN/SAM Template to emulate API Gateway */ target: "code"; /** * Architecture used for local SAM Lambda emulation */ architecture?: "x86_64" | "arm64"; } /** * Configures the application to launch */ export interface APITargetProperties { /** * Path to the CFN/SAM template. */ templatePath: string; /** * Resource name of an AWS::Lambda::Function or AWS::Serverless::Function to invoke. */ logicalId: string; /** * The type of invocation to launch. Possible values: * * `template` uses a CFN/SAM Template as an entrypoint * * `code` invokes Lambda code directly. * * `api` uses the CFN/SAM Template to emulate API Gateway */ target: "api"; } /** * Lambda specific details of the invocation */ export interface LambdaProperties { /** * Environment variables to pass to the function invocation (replaces template variables). */ environmentVariables?: { [k: string]: string; }; /** * Event payload to pass to the Lambda invocation. * Must specify one of 'json' or 'path'. */ payload?: { /** * JSON definition to use as the event payload */ json?: { [k: string]: unknown; }; /** * Path to a file to use as the event payload */ path?: string; }; /** * The amount of memory (in Mb) the Lambda function has access to. */ memoryMb?: number; /** * The Lambda Function's runtime */ runtime?: string; /** * The amount of time (in seconds) that Lambda allows a function to run before stopping it. */ timeoutSec?: number; pathMappings?: PathMapping[]; } export interface PathMapping { localRoot: string; remoteRoot: string; } /** * SAM CLI specific configurations */ export interface SAMCLIProperties { /** * Additional arguments to pass to the `sam build` command. */ buildArguments?: string[]; /** * Base directory to build and run the application. * A temporary directory will be created if not specified. */ buildDir?: string; /** * Whether to build inside a container (default: false). */ containerBuild?: boolean; /** * Specifies the name or id of an existing Docker network that Lambda Docker containers should connect to. */ dockerNetwork?: string; /** * Additional arguments to pass to the `sam local` command. */ localArguments?: string[]; /** * Specifies whether the command should skip pulling down the latest Docker image for Lambda runtime (default: false). */ skipNewImageCheck?: boolean; /** * Values to override in the template */ template?: { /** * Key:value mappings for SAM template parameter overrides. More information can be found here: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stackinstances-override.html#stackinstances-override-cli */ parameters?: { [k: string]: string | number; }; }; } /** * API Gateway configuration */ export interface APIGatewayProperties { /** * The path to the api (must start with /) */ path: string; /** * The HTTP message method that will be used */ httpMethod: "delete" | "get" | "head" | "options" | "patch" | "post" | "put"; /** * Event payload to pass to the Lambda invocation. * Must specify one of 'json' or 'path'. */ payload?: { /** * JSON definition to use as the event payload */ json?: { [k: string]: unknown; }; /** * Path to a file to use as the event payload */ path?: string; }; /** * Additional HTTP headers */ headers?: { [k: string]: string; }; /** * URL query string (e.g. key=foo&value=bar) */ querystring?: string; /** * key-value map of API Gateway stage variables */ stageVariables?: { [k: string]: string; }; /** * The API Gateway client certificate ID */ clientCertificateId?: string; }