import { StreamingBlobTypes } from "@smithy/types";
import {
  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";
export interface AccountLimit {
  TotalCodeSize?: number | undefined;
  CodeSizeUnzipped?: number | undefined;
  CodeSizeZipped?: number | undefined;
  ConcurrentExecutions?: number | undefined;
  UnreservedConcurrentExecutions?: number | undefined;
}
export interface AccountUsage {
  TotalCodeSize?: number | undefined;
  FunctionCount?: number | undefined;
}
export interface AddLayerVersionPermissionRequest {
  LayerName: string | undefined;
  VersionNumber: number | undefined;
  StatementId: string | undefined;
  Action: string | undefined;
  Principal: string | undefined;
  OrganizationId?: string | undefined;
  RevisionId?: string | undefined;
}
export interface AddLayerVersionPermissionResponse {
  Statement?: string | undefined;
  RevisionId?: string | undefined;
}
export interface AddPermissionRequest {
  FunctionName: string | undefined;
  StatementId: string | undefined;
  Action: string | undefined;
  Principal: string | undefined;
  SourceArn?: string | undefined;
  SourceAccount?: string | undefined;
  EventSourceToken?: string | undefined;
  Qualifier?: string | undefined;
  RevisionId?: string | undefined;
  PrincipalOrgID?: string | undefined;
  FunctionUrlAuthType?: FunctionUrlAuthType | undefined;
  InvokedViaFunctionUrl?: boolean | undefined;
}
export interface AddPermissionResponse {
  Statement?: string | undefined;
}
export interface AliasRoutingConfiguration {
  AdditionalVersionWeights?: Record<string, number> | undefined;
}
export interface AliasConfiguration {
  AliasArn?: string | undefined;
  Name?: string | undefined;
  FunctionVersion?: string | undefined;
  Description?: string | undefined;
  RoutingConfig?: AliasRoutingConfiguration | undefined;
  RevisionId?: string | undefined;
}
export interface AllowedPublishers {
  SigningProfileVersionArns: string[] | undefined;
}
export interface KafkaSchemaRegistryAccessConfig {
  Type?: KafkaSchemaRegistryAuthType | undefined;
  URI?: string | undefined;
}
export interface KafkaSchemaValidationConfig {
  Attribute?: KafkaSchemaValidationAttribute | undefined;
}
export interface KafkaSchemaRegistryConfig {
  SchemaRegistryURI?: string | undefined;
  EventRecordFormat?: SchemaRegistryEventRecordFormat | undefined;
  AccessConfigs?: KafkaSchemaRegistryAccessConfig[] | undefined;
  SchemaValidationConfigs?: KafkaSchemaValidationConfig[] | undefined;
}
export interface AmazonManagedKafkaEventSourceConfig {
  ConsumerGroupId?: string | undefined;
  SchemaRegistryConfig?: KafkaSchemaRegistryConfig | undefined;
}
export interface TargetTrackingScalingPolicy {
  PredefinedMetricType: CapacityProviderPredefinedMetricType | undefined;
  TargetValue: number | undefined;
}
export interface CapacityProviderScalingConfig {
  MaxVCpuCount?: number | undefined;
  ScalingMode?: CapacityProviderScalingMode | undefined;
  ScalingPolicies?: TargetTrackingScalingPolicy[] | undefined;
}
export interface InstanceRequirements {
  Architectures?: Architecture[] | undefined;
  AllowedInstanceTypes?: string[] | undefined;
  ExcludedInstanceTypes?: string[] | undefined;
}
export interface CapacityProviderPermissionsConfig {
  CapacityProviderOperatorRoleArn: string | undefined;
}
export interface CapacityProviderVpcConfig {
  SubnetIds: string[] | undefined;
  SecurityGroupIds: string[] | undefined;
}
export interface CreateCapacityProviderRequest {
  CapacityProviderName: string | undefined;
  VpcConfig: CapacityProviderVpcConfig | undefined;
  PermissionsConfig: CapacityProviderPermissionsConfig | undefined;
  InstanceRequirements?: InstanceRequirements | undefined;
  CapacityProviderScalingConfig?: CapacityProviderScalingConfig | undefined;
  KmsKeyArn?: string | undefined;
  Tags?: Record<string, string> | undefined;
}
export interface CapacityProvider {
  CapacityProviderArn: string | undefined;
  State: CapacityProviderState | undefined;
  VpcConfig: CapacityProviderVpcConfig | undefined;
  PermissionsConfig: CapacityProviderPermissionsConfig | undefined;
  InstanceRequirements?: InstanceRequirements | undefined;
  CapacityProviderScalingConfig?: CapacityProviderScalingConfig | undefined;
  KmsKeyArn?: string | undefined;
  LastModified?: string | undefined;
}
export interface CreateCapacityProviderResponse {
  CapacityProvider: CapacityProvider | undefined;
}
export interface DeleteCapacityProviderRequest {
  CapacityProviderName: string | undefined;
}
export interface DeleteCapacityProviderResponse {
  CapacityProvider: CapacityProvider | undefined;
}
export interface GetCapacityProviderRequest {
  CapacityProviderName: string | undefined;
}
export interface GetCapacityProviderResponse {
  CapacityProvider: CapacityProvider | undefined;
}
export interface ListCapacityProvidersRequest {
  State?: CapacityProviderState | undefined;
  Marker?: string | undefined;
  MaxItems?: number | undefined;
}
export interface ListCapacityProvidersResponse {
  CapacityProviders: CapacityProvider[] | undefined;
  NextMarker?: string | undefined;
}
export interface ListFunctionVersionsByCapacityProviderRequest {
  CapacityProviderName: string | undefined;
  Marker?: string | undefined;
  MaxItems?: number | undefined;
}
export interface FunctionVersionsByCapacityProviderListItem {
  FunctionArn: string | undefined;
  State: State | undefined;
}
export interface ListFunctionVersionsByCapacityProviderResponse {
  CapacityProviderArn: string | undefined;
  FunctionVersions: FunctionVersionsByCapacityProviderListItem[] | undefined;
  NextMarker?: string | undefined;
}
export interface UpdateCapacityProviderRequest {
  CapacityProviderName: string | undefined;
  CapacityProviderScalingConfig?: CapacityProviderScalingConfig | undefined;
}
export interface UpdateCapacityProviderResponse {
  CapacityProvider: CapacityProvider | undefined;
}
export interface CallbackOptions {
  TimeoutSeconds?: number | undefined;
  HeartbeatTimeoutSeconds?: number | undefined;
}
export interface ChainedInvokeOptions {
  FunctionName: string | undefined;
  TenantId?: string | undefined;
}
export interface ContextOptions {
  ReplayChildren?: boolean | undefined;
}
export interface ErrorObject {
  ErrorMessage?: string | undefined;
  ErrorType?: string | undefined;
  ErrorData?: string | undefined;
  StackTrace?: string[] | undefined;
}
export interface StepOptions {
  NextAttemptDelaySeconds?: number | undefined;
}
export interface WaitOptions {
  WaitSeconds?: number | undefined;
}
export interface OperationUpdate {
  Id: string | undefined;
  ParentId?: string | undefined;
  Name?: string | undefined;
  Type: OperationType | undefined;
  SubType?: string | undefined;
  Action: OperationAction | undefined;
  Payload?: string | undefined;
  Error?: ErrorObject | undefined;
  ContextOptions?: ContextOptions | undefined;
  StepOptions?: StepOptions | undefined;
  WaitOptions?: WaitOptions | undefined;
  CallbackOptions?: CallbackOptions | undefined;
  ChainedInvokeOptions?: ChainedInvokeOptions | undefined;
}
export interface CheckpointDurableExecutionRequest {
  DurableExecutionArn: string | undefined;
  CheckpointToken: string | undefined;
  Updates?: OperationUpdate[] | undefined;
  ClientToken?: string | undefined;
}
export interface CallbackDetails {
  CallbackId?: string | undefined;
  Result?: string | undefined;
  Error?: ErrorObject | undefined;
}
export interface ChainedInvokeDetails {
  Result?: string | undefined;
  Error?: ErrorObject | undefined;
}
export interface ContextDetails {
  ReplayChildren?: boolean | undefined;
  Result?: string | undefined;
  Error?: ErrorObject | undefined;
}
export interface ExecutionDetails {
  InputPayload?: string | undefined;
}
export interface StepDetails {
  Attempt?: number | undefined;
  NextAttemptTimestamp?: Date | undefined;
  Result?: string | undefined;
  Error?: ErrorObject | undefined;
}
export interface WaitDetails {
  ScheduledEndTimestamp?: Date | undefined;
}
export interface Operation {
  Id: string | undefined;
  ParentId?: string | undefined;
  Name?: string | undefined;
  Type: OperationType | undefined;
  SubType?: string | undefined;
  StartTimestamp: Date | undefined;
  EndTimestamp?: Date | undefined;
  Status: OperationStatus | undefined;
  ExecutionDetails?: ExecutionDetails | undefined;
  ContextDetails?: ContextDetails | undefined;
  StepDetails?: StepDetails | undefined;
  WaitDetails?: WaitDetails | undefined;
  CallbackDetails?: CallbackDetails | undefined;
  ChainedInvokeDetails?: ChainedInvokeDetails | undefined;
}
export interface CheckpointUpdatedExecutionState {
  Operations?: Operation[] | undefined;
  NextMarker?: string | undefined;
}
export interface CheckpointDurableExecutionResponse {
  CheckpointToken?: string | undefined;
  NewExecutionState: CheckpointUpdatedExecutionState | undefined;
}
export interface CodeSigningPolicies {
  UntrustedArtifactOnDeployment?: CodeSigningPolicy | undefined;
}
export interface CreateCodeSigningConfigRequest {
  Description?: string | undefined;
  AllowedPublishers: AllowedPublishers | undefined;
  CodeSigningPolicies?: CodeSigningPolicies | undefined;
  Tags?: Record<string, string> | undefined;
}
export interface CodeSigningConfig {
  CodeSigningConfigId: string | undefined;
  CodeSigningConfigArn: string | undefined;
  Description?: string | undefined;
  AllowedPublishers: AllowedPublishers | undefined;
  CodeSigningPolicies: CodeSigningPolicies | undefined;
  LastModified: string | undefined;
}
export interface CreateCodeSigningConfigResponse {
  CodeSigningConfig: CodeSigningConfig | undefined;
}
export interface DeleteCodeSigningConfigRequest {
  CodeSigningConfigArn: string | undefined;
}
export interface DeleteCodeSigningConfigResponse {}
export interface GetCodeSigningConfigRequest {
  CodeSigningConfigArn: string | undefined;
}
export interface GetCodeSigningConfigResponse {
  CodeSigningConfig: CodeSigningConfig | undefined;
}
export interface ListCodeSigningConfigsRequest {
  Marker?: string | undefined;
  MaxItems?: number | undefined;
}
export interface ListCodeSigningConfigsResponse {
  NextMarker?: string | undefined;
  CodeSigningConfigs?: CodeSigningConfig[] | undefined;
}
export interface ListFunctionsByCodeSigningConfigRequest {
  CodeSigningConfigArn: string | undefined;
  Marker?: string | undefined;
  MaxItems?: number | undefined;
}
export interface ListFunctionsByCodeSigningConfigResponse {
  NextMarker?: string | undefined;
  FunctionArns?: string[] | undefined;
}
export interface UpdateCodeSigningConfigRequest {
  CodeSigningConfigArn: string | undefined;
  Description?: string | undefined;
  AllowedPublishers?: AllowedPublishers | undefined;
  CodeSigningPolicies?: CodeSigningPolicies | undefined;
}
export interface UpdateCodeSigningConfigResponse {
  CodeSigningConfig: CodeSigningConfig | undefined;
}
export interface DeleteFunctionRequest {
  FunctionName: string | undefined;
  Qualifier?: string | undefined;
}
export interface DeleteFunctionResponse {
  StatusCode?: number | undefined;
}
export interface DeleteFunctionEventInvokeConfigRequest {
  FunctionName: string | undefined;
  Qualifier?: string | undefined;
}
export interface OnFailure {
  Destination?: string | undefined;
}
export interface OnSuccess {
  Destination?: string | undefined;
}
export interface DestinationConfig {
  OnSuccess?: OnSuccess | undefined;
  OnFailure?: OnFailure | undefined;
}
export interface DocumentDBEventSourceConfig {
  DatabaseName?: string | undefined;
  CollectionName?: string | undefined;
  FullDocument?: FullDocument | undefined;
}
export interface Filter {
  Pattern?: string | undefined;
}
export interface FilterCriteria {
  Filters?: Filter[] | undefined;
}
export interface EventSourceMappingLoggingConfig {
  SystemLogLevel?: EventSourceMappingSystemLogLevel | undefined;
}
export interface EventSourceMappingMetricsConfig {
  Metrics?: EventSourceMappingMetric[] | undefined;
}
export interface ProvisionedPollerConfig {
  MinimumPollers?: number | undefined;
  MaximumPollers?: number | undefined;
  PollerGroupName?: string | undefined;
}
export interface ScalingConfig {
  MaximumConcurrency?: number | undefined;
}
export interface SelfManagedEventSource {
  Endpoints?: Partial<Record<EndPointType, string[]>> | undefined;
}
export interface SelfManagedKafkaEventSourceConfig {
  ConsumerGroupId?: string | undefined;
  SchemaRegistryConfig?: KafkaSchemaRegistryConfig | undefined;
}
export interface SourceAccessConfiguration {
  Type?: SourceAccessType | undefined;
  URI?: string | undefined;
}
export interface CreateEventSourceMappingRequest {
  EventSourceArn?: string | undefined;
  FunctionName: string | undefined;
  Enabled?: boolean | undefined;
  BatchSize?: number | undefined;
  FilterCriteria?: FilterCriteria | undefined;
  MaximumBatchingWindowInSeconds?: number | undefined;
  ParallelizationFactor?: number | undefined;
  StartingPosition?: EventSourcePosition | undefined;
  StartingPositionTimestamp?: Date | undefined;
  DestinationConfig?: DestinationConfig | undefined;
  MaximumRecordAgeInSeconds?: number | undefined;
  BisectBatchOnFunctionError?: boolean | undefined;
  MaximumRetryAttempts?: number | undefined;
  Tags?: Record<string, string> | undefined;
  TumblingWindowInSeconds?: number | undefined;
  Topics?: string[] | undefined;
  Queues?: string[] | undefined;
  SourceAccessConfigurations?: SourceAccessConfiguration[] | undefined;
  SelfManagedEventSource?: SelfManagedEventSource | undefined;
  FunctionResponseTypes?: FunctionResponseType[] | undefined;
  AmazonManagedKafkaEventSourceConfig?:
    | AmazonManagedKafkaEventSourceConfig
    | undefined;
  SelfManagedKafkaEventSourceConfig?:
    | SelfManagedKafkaEventSourceConfig
    | undefined;
  ScalingConfig?: ScalingConfig | undefined;
  DocumentDBEventSourceConfig?: DocumentDBEventSourceConfig | undefined;
  KMSKeyArn?: string | undefined;
  MetricsConfig?: EventSourceMappingMetricsConfig | undefined;
  LoggingConfig?: EventSourceMappingLoggingConfig | undefined;
  ProvisionedPollerConfig?: ProvisionedPollerConfig | undefined;
}
export interface FilterCriteriaError {
  ErrorCode?: string | undefined;
  Message?: string | undefined;
}
export interface EventSourceMappingConfiguration {
  UUID?: string | undefined;
  StartingPosition?: EventSourcePosition | undefined;
  StartingPositionTimestamp?: Date | undefined;
  BatchSize?: number | undefined;
  MaximumBatchingWindowInSeconds?: number | undefined;
  ParallelizationFactor?: number | undefined;
  EventSourceArn?: string | undefined;
  FilterCriteria?: FilterCriteria | undefined;
  FunctionArn?: string | undefined;
  LastModified?: Date | undefined;
  LastProcessingResult?: string | undefined;
  State?: string | undefined;
  StateTransitionReason?: string | undefined;
  DestinationConfig?: DestinationConfig | undefined;
  Topics?: string[] | undefined;
  Queues?: string[] | undefined;
  SourceAccessConfigurations?: SourceAccessConfiguration[] | undefined;
  SelfManagedEventSource?: SelfManagedEventSource | undefined;
  MaximumRecordAgeInSeconds?: number | undefined;
  BisectBatchOnFunctionError?: boolean | undefined;
  MaximumRetryAttempts?: number | undefined;
  TumblingWindowInSeconds?: number | undefined;
  FunctionResponseTypes?: FunctionResponseType[] | undefined;
  AmazonManagedKafkaEventSourceConfig?:
    | AmazonManagedKafkaEventSourceConfig
    | undefined;
  SelfManagedKafkaEventSourceConfig?:
    | SelfManagedKafkaEventSourceConfig
    | undefined;
  ScalingConfig?: ScalingConfig | undefined;
  DocumentDBEventSourceConfig?: DocumentDBEventSourceConfig | undefined;
  KMSKeyArn?: string | undefined;
  FilterCriteriaError?: FilterCriteriaError | undefined;
  EventSourceMappingArn?: string | undefined;
  MetricsConfig?: EventSourceMappingMetricsConfig | undefined;
  LoggingConfig?: EventSourceMappingLoggingConfig | undefined;
  ProvisionedPollerConfig?: ProvisionedPollerConfig | undefined;
}
export interface DeleteEventSourceMappingRequest {
  UUID: string | undefined;
}
export interface GetEventSourceMappingRequest {
  UUID: string | undefined;
}
export interface ListEventSourceMappingsRequest {
  EventSourceArn?: string | undefined;
  FunctionName?: string | undefined;
  Marker?: string | undefined;
  MaxItems?: number | undefined;
}
export interface ListEventSourceMappingsResponse {
  NextMarker?: string | undefined;
  EventSourceMappings?: EventSourceMappingConfiguration[] | undefined;
}
export interface UpdateEventSourceMappingRequest {
  UUID: string | undefined;
  FunctionName?: string | undefined;
  Enabled?: boolean | undefined;
  BatchSize?: number | undefined;
  FilterCriteria?: FilterCriteria | undefined;
  MaximumBatchingWindowInSeconds?: number | undefined;
  DestinationConfig?: DestinationConfig | undefined;
  MaximumRecordAgeInSeconds?: number | undefined;
  BisectBatchOnFunctionError?: boolean | undefined;
  MaximumRetryAttempts?: number | undefined;
  ParallelizationFactor?: number | undefined;
  SourceAccessConfigurations?: SourceAccessConfiguration[] | undefined;
  TumblingWindowInSeconds?: number | undefined;
  FunctionResponseTypes?: FunctionResponseType[] | undefined;
  ScalingConfig?: ScalingConfig | undefined;
  AmazonManagedKafkaEventSourceConfig?:
    | AmazonManagedKafkaEventSourceConfig
    | undefined;
  SelfManagedKafkaEventSourceConfig?:
    | SelfManagedKafkaEventSourceConfig
    | undefined;
  DocumentDBEventSourceConfig?: DocumentDBEventSourceConfig | undefined;
  KMSKeyArn?: string | undefined;
  MetricsConfig?: EventSourceMappingMetricsConfig | undefined;
  LoggingConfig?: EventSourceMappingLoggingConfig | undefined;
  ProvisionedPollerConfig?: ProvisionedPollerConfig | undefined;
}
export interface LambdaManagedInstancesCapacityProviderConfig {
  CapacityProviderArn: string | undefined;
  PerExecutionEnvironmentMaxConcurrency?: number | undefined;
  ExecutionEnvironmentMemoryGiBPerVCpu?: number | undefined;
}
export interface CapacityProviderConfig {
  LambdaManagedInstancesCapacityProviderConfig:
    | LambdaManagedInstancesCapacityProviderConfig
    | undefined;
}
export interface FunctionCode {
  ZipFile?: Uint8Array | undefined;
  S3Bucket?: string | undefined;
  S3Key?: string | undefined;
  S3ObjectVersion?: string | undefined;
  ImageUri?: string | undefined;
  SourceKMSKeyArn?: string | undefined;
}
export interface DeadLetterConfig {
  TargetArn?: string | undefined;
}
export interface DurableConfig {
  RetentionPeriodInDays?: number | undefined;
  ExecutionTimeout?: number | undefined;
}
export interface Environment {
  Variables?: Record<string, string> | undefined;
}
export interface EphemeralStorage {
  Size: number | undefined;
}
export interface FileSystemConfig {
  Arn: string | undefined;
  LocalMountPath: string | undefined;
}
export interface ImageConfig {
  EntryPoint?: string[] | undefined;
  Command?: string[] | undefined;
  WorkingDirectory?: string | undefined;
}
export interface LoggingConfig {
  LogFormat?: LogFormat | undefined;
  ApplicationLogLevel?: ApplicationLogLevel | undefined;
  SystemLogLevel?: SystemLogLevel | undefined;
  LogGroup?: string | undefined;
}
export interface SnapStart {
  ApplyOn?: SnapStartApplyOn | undefined;
}
export interface TenancyConfig {
  TenantIsolationMode: TenantIsolationMode | undefined;
}
export interface TracingConfig {
  Mode?: TracingMode | undefined;
}
export interface VpcConfig {
  SubnetIds?: string[] | undefined;
  SecurityGroupIds?: string[] | undefined;
  Ipv6AllowedForDualStack?: boolean | undefined;
}
export interface CreateFunctionRequest {
  FunctionName: string | undefined;
  Runtime?: Runtime | undefined;
  Role: string | undefined;
  Handler?: string | undefined;
  Code: FunctionCode | undefined;
  Description?: string | undefined;
  Timeout?: number | undefined;
  MemorySize?: number | undefined;
  Publish?: boolean | undefined;
  VpcConfig?: VpcConfig | undefined;
  PackageType?: PackageType | undefined;
  DeadLetterConfig?: DeadLetterConfig | undefined;
  Environment?: Environment | undefined;
  KMSKeyArn?: string | undefined;
  TracingConfig?: TracingConfig | undefined;
  Tags?: Record<string, string> | undefined;
  Layers?: string[] | undefined;
  FileSystemConfigs?: FileSystemConfig[] | undefined;
  ImageConfig?: ImageConfig | undefined;
  CodeSigningConfigArn?: string | undefined;
  Architectures?: Architecture[] | undefined;
  EphemeralStorage?: EphemeralStorage | undefined;
  SnapStart?: SnapStart | undefined;
  LoggingConfig?: LoggingConfig | undefined;
  CapacityProviderConfig?: CapacityProviderConfig | undefined;
  PublishTo?: FunctionVersionLatestPublished | undefined;
  DurableConfig?: DurableConfig | undefined;
  TenancyConfig?: TenancyConfig | undefined;
}
export interface EnvironmentError {
  ErrorCode?: string | undefined;
  Message?: string | undefined;
}
export interface EnvironmentResponse {
  Variables?: Record<string, string> | undefined;
  Error?: EnvironmentError | undefined;
}
export interface ImageConfigError {
  ErrorCode?: string | undefined;
  Message?: string | undefined;
}
export interface ImageConfigResponse {
  ImageConfig?: ImageConfig | undefined;
  Error?: ImageConfigError | undefined;
}
export interface Layer {
  Arn?: string | undefined;
  CodeSize?: number | undefined;
  SigningProfileVersionArn?: string | undefined;
  SigningJobArn?: string | undefined;
}
export interface RuntimeVersionError {
  ErrorCode?: string | undefined;
  Message?: string | undefined;
}
export interface RuntimeVersionConfig {
  RuntimeVersionArn?: string | undefined;
  Error?: RuntimeVersionError | undefined;
}
export interface SnapStartResponse {
  ApplyOn?: SnapStartApplyOn | undefined;
  OptimizationStatus?: SnapStartOptimizationStatus | undefined;
}
export interface TracingConfigResponse {
  Mode?: TracingMode | undefined;
}
export interface VpcConfigResponse {
  SubnetIds?: string[] | undefined;
  SecurityGroupIds?: string[] | undefined;
  VpcId?: string | undefined;
  Ipv6AllowedForDualStack?: boolean | undefined;
}
export interface FunctionConfiguration {
  FunctionName?: string | undefined;
  FunctionArn?: string | undefined;
  Runtime?: Runtime | undefined;
  Role?: string | undefined;
  Handler?: string | undefined;
  CodeSize?: number | undefined;
  Description?: string | undefined;
  Timeout?: number | undefined;
  MemorySize?: number | undefined;
  LastModified?: string | undefined;
  CodeSha256?: string | undefined;
  Version?: string | undefined;
  VpcConfig?: VpcConfigResponse | undefined;
  DeadLetterConfig?: DeadLetterConfig | undefined;
  Environment?: EnvironmentResponse | undefined;
  KMSKeyArn?: string | undefined;
  TracingConfig?: TracingConfigResponse | undefined;
  MasterArn?: string | undefined;
  RevisionId?: string | undefined;
  Layers?: Layer[] | undefined;
  State?: State | undefined;
  StateReason?: string | undefined;
  StateReasonCode?: StateReasonCode | undefined;
  LastUpdateStatus?: LastUpdateStatus | undefined;
  LastUpdateStatusReason?: string | undefined;
  LastUpdateStatusReasonCode?: LastUpdateStatusReasonCode | undefined;
  FileSystemConfigs?: FileSystemConfig[] | undefined;
  PackageType?: PackageType | undefined;
  ImageConfigResponse?: ImageConfigResponse | undefined;
  SigningProfileVersionArn?: string | undefined;
  SigningJobArn?: string | undefined;
  Architectures?: Architecture[] | undefined;
  EphemeralStorage?: EphemeralStorage | undefined;
  SnapStart?: SnapStartResponse | undefined;
  RuntimeVersionConfig?: RuntimeVersionConfig | undefined;
  LoggingConfig?: LoggingConfig | undefined;
  CapacityProviderConfig?: CapacityProviderConfig | undefined;
  ConfigSha256?: string | undefined;
  DurableConfig?: DurableConfig | undefined;
  TenancyConfig?: TenancyConfig | undefined;
}
export interface Cors {
  AllowCredentials?: boolean | undefined;
  AllowHeaders?: string[] | undefined;
  AllowMethods?: string[] | undefined;
  AllowOrigins?: string[] | undefined;
  ExposeHeaders?: string[] | undefined;
  MaxAge?: number | undefined;
}
export interface CreateFunctionUrlConfigRequest {
  FunctionName: string | undefined;
  Qualifier?: string | undefined;
  AuthType: FunctionUrlAuthType | undefined;
  Cors?: Cors | undefined;
  InvokeMode?: InvokeMode | undefined;
}
export interface CreateFunctionUrlConfigResponse {
  FunctionUrl: string | undefined;
  FunctionArn: string | undefined;
  AuthType: FunctionUrlAuthType | undefined;
  Cors?: Cors | undefined;
  CreationTime: string | undefined;
  InvokeMode?: InvokeMode | undefined;
}
export interface DeleteFunctionCodeSigningConfigRequest {
  FunctionName: string | undefined;
}
export interface DeleteFunctionConcurrencyRequest {
  FunctionName: string | undefined;
}
export interface DeleteFunctionUrlConfigRequest {
  FunctionName: string | undefined;
  Qualifier?: string | undefined;
}
export interface GetFunctionRequest {
  FunctionName: string | undefined;
  Qualifier?: string | undefined;
}
export interface FunctionCodeLocation {
  RepositoryType?: string | undefined;
  Location?: string | undefined;
  ImageUri?: string | undefined;
  ResolvedImageUri?: string | undefined;
  SourceKMSKeyArn?: string | undefined;
}
export interface Concurrency {
  ReservedConcurrentExecutions?: number | undefined;
}
export interface TagsError {
  ErrorCode: string | undefined;
  Message: string | undefined;
}
export interface GetFunctionResponse {
  Configuration?: FunctionConfiguration | undefined;
  Code?: FunctionCodeLocation | undefined;
  Tags?: Record<string, string> | undefined;
  TagsError?: TagsError | undefined;
  Concurrency?: Concurrency | undefined;
}
export interface GetFunctionCodeSigningConfigRequest {
  FunctionName: string | undefined;
}
export interface GetFunctionCodeSigningConfigResponse {
  CodeSigningConfigArn: string | undefined;
  FunctionName: string | undefined;
}
export interface GetFunctionConcurrencyRequest {
  FunctionName: string | undefined;
}
export interface GetFunctionConcurrencyResponse {
  ReservedConcurrentExecutions?: number | undefined;
}
export interface GetFunctionConfigurationRequest {
  FunctionName: string | undefined;
  Qualifier?: string | undefined;
}
export interface GetFunctionRecursionConfigRequest {
  FunctionName: string | undefined;
}
export interface GetFunctionRecursionConfigResponse {
  RecursiveLoop?: RecursiveLoop | undefined;
}
export interface GetFunctionScalingConfigRequest {
  FunctionName: string | undefined;
  Qualifier: string | undefined;
}
export interface FunctionScalingConfig {
  MinExecutionEnvironments?: number | undefined;
  MaxExecutionEnvironments?: number | undefined;
}
export interface GetFunctionScalingConfigResponse {
  FunctionArn?: string | undefined;
  AppliedFunctionScalingConfig?: FunctionScalingConfig | undefined;
  RequestedFunctionScalingConfig?: FunctionScalingConfig | undefined;
}
export interface GetFunctionUrlConfigRequest {
  FunctionName: string | undefined;
  Qualifier?: string | undefined;
}
export interface GetFunctionUrlConfigResponse {
  FunctionUrl: string | undefined;
  FunctionArn: string | undefined;
  AuthType: FunctionUrlAuthType | undefined;
  Cors?: Cors | undefined;
  CreationTime: string | undefined;
  LastModifiedTime: string | undefined;
  InvokeMode?: InvokeMode | undefined;
}
export interface GetPolicyRequest {
  FunctionName: string | undefined;
  Qualifier?: string | undefined;
}
export interface GetPolicyResponse {
  Policy?: string | undefined;
  RevisionId?: string | undefined;
}
export interface GetRuntimeManagementConfigRequest {
  FunctionName: string | undefined;
  Qualifier?: string | undefined;
}
export interface GetRuntimeManagementConfigResponse {
  UpdateRuntimeOn?: UpdateRuntimeOn | undefined;
  RuntimeVersionArn?: string | undefined;
  FunctionArn?: string | undefined;
}
export interface InvocationRequest {
  FunctionName: string | undefined;
  InvocationType?: InvocationType | undefined;
  LogType?: LogType | undefined;
  ClientContext?: string | undefined;
  DurableExecutionName?: string | undefined;
  Payload?: Uint8Array | undefined;
  Qualifier?: string | undefined;
  TenantId?: string | undefined;
}
export interface InvocationResponse {
  StatusCode?: number | undefined;
  FunctionError?: string | undefined;
  LogResult?: string | undefined;
  Payload?: Uint8Array | undefined;
  ExecutedVersion?: string | undefined;
  DurableExecutionArn?: string | undefined;
}
export interface InvokeAsyncRequest {
  FunctionName: string | undefined;
  InvokeArgs: StreamingBlobTypes | undefined;
}
export interface InvokeAsyncResponse {
  Status?: number | undefined;
}
export interface InvokeWithResponseStreamRequest {
  FunctionName: string | undefined;
  InvocationType?: ResponseStreamingInvocationType | undefined;
  LogType?: LogType | undefined;
  ClientContext?: string | undefined;
  Qualifier?: string | undefined;
  Payload?: Uint8Array | undefined;
  TenantId?: string | undefined;
}
export interface InvokeWithResponseStreamCompleteEvent {
  ErrorCode?: string | undefined;
  ErrorDetails?: string | undefined;
  LogResult?: string | undefined;
}
export interface InvokeResponseStreamUpdate {
  Payload?: Uint8Array | undefined;
}
export type InvokeWithResponseStreamResponseEvent =
  | InvokeWithResponseStreamResponseEvent.InvokeCompleteMember
  | InvokeWithResponseStreamResponseEvent.PayloadChunkMember
  | InvokeWithResponseStreamResponseEvent.$UnknownMember;
export declare namespace InvokeWithResponseStreamResponseEvent {
  interface PayloadChunkMember {
    PayloadChunk: InvokeResponseStreamUpdate;
    InvokeComplete?: never;
    $unknown?: never;
  }
  interface InvokeCompleteMember {
    PayloadChunk?: never;
    InvokeComplete: InvokeWithResponseStreamCompleteEvent;
    $unknown?: never;
  }
  interface $UnknownMember {
    PayloadChunk?: never;
    InvokeComplete?: never;
    $unknown: [string, any];
  }
  interface Visitor<T> {
    PayloadChunk: (value: InvokeResponseStreamUpdate) => T;
    InvokeComplete: (value: InvokeWithResponseStreamCompleteEvent) => T;
    _: (name: string, value: any) => T;
  }
}
export interface InvokeWithResponseStreamResponse {
  StatusCode?: number | undefined;
  ExecutedVersion?: string | undefined;
  EventStream?:
    | AsyncIterable<InvokeWithResponseStreamResponseEvent>
    | undefined;
  ResponseStreamContentType?: string | undefined;
}
export interface ListFunctionsRequest {
  MasterRegion?: string | undefined;
  FunctionVersion?: FunctionVersion | undefined;
  Marker?: string | undefined;
  MaxItems?: number | undefined;
}
export interface ListFunctionsResponse {
  NextMarker?: string | undefined;
  Functions?: FunctionConfiguration[] | undefined;
}
export interface ListFunctionUrlConfigsRequest {
  FunctionName: string | undefined;
  Marker?: string | undefined;
  MaxItems?: number | undefined;
}
export interface FunctionUrlConfig {
  FunctionUrl: string | undefined;
  FunctionArn: string | undefined;
  CreationTime: string | undefined;
  LastModifiedTime: string | undefined;
  Cors?: Cors | undefined;
  AuthType: FunctionUrlAuthType | undefined;
  InvokeMode?: InvokeMode | undefined;
}
export interface ListFunctionUrlConfigsResponse {
  FunctionUrlConfigs: FunctionUrlConfig[] | undefined;
  NextMarker?: string | undefined;
}
export interface ListProvisionedConcurrencyConfigsRequest {
  FunctionName: string | undefined;
  Marker?: string | undefined;
  MaxItems?: number | undefined;
}
export interface ProvisionedConcurrencyConfigListItem {
  FunctionArn?: string | undefined;
  RequestedProvisionedConcurrentExecutions?: number | undefined;
  AvailableProvisionedConcurrentExecutions?: number | undefined;
  AllocatedProvisionedConcurrentExecutions?: number | undefined;
  Status?: ProvisionedConcurrencyStatusEnum | undefined;
  StatusReason?: string | undefined;
  LastModified?: string | undefined;
}
export interface ListProvisionedConcurrencyConfigsResponse {
  ProvisionedConcurrencyConfigs?:
    | ProvisionedConcurrencyConfigListItem[]
    | undefined;
  NextMarker?: string | undefined;
}
export interface PutFunctionCodeSigningConfigRequest {
  CodeSigningConfigArn: string | undefined;
  FunctionName: string | undefined;
}
export interface PutFunctionCodeSigningConfigResponse {
  CodeSigningConfigArn: string | undefined;
  FunctionName: string | undefined;
}
export interface PutFunctionConcurrencyRequest {
  FunctionName: string | undefined;
  ReservedConcurrentExecutions: number | undefined;
}
export interface PutFunctionRecursionConfigRequest {
  FunctionName: string | undefined;
  RecursiveLoop: RecursiveLoop | undefined;
}
export interface PutFunctionRecursionConfigResponse {
  RecursiveLoop?: RecursiveLoop | undefined;
}
export interface PutFunctionScalingConfigRequest {
  FunctionName: string | undefined;
  Qualifier: string | undefined;
  FunctionScalingConfig?: FunctionScalingConfig | undefined;
}
export interface PutFunctionScalingConfigResponse {
  FunctionState?: State | undefined;
}
export interface PutRuntimeManagementConfigRequest {
  FunctionName: string | undefined;
  Qualifier?: string | undefined;
  UpdateRuntimeOn: UpdateRuntimeOn | undefined;
  RuntimeVersionArn?: string | undefined;
}
export interface PutRuntimeManagementConfigResponse {
  UpdateRuntimeOn: UpdateRuntimeOn | undefined;
  FunctionArn: string | undefined;
  RuntimeVersionArn?: string | undefined;
}
export interface UpdateFunctionCodeRequest {
  FunctionName: string | undefined;
  ZipFile?: Uint8Array | undefined;
  S3Bucket?: string | undefined;
  S3Key?: string | undefined;
  S3ObjectVersion?: string | undefined;
  ImageUri?: string | undefined;
  Publish?: boolean | undefined;
  DryRun?: boolean | undefined;
  RevisionId?: string | undefined;
  Architectures?: Architecture[] | undefined;
  SourceKMSKeyArn?: string | undefined;
  PublishTo?: FunctionVersionLatestPublished | undefined;
}
export interface UpdateFunctionConfigurationRequest {
  FunctionName: string | undefined;
  Role?: string | undefined;
  Handler?: string | undefined;
  Description?: string | undefined;
  Timeout?: number | undefined;
  MemorySize?: number | undefined;
  VpcConfig?: VpcConfig | undefined;
  Environment?: Environment | undefined;
  Runtime?: Runtime | undefined;
  DeadLetterConfig?: DeadLetterConfig | undefined;
  KMSKeyArn?: string | undefined;
  TracingConfig?: TracingConfig | undefined;
  RevisionId?: string | undefined;
  Layers?: string[] | undefined;
  FileSystemConfigs?: FileSystemConfig[] | undefined;
  ImageConfig?: ImageConfig | undefined;
  EphemeralStorage?: EphemeralStorage | undefined;
  SnapStart?: SnapStart | undefined;
  LoggingConfig?: LoggingConfig | undefined;
  CapacityProviderConfig?: CapacityProviderConfig | undefined;
  DurableConfig?: DurableConfig | undefined;
}
export interface UpdateFunctionUrlConfigRequest {
  FunctionName: string | undefined;
  Qualifier?: string | undefined;
  AuthType?: FunctionUrlAuthType | undefined;
  Cors?: Cors | undefined;
  InvokeMode?: InvokeMode | undefined;
}
export interface UpdateFunctionUrlConfigResponse {
  FunctionUrl: string | undefined;
  FunctionArn: string | undefined;
  AuthType: FunctionUrlAuthType | undefined;
  Cors?: Cors | undefined;
  CreationTime: string | undefined;
  LastModifiedTime: string | undefined;
  InvokeMode?: InvokeMode | undefined;
}
export interface CreateAliasRequest {
  FunctionName: string | undefined;
  Name: string | undefined;
  FunctionVersion: string | undefined;
  Description?: string | undefined;
  RoutingConfig?: AliasRoutingConfiguration | undefined;
}
export interface DeleteAliasRequest {
  FunctionName: string | undefined;
  Name: string | undefined;
}
export interface GetAliasRequest {
  FunctionName: string | undefined;
  Name: string | undefined;
}
export interface ListAliasesRequest {
  FunctionName: string | undefined;
  FunctionVersion?: string | undefined;
  Marker?: string | undefined;
  MaxItems?: number | undefined;
}
export interface ListAliasesResponse {
  NextMarker?: string | undefined;
  Aliases?: AliasConfiguration[] | undefined;
}
export interface UpdateAliasRequest {
  FunctionName: string | undefined;
  Name: string | undefined;
  FunctionVersion?: string | undefined;
  Description?: string | undefined;
  RoutingConfig?: AliasRoutingConfiguration | undefined;
  RevisionId?: string | undefined;
}
export interface ListVersionsByFunctionRequest {
  FunctionName: string | undefined;
  Marker?: string | undefined;
  MaxItems?: number | undefined;
}
export interface ListVersionsByFunctionResponse {
  NextMarker?: string | undefined;
  Versions?: FunctionConfiguration[] | undefined;
}
export interface PublishVersionRequest {
  FunctionName: string | undefined;
  CodeSha256?: string | undefined;
  Description?: string | undefined;
  RevisionId?: string | undefined;
  PublishTo?: FunctionVersionLatestPublished | undefined;
}
export interface GetAccountSettingsRequest {}
export interface GetAccountSettingsResponse {
  AccountLimit?: AccountLimit | undefined;
  AccountUsage?: AccountUsage | undefined;
}
export interface GetDurableExecutionRequest {
  DurableExecutionArn: string | undefined;
}
export interface TraceHeader {
  XAmznTraceId?: string | undefined;
}
export interface GetDurableExecutionResponse {
  DurableExecutionArn: string | undefined;
  DurableExecutionName: string | undefined;
  FunctionArn: string | undefined;
  InputPayload?: string | undefined;
  Result?: string | undefined;
  Error?: ErrorObject | undefined;
  StartTimestamp: Date | undefined;
  Status: ExecutionStatus | undefined;
  EndTimestamp?: Date | undefined;
  Version?: string | undefined;
  TraceHeader?: TraceHeader | undefined;
}
export interface GetDurableExecutionHistoryRequest {
  DurableExecutionArn: string | undefined;
  IncludeExecutionData?: boolean | undefined;
  MaxItems?: number | undefined;
  Marker?: string | undefined;
  ReverseOrder?: boolean | undefined;
}
export interface EventError {
  Payload?: ErrorObject | undefined;
  Truncated?: boolean | undefined;
}
export interface CallbackFailedDetails {
  Error: EventError | undefined;
}
export interface CallbackStartedDetails {
  CallbackId: string | undefined;
  HeartbeatTimeout?: number | undefined;
  Timeout?: number | undefined;
}
export interface EventResult {
  Payload?: string | undefined;
  Truncated?: boolean | undefined;
}
export interface CallbackSucceededDetails {
  Result: EventResult | undefined;
}
export interface CallbackTimedOutDetails {
  Error: EventError | undefined;
}
export interface ChainedInvokeFailedDetails {
  Error: EventError | undefined;
}
export interface EventInput {
  Payload?: string | undefined;
  Truncated?: boolean | undefined;
}
export interface ChainedInvokeStartedDetails {
  FunctionName: string | undefined;
  TenantId?: string | undefined;
  Input?: EventInput | undefined;
  ExecutedVersion?: string | undefined;
  DurableExecutionArn?: string | undefined;
}
export interface ChainedInvokeStoppedDetails {
  Error: EventError | undefined;
}
export interface ChainedInvokeSucceededDetails {
  Result: EventResult | undefined;
}
export interface ChainedInvokeTimedOutDetails {
  Error: EventError | undefined;
}
export interface ContextFailedDetails {
  Error: EventError | undefined;
}
export interface ContextStartedDetails {}
export interface ContextSucceededDetails {
  Result: EventResult | undefined;
}
export interface ExecutionFailedDetails {
  Error: EventError | undefined;
}
export interface ExecutionStartedDetails {
  Input: EventInput | undefined;
  ExecutionTimeout: number | undefined;
}
export interface ExecutionStoppedDetails {
  Error: EventError | undefined;
}
export interface ExecutionSucceededDetails {
  Result: EventResult | undefined;
}
export interface ExecutionTimedOutDetails {
  Error?: EventError | undefined;
}
export interface InvocationCompletedDetails {
  StartTimestamp: Date | undefined;
  EndTimestamp: Date | undefined;
  RequestId: string | undefined;
  Error?: EventError | undefined;
}
export interface RetryDetails {
  CurrentAttempt?: number | undefined;
  NextAttemptDelaySeconds?: number | undefined;
}
export interface StepFailedDetails {
  Error: EventError | undefined;
  RetryDetails: RetryDetails | undefined;
}
export interface StepStartedDetails {}
export interface StepSucceededDetails {
  Result: EventResult | undefined;
  RetryDetails: RetryDetails | undefined;
}
export interface WaitCancelledDetails {
  Error?: EventError | undefined;
}
export interface WaitStartedDetails {
  Duration: number | undefined;
  ScheduledEndTimestamp: Date | undefined;
}
export interface WaitSucceededDetails {
  Duration?: number | undefined;
}
export interface Event {
  EventType?: EventType | undefined;
  SubType?: string | undefined;
  EventId?: number | undefined;
  Id?: string | undefined;
  Name?: string | undefined;
  EventTimestamp?: Date | undefined;
  ParentId?: string | undefined;
  ExecutionStartedDetails?: ExecutionStartedDetails | undefined;
  ExecutionSucceededDetails?: ExecutionSucceededDetails | undefined;
  ExecutionFailedDetails?: ExecutionFailedDetails | undefined;
  ExecutionTimedOutDetails?: ExecutionTimedOutDetails | undefined;
  ExecutionStoppedDetails?: ExecutionStoppedDetails | undefined;
  ContextStartedDetails?: ContextStartedDetails | undefined;
  ContextSucceededDetails?: ContextSucceededDetails | undefined;
  ContextFailedDetails?: ContextFailedDetails | undefined;
  WaitStartedDetails?: WaitStartedDetails | undefined;
  WaitSucceededDetails?: WaitSucceededDetails | undefined;
  WaitCancelledDetails?: WaitCancelledDetails | undefined;
  StepStartedDetails?: StepStartedDetails | undefined;
  StepSucceededDetails?: StepSucceededDetails | undefined;
  StepFailedDetails?: StepFailedDetails | undefined;
  ChainedInvokeStartedDetails?: ChainedInvokeStartedDetails | undefined;
  ChainedInvokeSucceededDetails?: ChainedInvokeSucceededDetails | undefined;
  ChainedInvokeFailedDetails?: ChainedInvokeFailedDetails | undefined;
  ChainedInvokeTimedOutDetails?: ChainedInvokeTimedOutDetails | undefined;
  ChainedInvokeStoppedDetails?: ChainedInvokeStoppedDetails | undefined;
  CallbackStartedDetails?: CallbackStartedDetails | undefined;
  CallbackSucceededDetails?: CallbackSucceededDetails | undefined;
  CallbackFailedDetails?: CallbackFailedDetails | undefined;
  CallbackTimedOutDetails?: CallbackTimedOutDetails | undefined;
  InvocationCompletedDetails?: InvocationCompletedDetails | undefined;
}
export interface GetDurableExecutionHistoryResponse {
  Events: Event[] | undefined;
  NextMarker?: string | undefined;
}
export interface GetDurableExecutionStateRequest {
  DurableExecutionArn: string | undefined;
  CheckpointToken: string | undefined;
  Marker?: string | undefined;
  MaxItems?: number | undefined;
}
export interface GetDurableExecutionStateResponse {
  Operations: Operation[] | undefined;
  NextMarker?: string | undefined;
}
export interface FunctionEventInvokeConfig {
  LastModified?: Date | undefined;
  FunctionArn?: string | undefined;
  MaximumRetryAttempts?: number | undefined;
  MaximumEventAgeInSeconds?: number | undefined;
  DestinationConfig?: DestinationConfig | undefined;
}
export interface GetFunctionEventInvokeConfigRequest {
  FunctionName: string | undefined;
  Qualifier?: string | undefined;
}
export interface ListLayersRequest {
  CompatibleRuntime?: Runtime | undefined;
  Marker?: string | undefined;
  MaxItems?: number | undefined;
  CompatibleArchitecture?: Architecture | undefined;
}
export interface LayerVersionsListItem {
  LayerVersionArn?: string | undefined;
  Version?: number | undefined;
  Description?: string | undefined;
  CreatedDate?: string | undefined;
  CompatibleRuntimes?: Runtime[] | undefined;
  LicenseInfo?: string | undefined;
  CompatibleArchitectures?: Architecture[] | undefined;
}
export interface LayersListItem {
  LayerName?: string | undefined;
  LayerArn?: string | undefined;
  LatestMatchingVersion?: LayerVersionsListItem | undefined;
}
export interface ListLayersResponse {
  NextMarker?: string | undefined;
  Layers?: LayersListItem[] | undefined;
}
export interface DeleteLayerVersionRequest {
  LayerName: string | undefined;
  VersionNumber: number | undefined;
}
export interface GetLayerVersionRequest {
  LayerName: string | undefined;
  VersionNumber: number | undefined;
}
export interface LayerVersionContentOutput {
  Location?: string | undefined;
  CodeSha256?: string | undefined;
  CodeSize?: number | undefined;
  SigningProfileVersionArn?: string | undefined;
  SigningJobArn?: string | undefined;
}
export interface GetLayerVersionResponse {
  Content?: LayerVersionContentOutput | undefined;
  LayerArn?: string | undefined;
  LayerVersionArn?: string | undefined;
  Description?: string | undefined;
  CreatedDate?: string | undefined;
  Version?: number | undefined;
  CompatibleRuntimes?: Runtime[] | undefined;
  LicenseInfo?: string | undefined;
  CompatibleArchitectures?: Architecture[] | undefined;
}
export interface GetLayerVersionByArnRequest {
  Arn: string | undefined;
}
export interface GetLayerVersionPolicyRequest {
  LayerName: string | undefined;
  VersionNumber: number | undefined;
}
export interface GetLayerVersionPolicyResponse {
  Policy?: string | undefined;
  RevisionId?: string | undefined;
}
export interface ListLayerVersionsRequest {
  CompatibleRuntime?: Runtime | undefined;
  LayerName: string | undefined;
  Marker?: string | undefined;
  MaxItems?: number | undefined;
  CompatibleArchitecture?: Architecture | undefined;
}
export interface ListLayerVersionsResponse {
  NextMarker?: string | undefined;
  LayerVersions?: LayerVersionsListItem[] | undefined;
}
export interface LayerVersionContentInput {
  S3Bucket?: string | undefined;
  S3Key?: string | undefined;
  S3ObjectVersion?: string | undefined;
  ZipFile?: Uint8Array | undefined;
}
export interface PublishLayerVersionRequest {
  LayerName: string | undefined;
  Description?: string | undefined;
  Content: LayerVersionContentInput | undefined;
  CompatibleRuntimes?: Runtime[] | undefined;
  LicenseInfo?: string | undefined;
  CompatibleArchitectures?: Architecture[] | undefined;
}
export interface PublishLayerVersionResponse {
  Content?: LayerVersionContentOutput | undefined;
  LayerArn?: string | undefined;
  LayerVersionArn?: string | undefined;
  Description?: string | undefined;
  CreatedDate?: string | undefined;
  Version?: number | undefined;
  CompatibleRuntimes?: Runtime[] | undefined;
  LicenseInfo?: string | undefined;
  CompatibleArchitectures?: Architecture[] | undefined;
}
export interface RemoveLayerVersionPermissionRequest {
  LayerName: string | undefined;
  VersionNumber: number | undefined;
  StatementId: string | undefined;
  RevisionId?: string | undefined;
}
export interface ListDurableExecutionsByFunctionRequest {
  FunctionName: string | undefined;
  Qualifier?: string | undefined;
  DurableExecutionName?: string | undefined;
  Statuses?: ExecutionStatus[] | undefined;
  StartedAfter?: Date | undefined;
  StartedBefore?: Date | undefined;
  ReverseOrder?: boolean | undefined;
  Marker?: string | undefined;
  MaxItems?: number | undefined;
}
export interface Execution {
  DurableExecutionArn: string | undefined;
  DurableExecutionName: string | undefined;
  FunctionArn: string | undefined;
  Status: ExecutionStatus | undefined;
  StartTimestamp: Date | undefined;
  EndTimestamp?: Date | undefined;
}
export interface ListDurableExecutionsByFunctionResponse {
  DurableExecutions?: Execution[] | undefined;
  NextMarker?: string | undefined;
}
export interface ListFunctionEventInvokeConfigsRequest {
  FunctionName: string | undefined;
  Marker?: string | undefined;
  MaxItems?: number | undefined;
}
export interface ListFunctionEventInvokeConfigsResponse {
  FunctionEventInvokeConfigs?: FunctionEventInvokeConfig[] | undefined;
  NextMarker?: string | undefined;
}
export interface ListTagsRequest {
  Resource: string | undefined;
}
export interface ListTagsResponse {
  Tags?: Record<string, string> | undefined;
}
export interface RemovePermissionRequest {
  FunctionName: string | undefined;
  StatementId: string | undefined;
  Qualifier?: string | undefined;
  RevisionId?: string | undefined;
}
export interface DeleteProvisionedConcurrencyConfigRequest {
  FunctionName: string | undefined;
  Qualifier: string | undefined;
}
export interface GetProvisionedConcurrencyConfigRequest {
  FunctionName: string | undefined;
  Qualifier: string | undefined;
}
export interface GetProvisionedConcurrencyConfigResponse {
  RequestedProvisionedConcurrentExecutions?: number | undefined;
  AvailableProvisionedConcurrentExecutions?: number | undefined;
  AllocatedProvisionedConcurrentExecutions?: number | undefined;
  Status?: ProvisionedConcurrencyStatusEnum | undefined;
  StatusReason?: string | undefined;
  LastModified?: string | undefined;
}
export interface PutProvisionedConcurrencyConfigRequest {
  FunctionName: string | undefined;
  Qualifier: string | undefined;
  ProvisionedConcurrentExecutions: number | undefined;
}
export interface PutProvisionedConcurrencyConfigResponse {
  RequestedProvisionedConcurrentExecutions?: number | undefined;
  AvailableProvisionedConcurrentExecutions?: number | undefined;
  AllocatedProvisionedConcurrentExecutions?: number | undefined;
  Status?: ProvisionedConcurrencyStatusEnum | undefined;
  StatusReason?: string | undefined;
  LastModified?: string | undefined;
}
export interface PutFunctionEventInvokeConfigRequest {
  FunctionName: string | undefined;
  Qualifier?: string | undefined;
  MaximumRetryAttempts?: number | undefined;
  MaximumEventAgeInSeconds?: number | undefined;
  DestinationConfig?: DestinationConfig | undefined;
}
export interface SendDurableExecutionCallbackFailureRequest {
  CallbackId: string | undefined;
  Error?: ErrorObject | undefined;
}
export interface SendDurableExecutionCallbackFailureResponse {}
export interface SendDurableExecutionCallbackHeartbeatRequest {
  CallbackId: string | undefined;
}
export interface SendDurableExecutionCallbackHeartbeatResponse {}
export interface SendDurableExecutionCallbackSuccessRequest {
  CallbackId: string | undefined;
  Result?: Uint8Array | undefined;
}
export interface SendDurableExecutionCallbackSuccessResponse {}
export interface StopDurableExecutionRequest {
  DurableExecutionArn: string | undefined;
  Error?: ErrorObject | undefined;
}
export interface StopDurableExecutionResponse {
  StopTimestamp: Date | undefined;
}
export interface TagResourceRequest {
  Resource: string | undefined;
  Tags: Record<string, string> | undefined;
}
export interface UntagResourceRequest {
  Resource: string | undefined;
  TagKeys: string[] | undefined;
}
export interface UpdateFunctionEventInvokeConfigRequest {
  FunctionName: string | undefined;
  Qualifier?: string | undefined;
  MaximumRetryAttempts?: number | undefined;
  MaximumEventAgeInSeconds?: number | undefined;
  DestinationConfig?: DestinationConfig | undefined;
}
