// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`StartResourceStateUpdate`](crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`resource_arn(impl Into<String>)`](crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder::resource_arn) / [`set_resource_arn(Option<String>)`](crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder::set_resource_arn):<br>required: **true**<br><p>The Amazon Resource Name (ARN) of the image build version to update. The image must be in one of these terminal states: <code>AVAILABLE</code>, <code>DEPRECATED</code>, <code>DISABLED</code>, <code>FAILED</code>, or <code>CANCELLED</code>. Images with <code>FAILED</code> or <code>CANCELLED</code> status can transition only to <code>DELETED</code>.</p><br>
/// - [`state(ResourceState)`](crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder::state) / [`set_state(Option<ResourceState>)`](crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder::set_state):<br>required: **true**<br><p>Specifies the lifecycle action to take for this request. For AMI-based images, valid values are <code>AVAILABLE</code>, <code>DEPRECATED</code>, <code>DISABLED</code>, and <code>DELETED</code>. For container-based images, only <code>DELETED</code> is supported.</p><br>
/// - [`execution_role(impl Into<String>)`](crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder::execution_role) / [`set_execution_role(Option<String>)`](crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder::set_execution_role):<br>required: **false**<br><p>The name or Amazon Resource Name (ARN) of the IAM role that’s used to update image state.</p><br>
/// - [`include_resources(ResourceStateUpdateIncludeResources)`](crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder::include_resources) / [`set_include_resources(Option<ResourceStateUpdateIncludeResources>)`](crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder::set_include_resources):<br>required: **false**<br><p>Specifies which image resources to include in the state update. When specified, the lifecycle action applies to underlying resources. These resources include AMIs, snapshots, and containers in addition to the Image Builder image resource. Requires <code>executionRole</code> to also be specified. To delete an image and its underlying resources, you must specify <code>includeResources</code>. To delete only the Image Builder image record without affecting underlying resources, use the <code>DeleteImage</code> API instead.</p><br>
/// - [`exclusion_rules(ResourceStateUpdateExclusionRules)`](crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder::exclusion_rules) / [`set_exclusion_rules(Option<ResourceStateUpdateExclusionRules>)`](crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder::set_exclusion_rules):<br>required: **false**<br><p>Skip action on the image resource and associated resources if specified exclusion rules are met.</p><br>
/// - [`update_at(DateTime)`](crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder::update_at) / [`set_update_at(Option<DateTime>)`](crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder::set_update_at):<br>required: **false**<br><p>Specifies the timestamp when the state transition takes effect. Use this parameter only when the target status is <code>DEPRECATED</code>. The value must be a future time.</p><br>
/// - [`client_token(impl Into<String>)`](crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder::client_token) / [`set_client_token(Option<String>)`](crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder::set_client_token):<br>required: **true**<br><p>Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring idempotency</a> in the <i>Amazon EC2 API Reference</i>.</p><br>
/// - On success, responds with [`StartResourceStateUpdateOutput`](crate::operation::start_resource_state_update::StartResourceStateUpdateOutput) with field(s):
/// - [`lifecycle_execution_id(Option<String>)`](crate::operation::start_resource_state_update::StartResourceStateUpdateOutput::lifecycle_execution_id): <p>Identifies the lifecycle runtime instance that started the resource state update.</p>
/// - [`resource_arn(Option<String>)`](crate::operation::start_resource_state_update::StartResourceStateUpdateOutput::resource_arn): <p>The requested Amazon Resource Name (ARN) of the Image Builder resource for the asynchronous update.</p>
/// - On failure, responds with [`SdkError<StartResourceStateUpdateError>`](crate::operation::start_resource_state_update::StartResourceStateUpdateError)
pub fn start_resource_state_update(&self) -> crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder {
crate::operation::start_resource_state_update::builders::StartResourceStateUpdateFluentBuilder::new(self.handle.clone())
}
}