@infrascan/aws-lambda-scanner
Version:
Infrascan scanner definition for AWS Lambda
86 lines (83 loc) • 3.61 kB
TypeScript
import { PackageType, GetFunctionCommandInput, GetFunctionCommandOutput, AmazonManagedKafkaEventSourceConfig, SelfManagedKafkaEventSourceConfig, DocumentDBEventSourceConfig, SelfManagedEventSource, DestinationConfig, ScalingConfig, FilterCriteria, EventSourcePosition, SourceAccessConfiguration, ListEventSourceMappingsCommandInput, ListEventSourceMappingsCommandOutput, EventSourceMappingConfiguration } from '@aws-sdk/client-lambda';
import { QualifiedMeasure, SizeUnit, TimeUnit, KVPair, BaseState, TranslatedEntity, State, WithCallContext } from '@infrascan/shared-types';
interface CodeDetails {
size?: QualifiedMeasure<SizeUnit>;
sha256?: string;
imageUri?: string;
location?: string;
repositoryType?: string;
resolvedImageUri?: string;
packageType?: PackageType;
}
interface Layer {
arn?: string;
size?: QualifiedMeasure<SizeUnit>;
}
interface FunctionDetails {
handler?: string;
runtime?: string;
memorySize?: QualifiedMeasure<SizeUnit>;
timeout?: QualifiedMeasure<TimeUnit>;
layers?: Layer[];
environment?: KVPair[];
}
interface ConcurrencyDetails {
reservedConcurrentExecutions?: number;
}
interface LambdaState {
concurrency?: ConcurrencyDetails;
type?: Lowercase<PackageType>;
supportedArchitectures?: string[];
code?: CodeDetails;
function?: FunctionDetails;
}
type LambdaFunction = BaseState<GetFunctionCommandInput> & {
lambda: LambdaState;
};
type GraphState = LambdaFunction;
declare const LambdaFunctionEntity: TranslatedEntity<LambdaFunction, State<GetFunctionCommandOutput, GetFunctionCommandInput>, WithCallContext<GetFunctionCommandOutput, GetFunctionCommandInput>>;
interface EventProducers {
managedKafka?: AmazonManagedKafkaEventSourceConfig;
selfManagedKafka?: SelfManagedKafkaEventSourceConfig;
documentDb?: DocumentDBEventSourceConfig;
selfManagedSource?: SelfManagedEventSource;
queues?: string[];
topics?: string[];
}
interface ProcessingConfig {
parallelizationFactor?: number;
destinationConfig?: DestinationConfig;
scaling?: ScalingConfig;
}
interface ReaderConfig {
filter?: FilterCriteria;
batchSize?: number;
maximumBatchWindow?: QualifiedMeasure<TimeUnit>;
tumblingWindow?: QualifiedMeasure<TimeUnit>;
maximumRecordAge?: QualifiedMeasure<TimeUnit>;
startingPosition?: EventSourcePosition;
startingPositionTimestamp?: string;
}
interface EventSourceStatus {
state?: string;
stateTransitionReason?: string;
lastResult?: string;
}
interface ErrorHandling {
maxRetryAttempts?: number;
bisectBatchOnFailure?: boolean;
}
interface EventSource {
functionArn?: string;
sources?: EventProducers;
processingConfig?: ProcessingConfig;
status?: EventSourceStatus;
errorHandling?: ErrorHandling;
reader?: ReaderConfig;
sourceAccessConfigurations?: SourceAccessConfiguration[];
}
interface EventSourceMapping extends BaseState<ListEventSourceMappingsCommandInput> {
eventSource: EventSource;
}
declare const LambdaEventSourceEntity: TranslatedEntity<EventSourceMapping, State<ListEventSourceMappingsCommandOutput, ListEventSourceMappingsCommandInput>, WithCallContext<EventSourceMappingConfiguration, ListEventSourceMappingsCommandInput>>;
export { type CodeDetails, type ConcurrencyDetails, type ErrorHandling, type EventProducers, type EventSource, type EventSourceMapping, type EventSourceStatus, type FunctionDetails, type GraphState, LambdaEventSourceEntity, type LambdaFunction, LambdaFunctionEntity, type LambdaState, type Layer, type ProcessingConfig, type ReaderConfig };