UNPKG

@aws-sdk/client-lambda

Version:

AWS SDK for JavaScript Lambda Client for Node.js, Browser and React Native

1,367 lines 256 kB
import type { StreamingBlobTypes } from "@smithy/types"; import type { ApplicationLogLevel, Architecture, CapacityProviderPredefinedMetricType, CapacityProviderScalingMode, CapacityProviderState, CodeSigningPolicy, EndPointType, EventSourceMappingMetric, EventSourceMappingSystemLogLevel, EventSourcePosition, EventType, ExecutionStatus, FullDocument, FunctionResponseType, FunctionUrlAuthType, FunctionVersion, FunctionVersionLatestPublished, InvocationType, InvokeMode, KafkaSchemaRegistryAuthType, KafkaSchemaValidationAttribute, LastUpdateStatus, LastUpdateStatusReasonCode, LogFormat, LogType, OperationAction, OperationStatus, OperationType, PackageType, ProvisionedConcurrencyStatusEnum, RecursiveLoop, ResponseStreamingInvocationType, Runtime, SchemaRegistryEventRecordFormat, SnapStartApplyOn, SnapStartOptimizationStatus, SourceAccessType, State, StateReasonCode, SystemLogLevel, TenantIsolationMode, TracingMode, UpdateRuntimeOn } from "./enums"; /** * <p>Limits that are related to concurrency and storage. All file and storage sizes are in bytes.</p> * @public */ export interface AccountLimit { /** * <p>The amount of storage space that you can use for all deployment packages and layer archives.</p> * @public */ TotalCodeSize?: number | undefined; /** * <p>The maximum size of a function's deployment package and layers when they're extracted.</p> * @public */ CodeSizeUnzipped?: number | undefined; /** * <p>The maximum size of a deployment package when it's uploaded directly to Lambda. Use Amazon S3 for larger files.</p> * @public */ CodeSizeZipped?: number | undefined; /** * <p>The maximum number of simultaneous function executions.</p> * @public */ ConcurrentExecutions?: number | undefined; /** * <p>The maximum number of simultaneous function executions, minus the capacity that's reserved for individual functions with <a>PutFunctionConcurrency</a>.</p> * @public */ UnreservedConcurrentExecutions?: number | undefined; } /** * <p>The number of functions and amount of storage in use.</p> * @public */ export interface AccountUsage { /** * <p>The amount of storage space, in bytes, that's being used by deployment packages and layer archives.</p> * @public */ TotalCodeSize?: number | undefined; /** * <p>The number of Lambda functions.</p> * @public */ FunctionCount?: number | undefined; } /** * @public */ export interface AddLayerVersionPermissionRequest { /** * <p>The name or Amazon Resource Name (ARN) of the layer.</p> * @public */ LayerName: string | undefined; /** * <p>The version number.</p> * @public */ VersionNumber: number | undefined; /** * <p>An identifier that distinguishes the policy from others on the same layer version.</p> * @public */ StatementId: string | undefined; /** * <p>The API action that grants access to the layer. For example, <code>lambda:GetLayerVersion</code>.</p> * @public */ Action: string | undefined; /** * <p>An account ID, or <code>*</code> to grant layer usage permission to all accounts in an organization, or all Amazon Web Services accounts (if <code>organizationId</code> is not specified). For the last case, make sure that you really do want all Amazon Web Services accounts to have usage permission to this layer. </p> * @public */ Principal: string | undefined; /** * <p>With the principal set to <code>*</code>, grant permission to all accounts in the specified organization.</p> * @public */ OrganizationId?: string | undefined; /** * <p>Only update the policy if the revision ID matches the ID specified. Use this option to avoid modifying a policy that has changed since you last read it.</p> * @public */ RevisionId?: string | undefined; } /** * @public */ export interface AddLayerVersionPermissionResponse { /** * <p>The permission statement.</p> * @public */ Statement?: string | undefined; /** * <p>A unique identifier for the current revision of the policy.</p> * @public */ RevisionId?: string | undefined; } /** * @public */ export interface AddPermissionRequest { /** * <p>The name or ARN of the Lambda function, version, or alias.</p> <p class="title"> <b>Name formats</b> </p> <ul> <li> <p> <b>Function name</b> – <code>my-function</code> (name-only), <code>my-function:v1</code> (with alias).</p> </li> <li> <p> <b>Function ARN</b> – <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>.</p> </li> <li> <p> <b>Partial ARN</b> – <code>123456789012:function:my-function</code>.</p> </li> </ul> <p>You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.</p> * @public */ FunctionName: string | undefined; /** * <p>A statement identifier that differentiates the statement from others in the same policy.</p> * @public */ StatementId: string | undefined; /** * <p>The action that the principal can use on the function. For example, <code>lambda:InvokeFunction</code> or <code>lambda:GetFunction</code>.</p> * @public */ Action: string | undefined; /** * <p>The Amazon Web Services service, Amazon Web Services account, IAM user, or IAM role that invokes the function. If you specify a service, use <code>SourceArn</code> or <code>SourceAccount</code> to limit who can invoke the function through that service.</p> * @public */ Principal: string | undefined; /** * <p>For Amazon Web Services services, the ARN of the Amazon Web Services resource that invokes the function. For example, an Amazon S3 bucket or Amazon SNS topic.</p> <p>Note that Lambda configures the comparison using the <code>StringLike</code> operator.</p> * @public */ SourceArn?: string | undefined; /** * <p>For Amazon Web Services service, the ID of the Amazon Web Services account that owns the resource. Use this together with <code>SourceArn</code> to ensure that the specified account owns the resource. It is possible for an Amazon S3 bucket to be deleted by its owner and recreated by another account.</p> * @public */ SourceAccount?: string | undefined; /** * <p>For Alexa Smart Home functions, a token that the invoker must supply.</p> * @public */ EventSourceToken?: string | undefined; /** * <p>Specify a version or alias to add permissions to a published version of the function.</p> * @public */ Qualifier?: string | undefined; /** * <p>Update the policy only if the revision ID matches the ID that's specified. Use this option to avoid modifying a policy that has changed since you last read it.</p> * @public */ RevisionId?: string | undefined; /** * <p>The identifier for your organization in Organizations. Use this to grant permissions to all the Amazon Web Services accounts under this organization.</p> * @public */ PrincipalOrgID?: string | undefined; /** * <p>The type of authentication that your function URL uses. Set to <code>AWS_IAM</code> if you want to restrict access to authenticated users only. Set to <code>NONE</code> if you want to bypass IAM authentication to create a public endpoint. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html">Control access to Lambda function URLs</a>.</p> * @public */ FunctionUrlAuthType?: FunctionUrlAuthType | undefined; /** * <p>Indicates whether the permission applies when the function is invoked through a function URL. </p> * @public */ InvokedViaFunctionUrl?: boolean | undefined; } /** * @public */ export interface AddPermissionResponse { /** * <p>The permission statement that's added to the function policy.</p> * @public */ Statement?: string | undefined; } /** * <p>The <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-traffic-shifting-using-aliases.html">traffic-shifting</a> configuration of a Lambda function alias.</p> * @public */ export interface AliasRoutingConfiguration { /** * <p>The second version, and the percentage of traffic that's routed to it.</p> * @public */ AdditionalVersionWeights?: Record<string, number> | undefined; } /** * <p>Provides configuration information about a Lambda function <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html">alias</a>.</p> * @public */ export interface AliasConfiguration { /** * <p>The Amazon Resource Name (ARN) of the alias.</p> * @public */ AliasArn?: string | undefined; /** * <p>The name of the alias.</p> * @public */ Name?: string | undefined; /** * <p>The function version that the alias invokes.</p> * @public */ FunctionVersion?: string | undefined; /** * <p>A description of the alias.</p> * @public */ Description?: string | undefined; /** * <p>The <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-traffic-shifting-using-aliases.html">routing configuration</a> of the alias.</p> * @public */ RoutingConfig?: AliasRoutingConfiguration | undefined; /** * <p>A unique identifier that changes when you update the alias.</p> * @public */ RevisionId?: string | undefined; } /** * <p>List of signing profiles that can sign a code package. </p> * @public */ export interface AllowedPublishers { /** * <p>The Amazon Resource Name (ARN) for each of the signing profiles. A signing profile defines a trusted user who can sign a code package. </p> * @public */ SigningProfileVersionArns: string[] | undefined; } /** * <p>Specific access configuration settings that tell Lambda how to authenticate with your schema registry.</p> <p>If you're working with an Glue schema registry, don't provide authentication details in this object. Instead, ensure that your execution role has the required permissions for Lambda to access your cluster.</p> <p>If you're working with a Confluent schema registry, choose the authentication method in the <code>Type</code> field, and provide the Secrets Manager secret ARN in the <code>URI</code> field.</p> * @public */ export interface KafkaSchemaRegistryAccessConfig { /** * <p> The type of authentication Lambda uses to access your schema registry. </p> * @public */ Type?: KafkaSchemaRegistryAuthType | undefined; /** * <p> The URI of the secret (Secrets Manager secret ARN) to authenticate with your schema registry. </p> * @public */ URI?: string | undefined; } /** * <p>Specific schema validation configuration settings that tell Lambda the message attributes you want to validate and filter using your schema registry.</p> * @public */ export interface KafkaSchemaValidationConfig { /** * <p> The attributes you want your schema registry to validate and filter for. If you selected <code>JSON</code> as the <code>EventRecordFormat</code>, Lambda also deserializes the selected message attributes. </p> * @public */ Attribute?: KafkaSchemaValidationAttribute | undefined; } /** * <p>Specific configuration settings for a Kafka schema registry.</p> * @public */ export interface KafkaSchemaRegistryConfig { /** * <p>The URI for your schema registry. The correct URI format depends on the type of schema registry you're using.</p> <ul> <li> <p>For Glue schema registries, use the ARN of the registry.</p> </li> <li> <p>For Confluent schema registries, use the URL of the registry.</p> </li> </ul> * @public */ SchemaRegistryURI?: string | undefined; /** * <p>The record format that Lambda delivers to your function after schema validation.</p> <ul> <li> <p>Choose <code>JSON</code> to have Lambda deliver the record to your function as a standard JSON object.</p> </li> <li> <p>Choose <code>SOURCE</code> to have Lambda deliver the record to your function in its original source format. Lambda removes all schema metadata, such as the schema ID, before sending the record to your function.</p> </li> </ul> * @public */ EventRecordFormat?: SchemaRegistryEventRecordFormat | undefined; /** * <p>An array of access configuration objects that tell Lambda how to authenticate with your schema registry.</p> * @public */ AccessConfigs?: KafkaSchemaRegistryAccessConfig[] | undefined; /** * <p>An array of schema validation configuration objects, which tell Lambda the message attributes you want to validate and filter using your schema registry.</p> * @public */ SchemaValidationConfigs?: KafkaSchemaValidationConfig[] | undefined; } /** * <p>Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.</p> * @public */ export interface AmazonManagedKafkaEventSourceConfig { /** * <p>The identifier for the Kafka consumer group to join. The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id">Customizable consumer group ID</a>.</p> * @public */ ConsumerGroupId?: string | undefined; /** * <p>Specific configuration settings for a Kafka schema registry.</p> * @public */ SchemaRegistryConfig?: KafkaSchemaRegistryConfig | undefined; } /** * <p>A scaling policy for the capacity provider that automatically adjusts capacity to maintain a target value for a specific metric.</p> * @public */ export interface TargetTrackingScalingPolicy { /** * <p>The predefined metric type to track for scaling decisions.</p> * @public */ PredefinedMetricType: CapacityProviderPredefinedMetricType | undefined; /** * <p>The target value for the metric that the scaling policy attempts to maintain through scaling actions.</p> * @public */ TargetValue: number | undefined; } /** * <p>Configuration that defines how the capacity provider scales compute instances based on demand and policies.</p> * @public */ export interface CapacityProviderScalingConfig { /** * <p>The maximum number of vCPUs that the capacity provider can provision across all compute instances.</p> * @public */ MaxVCpuCount?: number | undefined; /** * <p>The scaling mode that determines how the capacity provider responds to changes in demand.</p> * @public */ ScalingMode?: CapacityProviderScalingMode | undefined; /** * <p>A list of scaling policies that define how the capacity provider scales compute instances based on metrics and thresholds.</p> * @public */ ScalingPolicies?: TargetTrackingScalingPolicy[] | undefined; } /** * <p>Specifications that define the characteristics and constraints for compute instances used by the capacity provider.</p> * @public */ export interface InstanceRequirements { /** * <p>A list of supported CPU architectures for compute instances. Valid values include <code>x86_64</code> and <code>arm64</code>.</p> * @public */ Architectures?: Architecture[] | undefined; /** * <p>A list of EC2 instance types that the capacity provider is allowed to use. If not specified, all compatible instance types are allowed.</p> * @public */ AllowedInstanceTypes?: string[] | undefined; /** * <p>A list of EC2 instance types that the capacity provider should not use, even if they meet other requirements.</p> * @public */ ExcludedInstanceTypes?: string[] | undefined; } /** * <p>Configuration that specifies the permissions required for the capacity provider to manage compute resources.</p> * @public */ export interface CapacityProviderPermissionsConfig { /** * <p>The ARN of the IAM role that the capacity provider uses to manage compute instances and other Amazon Web Services resources.</p> * @public */ CapacityProviderOperatorRoleArn: string | undefined; } /** * <p>VPC configuration that specifies the network settings for compute instances managed by the capacity provider.</p> * @public */ export interface CapacityProviderVpcConfig { /** * <p>A list of subnet IDs where the capacity provider launches compute instances.</p> * @public */ SubnetIds: string[] | undefined; /** * <p>A list of security group IDs that control network access for compute instances managed by the capacity provider.</p> * @public */ SecurityGroupIds: string[] | undefined; } /** * @public */ export interface CreateCapacityProviderRequest { /** * <p>The name of the capacity provider. </p> * @public */ CapacityProviderName: string | undefined; /** * <p>The VPC configuration for the capacity provider, including subnet IDs and security group IDs where compute instances will be launched.</p> * @public */ VpcConfig: CapacityProviderVpcConfig | undefined; /** * <p>The permissions configuration that specifies the IAM role ARN used by the capacity provider to manage compute resources.</p> * @public */ PermissionsConfig: CapacityProviderPermissionsConfig | undefined; /** * <p>The instance requirements that specify the compute instance characteristics, including architectures and allowed or excluded instance types.</p> * @public */ InstanceRequirements?: InstanceRequirements | undefined; /** * <p>The scaling configuration that defines how the capacity provider scales compute instances, including maximum vCPU count and scaling policies.</p> * @public */ CapacityProviderScalingConfig?: CapacityProviderScalingConfig | undefined; /** * <p>The ARN of the KMS key used to encrypt data associated with the capacity provider.</p> * @public */ KmsKeyArn?: string | undefined; /** * <p>A list of tags to associate with the capacity provider.</p> * @public */ Tags?: Record<string, string> | undefined; } /** * <p>A capacity provider manages compute resources for Lambda functions.</p> * @public */ export interface CapacityProvider { /** * <p>The Amazon Resource Name (ARN) of the capacity provider.</p> * @public */ CapacityProviderArn: string | undefined; /** * <p>The current state of the capacity provider.</p> * @public */ State: CapacityProviderState | undefined; /** * <p>The VPC configuration for the capacity provider.</p> * @public */ VpcConfig: CapacityProviderVpcConfig | undefined; /** * <p>The permissions configuration for the capacity provider.</p> * @public */ PermissionsConfig: CapacityProviderPermissionsConfig | undefined; /** * <p>The instance requirements for compute resources managed by the capacity provider.</p> * @public */ InstanceRequirements?: InstanceRequirements | undefined; /** * <p>The scaling configuration for the capacity provider.</p> * @public */ CapacityProviderScalingConfig?: CapacityProviderScalingConfig | undefined; /** * <p>The ARN of the KMS key used to encrypt the capacity provider's resources.</p> * @public */ KmsKeyArn?: string | undefined; /** * <p>The date and time when the capacity provider was last modified.</p> * @public */ LastModified?: string | undefined; } /** * @public */ export interface CreateCapacityProviderResponse { /** * <p>Information about the capacity provider that was created.</p> * @public */ CapacityProvider: CapacityProvider | undefined; } /** * @public */ export interface DeleteCapacityProviderRequest { /** * <p>The name of the capacity provider to delete.</p> * @public */ CapacityProviderName: string | undefined; } /** * @public */ export interface DeleteCapacityProviderResponse { /** * <p>Information about the deleted capacity provider.</p> * @public */ CapacityProvider: CapacityProvider | undefined; } /** * @public */ export interface GetCapacityProviderRequest { /** * <p>The name of the capacity provider to retrieve.</p> * @public */ CapacityProviderName: string | undefined; } /** * @public */ export interface GetCapacityProviderResponse { /** * <p>Information about the capacity provider, including its configuration and current state.</p> * @public */ CapacityProvider: CapacityProvider | undefined; } /** * @public */ export interface ListCapacityProvidersRequest { /** * <p>Filter capacity providers by their current state.</p> * @public */ State?: CapacityProviderState | undefined; /** * <p>Specify the pagination token that's returned by a previous request to retrieve the next page of results.</p> * @public */ Marker?: string | undefined; /** * <p>The maximum number of capacity providers to return.</p> * @public */ MaxItems?: number | undefined; } /** * @public */ export interface ListCapacityProvidersResponse { /** * <p>A list of capacity providers in your account.</p> * @public */ CapacityProviders: CapacityProvider[] | undefined; /** * <p>The pagination token that's included if more results are available.</p> * @public */ NextMarker?: string | undefined; } /** * @public */ export interface ListFunctionVersionsByCapacityProviderRequest { /** * <p>The name of the capacity provider to list function versions for.</p> * @public */ CapacityProviderName: string | undefined; /** * <p>Specify the pagination token that's returned by a previous request to retrieve the next page of results.</p> * @public */ Marker?: string | undefined; /** * <p>The maximum number of function versions to return in the response.</p> * @public */ MaxItems?: number | undefined; } /** * <p>Information about a function version that uses a specific capacity provider, including its ARN and current state.</p> * @public */ export interface FunctionVersionsByCapacityProviderListItem { /** * <p>The Amazon Resource Name (ARN) of the function version.</p> * @public */ FunctionArn: string | undefined; /** * <p>The current state of the function version.</p> * @public */ State: State | undefined; } /** * @public */ export interface ListFunctionVersionsByCapacityProviderResponse { /** * <p>The Amazon Resource Name (ARN) of the capacity provider.</p> * @public */ CapacityProviderArn: string | undefined; /** * <p>A list of function versions that use the specified capacity provider.</p> * @public */ FunctionVersions: FunctionVersionsByCapacityProviderListItem[] | undefined; /** * <p>The pagination token that's included if more results are available.</p> * @public */ NextMarker?: string | undefined; } /** * @public */ export interface UpdateCapacityProviderRequest { /** * <p>The name of the capacity provider to update.</p> * @public */ CapacityProviderName: string | undefined; /** * <p>The updated scaling configuration for the capacity provider.</p> * @public */ CapacityProviderScalingConfig?: CapacityProviderScalingConfig | undefined; } /** * @public */ export interface UpdateCapacityProviderResponse { /** * <p>Information about the updated capacity provider.</p> * @public */ CapacityProvider: CapacityProvider | undefined; } /** * <p>Configuration options for callback operations in durable executions, including timeout settings and retry behavior.</p> * @public */ export interface CallbackOptions { /** * <p>The timeout for the callback operation in seconds. If not specified or set to 0, the callback has no timeout.</p> * @public */ TimeoutSeconds?: number | undefined; /** * <p>The heartbeat timeout for the callback operation, in seconds. If not specified or set to 0, heartbeat timeout is disabled.</p> * @public */ HeartbeatTimeoutSeconds?: number | undefined; } /** * <p>Configuration options for chained function invocations in durable executions, including retry settings and timeout configuration.</p> * @public */ export interface ChainedInvokeOptions { /** * <p>The name or ARN of the Lambda function to invoke.</p> * @public */ FunctionName: string | undefined; /** * <p>The tenant identifier for the chained invocation.</p> * @public */ TenantId?: string | undefined; } /** * <p>Configuration options for a durable execution context.</p> * @public */ export interface ContextOptions { /** * <p>Whether the state data of children of the completed context should be included in the invoke payload and <code>GetDurableExecutionState</code> response.</p> * @public */ ReplayChildren?: boolean | undefined; } /** * <p>An object that contains error information.</p> * @public */ export interface ErrorObject { /** * <p>A human-readable error message.</p> * @public */ ErrorMessage?: string | undefined; /** * <p>The error type.</p> * @public */ ErrorType?: string | undefined; /** * <p>Machine-readable error data.</p> * @public */ ErrorData?: string | undefined; /** * <p>Stack trace information for the error.</p> * @public */ StackTrace?: string[] | undefined; } /** * <p>Configuration options for a step operation.</p> * @public */ export interface StepOptions { /** * <p>The delay in seconds before the next retry attempt.</p> * @public */ NextAttemptDelaySeconds?: number | undefined; } /** * <p>Specifies how long to pause the durable execution.</p> * @public */ export interface WaitOptions { /** * <p>The duration to wait, in seconds.</p> * @public */ WaitSeconds?: number | undefined; } /** * <p>An update to be applied to an operation during checkpointing.</p> * @public */ export interface OperationUpdate { /** * <p>The unique identifier for this operation.</p> * @public */ Id: string | undefined; /** * <p>The unique identifier of the parent operation, if this operation is running within a child context.</p> * @public */ ParentId?: string | undefined; /** * <p>The customer-provided name for this operation.</p> * @public */ Name?: string | undefined; /** * <p>The type of operation to update.</p> * @public */ Type: OperationType | undefined; /** * <p>The subtype of the operation, providing additional categorization.</p> * @public */ SubType?: string | undefined; /** * <p>The action to take on the operation.</p> * @public */ Action: OperationAction | undefined; /** * <p>The payload for successful operations.</p> * @public */ Payload?: string | undefined; /** * <p>The error information for failed operations.</p> * @public */ Error?: ErrorObject | undefined; /** * <p>Options for context operations.</p> * @public */ ContextOptions?: ContextOptions | undefined; /** * <p>Options for step operations.</p> * @public */ StepOptions?: StepOptions | undefined; /** * <p>Options for wait operations.</p> * @public */ WaitOptions?: WaitOptions | undefined; /** * <p>Configuration options for callback operations in durable executions, including timeout settings and retry behavior.</p> * @public */ CallbackOptions?: CallbackOptions | undefined; /** * <p>Configuration options for chained function invocations in durable executions, including retry settings and timeout configuration.</p> * @public */ ChainedInvokeOptions?: ChainedInvokeOptions | undefined; } /** * @public */ export interface CheckpointDurableExecutionRequest { /** * <p>The Amazon Resource Name (ARN) of the durable execution.</p> * @public */ DurableExecutionArn: string | undefined; /** * <p>A unique token that identifies the current checkpoint state. This token is provided by the Lambda runtime and must be used to ensure checkpoints are applied in the correct order. Each checkpoint operation consumes this token and returns a new one.</p> * @public */ CheckpointToken: string | undefined; /** * <p>An array of state updates to apply during this checkpoint. Each update represents a change to the execution state, such as completing a step, starting a callback, or scheduling a timer. Updates are applied atomically as part of the checkpoint operation.</p> * @public */ Updates?: OperationUpdate[] | undefined; /** * <p>An optional idempotency token to ensure that duplicate checkpoint requests are handled correctly. If provided, Lambda uses this token to detect and handle duplicate requests within a 15-minute window.</p> * @public */ ClientToken?: string | undefined; } /** * <p>Contains details about a callback operation in a durable execution, including the callback token and timeout configuration.</p> * @public */ export interface CallbackDetails { /** * <p>The callback ID. Callback IDs are generated by the <code>DurableContext</code> when a durable function calls <code>ctx.waitForCallback</code>.</p> * @public */ CallbackId?: string | undefined; /** * <p>The response payload from the callback operation as a string.</p> * @public */ Result?: string | undefined; /** * <p>An error object that contains details about the failure.</p> * @public */ Error?: ErrorObject | undefined; } /** * <p>Contains details about a chained function invocation in a durable execution, including the target function and invocation parameters.</p> * @public */ export interface ChainedInvokeDetails { /** * <p>The response payload from the chained invocation.</p> * @public */ Result?: string | undefined; /** * <p>Details about the chained invocation failure.</p> * @public */ Error?: ErrorObject | undefined; } /** * <p>Details about a durable execution context.</p> * @public */ export interface ContextDetails { /** * <p>Whether the state data of child operations of this completed context should be included in the invoke payload and <code>GetDurableExecutionState</code> response.</p> * @public */ ReplayChildren?: boolean | undefined; /** * <p>The response payload from the context.</p> * @public */ Result?: string | undefined; /** * <p>Details about the context failure.</p> * @public */ Error?: ErrorObject | undefined; } /** * <p>Details about a <a href="https://docs.aws.amazon.com/lambda/latest/dg/durable-functions.html">durable execution</a>.</p> * @public */ export interface ExecutionDetails { /** * <p>The original input payload provided for the durable execution.</p> * @public */ InputPayload?: string | undefined; } /** * <p>Details about a step operation.</p> * @public */ export interface StepDetails { /** * <p>The current attempt number for this step.</p> * @public */ Attempt?: number | undefined; /** * <p>The date and time when the next attempt is scheduled, in <a href="https://www.w3.org/TR/NOTE-datetime">ISO-8601 format</a> (YYYY-MM-DDThh:mm:ss.sTZD). Only populated when the step is in a pending state.</p> * @public */ NextAttemptTimestamp?: Date | undefined; /** * <p>The JSON response payload from the step operation.</p> * @public */ Result?: string | undefined; /** * <p>Details about the step failure.</p> * @public */ Error?: ErrorObject | undefined; } /** * <p>Details about a wait operation.</p> * @public */ export interface WaitDetails { /** * <p>The date and time when the wait operation is scheduled to complete, in <a href="https://www.w3.org/TR/NOTE-datetime">ISO-8601 format</a> (YYYY-MM-DDThh:mm:ss.sTZD).</p> * @public */ ScheduledEndTimestamp?: Date | undefined; } /** * <p>Information about an operation within a durable execution.</p> * @public */ export interface Operation { /** * <p>The unique identifier for this operation.</p> * @public */ Id: string | undefined; /** * <p>The unique identifier of the parent operation, if this operation is running within a child context.</p> * @public */ ParentId?: string | undefined; /** * <p>The customer-provided name for this operation.</p> * @public */ Name?: string | undefined; /** * <p>The type of operation.</p> * @public */ Type: OperationType | undefined; /** * <p>The subtype of the operation, providing additional categorization.</p> * @public */ SubType?: string | undefined; /** * <p>The date and time when the operation started, in <a href="https://www.w3.org/TR/NOTE-datetime">ISO-8601 format</a> (YYYY-MM-DDThh:mm:ss.sTZD).</p> * @public */ StartTimestamp: Date | undefined; /** * <p>The date and time when the operation ended, in <a href="https://www.w3.org/TR/NOTE-datetime">ISO-8601 format</a> (YYYY-MM-DDThh:mm:ss.sTZD).</p> * @public */ EndTimestamp?: Date | undefined; /** * <p>The current status of the operation.</p> * @public */ Status: OperationStatus | undefined; /** * <p>Details about the execution, if this operation represents an execution.</p> * @public */ ExecutionDetails?: ExecutionDetails | undefined; /** * <p>Details about the context, if this operation represents a context.</p> * @public */ ContextDetails?: ContextDetails | undefined; /** * <p>Details about the step, if this operation represents a step.</p> * @public */ StepDetails?: StepDetails | undefined; /** * <p>Details about the wait operation, if this operation represents a wait.</p> * @public */ WaitDetails?: WaitDetails | undefined; /** * <p>Contains details about a callback operation in a durable execution, including the callback token and timeout configuration.</p> * @public */ CallbackDetails?: CallbackDetails | undefined; /** * <p>Contains details about a chained function invocation in a durable execution, including the target function and invocation parameters.</p> * @public */ ChainedInvokeDetails?: ChainedInvokeDetails | undefined; } /** * <p>Contains operations that have been updated since the last checkpoint, such as completed asynchronous work like timers or callbacks.</p> * @public */ export interface CheckpointUpdatedExecutionState { /** * <p>A list of operations that have been updated since the last checkpoint.</p> * @public */ Operations?: Operation[] | undefined; /** * <p>Indicates that more results are available. Use this value in a subsequent call to retrieve the next page of results.</p> * @public */ NextMarker?: string | undefined; } /** * <p>The response from the CheckpointDurableExecution operation.</p> * @public */ export interface CheckpointDurableExecutionResponse { /** * <p>A new checkpoint token to use for the next checkpoint operation. This token replaces the one provided in the request and must be used for subsequent checkpoints to maintain proper ordering.</p> * @public */ CheckpointToken?: string | undefined; /** * <p>Updated execution state information that includes any changes that occurred since the last checkpoint, such as completed callbacks or expired timers. This allows the SDK to update its internal state during replay.</p> * @public */ NewExecutionState: CheckpointUpdatedExecutionState | undefined; } /** * <p>Code signing configuration <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html#config-codesigning-policies">policies</a> specify the validation failure action for signature mismatch or expiry.</p> * @public */ export interface CodeSigningPolicies { /** * <p>Code signing configuration policy for deployment validation failure. If you set the policy to <code>Enforce</code>, Lambda blocks the deployment request if signature validation checks fail. If you set the policy to <code>Warn</code>, Lambda allows the deployment and issues a new Amazon CloudWatch metric (<code>SignatureValidationErrors</code>) and also stores the warning in the CloudTrail log.</p> <p>Default value: <code>Warn</code> </p> * @public */ UntrustedArtifactOnDeployment?: CodeSigningPolicy | undefined; } /** * @public */ export interface CreateCodeSigningConfigRequest { /** * <p>Descriptive name for this code signing configuration.</p> * @public */ Description?: string | undefined; /** * <p>Signing profiles for this code signing configuration.</p> * @public */ AllowedPublishers: AllowedPublishers | undefined; /** * <p>The code signing policies define the actions to take if the validation checks fail. </p> * @public */ CodeSigningPolicies?: CodeSigningPolicies | undefined; /** * <p>A list of tags to add to the code signing configuration.</p> * @public */ Tags?: Record<string, string> | undefined; } /** * <p>Details about a <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html">Code signing configuration</a>. </p> * @public */ export interface CodeSigningConfig { /** * <p>Unique identifer for the Code signing configuration.</p> * @public */ CodeSigningConfigId: string | undefined; /** * <p>The Amazon Resource Name (ARN) of the Code signing configuration.</p> * @public */ CodeSigningConfigArn: string | undefined; /** * <p>Code signing configuration description.</p> * @public */ Description?: string | undefined; /** * <p>List of allowed publishers.</p> * @public */ AllowedPublishers: AllowedPublishers | undefined; /** * <p>The code signing policy controls the validation failure action for signature mismatch or expiry.</p> * @public */ CodeSigningPolicies: CodeSigningPolicies | undefined; /** * <p>The date and time that the Code signing configuration was last modified, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD). </p> * @public */ LastModified: string | undefined; } /** * @public */ export interface CreateCodeSigningConfigResponse { /** * <p>The code signing configuration.</p> * @public */ CodeSigningConfig: CodeSigningConfig | undefined; } /** * @public */ export interface DeleteCodeSigningConfigRequest { /** * <p>The The Amazon Resource Name (ARN) of the code signing configuration.</p> * @public */ CodeSigningConfigArn: string | undefined; } /** * @public */ export interface DeleteCodeSigningConfigResponse { } /** * @public */ export interface GetCodeSigningConfigRequest { /** * <p>The The Amazon Resource Name (ARN) of the code signing configuration. </p> * @public */ CodeSigningConfigArn: string | undefined; } /** * @public */ export interface GetCodeSigningConfigResponse { /** * <p>The code signing configuration</p> * @public */ CodeSigningConfig: CodeSigningConfig | undefined; } /** * @public */ export interface ListCodeSigningConfigsRequest { /** * <p>Specify the pagination token that's returned by a previous request to retrieve the next page of results.</p> * @public */ Marker?: string | undefined; /** * <p>Maximum number of items to return.</p> * @public */ MaxItems?: number | undefined; } /** * @public */ export interface ListCodeSigningConfigsResponse { /** * <p>The pagination token that's included if more results are available.</p> * @public */ NextMarker?: string | undefined; /** * <p>The code signing configurations</p> * @public */ CodeSigningConfigs?: CodeSigningConfig[] | undefined; } /** * @public */ export interface ListFunctionsByCodeSigningConfigRequest { /** * <p>The The Amazon Resource Name (ARN) of the code signing configuration.</p> * @public */ CodeSigningConfigArn: string | undefined; /** * <p>Specify the pagination token that's returned by a previous request to retrieve the next page of results.</p> * @public */ Marker?: string | undefined; /** * <p>Maximum number of items to return.</p> * @public */ MaxItems?: number | undefined; } /** * @public */ export interface ListFunctionsByCodeSigningConfigResponse { /** * <p>The pagination token that's included if more results are available.</p> * @public */ NextMarker?: string | undefined; /** * <p>The function ARNs. </p> * @public */ FunctionArns?: string[] | undefined; } /** * @public */ export interface UpdateCodeSigningConfigRequest { /** * <p>The The Amazon Resource Name (ARN) of the code signing configuration.</p> * @public */ CodeSigningConfigArn: string | undefined; /** * <p>Descriptive name for this code signing configuration.</p> * @public */ Description?: string | undefined; /** * <p>Signing profiles for this code signing configuration.</p> * @public */ AllowedPublishers?: AllowedPublishers | undefined; /** * <p>The code signing policy.</p> * @public */ CodeSigningPolicies?: CodeSigningPolicies | undefined; } /** * @public */ export interface UpdateCodeSigningConfigResponse { /** * <p>The code signing configuration</p> * @public */ CodeSigningConfig: CodeSigningConfig | undefined; } /** * @public */ export interface DeleteFunctionRequest { /** * <p>The name or ARN of the Lambda function or version.</p> <p class="title"> <b>Name formats</b> </p> <ul> <li> <p> <b>Function name</b> – <code>my-function</code> (name-only), <code>my-function:1</code> (with version).</p> </li> <li> <p> <b>Function ARN</b> – <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>.</p> </li> <li> <p> <b>Partial ARN</b> – <code>123456789012:function:my-function</code>.</p> </li> </ul> <p>You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.</p> * @public */ FunctionName: string | undefined; /** * <p>Specify a version to delete. You can't delete a version that an alias references.</p> * @public */ Qualifier?: string | undefined; } /** * @public */ export interface DeleteFunctionResponse { /** * <p>The HTTP status code returned by the operation.</p> * @public */ StatusCode?: number | undefined; } /** * @public */ export interface DeleteFunctionEventInvokeConfigRequest { /** * <p>The name or ARN of the Lambda function, version, or alias.</p> <p class="title"> <b>Name formats</b> </p> <ul> <li> <p> <b>Function name</b> - <code>my-function</code> (name-only), <code>my-function:v1</code> (with alias).</p> </li> <li> <p> <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>.</p> </li> <li> <p> <b>Partial ARN</b> - <code>123456789012:function:my-function</code>.</p> </li> </ul> <p>You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.</p> * @public */ FunctionName: string | undefined; /** * <p>A version number or alias name.</p> * @public */ Qualifier?: string | undefined; } /** * <p>A destination for events that failed processing. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html#invocation-async-destinations">Adding a destination</a>.</p> * @public */ export interface OnFailure { /** * <p>The Amazon Resource Name (ARN) of the destination resource.</p> <p>To retain records of failed invocations from <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html">Kinesis</a>, <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html">DynamoDB</a>, <a href="https://docs.aws.amazon.com/lambda/latest/dg/kafka-on-failure.html">self-managed Apache Kafka</a>, or <a href="https://docs.aws.amazon.com/lambda/latest/dg/kafka-on-failure.html">Amazon MSK</a>, you can configure an Amazon SNS topic, Amazon SQS queue, Amazon S3 bucket, or Kafka topic as the destination.</p> <note> <p>Amazon SNS destinations have a message size limit of 256 KB. If the combined size of the function request and response payload exceeds the limit, Lambda will drop the payload when sending <code>OnFailure</code> event to the destination. For details on this behavior, refer to <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html">Retaining records of asynchronous invocations</a>.</p> </note> <p>To retain records of failed invocations from <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html">Kinesis</a>, <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html">DynamoDB</a>, <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-smaa-onfailure-destination">self-managed Kafka</a> or <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-onfailure-destination">Amazon MSK</a>, you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket as the destination.</p> * @public */ Destination?: string | undefined; } /** * <p>A destination for events that were processed successfully.</p> <p>To retain records of successful <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations">asynchronous invocations</a>, you can configure an Amazon SNS topic, Amazon SQS queue, Lambda function, or Amazon EventBridge event bus as the destination.</p> <note> <p> <code>OnSuccess</code> is not supported in <code>CreateEventSourceMapping</code> or <code>UpdateEventSourceMapping</code> requests.</p> </note> * @public */ export interface OnSuccess { /** * <p>The Amazon Resource Name (ARN) of the destination resource.</p> <note> <p>Amazon SNS destinations have a message size limit of 256 KB. If the combined size of the function request and response payload exceeds the limit, Lambda will drop the payload when sending <code>OnFailure</code> event to the destination. For details on this behavior, refer to <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html">Retaining records of asynchronous invocations</a>.</p> </note> * @public */ Destination?: string | undefined; } /** * <p>A configuration object that specifies the destination of an event after Lambda processes it. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html#invocation-async-destinations">Adding a destination</a>.</p> * @public */ export interface DestinationConfig { /** * <p>The destination configuration for successful invocations. Not supported in <code>CreateEventSourceMapping</code> or <code>UpdateEventSourceMapping</code>.</p> * @public */ OnSuccess?: OnSuccess | undefined; /** * <p>The destination configuration for failed invocations.</p> * @public */ OnFailure?: OnFailure | undefined; } /** * <p> Specific configuration settings for a DocumentDB event source. </p> * @public */ export interface DocumentDBEventSourceConfig { /** * <p> The name of the database to consume within the DocumentDB cluster. </p> * @public */ DatabaseName?: string | undefined; /** * <p> The name of the collection to consume within the database. If you do not specify a collection, Lambda consumes all collections. </p> * @public */ CollectionName?: string | undefined; /** * <p> Determines what DocumentDB sends to your event stream during document update operations. If set to UpdateLookup, DocumentDB sends a delta describing the changes, along with a copy of the entire document. Otherwise, DocumentDB sends only a partial document that contains the changes. </p> * @public */ FullDocument?: FullDocument | undefined; } /** * <p> A structure within a <code>FilterCriteria</code> object that defines an event filtering pattern. </p> * @public */ export interface Filter { /** * <p> A filter pattern. For more information on the syntax of a filter pattern, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.h