export interface ComponentConfiguration {
    /** The Amazon Resource Name (ARN) of the component. */
    componentArn: string;
    /** A group of parameter settings that Image Builder uses to configure the component for a specific recipe. */
    parameters?: any[];
}
export interface InstanceConfiguration {
    /** The base image for a container build and test instance. This can contain an AMI ID or it can specify an Amazon Web Services Systems Manager (SSM) Parameter Store Parameter, prefixed by ssm:, followed  */
    image?: string;
    /** Defines the block devices to attach for building an instance from this Image Builder AMI. */
    blockDeviceMappings?: any[];
}
export interface TargetContainerRepository {
    /** Specifies the service in which this image was registered. */
    service: 'ECR';
    /** The name of the container repository where the output container image is stored. This name is prefixed by the repository location. For example, /repository_name. */
    repositoryName: string;
}
export interface Distribution {
    /** The target Region. */
    region: string;
    /** The specific AMI settings; for example, launch permissions or AMI tags. */
    amiDistributionConfiguration?: any;
    /** Container distribution settings for encryption, licensing, and sharing in a specific Region. */
    containerDistributionConfiguration?: any;
    /** The License Manager Configuration to associate with the AMI in the specified Region. */
    licenseConfigurationArns?: any[];
    /** A group of launchTemplateConfiguration settings that apply to image distribution for specified accounts. */
    launchTemplateConfigurations?: any[];
    /** Configure export settings to deliver disk images created from your image build, using a file format that is compatible with your VMs in that Region. */
    s3ExportConfiguration?: any;
    /** The Windows faster-launching configurations to use for AMI distribution. */
    fastLaunchConfigurations?: any[];
    /** Contains settings to update Amazon Web Services Systems Manager (SSM) Parameter Store Parameters with output AMI IDs from the build by target Region. */
    ssmParameterConfigurations?: any[];
}
export interface ImageTestsConfiguration {
    /** Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution. */
    imageTestsEnabled?: boolean;
    /** The maximum time in minutes that tests are permitted to run. The timeout property is not currently active. This value is ignored. */
    timeoutMinutes?: number;
}
export interface EcrConfiguration {
    /** The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don’t provide this infor */
    repositoryName?: string;
    /** Tags for Image Builder to apply to the output container image that Amazon Inspector scans. Tags can help you identify and manage your scanned images. */
    containerTags?: any[];
}
export interface ImageScanningConfiguration {
    /** A setting that indicates whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image. */
    imageScanningEnabled?: boolean;
    /** Contains Amazon ECR settings for vulnerability scans. */
    ecrConfiguration?: EcrConfiguration;
}
export interface WorkflowConfiguration {
    /** The Amazon Resource Name (ARN) of the workflow resource. */
    workflowArn: string;
    /** Contains parameter values for each of the parameters that the workflow document defined for the workflow resource. */
    parameters?: any[];
    /** Test workflows are defined within named runtime groups called parallel groups. The parallel group is the named group that contains this test workflow. Test workflows within a parallel group can run at */
    parallelGroup?: string;
    /** The action to take if the workflow fails. */
    onFailure?: 'CONTINUE' | 'ABORT';
}
export interface ImageLoggingConfiguration {
    /** The log group name that Image Builder uses for image creation. If not specified, the log group name defaults to /aws/imagebuilder/image-name. */
    logGroupName?: string;
}
export interface AutoDisablePolicy {
    /** The number of consecutive scheduled image pipeline executions that must fail before Image Builder automatically disables the pipeline. */
    failureCount: number;
}
export interface Schedule {
    /** The cron expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition. For information on how to format a cron expression in Image Builder, see Use cron expressions */
    scheduleExpression?: string;
    /** The timezone that applies to the scheduling expression. For example, "Etc/UTC", "America/Los_Angeles" in the IANA timezone format. If not specified this defaults to UTC. */
    timezone?: string;
    /** The start condition configures when the pipeline should trigger a new image build, as follows. If no value is set Image Builder defaults to EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE. EXPRESSIO */
    pipelineExecutionStartCondition?: 'EXPRESSION_MATCH_ONLY' | 'EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE';
    /** The policy that configures when Image Builder should automatically disable a pipeline that is failing. */
    autoDisablePolicy?: AutoDisablePolicy;
}
export interface PipelineLoggingConfiguration {
    /** The log group name that Image Builder uses for image creation. If not specified, the log group name defaults to /aws/imagebuilder/image-name. */
    imageLogGroupName?: string;
    /** The log group name that Image Builder uses for the log output during creation of a new pipeline. If not specified, the pipeline log group name defaults to /aws/imagebuilder/pipeline/pipeline-name. */
    pipelineLogGroupName?: string;
}
export interface InstanceBlockDeviceMapping {
    /** The device to which these mappings apply. */
    deviceName?: string;
    /** Use to manage Amazon EBS-specific configuration for this mapping. */
    ebs?: any;
    /** Use to manage instance ephemeral devices. */
    virtualName?: string;
    /** Use to remove a mapping from the base image. */
    noDevice?: string;
}
export interface SystemsManagerAgent {
    /** Controls whether the Systems Manager agent is removed from your final build image, prior to creating the new AMI. If this is set to true, then the agent is removed from the final image. If it's set to */
    uninstallAfterBuild?: boolean;
}
export interface AdditionalInstanceConfiguration {
    /** Contains settings for the Systems Manager agent on your build instance. */
    systemsManagerAgent?: SystemsManagerAgent;
    /** Use this property to provide commands or a command script to run when you launch your build instance. The userDataOverride property replaces any commands that Image Builder might have added to ensure  */
    userDataOverride?: string;
}
export interface S3Logs {
    /** The S3 bucket in which to store the logs. */
    s3BucketName?: string;
    /** The Amazon S3 path to the bucket where the logs are stored. */
    s3KeyPrefix?: string;
}
export interface Logging {
    /** The Amazon S3 logging configuration. */
    s3Logs?: S3Logs;
}
export interface InstanceMetadataOptions {
    /** Indicates whether a signed token header is required for instance metadata retrieval requests. The values affect the response as follows: required – When you retrieve the IAM role credentials, version  */
    httpTokens?: string;
    /** Limit the number of hops that an instance metadata request can traverse to reach its destination. The default is one hop. However, if HTTP tokens are required, container image builds need a minimum of */
    httpPutResponseHopLimit?: number;
}
export interface Placement {
    /** The Availability Zone where your build and test instances will launch. */
    availabilityZone?: string;
    /** The tenancy of the instance. An instance with a tenancy of dedicated runs on single-tenant hardware. An instance with a tenancy of host runs on a Dedicated Host. If tenancy is set to host, then you ca */
    tenancy?: 'default' | 'dedicated' | 'host';
    /** The ID of the Dedicated Host on which build and test instances run. This only applies if tenancy is host. If you specify the host ID, you must not specify the resource group ARN. If you specify both,  */
    hostId?: string;
    /** The Amazon Resource Name (ARN) of the host resource group in which to launch build and test instances. This only applies if tenancy is host. If you specify the resource group ARN, you must not specify */
    hostResourceGroupArn?: string;
}
export interface LifecyclePolicyDetail {
    /** Configuration details for the policy action. */
    action: any;
    /** Specifies the resources that the lifecycle policy applies to. */
    filter: any;
    /** Additional rules to specify resources that should be exempt from policy actions. */
    exclusionRules?: any;
}
export interface LifecyclePolicyResourceSelection {
    /** A list of recipes that are used as selection criteria for the output images that the lifecycle policy applies to. */
    recipes?: any[];
    /** A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. */
    tagMap?: Record<string, string>;
}
export interface Filter {
    /** The name of the filter. Filter names are case-sensitive. */
    name?: string;
    /** The filter values. Filter values are case-sensitive. */
    values?: any[];
}
export interface ImageScanFindingsFilter {
    /** The name of the image scan finding filter. Filter names are case-sensitive. */
    name?: string;
    /** The filter values. Filter values are case-sensitive. */
    values?: any[];
}
export interface ResourceState {
    /** Shows the current lifecycle policy action that was applied to an impacted resource. */
    status?: 'AVAILABLE' | 'DELETED' | 'DEPRECATED' | 'DISABLED';
}
export interface ResourceStateUpdateIncludeResources {
    /** Specifies whether the lifecycle action should apply to distributed AMIs */
    amis?: boolean;
    /** Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. */
    snapshots?: boolean;
    /** Specifies whether the lifecycle action should apply to distributed containers. */
    containers?: boolean;
}
export interface LifecyclePolicyDetailExclusionRulesAmis {
    /** Configures whether public AMIs are excluded from the lifecycle action. */
    isPublic?: boolean;
    /** Configures Amazon Web Services Regions that are excluded from the lifecycle action. */
    regions?: any[];
    /** Specifies Amazon Web Services accounts whose resources are excluded from the lifecycle action. */
    sharedAccounts?: any[];
    /** Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. */
    lastLaunched?: any;
    /** Lists tags that should be excluded from lifecycle actions for the AMIs that have them. */
    tagMap?: Record<string, any>;
}
export interface ResourceStateUpdateExclusionRules {
    amis?: LifecyclePolicyDetailExclusionRulesAmis;
}
export interface CancelImageCreationInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The Amazon Resource Name (ARN) of the image that you want to cancel creation for. */
    imageBuildVersionArn: string;
}
export interface CancelLifecycleExecutionInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** Identifies the specific runtime instance of the image lifecycle to cancel. */
    lifecycleExecutionId: string;
}
export interface CreateComponentInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The name of the component. */
    name: string;
    /** The operating system platform of the component. */
    platform: 'Windows' | 'Linux' | 'macOS';
    /** The semantic version of the component. This version follows the semantic version syntax. The semantic version has four nodes: ../. You can assign values for the first three, and can filter on all of t */
    semanticVersion: string;
    /** The change description of the component. Describes what change has been made in this version, or what makes this version different from other versions of the component. */
    changeDescription?: string;
    /** Component data contains inline YAML document content for the component. Alternatively, you can specify the uri of a YAML document file stored in Amazon S3. However, you cannot specify both properties. */
    data?: string;
    /** Describes the contents of the component. */
    description?: string;
    /** Validates the required permissions for the operation and the request parameters, without actually making the request, and provides an error response. Upon a successful request, the error response is D */
    dryRun?: boolean;
    /** The Amazon Resource Name (ARN) that uniquely identifies the KMS key used to encrypt this component. This can be either the Key ARN or the Alias ARN. For more information, see Key identifiers (KeyId) i */
    kmsKeyId?: string;
    /** The operating system (OS) version supported by the component. If the OS information is available, a prefix match is performed against the base image OS version during image recipe creation. */
    supportedOsVersions?: string[];
    /** The tags that apply to the component. */
    tags?: Record<string, string>;
    /** The uri of a YAML component document file. This must be an S3 URL (s3://bucket/key), and the requester must have permission to access the S3 bucket it points to. If you use Amazon S3, you can specify  */
    uri?: string;
}
export interface CreateContainerRecipeInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The type of container to create. */
    containerType: 'DOCKER';
    /** The name of the container recipe. */
    name: string;
    /** The base image for the container recipe. */
    parentImage: string;
    /** The semantic version of the container recipe. This version follows the semantic version syntax. The semantic version has four nodes: ../. You can assign values for the first three, and can filter on a */
    semanticVersion: string;
    /** The destination repository for the container image. */
    targetRepository: TargetContainerRepository;
    /** The components included in the container recipe. */
    components?: ComponentConfiguration[];
    /** The description of the container recipe. */
    description?: string;
    /** The Dockerfile template used to build your image as an inline data blob. */
    dockerfileTemplateData?: string;
    /** The Amazon S3 URI for the Dockerfile that will be used to build your container image. */
    dockerfileTemplateUri?: string;
    /** Specifies the operating system version for the base image. */
    imageOsVersionOverride?: string;
    /** A group of options that can be used to configure an instance for building and testing container images. */
    instanceConfiguration?: InstanceConfiguration;
    /** The Amazon Resource Name (ARN) that uniquely identifies which KMS key is used to encrypt the Dockerfile template. This can be either the Key ARN or the Alias ARN. For more information, see Key identif */
    kmsKeyId?: string;
    /** Specifies the operating system platform when you use a custom base image. */
    platformOverride?: 'Windows' | 'Linux' | 'macOS';
    /** Tags that are attached to the container recipe. */
    tags?: Record<string, string>;
    /** The working directory for use during build and test workflows. */
    workingDirectory?: string;
}
export interface CreateDistributionConfigurationInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The distributions of the distribution configuration. */
    distributions: Distribution[];
    /** The name of the distribution configuration. */
    name: string;
    /** The description of the distribution configuration. */
    description?: string;
    /** The tags of the distribution configuration. */
    tags?: Record<string, string>;
}
export interface CreateImageInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The Amazon Resource Name (ARN) of the infrastructure configuration that defines the environment in which your image will be built and tested. */
    infrastructureConfigurationArn: string;
    /** The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested. */
    containerRecipeArn?: string;
    /** The Amazon Resource Name (ARN) of the distribution configuration that defines and configures the outputs of your pipeline. */
    distributionConfigurationArn?: string;
    /** Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Ima */
    enhancedImageMetadataEnabled?: boolean;
    /** The name or Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to perform workflow actions. */
    executionRole?: string;
    /** The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed. */
    imageRecipeArn?: string;
    /** Contains settings for vulnerability scans. */
    imageScanningConfiguration?: ImageScanningConfiguration;
    /** The image tests configuration of the image. */
    imageTestsConfiguration?: ImageTestsConfiguration;
    /** Define logging configuration for the image build process. */
    loggingConfiguration?: ImageLoggingConfiguration;
    /** The tags of the image. */
    tags?: Record<string, string>;
    /** Contains an array of workflow configuration objects. */
    workflows?: WorkflowConfiguration[];
}
export interface CreateImagePipelineInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The Amazon Resource Name (ARN) of the infrastructure configuration that will be used to build images created by this image pipeline. */
    infrastructureConfigurationArn: string;
    /** The name of the image pipeline. */
    name: string;
    /** The Amazon Resource Name (ARN) of the container recipe that is used to configure images created by this container pipeline. */
    containerRecipeArn?: string;
    /** The description of the image pipeline. */
    description?: string;
    /** The Amazon Resource Name (ARN) of the distribution configuration that will be used to configure and distribute images created by this image pipeline. */
    distributionConfigurationArn?: string;
    /** Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Ima */
    enhancedImageMetadataEnabled?: boolean;
    /** The name or Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to perform workflow actions. */
    executionRole?: string;
    /** The Amazon Resource Name (ARN) of the image recipe that will be used to configure images created by this image pipeline. */
    imageRecipeArn?: string;
    /** Contains settings for vulnerability scans. */
    imageScanningConfiguration?: ImageScanningConfiguration;
    /** The image test configuration of the image pipeline. */
    imageTestsConfiguration?: ImageTestsConfiguration;
    /** Define logging configuration for the image build process. */
    loggingConfiguration?: PipelineLoggingConfiguration;
    /** The schedule of the image pipeline. */
    schedule?: Schedule;
    /** The status of the image pipeline. */
    status?: 'DISABLED' | 'ENABLED';
    /** The tags of the image pipeline. */
    tags?: Record<string, string>;
    /** Contains an array of workflow configuration objects. */
    workflows?: WorkflowConfiguration[];
}
export interface CreateImageRecipeInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The name of the image recipe. */
    name: string;
    /** The base image for customizations specified in the image recipe. You can specify the parent image using one of the following options: AMI ID Image Builder image Amazon Resource Name (ARN) Amazon Web S */
    parentImage: string;
    /** The semantic version of the image recipe. This version follows the semantic version syntax. The semantic version has four nodes: ../. You can assign values for the first three, and can filter on all o */
    semanticVersion: string;
    /** Specify additional settings and launch scripts for your build instances. */
    additionalInstanceConfiguration?: AdditionalInstanceConfiguration;
    /** Tags that are applied to the AMI that Image Builder creates during the Build phase prior to image distribution. */
    amiTags?: Record<string, string>;
    /** The block device mappings of the image recipe. */
    blockDeviceMappings?: InstanceBlockDeviceMapping[];
    /** The components included in the image recipe. */
    components?: ComponentConfiguration[];
    /** The description of the image recipe. */
    description?: string;
    /** The tags of the image recipe. */
    tags?: Record<string, string>;
    /** The working directory used during build and test workflows. */
    workingDirectory?: string;
}
export interface CreateInfrastructureConfigurationInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The instance profile to associate with the instance used to customize your Amazon EC2 AMI. */
    instanceProfileName: string;
    /** The name of the infrastructure configuration. */
    name: string;
    /** The description of the infrastructure configuration. */
    description?: string;
    /** The instance metadata options that you can set for the HTTP requests that pipeline builds use to launch EC2 build and test instances. */
    instanceMetadataOptions?: InstanceMetadataOptions;
    /** The instance types of the infrastructure configuration. You can specify one or more instance types to use for this build. The service will pick one of these instance types based on availability. */
    instanceTypes?: string[];
    /** The key pair of the infrastructure configuration. You can use this to log on to and debug the instance used to create your image. */
    keyPair?: string;
    /** The logging configuration of the infrastructure configuration. */
    logging?: Logging;
    /** The instance placement settings that define where the instances that are launched from your image will run. */
    placement?: Placement;
    /** The metadata tags to assign to the Amazon EC2 instance that Image Builder launches during the build process. Tags are formatted as key value pairs. */
    resourceTags?: Record<string, string>;
    /** The security group IDs to associate with the instance used to customize your Amazon EC2 AMI. */
    securityGroupIds?: string[];
    /** The Amazon Resource Name (ARN) for the SNS topic to which we send image build event notifications. EC2 Image Builder is unable to send notifications to SNS topics that are encrypted using keys from ot */
    snsTopicArn?: string;
    /** The subnet ID in which to place the instance used to customize your Amazon EC2 AMI. */
    subnetId?: string;
    /** The metadata tags to assign to the infrastructure configuration resource that Image Builder creates as output. Tags are formatted as key value pairs. */
    tags?: Record<string, string>;
    /** The terminate instance on failure setting of the infrastructure configuration. Set to false if you want Image Builder to retain the instance used to configure your AMI if the build or test phase of yo */
    terminateInstanceOnFailure?: boolean;
}
export interface CreateLifecyclePolicyInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The name or Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. */
    executionRole: string;
    /** The name of the lifecycle policy to create. */
    name: string;
    /** Configuration details for the lifecycle policy rules. */
    policyDetails: LifecyclePolicyDetail[];
    /** Selection criteria for the resources that the lifecycle policy applies to. */
    resourceSelection: LifecyclePolicyResourceSelection;
    /** The type of Image Builder resource that the lifecycle policy applies to. */
    resourceType: 'AMI_IMAGE' | 'CONTAINER_IMAGE';
    /** Optional description for the lifecycle policy. */
    description?: string;
    /** Indicates whether the lifecycle policy resource is enabled. */
    status?: 'DISABLED' | 'ENABLED';
    /** Tags to apply to the lifecycle policy resource. */
    tags?: Record<string, string>;
}
export interface CreateWorkflowInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The name of the workflow to create. */
    name: string;
    /** The semantic version of this workflow resource. The semantic version syntax adheres to the following rules. The semantic version has four nodes: ../. You can assign values for the first three, and can */
    semanticVersion: string;
    /** The phase in the image build process for which the workflow resource is responsible. */
    type: 'BUILD' | 'TEST' | 'DISTRIBUTION';
    /** Describes what change has been made in this version of the workflow, or what makes this version different from other versions of the workflow. */
    changeDescription?: string;
    /** Contains the UTF-8 encoded YAML document content for the workflow. Alternatively, you can specify the uri of a YAML document file stored in Amazon S3. However, you cannot specify both properties. */
    data?: string;
    /** Describes the workflow. */
    description?: string;
    /** Validates the required permissions for the operation and the request parameters, without actually making the request, and provides an error response. Upon a successful request, the error response is D */
    dryRun?: boolean;
    /** The Amazon Resource Name (ARN) that uniquely identifies the KMS key used to encrypt this workflow resource. This can be either the Key ARN or the Alias ARN. For more information, see Key identifiers ( */
    kmsKeyId?: string;
    /** Tags that apply to the workflow resource. */
    tags?: Record<string, string>;
    /** The uri of a YAML component document file. This must be an S3 URL (s3://bucket/key), and the requester must have permission to access the S3 bucket it points to. If you use Amazon S3, you can specify  */
    uri?: string;
}
export interface DeleteComponentInput {
    /** The Amazon Resource Name (ARN) of the component build version to delete. */
    componentBuildVersionArn: string;
}
export interface DeleteContainerRecipeInput {
    /** The Amazon Resource Name (ARN) of the container recipe to delete. */
    containerRecipeArn: string;
}
export interface DeleteDistributionConfigurationInput {
    /** The Amazon Resource Name (ARN) of the distribution configuration to delete. */
    distributionConfigurationArn: string;
}
export interface DeleteImageInput {
    /** The Amazon Resource Name (ARN) of the Image Builder image resource to delete. */
    imageBuildVersionArn: string;
}
export interface DeleteImagePipelineInput {
    /** The Amazon Resource Name (ARN) of the image pipeline to delete. */
    imagePipelineArn: string;
}
export interface DeleteImageRecipeInput {
    /** The Amazon Resource Name (ARN) of the image recipe to delete. */
    imageRecipeArn: string;
}
export interface DeleteInfrastructureConfigurationInput {
    /** The Amazon Resource Name (ARN) of the infrastructure configuration to delete. */
    infrastructureConfigurationArn: string;
}
export interface DeleteLifecyclePolicyInput {
    /** The Amazon Resource Name (ARN) of the lifecycle policy resource to delete. */
    lifecyclePolicyArn: string;
}
export interface DeleteWorkflowInput {
    /** The Amazon Resource Name (ARN) of the workflow resource to delete. */
    workflowBuildVersionArn: string;
}
export interface DistributeImageInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The Amazon Resource Name (ARN) of the distribution configuration to use. */
    distributionConfigurationArn: string;
    /** The IAM role to use for the distribution. */
    executionRole: string;
    /** The source image Amazon Resource Name (ARN) to distribute. */
    sourceImage: string;
    /** The logging configuration for the distribution. */
    loggingConfiguration?: ImageLoggingConfiguration;
    /** The tags to apply to the distributed image. */
    tags?: Record<string, string>;
}
export interface GetComponentInput {
    /** The Amazon Resource Name (ARN) of the component that you want to get. Regex requires the suffix /\d+$. */
    componentBuildVersionArn: string;
}
export interface GetComponentPolicyInput {
    /** The Amazon Resource Name (ARN) of the component whose policy you want to retrieve. */
    componentArn: string;
}
export interface GetContainerRecipeInput {
    /** The Amazon Resource Name (ARN) of the container recipe to retrieve. */
    containerRecipeArn: string;
}
export interface GetContainerRecipePolicyInput {
    /** The Amazon Resource Name (ARN) of the container recipe for the policy being requested. */
    containerRecipeArn: string;
}
export interface GetDistributionConfigurationInput {
    /** The Amazon Resource Name (ARN) of the distribution configuration that you want to retrieve. */
    distributionConfigurationArn: string;
}
export interface GetImageInput {
    /** The Amazon Resource Name (ARN) of the image that you want to get. */
    imageBuildVersionArn: string;
}
export interface GetImagePipelineInput {
    /** The Amazon Resource Name (ARN) of the image pipeline that you want to retrieve. */
    imagePipelineArn: string;
}
export interface GetImagePolicyInput {
    /** The Amazon Resource Name (ARN) of the image whose policy you want to retrieve. */
    imageArn: string;
}
export interface GetImageRecipeInput {
    /** The Amazon Resource Name (ARN) of the image recipe that you want to retrieve. */
    imageRecipeArn: string;
}
export interface GetImageRecipePolicyInput {
    /** The Amazon Resource Name (ARN) of the image recipe whose policy you want to retrieve. */
    imageRecipeArn: string;
}
/** GetInfrastructureConfiguration request object. */
export interface GetInfrastructureConfigurationInput {
    /** The Amazon Resource Name (ARN) of the infrastructure configuration that you want to retrieve. */
    infrastructureConfigurationArn: string;
}
export interface GetLifecycleExecutionInput {
    /** Use the unique identifier for a runtime instance of the lifecycle policy to get runtime details. */
    lifecycleExecutionId: string;
}
export interface GetLifecyclePolicyInput {
    /** Specifies the Amazon Resource Name (ARN) of the image lifecycle policy resource to get. */
    lifecyclePolicyArn: string;
}
export interface GetMarketplaceResourceInput {
    /** The Amazon Resource Name (ARN) that uniquely identifies an Amazon Web Services Marketplace resource. */
    resourceArn: string;
    /** Specifies which type of Amazon Web Services Marketplace resource Image Builder retrieves. */
    resourceType: 'COMPONENT_DATA' | 'COMPONENT_ARTIFACT';
    /** The bucket path that you can specify to download the resource from Amazon S3. */
    resourceLocation?: string;
}
export interface GetWorkflowInput {
    /** The Amazon Resource Name (ARN) of the workflow resource that you want to get. */
    workflowBuildVersionArn: string;
}
export interface GetWorkflowExecutionInput {
    /** Use the unique identifier for a runtime instance of the workflow to get runtime details. */
    workflowExecutionId: string;
}
export interface GetWorkflowStepExecutionInput {
    /** Use the unique identifier for a specific runtime instance of the workflow step to get runtime details for that step. */
    stepExecutionId: string;
}
export interface ImportComponentInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The format of the resource that you want to import as a component. */
    format: 'SHELL';
    /** The name of the component. */
    name: string;
    /** The platform of the component. */
    platform: 'Windows' | 'Linux' | 'macOS';
    /** The semantic version of the component. This version follows the semantic version syntax. The semantic version has four nodes: ../. You can assign values for the first three, and can filter on all of t */
    semanticVersion: string;
    /** The type of the component denotes whether the component is used to build the image, or only to test it. */
    type: 'BUILD' | 'TEST';
    /** The change description of the component. This description indicates the change that has been made in this version, or what makes this version different from other versions of the component. */
    changeDescription?: string;
    /** The data of the component. Used to specify the data inline. Either data or uri can be used to specify the data within the component. */
    data?: string;
    /** The description of the component. Describes the contents of the component. */
    description?: string;
    /** The Amazon Resource Name (ARN) that uniquely identifies the KMS key used to encrypt this component. This can be either the Key ARN or the Alias ARN. For more information, see Key identifiers (KeyId) i */
    kmsKeyId?: string;
    /** The tags of the component. */
    tags?: Record<string, string>;
    /** The uri of the component. Must be an Amazon S3 URL and the requester must have permission to access the Amazon S3 bucket. If you use Amazon S3, you can specify component content up to your service quo */
    uri?: string;
}
export interface ImportDiskImageInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The Amazon Resource Name (ARN) of the infrastructure configuration resource that's used for launching the EC2 instance on which the ISO image is built. */
    infrastructureConfigurationArn: string;
    /** The name of the image resource that's created from the import. */
    name: string;
    /** The operating system version for the imported image. Allowed values include the following: Microsoft Windows 11. */
    osVersion: string;
    /** The operating system platform for the imported image. Allowed values include the following: Windows. */
    platform: string;
    /** The semantic version to attach to the image that's created during the import process. This version follows the semantic version syntax. */
    semanticVersion: string;
    /** The uri of the ISO disk file that's stored in Amazon S3. */
    uri: string;
    /** The description for your disk image import. */
    description?: string;
    /** The name or Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to perform workflow actions to import an image from a Microsoft ISO file. */
    executionRole?: string;
    /** Define logging configuration for the image build process. */
    loggingConfiguration?: ImageLoggingConfiguration;
    /** Tags that are attached to image resources created from the import. */
    tags?: Record<string, string>;
}
export interface ImportVmImageInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The name of the base image that is created by the import process. */
    name: string;
    /** The operating system platform for the imported VM. */
    platform: 'Windows' | 'Linux' | 'macOS';
    /** The semantic version to attach to the base image that was created during the import process. This version follows the semantic version syntax. The semantic version has four nodes: ../. You can assign  */
    semanticVersion: string;
    /** The importTaskId (API) or ImportTaskId (CLI) from the Amazon EC2 VM import process. Image Builder retrieves information from the import process to pull in the AMI that is created from the VM source as */
    vmImportTaskId: string;
    /** The description for the base image that is created by the import process. */
    description?: string;
    /** Define logging configuration for the image build process. */
    loggingConfiguration?: ImageLoggingConfiguration;
    /** The operating system version for the imported VM. */
    osVersion?: string;
    /** Tags that are attached to the import resources. */
    tags?: Record<string, string>;
}
export interface ListComponentBuildVersionsInput {
    /** The component version Amazon Resource Name (ARN) whose versions you want to list. */
    componentVersionArn?: string;
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
}
export interface ListComponentsInput {
    /** Returns the list of components for the specified name. */
    byName?: boolean;
    /** Use the following filters to streamline results: description name platform supportedOsVersion type version */
    filters?: Filter[];
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
    /** Filters results based on the type of owner for the component. By default, this request returns a list of components that your account owns. To see results for other types of owners, you can specify co */
    owner?: 'Self' | 'Shared' | 'Amazon' | 'ThirdParty' | 'AWSMarketplace';
}
export interface ListContainerRecipesInput {
    /** Use the following filters to streamline results: containerType name parentImage platform */
    filters?: Filter[];
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
    /** Returns container recipes belonging to the specified owner, that have been shared with you. You can omit this field to return container recipes belonging to your account. */
    owner?: 'Self' | 'Shared' | 'Amazon' | 'ThirdParty' | 'AWSMarketplace';
}
export interface ListDistributionConfigurationsInput {
    /** You can filter on name to streamline results. */
    filters?: Filter[];
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
}
export interface ListImageBuildVersionsInput {
    /** Use the following filters to streamline results: name osVersion platform type version */
    filters?: Filter[];
    /** The Amazon Resource Name (ARN) of the image whose build versions you want to retrieve. */
    imageVersionArn?: string;
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
}
export interface ListImagePackagesInput {
    /** Filter results for the ListImagePackages request by the Image Build Version ARN */
    imageBuildVersionArn: string;
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
}
export interface ListImagePipelineImagesInput {
    /** The Amazon Resource Name (ARN) of the image pipeline whose images you want to view. */
    imagePipelineArn: string;
    /** Use the following filters to streamline results: name version */
    filters?: Filter[];
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
}
export interface ListImagePipelinesInput {
    /** Use the following filters to streamline results: description distributionConfigurationArn imageRecipeArn infrastructureConfigurationArn name status */
    filters?: Filter[];
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
}
export interface ListImageRecipesInput {
    /** Use the following filters to streamline results: name parentImage platform */
    filters?: Filter[];
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
    /** You can specify the recipe owner to filter results by that owner. By default, this request will only show image recipes owned by your account. To filter by a different owner, specify one of the Valid  */
    owner?: 'Self' | 'Shared' | 'Amazon' | 'ThirdParty' | 'AWSMarketplace';
}
export interface ListImagesInput {
    /** Requests a list of images with a specific recipe name. */
    byName?: boolean;
    /** Use the following filters to streamline results: name osVersion platform type version */
    filters?: Filter[];
    /** Includes deprecated images in the response list. */
    includeDeprecated?: boolean;
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
    /** The owner defines which images you want to list. By default, this request will only show images owned by your account. You can use this field to specify if you want to view images owned by yourself, b */
    owner?: 'Self' | 'Shared' | 'Amazon' | 'ThirdParty' | 'AWSMarketplace';
}
export interface ListImageScanFindingAggregationsInput {
    filter?: Filter;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
}
export interface ListImageScanFindingsInput {
    /** An array of name value pairs that you can use to filter your results. You can use the following filters to streamline results: imageBuildVersionArn imagePipelineArn vulnerabilityId severity If you don */
    filters?: ImageScanFindingsFilter[];
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
}
export interface ListInfrastructureConfigurationsInput {
    /** You can filter on name to streamline results. */
    filters?: Filter[];
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
}
export interface ListLifecycleExecutionResourcesInput {
    /** Use the unique identifier for a runtime instance of the lifecycle policy to get runtime details. */
    lifecycleExecutionId: string;
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
    /** You can leave this empty to get a list of Image Builder resources that were identified for lifecycle actions. To get a list of associated resources that are impacted for an individual resource (the pa */
    parentResourceId?: string;
}
export interface ListLifecycleExecutionsInput {
    /** The Amazon Resource Name (ARN) of the resource for which to get a list of lifecycle runtime instances. */
    resourceArn: string;
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
}
export interface ListLifecyclePoliciesInput {
    /** Streamline results based on one of the following values: Name, Status. */
    filters?: Filter[];
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource whose tags you want to retrieve. */
    resourceArn: string;
}
export interface ListWaitingWorkflowStepsInput {
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
}
export interface ListWorkflowBuildVersionsInput {
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
    /** The Amazon Resource Name (ARN) of the workflow resource for which to get a list of build versions. */
    workflowVersionArn?: string;
}
export interface ListWorkflowExecutionsInput {
    /** List all workflow runtime instances for the specified image build version resource ARN. */
    imageBuildVersionArn: string;
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
}
export interface ListWorkflowsInput {
    /** Specify all or part of the workflow name to streamline results. */
    byName?: boolean;
    /** Used to streamline search results. */
    filters?: Filter[];
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
    /** Used to get a list of workflow build version filtered by the identity of the creator. */
    owner?: 'Self' | 'Shared' | 'Amazon' | 'ThirdParty' | 'AWSMarketplace';
}
export interface ListWorkflowStepExecutionsInput {
    /** The unique identifier that Image Builder assigned to keep track of runtime details when it ran the workflow. */
    workflowExecutionId: string;
    /** Specify the maximum number of items to return in a request. */
    maxResults?: number;
    /** A token to specify where to start paginating. This is the nextToken from a previously truncated response. */
    nextToken?: string;
}
export interface PutComponentPolicyInput {
    /** The Amazon Resource Name (ARN) of the component that this policy should be applied to. */
    componentArn: string;
    /** The policy to apply. */
    policy: string;
}
export interface PutContainerRecipePolicyInput {
    /** The Amazon Resource Name (ARN) of the container recipe that this policy should be applied to. */
    containerRecipeArn: string;
    /** The policy to apply to the container recipe. */
    policy: string;
}
export interface PutImagePolicyInput {
    /** The Amazon Resource Name (ARN) of the image that this policy should be applied to. */
    imageArn: string;
    /** The policy to apply. */
    policy: string;
}
export interface PutImageRecipePolicyInput {
    /** The Amazon Resource Name (ARN) of the image recipe that this policy should be applied to. */
    imageRecipeArn: string;
    /** The policy to apply. */
    policy: string;
}
export interface RetryImageInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The source image Amazon Resource Name (ARN) to retry. */
    imageBuildVersionArn: string;
}
export interface SendWorkflowStepActionInput {
    /** The action for the image creation process to take while a workflow WaitForAction step waits for an asynchronous action to complete. */
    action: 'RESUME' | 'STOP';
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The Amazon Resource Name (ARN) of the image build version to send action for. */
    imageBuildVersionArn: string;
    /** Uniquely identifies the workflow step that sent the step action. */
    stepExecutionId: string;
    /** The reason why this action is sent. */
    reason?: string;
}
export interface StartImagePipelineExecutionInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The Amazon Resource Name (ARN) of the image pipeline that you want to manually invoke. */
    imagePipelineArn: string;
    /** Specify tags for Image Builder to apply to the image resource that's created When it starts pipeline execution. */
    tags?: Record<string, string>;
}
export interface StartResourceStateUpdateInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The Amazon Resource Name (ARN) of the Image Builder resource that is updated. The state update might also impact associated resources. */
    resourceArn: string;
    /** Indicates the lifecycle action to take for this request. */
    state: ResourceState;
    /** Skip action on the image resource and associated resources if specified exclusion rules are met. */
    exclusionRules?: ResourceStateUpdateExclusionRules;
    /** The name or Amazon Resource Name (ARN) of the IAM role that’s used to update image state. */
    executionRole?: string;
    /** A list of image resources to update state for. */
    includeResources?: ResourceStateUpdateIncludeResources;
    /** The timestamp that indicates when resources are updated by a lifecycle action. */
    updateAt?: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource that you want to tag. */
    resourceArn: string;
    /** The tags to apply to the resource. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource that you want to untag. */
    resourceArn: string;
    /** The tag keys to remove from the resource. */
    tagKeys: string[];
}
export interface UpdateDistributionConfigurationInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The Amazon Resource Name (ARN) of the distribution configuration that you want to update. */
    distributionConfigurationArn: string;
    /** The distributions of the distribution configuration. */
    distributions: Distribution[];
    /** The description of the distribution configuration. */
    description?: string;
}
export interface UpdateImagePipelineInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The Amazon Resource Name (ARN) of the image pipeline that you want to update. */
    imagePipelineArn: string;
    /** The Amazon Resource Name (ARN) of the infrastructure configuration that Image Builder uses to build images that this image pipeline has updated. */
    infrastructureConfigurationArn: string;
    /** The Amazon Resource Name (ARN) of the container pipeline to update. */
    containerRecipeArn?: string;
    /** The description of the image pipeline. */
    description?: string;
    /** The Amazon Resource Name (ARN) of the distribution configuration that Image Builder uses to configure and distribute images that this image pipeline has updated. */
    distributionConfigurationArn?: string;
    /** Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Ima */
    enhancedImageMetadataEnabled?: boolean;
    /** The name or Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to perform workflow actions. */
    executionRole?: string;
    /** The Amazon Resource Name (ARN) of the image recipe that will be used to configure images updated by this image pipeline. */
    imageRecipeArn?: string;
    /** Contains settings for vulnerability scans. */
    imageScanningConfiguration?: ImageScanningConfiguration;
    /** The image test configuration of the image pipeline. */
    imageTestsConfiguration?: ImageTestsConfiguration;
    /** Update logging configuration for the output image that's created when the pipeline runs. */
    loggingConfiguration?: PipelineLoggingConfiguration;
    /** The schedule of the image pipeline. */
    schedule?: Schedule;
    /** The status of the image pipeline. */
    status?: 'DISABLED' | 'ENABLED';
    /** Contains the workflows to run for the pipeline. */
    workflows?: WorkflowConfiguration[];
}
export interface UpdateInfrastructureConfigurationInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The Amazon Resource Name (ARN) of the infrastructure configuration that you want to update. */
    infrastructureConfigurationArn: string;
    /** The instance profile to associate with the instance used to customize your Amazon EC2 AMI. */
    instanceProfileName: string;
    /** The description of the infrastructure configuration. */
    description?: string;
    /** The instance metadata options that you can set for the HTTP requests that pipeline builds use to launch EC2 build and test instances. For more information about instance metadata options, see one of t */
    instanceMetadataOptions?: InstanceMetadataOptions;
    /** The instance types of the infrastructure configuration. You can specify one or more instance types to use for this build. The service will pick one of these instance types based on availability. */
    instanceTypes?: string[];
    /** The key pair of the infrastructure configuration. You can use this to log on to and debug the instance used to create your image. */
    keyPair?: string;
    /** The logging configuration of the infrastructure configuration. */
    logging?: Logging;
    /** The instance placement settings that define where the instances that are launched from your image will run. */
    placement?: Placement;
    /** The tags attached to the resource created by Image Builder. */
    resourceTags?: Record<string, string>;
    /** The security group IDs to associate with the instance used to customize your Amazon EC2 AMI. */
    securityGroupIds?: string[];
    /** The Amazon Resource Name (ARN) for the SNS topic to which we send image build event notifications. EC2 Image Builder is unable to send notifications to SNS topics that are encrypted using keys from ot */
    snsTopicArn?: string;
    /** The subnet ID to place the instance used to customize your Amazon EC2 AMI in. */
    subnetId?: string;
    /** The terminate instance on failure setting of the infrastructure configuration. Set to false if you want Image Builder to retain the instance used to configure your AMI if the build or test phase of yo */
    terminateInstanceOnFailure?: boolean;
}
export interface UpdateLifecyclePolicyInput {
    /** Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference. */
    clientToken: string;
    /** The name or Amazon Resource Name (ARN) of the IAM role that Image Builder uses to update the lifecycle policy. */
    executionRole: string;
    /** The Amazon Resource Name (ARN) of the lifecycle policy resource. */
    lifecyclePolicyArn: string;
    /** The configuration details for a lifecycle policy resource. */
    policyDetails: LifecyclePolicyDetail[];
    /** Selection criteria for resources that the lifecycle policy applies to. */
    resourceSelection: LifecyclePolicyResourceSelection;
    /** The type of image resource that the lifecycle policy applies to. */
    resourceType: 'AMI_IMAGE' | 'CONTAINER_IMAGE';
    /** Optional description for the lifecycle policy. */
    description?: string;
    /** Indicates whether the lifecycle policy resource is enabled. */
    status?: 'DISABLED' | 'ENABLED';
}
/** imagebuilder service binding for Step Functions SDK integrations. */
export declare class imagebuilder {
    constructor();
    cancelImageCreation<T>(params: CancelImageCreationInput): Promise<T>;
    cancelLifecycleExecution<T>(params: CancelLifecycleExecutionInput): Promise<T>;
    createComponent<T>(params: CreateComponentInput): Promise<T>;
    createContainerRecipe<T>(params: CreateContainerRecipeInput): Promise<T>;
    createDistributionConfiguration<T>(params: CreateDistributionConfigurationInput): Promise<T>;
    createImage<T>(params: CreateImageInput): Promise<T>;
    createImagePipeline<T>(params: CreateImagePipelineInput): Promise<T>;
    createImageRecipe<T>(params: CreateImageRecipeInput): Promise<T>;
    createInfrastructureConfiguration<T>(params: CreateInfrastructureConfigurationInput): Promise<T>;
    createLifecyclePolicy<T>(params: CreateLifecyclePolicyInput): Promise<T>;
    createWorkflow<T>(params: CreateWorkflowInput): Promise<T>;
    deleteComponent<T>(params: DeleteComponentInput): Promise<T>;
    deleteContainerRecipe<T>(params: DeleteContainerRecipeInput): Promise<T>;
    deleteDistributionConfiguration<T>(params: DeleteDistributionConfigurationInput): Promise<T>;
    deleteImage<T>(params: DeleteImageInput): Promise<T>;
    deleteImagePipeline<T>(params: DeleteImagePipelineInput): Promise<T>;
    deleteImageRecipe<T>(params: DeleteImageRecipeInput): Promise<T>;
    deleteInfrastructureConfiguration<T>(params: DeleteInfrastructureConfigurationInput): Promise<T>;
    deleteLifecyclePolicy<T>(params: DeleteLifecyclePolicyInput): Promise<T>;
    deleteWorkflow<T>(params: DeleteWorkflowInput): Promise<T>;
    distributeImage<T>(params: DistributeImageInput): Promise<T>;
    getComponent<T>(params: GetComponentInput): Promise<T>;
    getComponentPolicy<T>(params: GetComponentPolicyInput): Promise<T>;
    getContainerRecipe<T>(params: GetContainerRecipeInput): Promise<T>;
    getContainerRecipePolicy<T>(params: GetContainerRecipePolicyInput): Promise<T>;
    getDistributionConfiguration<T>(params: GetDistributionConfigurationInput): Promise<T>;
    getImage<T>(params: GetImageInput): Promise<T>;
    getImagePipeline<T>(params: GetImagePipelineInput): Promise<T>;
    getImagePolicy<T>(params: GetImagePolicyInput): Promise<T>;
    getImageRecipe<T>(params: GetImageRecipeInput): Promise<T>;
    getImageRecipePolicy<T>(params: GetImageRecipePolicyInput): Promise<T>;
    getInfrastructureConfiguration<T>(params: GetInfrastructureConfigurationInput): Promise<T>;
    getLifecycleExecution<T>(params: GetLifecycleExecutionInput): Promise<T>;
    getLifecyclePolicy<T>(params: GetLifecyclePolicyInput): Promise<T>;
    getMarketplaceResource<T>(params: GetMarketplaceResourceInput): Promise<T>;
    getWorkflow<T>(params: GetWorkflowInput): Promise<T>;
    getWorkflowExecution<T>(params: GetWorkflowExecutionInput): Promise<T>;
    getWorkflowStepExecution<T>(params: GetWorkflowStepExecutionInput): Promise<T>;
    importComponent<T>(params: ImportComponentInput): Promise<T>;
    importDiskImage<T>(params: ImportDiskImageInput): Promise<T>;
    importVmImage<T>(params: ImportVmImageInput): Promise<T>;
    listComponentBuildVersions<T>(params: ListComponentBuildVersionsInput): Promise<T>;
    listComponents<T>(params: ListComponentsInput): Promise<T>;
    listContainerRecipes<T>(params: ListContainerRecipesInput): Promise<T>;
    listDistributionConfigurations<T>(params: ListDistributionConfigurationsInput): Promise<T>;
    listImageBuildVersions<T>(params: ListImageBuildVersionsInput): Promise<T>;
    listImagePackages<T>(params: ListImagePackagesInput): Promise<T>;
    listImagePipelineImages<T>(params: ListImagePipelineImagesInput): Promise<T>;
    listImagePipelines<T>(params: ListImagePipelinesInput): Promise<T>;
    listImageRecipes<T>(params: ListImageRecipesInput): Promise<T>;
    listImages<T>(params: ListImagesInput): Promise<T>;
    listImageScanFindingAggregations<T>(params: ListImageScanFindingAggregationsInput): Promise<T>;
    listImageScanFindings<T>(params: ListImageScanFindingsInput): Promise<T>;
    listInfrastructureConfigurations<T>(params: ListInfrastructureConfigurationsInput): Promise<T>;
    listLifecycleExecutionResources<T>(params: ListLifecycleExecutionResourcesInput): Promise<T>;
    listLifecycleExecutions<T>(params: ListLifecycleExecutionsInput): Promise<T>;
    listLifecyclePolicies<T>(params: ListLifecyclePoliciesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listWaitingWorkflowSteps<T>(params: ListWaitingWorkflowStepsInput): Promise<T>;
    listWorkflowBuildVersions<T>(params: ListWorkflowBuildVersionsInput): Promise<T>;
    listWorkflowExecutions<T>(params: ListWorkflowExecutionsInput): Promise<T>;
    listWorkflows<T>(params: ListWorkflowsInput): Promise<T>;
    listWorkflowStepExecutions<T>(params: ListWorkflowStepExecutionsInput): Promise<T>;
    putComponentPolicy<T>(params: PutComponentPolicyInput): Promise<T>;
    putContainerRecipePolicy<T>(params: PutContainerRecipePolicyInput): Promise<T>;
    putImagePolicy<T>(params: PutImagePolicyInput): Promise<T>;
    putImageRecipePolicy<T>(params: PutImageRecipePolicyInput): Promise<T>;
    retryImage<T>(params: RetryImageInput): Promise<T>;
    sendWorkflowStepAction<T>(params: SendWorkflowStepActionInput): Promise<T>;
    startImagePipelineExecution<T>(params: StartImagePipelineExecutionInput): Promise<T>;
    startResourceStateUpdate<T>(params: StartResourceStateUpdateInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateDistributionConfiguration<T>(params: UpdateDistributionConfigurationInput): Promise<T>;
    updateImagePipeline<T>(params: UpdateImagePipelineInput): Promise<T>;
    updateInfrastructureConfiguration<T>(params: UpdateInfrastructureConfigurationInput): Promise<T>;
    updateLifecyclePolicy<T>(params: UpdateLifecyclePolicyInput): Promise<T>;
}
//# sourceMappingURL=imagebuilder.d.ts.map