aws-sdk-ssmincidents 0.24.0

AWS SDK for AWS Systems Manager Incident Manager
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[derive(Debug)]
pub(crate) struct Handle {
    pub(crate) client: aws_smithy_client::Client<
        aws_smithy_client::erase::DynConnector,
        aws_smithy_client::erase::DynMiddleware<aws_smithy_client::erase::DynConnector>,
    >,
    pub(crate) conf: crate::Config,
}

/// Client for AWS Systems Manager Incident Manager
///
/// Client for invoking operations on AWS Systems Manager Incident Manager. Each operation on AWS Systems Manager Incident Manager is a method on this
/// this struct. `.send()` MUST be invoked on the generated operations to dispatch the request to the service.
///
/// # Examples
/// **Constructing a client and invoking an operation**
/// ```rust,no_run
/// # async fn docs() {
///     // create a shared configuration. This can be used & shared between multiple service clients.
///     let shared_config = aws_config::load_from_env().await;
///     let client = aws_sdk_ssmincidents::Client::new(&shared_config);
///     // invoke an operation
///     /* let rsp = client
///         .<operation_name>().
///         .<param>("some value")
///         .send().await; */
/// # }
/// ```
/// **Constructing a client with custom configuration**
/// ```rust,no_run
/// use aws_config::retry::RetryConfig;
/// # async fn docs() {
/// let shared_config = aws_config::load_from_env().await;
/// let config = aws_sdk_ssmincidents::config::Builder::from(&shared_config)
///   .retry_config(RetryConfig::disabled())
///   .build();
/// let client = aws_sdk_ssmincidents::Client::from_conf(config);
/// # }
#[derive(std::fmt::Debug)]
pub struct Client {
    handle: std::sync::Arc<Handle>,
}

impl std::clone::Clone for Client {
    fn clone(&self) -> Self {
        Self {
            handle: self.handle.clone(),
        }
    }
}

#[doc(inline)]
pub use aws_smithy_client::Builder;

impl
    From<
        aws_smithy_client::Client<
            aws_smithy_client::erase::DynConnector,
            aws_smithy_client::erase::DynMiddleware<aws_smithy_client::erase::DynConnector>,
        >,
    > for Client
{
    fn from(
        client: aws_smithy_client::Client<
            aws_smithy_client::erase::DynConnector,
            aws_smithy_client::erase::DynMiddleware<aws_smithy_client::erase::DynConnector>,
        >,
    ) -> Self {
        Self::with_config(client, crate::Config::builder().build())
    }
}

impl Client {
    /// Creates a client with the given service configuration.
    pub fn with_config(
        client: aws_smithy_client::Client<
            aws_smithy_client::erase::DynConnector,
            aws_smithy_client::erase::DynMiddleware<aws_smithy_client::erase::DynConnector>,
        >,
        conf: crate::Config,
    ) -> Self {
        Self {
            handle: std::sync::Arc::new(Handle { client, conf }),
        }
    }

    /// Returns the client's configuration.
    pub fn conf(&self) -> &crate::Config {
        &self.handle.conf
    }
}
impl Client {
    /// Constructs a fluent builder for the [`CreateReplicationSet`](crate::client::fluent_builders::CreateReplicationSet) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`regions(HashMap<String, RegionMapInputValue>)`](crate::client::fluent_builders::CreateReplicationSet::regions) / [`set_regions(Option<HashMap<String, RegionMapInputValue>>)`](crate::client::fluent_builders::CreateReplicationSet::set_regions): <p>The Regions that Incident Manager replicates your data to. You can have up to three Regions in your replication set.</p>
    ///   - [`client_token(impl Into<String>)`](crate::client::fluent_builders::CreateReplicationSet::client_token) / [`set_client_token(Option<String>)`](crate::client::fluent_builders::CreateReplicationSet::set_client_token): <p>A token that ensures that the operation is called only once with the specified details.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::CreateReplicationSet::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateReplicationSet::set_tags): <p>A list of tags to add to the replication set.</p>
    /// - On success, responds with [`CreateReplicationSetOutput`](crate::output::CreateReplicationSetOutput) with field(s):
    ///   - [`arn(Option<String>)`](crate::output::CreateReplicationSetOutput::arn): <p>The Amazon Resource Name (ARN) of the replication set. </p>
    /// - On failure, responds with [`SdkError<CreateReplicationSetError>`](crate::error::CreateReplicationSetError)
    pub fn create_replication_set(&self) -> fluent_builders::CreateReplicationSet {
        fluent_builders::CreateReplicationSet::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateResponsePlan`](crate::client::fluent_builders::CreateResponsePlan) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`client_token(impl Into<String>)`](crate::client::fluent_builders::CreateResponsePlan::client_token) / [`set_client_token(Option<String>)`](crate::client::fluent_builders::CreateResponsePlan::set_client_token): <p>A token ensuring that the operation is called only once with the specified details.</p>
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::CreateResponsePlan::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::CreateResponsePlan::set_name): <p>The short format name of the response plan. Can't include spaces.</p>
    ///   - [`display_name(impl Into<String>)`](crate::client::fluent_builders::CreateResponsePlan::display_name) / [`set_display_name(Option<String>)`](crate::client::fluent_builders::CreateResponsePlan::set_display_name): <p>The long format of the response plan name. This field can contain spaces.</p>
    ///   - [`incident_template(IncidentTemplate)`](crate::client::fluent_builders::CreateResponsePlan::incident_template) / [`set_incident_template(Option<IncidentTemplate>)`](crate::client::fluent_builders::CreateResponsePlan::set_incident_template): <p>Details used to create an incident when using this response plan.</p>
    ///   - [`chat_channel(ChatChannel)`](crate::client::fluent_builders::CreateResponsePlan::chat_channel) / [`set_chat_channel(Option<ChatChannel>)`](crate::client::fluent_builders::CreateResponsePlan::set_chat_channel): <p>The Chatbot chat channel used for collaboration during an incident.</p>
    ///   - [`engagements(Vec<String>)`](crate::client::fluent_builders::CreateResponsePlan::engagements) / [`set_engagements(Option<Vec<String>>)`](crate::client::fluent_builders::CreateResponsePlan::set_engagements): <p>The Amazon Resource Name (ARN) for the contacts and escalation plans that the response plan engages during an incident.</p>
    ///   - [`actions(Vec<Action>)`](crate::client::fluent_builders::CreateResponsePlan::actions) / [`set_actions(Option<Vec<Action>>)`](crate::client::fluent_builders::CreateResponsePlan::set_actions): <p>The actions that the response plan starts at the beginning of an incident.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::CreateResponsePlan::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateResponsePlan::set_tags): <p>A list of tags that you are adding to the response plan.</p>
    ///   - [`integrations(Vec<Integration>)`](crate::client::fluent_builders::CreateResponsePlan::integrations) / [`set_integrations(Option<Vec<Integration>>)`](crate::client::fluent_builders::CreateResponsePlan::set_integrations): <p>Information about third-party services integrated into the response plan.</p>
    /// - On success, responds with [`CreateResponsePlanOutput`](crate::output::CreateResponsePlanOutput) with field(s):
    ///   - [`arn(Option<String>)`](crate::output::CreateResponsePlanOutput::arn): <p>The Amazon Resource Name (ARN) of the response plan.</p>
    /// - On failure, responds with [`SdkError<CreateResponsePlanError>`](crate::error::CreateResponsePlanError)
    pub fn create_response_plan(&self) -> fluent_builders::CreateResponsePlan {
        fluent_builders::CreateResponsePlan::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateTimelineEvent`](crate::client::fluent_builders::CreateTimelineEvent) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`client_token(impl Into<String>)`](crate::client::fluent_builders::CreateTimelineEvent::client_token) / [`set_client_token(Option<String>)`](crate::client::fluent_builders::CreateTimelineEvent::set_client_token): <p>A token ensuring that the action is called only once with the specified details.</p>
    ///   - [`incident_record_arn(impl Into<String>)`](crate::client::fluent_builders::CreateTimelineEvent::incident_record_arn) / [`set_incident_record_arn(Option<String>)`](crate::client::fluent_builders::CreateTimelineEvent::set_incident_record_arn): <p>The Amazon Resource Name (ARN) of the incident record to which the event will be added.</p>
    ///   - [`event_time(DateTime)`](crate::client::fluent_builders::CreateTimelineEvent::event_time) / [`set_event_time(Option<DateTime>)`](crate::client::fluent_builders::CreateTimelineEvent::set_event_time): <p>The time that the event occurred.</p>
    ///   - [`event_type(impl Into<String>)`](crate::client::fluent_builders::CreateTimelineEvent::event_type) / [`set_event_type(Option<String>)`](crate::client::fluent_builders::CreateTimelineEvent::set_event_type): <p>The type of the event. You can create timeline events of type <code>Custom Event</code>.</p>
    ///   - [`event_data(impl Into<String>)`](crate::client::fluent_builders::CreateTimelineEvent::event_data) / [`set_event_data(Option<String>)`](crate::client::fluent_builders::CreateTimelineEvent::set_event_data): <p>A short description of the event.</p>
    ///   - [`event_references(Vec<EventReference>)`](crate::client::fluent_builders::CreateTimelineEvent::event_references) / [`set_event_references(Option<Vec<EventReference>>)`](crate::client::fluent_builders::CreateTimelineEvent::set_event_references): <p>Adds one or more references to the <code>TimelineEvent</code>. A reference can be an Amazon Web Services resource involved in the incident or in some way associated with it. When you specify a reference, you enter the Amazon Resource Name (ARN) of the resource. You can also specify a related item. As an example, you could specify the ARN of an Amazon DynamoDB (DynamoDB) table. The table for this example is the resource. You could also specify a Amazon CloudWatch metric for that table. The metric is the related item.</p>
    /// - On success, responds with [`CreateTimelineEventOutput`](crate::output::CreateTimelineEventOutput) with field(s):
    ///   - [`incident_record_arn(Option<String>)`](crate::output::CreateTimelineEventOutput::incident_record_arn): <p>The ARN of the incident record that you added the event to.</p>
    ///   - [`event_id(Option<String>)`](crate::output::CreateTimelineEventOutput::event_id): <p>The ID of the event for easy reference later. </p>
    /// - On failure, responds with [`SdkError<CreateTimelineEventError>`](crate::error::CreateTimelineEventError)
    pub fn create_timeline_event(&self) -> fluent_builders::CreateTimelineEvent {
        fluent_builders::CreateTimelineEvent::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteIncidentRecord`](crate::client::fluent_builders::DeleteIncidentRecord) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`arn(impl Into<String>)`](crate::client::fluent_builders::DeleteIncidentRecord::arn) / [`set_arn(Option<String>)`](crate::client::fluent_builders::DeleteIncidentRecord::set_arn): <p>The Amazon Resource Name (ARN) of the incident record you are deleting.</p>
    /// - On success, responds with [`DeleteIncidentRecordOutput`](crate::output::DeleteIncidentRecordOutput)

    /// - On failure, responds with [`SdkError<DeleteIncidentRecordError>`](crate::error::DeleteIncidentRecordError)
    pub fn delete_incident_record(&self) -> fluent_builders::DeleteIncidentRecord {
        fluent_builders::DeleteIncidentRecord::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteReplicationSet`](crate::client::fluent_builders::DeleteReplicationSet) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`arn(impl Into<String>)`](crate::client::fluent_builders::DeleteReplicationSet::arn) / [`set_arn(Option<String>)`](crate::client::fluent_builders::DeleteReplicationSet::set_arn): <p>The Amazon Resource Name (ARN) of the replication set you're deleting.</p>
    /// - On success, responds with [`DeleteReplicationSetOutput`](crate::output::DeleteReplicationSetOutput)

    /// - On failure, responds with [`SdkError<DeleteReplicationSetError>`](crate::error::DeleteReplicationSetError)
    pub fn delete_replication_set(&self) -> fluent_builders::DeleteReplicationSet {
        fluent_builders::DeleteReplicationSet::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteResourcePolicy`](crate::client::fluent_builders::DeleteResourcePolicy) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`resource_arn(impl Into<String>)`](crate::client::fluent_builders::DeleteResourcePolicy::resource_arn) / [`set_resource_arn(Option<String>)`](crate::client::fluent_builders::DeleteResourcePolicy::set_resource_arn): <p>The Amazon Resource Name (ARN) of the resource you're deleting the policy from.</p>
    ///   - [`policy_id(impl Into<String>)`](crate::client::fluent_builders::DeleteResourcePolicy::policy_id) / [`set_policy_id(Option<String>)`](crate::client::fluent_builders::DeleteResourcePolicy::set_policy_id): <p>The ID of the resource policy you're deleting.</p>
    /// - On success, responds with [`DeleteResourcePolicyOutput`](crate::output::DeleteResourcePolicyOutput)

    /// - On failure, responds with [`SdkError<DeleteResourcePolicyError>`](crate::error::DeleteResourcePolicyError)
    pub fn delete_resource_policy(&self) -> fluent_builders::DeleteResourcePolicy {
        fluent_builders::DeleteResourcePolicy::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteResponsePlan`](crate::client::fluent_builders::DeleteResponsePlan) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`arn(impl Into<String>)`](crate::client::fluent_builders::DeleteResponsePlan::arn) / [`set_arn(Option<String>)`](crate::client::fluent_builders::DeleteResponsePlan::set_arn): <p>The Amazon Resource Name (ARN) of the response plan.</p>
    /// - On success, responds with [`DeleteResponsePlanOutput`](crate::output::DeleteResponsePlanOutput)

    /// - On failure, responds with [`SdkError<DeleteResponsePlanError>`](crate::error::DeleteResponsePlanError)
    pub fn delete_response_plan(&self) -> fluent_builders::DeleteResponsePlan {
        fluent_builders::DeleteResponsePlan::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteTimelineEvent`](crate::client::fluent_builders::DeleteTimelineEvent) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`incident_record_arn(impl Into<String>)`](crate::client::fluent_builders::DeleteTimelineEvent::incident_record_arn) / [`set_incident_record_arn(Option<String>)`](crate::client::fluent_builders::DeleteTimelineEvent::set_incident_record_arn): <p>The Amazon Resource Name (ARN) of the incident that includes the timeline event.</p>
    ///   - [`event_id(impl Into<String>)`](crate::client::fluent_builders::DeleteTimelineEvent::event_id) / [`set_event_id(Option<String>)`](crate::client::fluent_builders::DeleteTimelineEvent::set_event_id): <p>The ID of the event you are updating. You can find this by using <code>ListTimelineEvents</code>.</p>
    /// - On success, responds with [`DeleteTimelineEventOutput`](crate::output::DeleteTimelineEventOutput)

    /// - On failure, responds with [`SdkError<DeleteTimelineEventError>`](crate::error::DeleteTimelineEventError)
    pub fn delete_timeline_event(&self) -> fluent_builders::DeleteTimelineEvent {
        fluent_builders::DeleteTimelineEvent::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetIncidentRecord`](crate::client::fluent_builders::GetIncidentRecord) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`arn(impl Into<String>)`](crate::client::fluent_builders::GetIncidentRecord::arn) / [`set_arn(Option<String>)`](crate::client::fluent_builders::GetIncidentRecord::set_arn): <p>The Amazon Resource Name (ARN) of the incident record.</p>
    /// - On success, responds with [`GetIncidentRecordOutput`](crate::output::GetIncidentRecordOutput) with field(s):
    ///   - [`incident_record(Option<IncidentRecord>)`](crate::output::GetIncidentRecordOutput::incident_record): <p>Details the structure of the incident record.</p>
    /// - On failure, responds with [`SdkError<GetIncidentRecordError>`](crate::error::GetIncidentRecordError)
    pub fn get_incident_record(&self) -> fluent_builders::GetIncidentRecord {
        fluent_builders::GetIncidentRecord::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetReplicationSet`](crate::client::fluent_builders::GetReplicationSet) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`arn(impl Into<String>)`](crate::client::fluent_builders::GetReplicationSet::arn) / [`set_arn(Option<String>)`](crate::client::fluent_builders::GetReplicationSet::set_arn): <p>The Amazon Resource Name (ARN) of the replication set you want to retrieve.</p>
    /// - On success, responds with [`GetReplicationSetOutput`](crate::output::GetReplicationSetOutput) with field(s):
    ///   - [`replication_set(Option<ReplicationSet>)`](crate::output::GetReplicationSetOutput::replication_set): <p>Details of the replication set.</p>
    /// - On failure, responds with [`SdkError<GetReplicationSetError>`](crate::error::GetReplicationSetError)
    pub fn get_replication_set(&self) -> fluent_builders::GetReplicationSet {
        fluent_builders::GetReplicationSet::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetResourcePolicies`](crate::client::fluent_builders::GetResourcePolicies) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetResourcePolicies::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`resource_arn(impl Into<String>)`](crate::client::fluent_builders::GetResourcePolicies::resource_arn) / [`set_resource_arn(Option<String>)`](crate::client::fluent_builders::GetResourcePolicies::set_resource_arn): <p>The Amazon Resource Name (ARN) of the response plan with the attached resource policy. </p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetResourcePolicies::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetResourcePolicies::set_max_results): <p>The maximum number of resource policies to display for each page of results.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetResourcePolicies::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetResourcePolicies::set_next_token): <p>The pagination token to continue to the next page of results.</p>
    /// - On success, responds with [`GetResourcePoliciesOutput`](crate::output::GetResourcePoliciesOutput) with field(s):
    ///   - [`resource_policies(Option<Vec<ResourcePolicy>>)`](crate::output::GetResourcePoliciesOutput::resource_policies): <p>Details about the resource policy attached to the response plan.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetResourcePoliciesOutput::next_token): <p>The pagination token to continue to the next page of results.</p>
    /// - On failure, responds with [`SdkError<GetResourcePoliciesError>`](crate::error::GetResourcePoliciesError)
    pub fn get_resource_policies(&self) -> fluent_builders::GetResourcePolicies {
        fluent_builders::GetResourcePolicies::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetResponsePlan`](crate::client::fluent_builders::GetResponsePlan) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`arn(impl Into<String>)`](crate::client::fluent_builders::GetResponsePlan::arn) / [`set_arn(Option<String>)`](crate::client::fluent_builders::GetResponsePlan::set_arn): <p>The Amazon Resource Name (ARN) of the response plan.</p>
    /// - On success, responds with [`GetResponsePlanOutput`](crate::output::GetResponsePlanOutput) with field(s):
    ///   - [`arn(Option<String>)`](crate::output::GetResponsePlanOutput::arn): <p>The ARN of the response plan.</p>
    ///   - [`name(Option<String>)`](crate::output::GetResponsePlanOutput::name): <p>The short format name of the response plan. The name can't contain spaces.</p>
    ///   - [`display_name(Option<String>)`](crate::output::GetResponsePlanOutput::display_name): <p>The long format name of the response plan. Can contain spaces.</p>
    ///   - [`incident_template(Option<IncidentTemplate>)`](crate::output::GetResponsePlanOutput::incident_template): <p>Details used to create the incident when using this response plan.</p>
    ///   - [`chat_channel(Option<ChatChannel>)`](crate::output::GetResponsePlanOutput::chat_channel): <p>The Chatbot chat channel used for collaboration during an incident.</p>
    ///   - [`engagements(Option<Vec<String>>)`](crate::output::GetResponsePlanOutput::engagements): <p>The Amazon Resource Name (ARN) for the contacts and escalation plans that the response plan engages during an incident.</p>
    ///   - [`actions(Option<Vec<Action>>)`](crate::output::GetResponsePlanOutput::actions): <p>The actions that this response plan takes at the beginning of the incident.</p>
    ///   - [`integrations(Option<Vec<Integration>>)`](crate::output::GetResponsePlanOutput::integrations): <p>Information about third-party services integrated into the Incident Manager response plan.</p>
    /// - On failure, responds with [`SdkError<GetResponsePlanError>`](crate::error::GetResponsePlanError)
    pub fn get_response_plan(&self) -> fluent_builders::GetResponsePlan {
        fluent_builders::GetResponsePlan::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetTimelineEvent`](crate::client::fluent_builders::GetTimelineEvent) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`incident_record_arn(impl Into<String>)`](crate::client::fluent_builders::GetTimelineEvent::incident_record_arn) / [`set_incident_record_arn(Option<String>)`](crate::client::fluent_builders::GetTimelineEvent::set_incident_record_arn): <p>The Amazon Resource Name (ARN) of the incident that includes the timeline event.</p>
    ///   - [`event_id(impl Into<String>)`](crate::client::fluent_builders::GetTimelineEvent::event_id) / [`set_event_id(Option<String>)`](crate::client::fluent_builders::GetTimelineEvent::set_event_id): <p>The ID of the event. You can get an event's ID when you create it, or by using <code>ListTimelineEvents</code>.</p>
    /// - On success, responds with [`GetTimelineEventOutput`](crate::output::GetTimelineEventOutput) with field(s):
    ///   - [`event(Option<TimelineEvent>)`](crate::output::GetTimelineEventOutput::event): <p>Details about the timeline event.</p>
    /// - On failure, responds with [`SdkError<GetTimelineEventError>`](crate::error::GetTimelineEventError)
    pub fn get_timeline_event(&self) -> fluent_builders::GetTimelineEvent {
        fluent_builders::GetTimelineEvent::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListIncidentRecords`](crate::client::fluent_builders::ListIncidentRecords) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListIncidentRecords::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`filters(Vec<Filter>)`](crate::client::fluent_builders::ListIncidentRecords::filters) / [`set_filters(Option<Vec<Filter>>)`](crate::client::fluent_builders::ListIncidentRecords::set_filters): <p>Filters the list of incident records through which you are searching. You can filter on the following keys:</p>  <ul>   <li> <p> <code>creationTime</code> </p> </li>   <li> <p> <code>impact</code> </p> </li>   <li> <p> <code>status</code> </p> </li>   <li> <p> <code>createdBy</code> </p> </li>  </ul>  <p>Note the following when deciding how to use Filters:</p>  <ul>   <li> <p>If you don't specify a Filter, the response includes all incident records.</p> </li>   <li> <p>If you specify more than one filter in a single request, the response returns incident records that match all filters.</p> </li>   <li> <p>If you specify a filter with more than one value, the response returns incident records that match any of the values provided.</p> </li>  </ul>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListIncidentRecords::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListIncidentRecords::set_max_results): <p>The maximum number of results per page.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListIncidentRecords::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListIncidentRecords::set_next_token): <p>The pagination token to continue to the next page of results.</p>
    /// - On success, responds with [`ListIncidentRecordsOutput`](crate::output::ListIncidentRecordsOutput) with field(s):
    ///   - [`incident_record_summaries(Option<Vec<IncidentRecordSummary>>)`](crate::output::ListIncidentRecordsOutput::incident_record_summaries): <p>The details of each listed incident record.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListIncidentRecordsOutput::next_token): <p>The pagination token to continue to the next page of results.</p>
    /// - On failure, responds with [`SdkError<ListIncidentRecordsError>`](crate::error::ListIncidentRecordsError)
    pub fn list_incident_records(&self) -> fluent_builders::ListIncidentRecords {
        fluent_builders::ListIncidentRecords::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListRelatedItems`](crate::client::fluent_builders::ListRelatedItems) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListRelatedItems::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`incident_record_arn(impl Into<String>)`](crate::client::fluent_builders::ListRelatedItems::incident_record_arn) / [`set_incident_record_arn(Option<String>)`](crate::client::fluent_builders::ListRelatedItems::set_incident_record_arn): <p>The Amazon Resource Name (ARN) of the incident record containing the listed related items.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListRelatedItems::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListRelatedItems::set_max_results): <p>The maximum number of related items per page.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListRelatedItems::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListRelatedItems::set_next_token): <p>The pagination token to continue to the next page of results.</p>
    /// - On success, responds with [`ListRelatedItemsOutput`](crate::output::ListRelatedItemsOutput) with field(s):
    ///   - [`related_items(Option<Vec<RelatedItem>>)`](crate::output::ListRelatedItemsOutput::related_items): <p>Details about each related item.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListRelatedItemsOutput::next_token): <p>The pagination token to continue to the next page of results.</p>
    /// - On failure, responds with [`SdkError<ListRelatedItemsError>`](crate::error::ListRelatedItemsError)
    pub fn list_related_items(&self) -> fluent_builders::ListRelatedItems {
        fluent_builders::ListRelatedItems::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListReplicationSets`](crate::client::fluent_builders::ListReplicationSets) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListReplicationSets::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListReplicationSets::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListReplicationSets::set_max_results): <p>The maximum number of results per page. </p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListReplicationSets::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListReplicationSets::set_next_token): <p>The pagination token to continue to the next page of results.</p>
    /// - On success, responds with [`ListReplicationSetsOutput`](crate::output::ListReplicationSetsOutput) with field(s):
    ///   - [`replication_set_arns(Option<Vec<String>>)`](crate::output::ListReplicationSetsOutput::replication_set_arns): <p>The Amazon Resource Name (ARN) of the list replication set.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListReplicationSetsOutput::next_token): <p>The pagination token to continue to the next page of results.</p>
    /// - On failure, responds with [`SdkError<ListReplicationSetsError>`](crate::error::ListReplicationSetsError)
    pub fn list_replication_sets(&self) -> fluent_builders::ListReplicationSets {
        fluent_builders::ListReplicationSets::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListResponsePlans`](crate::client::fluent_builders::ListResponsePlans) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListResponsePlans::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListResponsePlans::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListResponsePlans::set_max_results): <p>The maximum number of response plans per page.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListResponsePlans::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListResponsePlans::set_next_token): <p>The pagination token to continue to the next page of results.</p>
    /// - On success, responds with [`ListResponsePlansOutput`](crate::output::ListResponsePlansOutput) with field(s):
    ///   - [`response_plan_summaries(Option<Vec<ResponsePlanSummary>>)`](crate::output::ListResponsePlansOutput::response_plan_summaries): <p>Details of each response plan.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListResponsePlansOutput::next_token): <p>The pagination token to continue to the next page of results.</p>
    /// - On failure, responds with [`SdkError<ListResponsePlansError>`](crate::error::ListResponsePlansError)
    pub fn list_response_plans(&self) -> fluent_builders::ListResponsePlans {
        fluent_builders::ListResponsePlans::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListTagsForResource`](crate::client::fluent_builders::ListTagsForResource) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`resource_arn(impl Into<String>)`](crate::client::fluent_builders::ListTagsForResource::resource_arn) / [`set_resource_arn(Option<String>)`](crate::client::fluent_builders::ListTagsForResource::set_resource_arn): <p>The Amazon Resource Name (ARN) of the response plan.</p>
    /// - On success, responds with [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput) with field(s):
    ///   - [`tags(Option<HashMap<String, String>>)`](crate::output::ListTagsForResourceOutput::tags): <p>A list of tags for the response plan.</p>
    /// - On failure, responds with [`SdkError<ListTagsForResourceError>`](crate::error::ListTagsForResourceError)
    pub fn list_tags_for_resource(&self) -> fluent_builders::ListTagsForResource {
        fluent_builders::ListTagsForResource::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListTimelineEvents`](crate::client::fluent_builders::ListTimelineEvents) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListTimelineEvents::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`incident_record_arn(impl Into<String>)`](crate::client::fluent_builders::ListTimelineEvents::incident_record_arn) / [`set_incident_record_arn(Option<String>)`](crate::client::fluent_builders::ListTimelineEvents::set_incident_record_arn): <p>The Amazon Resource Name (ARN) of the incident that includes the timeline event.</p>
    ///   - [`filters(Vec<Filter>)`](crate::client::fluent_builders::ListTimelineEvents::filters) / [`set_filters(Option<Vec<Filter>>)`](crate::client::fluent_builders::ListTimelineEvents::set_filters): <p>Filters the timeline events based on the provided conditional values. You can filter timeline events using the following keys:</p>  <ul>   <li> <p> <code>eventTime</code> </p> </li>   <li> <p> <code>eventType</code> </p> </li>  </ul>  <p>Note the following when deciding how to use Filters:</p>  <ul>   <li> <p>If you don't specify a Filter, the response includes all timeline events.</p> </li>   <li> <p>If you specify more than one filter in a single request, the response returns timeline events that match all filters.</p> </li>   <li> <p>If you specify a filter with more than one value, the response returns timeline events that match any of the values provided.</p> </li>  </ul>
    ///   - [`sort_by(TimelineEventSort)`](crate::client::fluent_builders::ListTimelineEvents::sort_by) / [`set_sort_by(Option<TimelineEventSort>)`](crate::client::fluent_builders::ListTimelineEvents::set_sort_by): <p>Sort by the specified key value pair.</p>
    ///   - [`sort_order(SortOrder)`](crate::client::fluent_builders::ListTimelineEvents::sort_order) / [`set_sort_order(Option<SortOrder>)`](crate::client::fluent_builders::ListTimelineEvents::set_sort_order): <p>Sorts the order of timeline events by the value specified in the <code>sortBy</code> field.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListTimelineEvents::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListTimelineEvents::set_max_results): <p>The maximum number of results per page.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListTimelineEvents::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListTimelineEvents::set_next_token): <p>The pagination token to continue to the next page of results.</p>
    /// - On success, responds with [`ListTimelineEventsOutput`](crate::output::ListTimelineEventsOutput) with field(s):
    ///   - [`event_summaries(Option<Vec<EventSummary>>)`](crate::output::ListTimelineEventsOutput::event_summaries): <p>Details about each event that occurred during the incident.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListTimelineEventsOutput::next_token): <p>The pagination token to continue to the next page of results.</p>
    /// - On failure, responds with [`SdkError<ListTimelineEventsError>`](crate::error::ListTimelineEventsError)
    pub fn list_timeline_events(&self) -> fluent_builders::ListTimelineEvents {
        fluent_builders::ListTimelineEvents::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`PutResourcePolicy`](crate::client::fluent_builders::PutResourcePolicy) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`resource_arn(impl Into<String>)`](crate::client::fluent_builders::PutResourcePolicy::resource_arn) / [`set_resource_arn(Option<String>)`](crate::client::fluent_builders::PutResourcePolicy::set_resource_arn): <p>The Amazon Resource Name (ARN) of the response plan to add the resource policy to.</p>
    ///   - [`policy(impl Into<String>)`](crate::client::fluent_builders::PutResourcePolicy::policy) / [`set_policy(Option<String>)`](crate::client::fluent_builders::PutResourcePolicy::set_policy): <p>Details of the resource policy.</p>
    /// - On success, responds with [`PutResourcePolicyOutput`](crate::output::PutResourcePolicyOutput) with field(s):
    ///   - [`policy_id(Option<String>)`](crate::output::PutResourcePolicyOutput::policy_id): <p>The ID of the resource policy.</p>
    /// - On failure, responds with [`SdkError<PutResourcePolicyError>`](crate::error::PutResourcePolicyError)
    pub fn put_resource_policy(&self) -> fluent_builders::PutResourcePolicy {
        fluent_builders::PutResourcePolicy::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StartIncident`](crate::client::fluent_builders::StartIncident) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`client_token(impl Into<String>)`](crate::client::fluent_builders::StartIncident::client_token) / [`set_client_token(Option<String>)`](crate::client::fluent_builders::StartIncident::set_client_token): <p>A token ensuring that the operation is called only once with the specified details.</p>
    ///   - [`response_plan_arn(impl Into<String>)`](crate::client::fluent_builders::StartIncident::response_plan_arn) / [`set_response_plan_arn(Option<String>)`](crate::client::fluent_builders::StartIncident::set_response_plan_arn): <p>The Amazon Resource Name (ARN) of the response plan that pre-defines summary, chat channels, Amazon SNS topics, runbooks, title, and impact of the incident. </p>
    ///   - [`title(impl Into<String>)`](crate::client::fluent_builders::StartIncident::title) / [`set_title(Option<String>)`](crate::client::fluent_builders::StartIncident::set_title): <p>Provide a title for the incident. Providing a title overwrites the title provided by the response plan. </p>
    ///   - [`impact(i32)`](crate::client::fluent_builders::StartIncident::impact) / [`set_impact(Option<i32>)`](crate::client::fluent_builders::StartIncident::set_impact): <p>Defines the impact to the customers. Providing an impact overwrites the impact provided by a response plan.</p>  <p class="title"> <b>Possible impacts:</b> </p>  <ul>   <li> <p> <code>1</code> - Critical impact, this typically relates to full application failure that impacts many to all customers. </p> </li>   <li> <p> <code>2</code> - High impact, partial application failure with impact to many customers.</p> </li>   <li> <p> <code>3</code> - Medium impact, the application is providing reduced service to customers.</p> </li>   <li> <p> <code>4</code> - Low impact, customer might aren't impacted by the problem yet.</p> </li>   <li> <p> <code>5</code> - No impact, customers aren't currently impacted but urgent action is needed to avoid impact.</p> </li>  </ul>
    ///   - [`trigger_details(TriggerDetails)`](crate::client::fluent_builders::StartIncident::trigger_details) / [`set_trigger_details(Option<TriggerDetails>)`](crate::client::fluent_builders::StartIncident::set_trigger_details): <p>Details of what created the incident record in Incident Manager.</p>
    ///   - [`related_items(Vec<RelatedItem>)`](crate::client::fluent_builders::StartIncident::related_items) / [`set_related_items(Option<Vec<RelatedItem>>)`](crate::client::fluent_builders::StartIncident::set_related_items): <p>Add related items to the incident for other responders to use. Related items are AWS resources, external links, or files uploaded to an Amazon S3 bucket. </p>
    /// - On success, responds with [`StartIncidentOutput`](crate::output::StartIncidentOutput) with field(s):
    ///   - [`incident_record_arn(Option<String>)`](crate::output::StartIncidentOutput::incident_record_arn): <p>The ARN of the newly created incident record.</p>
    /// - On failure, responds with [`SdkError<StartIncidentError>`](crate::error::StartIncidentError)
    pub fn start_incident(&self) -> fluent_builders::StartIncident {
        fluent_builders::StartIncident::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`TagResource`](crate::client::fluent_builders::TagResource) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`resource_arn(impl Into<String>)`](crate::client::fluent_builders::TagResource::resource_arn) / [`set_resource_arn(Option<String>)`](crate::client::fluent_builders::TagResource::set_resource_arn): <p>The Amazon Resource Name (ARN) of the response plan you're adding the tags to.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::TagResource::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::TagResource::set_tags): <p>A list of tags to add to the response plan.</p>
    /// - On success, responds with [`TagResourceOutput`](crate::output::TagResourceOutput)

    /// - On failure, responds with [`SdkError<TagResourceError>`](crate::error::TagResourceError)
    pub fn tag_resource(&self) -> fluent_builders::TagResource {
        fluent_builders::TagResource::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UntagResource`](crate::client::fluent_builders::UntagResource) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`resource_arn(impl Into<String>)`](crate::client::fluent_builders::UntagResource::resource_arn) / [`set_resource_arn(Option<String>)`](crate::client::fluent_builders::UntagResource::set_resource_arn): <p>The Amazon Resource Name (ARN) of the response plan you're removing a tag from.</p>
    ///   - [`tag_keys(Vec<String>)`](crate::client::fluent_builders::UntagResource::tag_keys) / [`set_tag_keys(Option<Vec<String>>)`](crate::client::fluent_builders::UntagResource::set_tag_keys): <p>The name of the tag to remove from the response plan.</p>
    /// - On success, responds with [`UntagResourceOutput`](crate::output::UntagResourceOutput)

    /// - On failure, responds with [`SdkError<UntagResourceError>`](crate::error::UntagResourceError)
    pub fn untag_resource(&self) -> fluent_builders::UntagResource {
        fluent_builders::UntagResource::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateDeletionProtection`](crate::client::fluent_builders::UpdateDeletionProtection) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`arn(impl Into<String>)`](crate::client::fluent_builders::UpdateDeletionProtection::arn) / [`set_arn(Option<String>)`](crate::client::fluent_builders::UpdateDeletionProtection::set_arn): <p>The Amazon Resource Name (ARN) of the replication set to update.</p>
    ///   - [`deletion_protected(bool)`](crate::client::fluent_builders::UpdateDeletionProtection::deletion_protected) / [`set_deletion_protected(Option<bool>)`](crate::client::fluent_builders::UpdateDeletionProtection::set_deletion_protected): <p>Specifies if deletion protection is turned on or off in your account. </p>
    ///   - [`client_token(impl Into<String>)`](crate::client::fluent_builders::UpdateDeletionProtection::client_token) / [`set_client_token(Option<String>)`](crate::client::fluent_builders::UpdateDeletionProtection::set_client_token): <p>A token that ensures that the operation is called only once with the specified details.</p>
    /// - On success, responds with [`UpdateDeletionProtectionOutput`](crate::output::UpdateDeletionProtectionOutput)

    /// - On failure, responds with [`SdkError<UpdateDeletionProtectionError>`](crate::error::UpdateDeletionProtectionError)
    pub fn update_deletion_protection(&self) -> fluent_builders::UpdateDeletionProtection {
        fluent_builders::UpdateDeletionProtection::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateIncidentRecord`](crate::client::fluent_builders::UpdateIncidentRecord) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`client_token(impl Into<String>)`](crate::client::fluent_builders::UpdateIncidentRecord::client_token) / [`set_client_token(Option<String>)`](crate::client::fluent_builders::UpdateIncidentRecord::set_client_token): <p>A token that ensures that the operation is called only once with the specified details.</p>
    ///   - [`arn(impl Into<String>)`](crate::client::fluent_builders::UpdateIncidentRecord::arn) / [`set_arn(Option<String>)`](crate::client::fluent_builders::UpdateIncidentRecord::set_arn): <p>The Amazon Resource Name (ARN) of the incident record you are updating.</p>
    ///   - [`title(impl Into<String>)`](crate::client::fluent_builders::UpdateIncidentRecord::title) / [`set_title(Option<String>)`](crate::client::fluent_builders::UpdateIncidentRecord::set_title): <p>A brief description of the incident.</p>
    ///   - [`summary(impl Into<String>)`](crate::client::fluent_builders::UpdateIncidentRecord::summary) / [`set_summary(Option<String>)`](crate::client::fluent_builders::UpdateIncidentRecord::set_summary): <p>A longer description of what occurred during the incident.</p>
    ///   - [`impact(i32)`](crate::client::fluent_builders::UpdateIncidentRecord::impact) / [`set_impact(Option<i32>)`](crate::client::fluent_builders::UpdateIncidentRecord::set_impact): <p>Defines the impact of the incident to customers and applications. Providing an impact overwrites the impact provided by the response plan.</p>  <p class="title"> <b>Possible impacts:</b> </p>  <ul>   <li> <p> <code>1</code> - Critical impact, full application failure that impacts many to all customers. </p> </li>   <li> <p> <code>2</code> - High impact, partial application failure with impact to many customers.</p> </li>   <li> <p> <code>3</code> - Medium impact, the application is providing reduced service to customers.</p> </li>   <li> <p> <code>4</code> - Low impact, customer aren't impacted by the problem yet.</p> </li>   <li> <p> <code>5</code> - No impact, customers aren't currently impacted but urgent action is needed to avoid impact.</p> </li>  </ul>
    ///   - [`status(IncidentRecordStatus)`](crate::client::fluent_builders::UpdateIncidentRecord::status) / [`set_status(Option<IncidentRecordStatus>)`](crate::client::fluent_builders::UpdateIncidentRecord::set_status): <p>The status of the incident. An incident can be <code>Open</code> or <code>Resolved</code>.</p>
    ///   - [`chat_channel(ChatChannel)`](crate::client::fluent_builders::UpdateIncidentRecord::chat_channel) / [`set_chat_channel(Option<ChatChannel>)`](crate::client::fluent_builders::UpdateIncidentRecord::set_chat_channel): <p>The Chatbot chat channel where responders can collaborate.</p>
    ///   - [`notification_targets(Vec<NotificationTargetItem>)`](crate::client::fluent_builders::UpdateIncidentRecord::notification_targets) / [`set_notification_targets(Option<Vec<NotificationTargetItem>>)`](crate::client::fluent_builders::UpdateIncidentRecord::set_notification_targets): <p>The Amazon SNS targets that are notified when updates are made to an incident.</p>  <p>Using multiple SNS topics creates redundancy in the event that a Region is down during the incident.</p>
    /// - On success, responds with [`UpdateIncidentRecordOutput`](crate::output::UpdateIncidentRecordOutput)

    /// - On failure, responds with [`SdkError<UpdateIncidentRecordError>`](crate::error::UpdateIncidentRecordError)
    pub fn update_incident_record(&self) -> fluent_builders::UpdateIncidentRecord {
        fluent_builders::UpdateIncidentRecord::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateRelatedItems`](crate::client::fluent_builders::UpdateRelatedItems) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`client_token(impl Into<String>)`](crate::client::fluent_builders::UpdateRelatedItems::client_token) / [`set_client_token(Option<String>)`](crate::client::fluent_builders::UpdateRelatedItems::set_client_token): <p>A token ensuring that the operation is called only once with the specified details.</p>
    ///   - [`incident_record_arn(impl Into<String>)`](crate::client::fluent_builders::UpdateRelatedItems::incident_record_arn) / [`set_incident_record_arn(Option<String>)`](crate::client::fluent_builders::UpdateRelatedItems::set_incident_record_arn): <p>The Amazon Resource Name (ARN) of the incident record containing the related items you are updating.</p>
    ///   - [`related_items_update(RelatedItemsUpdate)`](crate::client::fluent_builders::UpdateRelatedItems::related_items_update) / [`set_related_items_update(Option<RelatedItemsUpdate>)`](crate::client::fluent_builders::UpdateRelatedItems::set_related_items_update): <p>Details about the item you are adding or deleting.</p>
    /// - On success, responds with [`UpdateRelatedItemsOutput`](crate::output::UpdateRelatedItemsOutput)

    /// - On failure, responds with [`SdkError<UpdateRelatedItemsError>`](crate::error::UpdateRelatedItemsError)
    pub fn update_related_items(&self) -> fluent_builders::UpdateRelatedItems {
        fluent_builders::UpdateRelatedItems::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateReplicationSet`](crate::client::fluent_builders::UpdateReplicationSet) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`arn(impl Into<String>)`](crate::client::fluent_builders::UpdateReplicationSet::arn) / [`set_arn(Option<String>)`](crate::client::fluent_builders::UpdateReplicationSet::set_arn): <p>The Amazon Resource Name (ARN) of the replication set you're updating.</p>
    ///   - [`actions(Vec<UpdateReplicationSetAction>)`](crate::client::fluent_builders::UpdateReplicationSet::actions) / [`set_actions(Option<Vec<UpdateReplicationSetAction>>)`](crate::client::fluent_builders::UpdateReplicationSet::set_actions): <p>An action to add or delete a Region.</p>
    ///   - [`client_token(impl Into<String>)`](crate::client::fluent_builders::UpdateReplicationSet::client_token) / [`set_client_token(Option<String>)`](crate::client::fluent_builders::UpdateReplicationSet::set_client_token): <p>A token that ensures that the operation is called only once with the specified details.</p>
    /// - On success, responds with [`UpdateReplicationSetOutput`](crate::output::UpdateReplicationSetOutput)

    /// - On failure, responds with [`SdkError<UpdateReplicationSetError>`](crate::error::UpdateReplicationSetError)
    pub fn update_replication_set(&self) -> fluent_builders::UpdateReplicationSet {
        fluent_builders::UpdateReplicationSet::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateResponsePlan`](crate::client::fluent_builders::UpdateResponsePlan) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`client_token(impl Into<String>)`](crate::client::fluent_builders::UpdateResponsePlan::client_token) / [`set_client_token(Option<String>)`](crate::client::fluent_builders::UpdateResponsePlan::set_client_token): <p>A token ensuring that the operation is called only once with the specified details.</p>
    ///   - [`arn(impl Into<String>)`](crate::client::fluent_builders::UpdateResponsePlan::arn) / [`set_arn(Option<String>)`](crate::client::fluent_builders::UpdateResponsePlan::set_arn): <p>The Amazon Resource Name (ARN) of the response plan.</p>
    ///   - [`display_name(impl Into<String>)`](crate::client::fluent_builders::UpdateResponsePlan::display_name) / [`set_display_name(Option<String>)`](crate::client::fluent_builders::UpdateResponsePlan::set_display_name): <p>The long format name of the response plan. The display name can't contain spaces.</p>
    ///   - [`incident_template_title(impl Into<String>)`](crate::client::fluent_builders::UpdateResponsePlan::incident_template_title) / [`set_incident_template_title(Option<String>)`](crate::client::fluent_builders::UpdateResponsePlan::set_incident_template_title): <p>The short format name of the incident. The title can't contain spaces.</p>
    ///   - [`incident_template_impact(i32)`](crate::client::fluent_builders::UpdateResponsePlan::incident_template_impact) / [`set_incident_template_impact(Option<i32>)`](crate::client::fluent_builders::UpdateResponsePlan::set_incident_template_impact): <p>Defines the impact to the customers. Providing an impact overwrites the impact provided by a response plan.</p>  <p class="title"> <b>Possible impacts:</b> </p>  <ul>   <li> <p> <code>5</code> - Severe impact</p> </li>   <li> <p> <code>4</code> - High impact</p> </li>   <li> <p> <code>3</code> - Medium impact</p> </li>   <li> <p> <code>2</code> - Low impact</p> </li>   <li> <p> <code>1</code> - No impact</p> </li>  </ul>
    ///   - [`incident_template_summary(impl Into<String>)`](crate::client::fluent_builders::UpdateResponsePlan::incident_template_summary) / [`set_incident_template_summary(Option<String>)`](crate::client::fluent_builders::UpdateResponsePlan::set_incident_template_summary): <p>A brief summary of the incident. This typically contains what has happened, what's currently happening, and next steps.</p>
    ///   - [`incident_template_dedupe_string(impl Into<String>)`](crate::client::fluent_builders::UpdateResponsePlan::incident_template_dedupe_string) / [`set_incident_template_dedupe_string(Option<String>)`](crate::client::fluent_builders::UpdateResponsePlan::set_incident_template_dedupe_string): <p>The string Incident Manager uses to prevent duplicate incidents from being created by the same incident in the same account.</p>
    ///   - [`incident_template_notification_targets(Vec<NotificationTargetItem>)`](crate::client::fluent_builders::UpdateResponsePlan::incident_template_notification_targets) / [`set_incident_template_notification_targets(Option<Vec<NotificationTargetItem>>)`](crate::client::fluent_builders::UpdateResponsePlan::set_incident_template_notification_targets): <p>The Amazon SNS targets that are notified when updates are made to an incident.</p>
    ///   - [`chat_channel(ChatChannel)`](crate::client::fluent_builders::UpdateResponsePlan::chat_channel) / [`set_chat_channel(Option<ChatChannel>)`](crate::client::fluent_builders::UpdateResponsePlan::set_chat_channel): <p>The Chatbot chat channel used for collaboration during an incident.</p>  <p>Use the empty structure to remove the chat channel from the response plan.</p>
    ///   - [`engagements(Vec<String>)`](crate::client::fluent_builders::UpdateResponsePlan::engagements) / [`set_engagements(Option<Vec<String>>)`](crate::client::fluent_builders::UpdateResponsePlan::set_engagements): <p>The Amazon Resource Name (ARN) for the contacts and escalation plans that the response plan engages during an incident.</p>
    ///   - [`actions(Vec<Action>)`](crate::client::fluent_builders::UpdateResponsePlan::actions) / [`set_actions(Option<Vec<Action>>)`](crate::client::fluent_builders::UpdateResponsePlan::set_actions): <p>The actions that this response plan takes at the beginning of an incident.</p>
    ///   - [`incident_template_tags(HashMap<String, String>)`](crate::client::fluent_builders::UpdateResponsePlan::incident_template_tags) / [`set_incident_template_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::UpdateResponsePlan::set_incident_template_tags): <p>Tags to assign to the template. When the <code>StartIncident</code> API action is called, Incident Manager assigns the tags specified in the template to the incident. To call this action, you must also have permission to call the <code>TagResource</code> API action for the incident record resource.</p>
    ///   - [`integrations(Vec<Integration>)`](crate::client::fluent_builders::UpdateResponsePlan::integrations) / [`set_integrations(Option<Vec<Integration>>)`](crate::client::fluent_builders::UpdateResponsePlan::set_integrations): <p>Information about third-party services integrated into the response plan.</p>
    /// - On success, responds with [`UpdateResponsePlanOutput`](crate::output::UpdateResponsePlanOutput)

    /// - On failure, responds with [`SdkError<UpdateResponsePlanError>`](crate::error::UpdateResponsePlanError)
    pub fn update_response_plan(&self) -> fluent_builders::UpdateResponsePlan {
        fluent_builders::UpdateResponsePlan::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateTimelineEvent`](crate::client::fluent_builders::UpdateTimelineEvent) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`client_token(impl Into<String>)`](crate::client::fluent_builders::UpdateTimelineEvent::client_token) / [`set_client_token(Option<String>)`](crate::client::fluent_builders::UpdateTimelineEvent::set_client_token): <p>A token ensuring that the operation is called only once with the specified details.</p>
    ///   - [`incident_record_arn(impl Into<String>)`](crate::client::fluent_builders::UpdateTimelineEvent::incident_record_arn) / [`set_incident_record_arn(Option<String>)`](crate::client::fluent_builders::UpdateTimelineEvent::set_incident_record_arn): <p>The Amazon Resource Name (ARN) of the incident that includes the timeline event.</p>
    ///   - [`event_id(impl Into<String>)`](crate::client::fluent_builders::UpdateTimelineEvent::event_id) / [`set_event_id(Option<String>)`](crate::client::fluent_builders::UpdateTimelineEvent::set_event_id): <p>The ID of the event you are updating. You can find this by using <code>ListTimelineEvents</code>.</p>
    ///   - [`event_time(DateTime)`](crate::client::fluent_builders::UpdateTimelineEvent::event_time) / [`set_event_time(Option<DateTime>)`](crate::client::fluent_builders::UpdateTimelineEvent::set_event_time): <p>The time that the event occurred.</p>
    ///   - [`event_type(impl Into<String>)`](crate::client::fluent_builders::UpdateTimelineEvent::event_type) / [`set_event_type(Option<String>)`](crate::client::fluent_builders::UpdateTimelineEvent::set_event_type): <p>The type of the event. You can update events of type <code>Custom Event</code>.</p>
    ///   - [`event_data(impl Into<String>)`](crate::client::fluent_builders::UpdateTimelineEvent::event_data) / [`set_event_data(Option<String>)`](crate::client::fluent_builders::UpdateTimelineEvent::set_event_data): <p>A short description of the event.</p>
    ///   - [`event_references(Vec<EventReference>)`](crate::client::fluent_builders::UpdateTimelineEvent::event_references) / [`set_event_references(Option<Vec<EventReference>>)`](crate::client::fluent_builders::UpdateTimelineEvent::set_event_references): <p>Updates all existing references in a <code>TimelineEvent</code>. A reference can be an Amazon Web Services resource involved in the incident or in some way associated with it. When you specify a reference, you enter the Amazon Resource Name (ARN) of the resource. You can also specify a related item. As an example, you could specify the ARN of an Amazon DynamoDB (DynamoDB) table. The table for this example is the resource. You could also specify a Amazon CloudWatch metric for that table. The metric is the related item.</p> <important>   <p>This update action overrides all existing references. If you want to keep existing references, you must specify them in the call. If you don't, this action removes them and enters only new references.</p>  </important>
    /// - On success, responds with [`UpdateTimelineEventOutput`](crate::output::UpdateTimelineEventOutput)

    /// - On failure, responds with [`SdkError<UpdateTimelineEventError>`](crate::error::UpdateTimelineEventError)
    pub fn update_timeline_event(&self) -> fluent_builders::UpdateTimelineEvent {
        fluent_builders::UpdateTimelineEvent::new(self.handle.clone())
    }
}
pub mod fluent_builders {

    //! Utilities to ergonomically construct a request to the service.
    //!
    //! Fluent builders are created through the [`Client`](crate::client::Client) by calling
    //! one if its operation methods. After parameters are set using the builder methods,
    //! the `send` method can be called to initiate the request.
    /// Fluent builder constructing a request to `CreateReplicationSet`.
    ///
    /// <p>A replication set replicates and encrypts your data to the provided Regions with the provided KMS key. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateReplicationSet {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_replication_set_input::Builder,
    }
    impl CreateReplicationSet {
        /// Creates a new `CreateReplicationSet`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateReplicationSet,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateReplicationSetError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateReplicationSetOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateReplicationSetError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Adds a key-value pair to `regions`.
        ///
        /// To override the contents of this collection use [`set_regions`](Self::set_regions).
        ///
        /// <p>The Regions that Incident Manager replicates your data to. You can have up to three Regions in your replication set.</p>
        pub fn regions(
            mut self,
            k: impl Into<std::string::String>,
            v: crate::model::RegionMapInputValue,
        ) -> Self {
            self.inner = self.inner.regions(k.into(), v);
            self
        }
        /// <p>The Regions that Incident Manager replicates your data to. You can have up to three Regions in your replication set.</p>
        pub fn set_regions(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, crate::model::RegionMapInputValue>,
            >,
        ) -> Self {
            self.inner = self.inner.set_regions(input);
            self
        }
        /// <p>A token that ensures that the operation is called only once with the specified details.</p>
        pub fn client_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.client_token(input.into());
            self
        }
        /// <p>A token that ensures that the operation is called only once with the specified details.</p>
        pub fn set_client_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_client_token(input);
            self
        }
        /// Adds a key-value pair to `tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>A list of tags to add to the replication set.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>A list of tags to add to the replication set.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateResponsePlan`.
    ///
    /// <p>Creates a response plan that automates the initial response to incidents. A response plan engages contacts, starts chat channel collaboration, and initiates runbooks at the beginning of an incident.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateResponsePlan {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_response_plan_input::Builder,
    }
    impl CreateResponsePlan {
        /// Creates a new `CreateResponsePlan`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateResponsePlan,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateResponsePlanError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateResponsePlanOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateResponsePlanError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>A token ensuring that the operation is called only once with the specified details.</p>
        pub fn client_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.client_token(input.into());
            self
        }
        /// <p>A token ensuring that the operation is called only once with the specified details.</p>
        pub fn set_client_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_client_token(input);
            self
        }
        /// <p>The short format name of the response plan. Can't include spaces.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The short format name of the response plan. Can't include spaces.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The long format of the response plan name. This field can contain spaces.</p>
        pub fn display_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.display_name(input.into());
            self
        }
        /// <p>The long format of the response plan name. This field can contain spaces.</p>
        pub fn set_display_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_display_name(input);
            self
        }
        /// <p>Details used to create an incident when using this response plan.</p>
        pub fn incident_template(mut self, input: crate::model::IncidentTemplate) -> Self {
            self.inner = self.inner.incident_template(input);
            self
        }
        /// <p>Details used to create an incident when using this response plan.</p>
        pub fn set_incident_template(
            mut self,
            input: std::option::Option<crate::model::IncidentTemplate>,
        ) -> Self {
            self.inner = self.inner.set_incident_template(input);
            self
        }
        /// <p>The Chatbot chat channel used for collaboration during an incident.</p>
        pub fn chat_channel(mut self, input: crate::model::ChatChannel) -> Self {
            self.inner = self.inner.chat_channel(input);
            self
        }
        /// <p>The Chatbot chat channel used for collaboration during an incident.</p>
        pub fn set_chat_channel(
            mut self,
            input: std::option::Option<crate::model::ChatChannel>,
        ) -> Self {
            self.inner = self.inner.set_chat_channel(input);
            self
        }
        /// Appends an item to `engagements`.
        ///
        /// To override the contents of this collection use [`set_engagements`](Self::set_engagements).
        ///
        /// <p>The Amazon Resource Name (ARN) for the contacts and escalation plans that the response plan engages during an incident.</p>
        pub fn engagements(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.engagements(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) for the contacts and escalation plans that the response plan engages during an incident.</p>
        pub fn set_engagements(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_engagements(input);
            self
        }
        /// Appends an item to `actions`.
        ///
        /// To override the contents of this collection use [`set_actions`](Self::set_actions).
        ///
        /// <p>The actions that the response plan starts at the beginning of an incident.</p>
        pub fn actions(mut self, input: crate::model::Action) -> Self {
            self.inner = self.inner.actions(input);
            self
        }
        /// <p>The actions that the response plan starts at the beginning of an incident.</p>
        pub fn set_actions(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Action>>,
        ) -> Self {
            self.inner = self.inner.set_actions(input);
            self
        }
        /// Adds a key-value pair to `tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>A list of tags that you are adding to the response plan.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>A list of tags that you are adding to the response plan.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
        /// Appends an item to `integrations`.
        ///
        /// To override the contents of this collection use [`set_integrations`](Self::set_integrations).
        ///
        /// <p>Information about third-party services integrated into the response plan.</p>
        pub fn integrations(mut self, input: crate::model::Integration) -> Self {
            self.inner = self.inner.integrations(input);
            self
        }
        /// <p>Information about third-party services integrated into the response plan.</p>
        pub fn set_integrations(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Integration>>,
        ) -> Self {
            self.inner = self.inner.set_integrations(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateTimelineEvent`.
    ///
    /// <p>Creates a custom timeline event on the incident details page of an incident record. Timeline events are automatically created by Incident Manager, marking key moment during an incident. You can create custom timeline events to mark important events that are automatically detected by Incident Manager.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateTimelineEvent {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_timeline_event_input::Builder,
    }
    impl CreateTimelineEvent {
        /// Creates a new `CreateTimelineEvent`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateTimelineEvent,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateTimelineEventError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateTimelineEventOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateTimelineEventError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>A token ensuring that the action is called only once with the specified details.</p>
        pub fn client_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.client_token(input.into());
            self
        }
        /// <p>A token ensuring that the action is called only once with the specified details.</p>
        pub fn set_client_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_client_token(input);
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the incident record to which the event will be added.</p>
        pub fn incident_record_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.incident_record_arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the incident record to which the event will be added.</p>
        pub fn set_incident_record_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_incident_record_arn(input);
            self
        }
        /// <p>The time that the event occurred.</p>
        pub fn event_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.inner = self.inner.event_time(input);
            self
        }
        /// <p>The time that the event occurred.</p>
        pub fn set_event_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.inner = self.inner.set_event_time(input);
            self
        }
        /// <p>The type of the event. You can create timeline events of type <code>Custom Event</code>.</p>
        pub fn event_type(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.event_type(input.into());
            self
        }
        /// <p>The type of the event. You can create timeline events of type <code>Custom Event</code>.</p>
        pub fn set_event_type(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_event_type(input);
            self
        }
        /// <p>A short description of the event.</p>
        pub fn event_data(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.event_data(input.into());
            self
        }
        /// <p>A short description of the event.</p>
        pub fn set_event_data(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_event_data(input);
            self
        }
        /// Appends an item to `eventReferences`.
        ///
        /// To override the contents of this collection use [`set_event_references`](Self::set_event_references).
        ///
        /// <p>Adds one or more references to the <code>TimelineEvent</code>. A reference can be an Amazon Web Services resource involved in the incident or in some way associated with it. When you specify a reference, you enter the Amazon Resource Name (ARN) of the resource. You can also specify a related item. As an example, you could specify the ARN of an Amazon DynamoDB (DynamoDB) table. The table for this example is the resource. You could also specify a Amazon CloudWatch metric for that table. The metric is the related item.</p>
        pub fn event_references(mut self, input: crate::model::EventReference) -> Self {
            self.inner = self.inner.event_references(input);
            self
        }
        /// <p>Adds one or more references to the <code>TimelineEvent</code>. A reference can be an Amazon Web Services resource involved in the incident or in some way associated with it. When you specify a reference, you enter the Amazon Resource Name (ARN) of the resource. You can also specify a related item. As an example, you could specify the ARN of an Amazon DynamoDB (DynamoDB) table. The table for this example is the resource. You could also specify a Amazon CloudWatch metric for that table. The metric is the related item.</p>
        pub fn set_event_references(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::EventReference>>,
        ) -> Self {
            self.inner = self.inner.set_event_references(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteIncidentRecord`.
    ///
    /// <p>Delete an incident record from Incident Manager. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteIncidentRecord {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_incident_record_input::Builder,
    }
    impl DeleteIncidentRecord {
        /// Creates a new `DeleteIncidentRecord`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteIncidentRecord,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteIncidentRecordError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteIncidentRecordOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteIncidentRecordError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the incident record you are deleting.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the incident record you are deleting.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_arn(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteReplicationSet`.
    ///
    /// <p>Deletes all Regions in your replication set. Deleting the replication set deletes all Incident Manager data.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteReplicationSet {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_replication_set_input::Builder,
    }
    impl DeleteReplicationSet {
        /// Creates a new `DeleteReplicationSet`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteReplicationSet,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteReplicationSetError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteReplicationSetOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteReplicationSetError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the replication set you're deleting.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the replication set you're deleting.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_arn(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteResourcePolicy`.
    ///
    /// <p>Deletes the resource policy that Resource Access Manager uses to share your Incident Manager resource.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteResourcePolicy {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_resource_policy_input::Builder,
    }
    impl DeleteResourcePolicy {
        /// Creates a new `DeleteResourcePolicy`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteResourcePolicy,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteResourcePolicyError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteResourcePolicyOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteResourcePolicyError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the resource you're deleting the policy from.</p>
        pub fn resource_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.resource_arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the resource you're deleting the policy from.</p>
        pub fn set_resource_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_resource_arn(input);
            self
        }
        /// <p>The ID of the resource policy you're deleting.</p>
        pub fn policy_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.policy_id(input.into());
            self
        }
        /// <p>The ID of the resource policy you're deleting.</p>
        pub fn set_policy_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_policy_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteResponsePlan`.
    ///
    /// <p>Deletes the specified response plan. Deleting a response plan stops all linked CloudWatch alarms and EventBridge events from creating an incident with this response plan.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteResponsePlan {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_response_plan_input::Builder,
    }
    impl DeleteResponsePlan {
        /// Creates a new `DeleteResponsePlan`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteResponsePlan,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteResponsePlanError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteResponsePlanOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteResponsePlanError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_arn(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteTimelineEvent`.
    ///
    /// <p>Deletes a timeline event from an incident.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteTimelineEvent {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_timeline_event_input::Builder,
    }
    impl DeleteTimelineEvent {
        /// Creates a new `DeleteTimelineEvent`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteTimelineEvent,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteTimelineEventError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteTimelineEventOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteTimelineEventError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the incident that includes the timeline event.</p>
        pub fn incident_record_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.incident_record_arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the incident that includes the timeline event.</p>
        pub fn set_incident_record_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_incident_record_arn(input);
            self
        }
        /// <p>The ID of the event you are updating. You can find this by using <code>ListTimelineEvents</code>.</p>
        pub fn event_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.event_id(input.into());
            self
        }
        /// <p>The ID of the event you are updating. You can find this by using <code>ListTimelineEvents</code>.</p>
        pub fn set_event_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_event_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetIncidentRecord`.
    ///
    /// <p>Returns the details for the specified incident record.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetIncidentRecord {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_incident_record_input::Builder,
    }
    impl GetIncidentRecord {
        /// Creates a new `GetIncidentRecord`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetIncidentRecord,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetIncidentRecordError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetIncidentRecordOutput,
            aws_smithy_http::result::SdkError<crate::error::GetIncidentRecordError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the incident record.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the incident record.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_arn(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetReplicationSet`.
    ///
    /// <p>Retrieve your Incident Manager replication set.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetReplicationSet {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_replication_set_input::Builder,
    }
    impl GetReplicationSet {
        /// Creates a new `GetReplicationSet`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetReplicationSet,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetReplicationSetError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetReplicationSetOutput,
            aws_smithy_http::result::SdkError<crate::error::GetReplicationSetError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the replication set you want to retrieve.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the replication set you want to retrieve.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_arn(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetResourcePolicies`.
    ///
    /// <p>Retrieves the resource policies attached to the specified response plan.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetResourcePolicies {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_resource_policies_input::Builder,
    }
    impl GetResourcePolicies {
        /// Creates a new `GetResourcePolicies`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetResourcePolicies,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetResourcePoliciesError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetResourcePoliciesOutput,
            aws_smithy_http::result::SdkError<crate::error::GetResourcePoliciesError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetResourcePoliciesPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetResourcePoliciesPaginator {
            crate::paginator::GetResourcePoliciesPaginator::new(self.handle, self.inner)
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan with the attached resource policy. </p>
        pub fn resource_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.resource_arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan with the attached resource policy. </p>
        pub fn set_resource_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_resource_arn(input);
            self
        }
        /// <p>The maximum number of resource policies to display for each page of results.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of resource policies to display for each page of results.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>The pagination token to continue to the next page of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>The pagination token to continue to the next page of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetResponsePlan`.
    ///
    /// <p>Retrieves the details of the specified response plan.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetResponsePlan {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_response_plan_input::Builder,
    }
    impl GetResponsePlan {
        /// Creates a new `GetResponsePlan`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetResponsePlan,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetResponsePlanError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetResponsePlanOutput,
            aws_smithy_http::result::SdkError<crate::error::GetResponsePlanError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_arn(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetTimelineEvent`.
    ///
    /// <p>Retrieves a timeline event based on its ID and incident record.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetTimelineEvent {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_timeline_event_input::Builder,
    }
    impl GetTimelineEvent {
        /// Creates a new `GetTimelineEvent`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetTimelineEvent,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetTimelineEventError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetTimelineEventOutput,
            aws_smithy_http::result::SdkError<crate::error::GetTimelineEventError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the incident that includes the timeline event.</p>
        pub fn incident_record_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.incident_record_arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the incident that includes the timeline event.</p>
        pub fn set_incident_record_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_incident_record_arn(input);
            self
        }
        /// <p>The ID of the event. You can get an event's ID when you create it, or by using <code>ListTimelineEvents</code>.</p>
        pub fn event_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.event_id(input.into());
            self
        }
        /// <p>The ID of the event. You can get an event's ID when you create it, or by using <code>ListTimelineEvents</code>.</p>
        pub fn set_event_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_event_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListIncidentRecords`.
    ///
    /// <p>Lists all incident records in your account. Use this command to retrieve the Amazon Resource Name (ARN) of the incident record you want to update. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListIncidentRecords {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_incident_records_input::Builder,
    }
    impl ListIncidentRecords {
        /// Creates a new `ListIncidentRecords`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListIncidentRecords,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListIncidentRecordsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListIncidentRecordsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListIncidentRecordsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListIncidentRecordsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListIncidentRecordsPaginator {
            crate::paginator::ListIncidentRecordsPaginator::new(self.handle, self.inner)
        }
        /// Appends an item to `filters`.
        ///
        /// To override the contents of this collection use [`set_filters`](Self::set_filters).
        ///
        /// <p>Filters the list of incident records through which you are searching. You can filter on the following keys:</p>
        /// <ul>
        /// <li> <p> <code>creationTime</code> </p> </li>
        /// <li> <p> <code>impact</code> </p> </li>
        /// <li> <p> <code>status</code> </p> </li>
        /// <li> <p> <code>createdBy</code> </p> </li>
        /// </ul>
        /// <p>Note the following when deciding how to use Filters:</p>
        /// <ul>
        /// <li> <p>If you don't specify a Filter, the response includes all incident records.</p> </li>
        /// <li> <p>If you specify more than one filter in a single request, the response returns incident records that match all filters.</p> </li>
        /// <li> <p>If you specify a filter with more than one value, the response returns incident records that match any of the values provided.</p> </li>
        /// </ul>
        pub fn filters(mut self, input: crate::model::Filter) -> Self {
            self.inner = self.inner.filters(input);
            self
        }
        /// <p>Filters the list of incident records through which you are searching. You can filter on the following keys:</p>
        /// <ul>
        /// <li> <p> <code>creationTime</code> </p> </li>
        /// <li> <p> <code>impact</code> </p> </li>
        /// <li> <p> <code>status</code> </p> </li>
        /// <li> <p> <code>createdBy</code> </p> </li>
        /// </ul>
        /// <p>Note the following when deciding how to use Filters:</p>
        /// <ul>
        /// <li> <p>If you don't specify a Filter, the response includes all incident records.</p> </li>
        /// <li> <p>If you specify more than one filter in a single request, the response returns incident records that match all filters.</p> </li>
        /// <li> <p>If you specify a filter with more than one value, the response returns incident records that match any of the values provided.</p> </li>
        /// </ul>
        pub fn set_filters(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Filter>>,
        ) -> Self {
            self.inner = self.inner.set_filters(input);
            self
        }
        /// <p>The maximum number of results per page.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results per page.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>The pagination token to continue to the next page of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>The pagination token to continue to the next page of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListRelatedItems`.
    ///
    /// <p>List all related items for an incident record.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListRelatedItems {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_related_items_input::Builder,
    }
    impl ListRelatedItems {
        /// Creates a new `ListRelatedItems`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListRelatedItems,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListRelatedItemsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListRelatedItemsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListRelatedItemsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListRelatedItemsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListRelatedItemsPaginator {
            crate::paginator::ListRelatedItemsPaginator::new(self.handle, self.inner)
        }
        /// <p>The Amazon Resource Name (ARN) of the incident record containing the listed related items.</p>
        pub fn incident_record_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.incident_record_arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the incident record containing the listed related items.</p>
        pub fn set_incident_record_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_incident_record_arn(input);
            self
        }
        /// <p>The maximum number of related items per page.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of related items per page.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>The pagination token to continue to the next page of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>The pagination token to continue to the next page of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListReplicationSets`.
    ///
    /// <p>Lists details about the replication set configured in your account. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListReplicationSets {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_replication_sets_input::Builder,
    }
    impl ListReplicationSets {
        /// Creates a new `ListReplicationSets`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListReplicationSets,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListReplicationSetsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListReplicationSetsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListReplicationSetsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListReplicationSetsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListReplicationSetsPaginator {
            crate::paginator::ListReplicationSetsPaginator::new(self.handle, self.inner)
        }
        /// <p>The maximum number of results per page. </p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results per page. </p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>The pagination token to continue to the next page of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>The pagination token to continue to the next page of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListResponsePlans`.
    ///
    /// <p>Lists all response plans in your account.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListResponsePlans {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_response_plans_input::Builder,
    }
    impl ListResponsePlans {
        /// Creates a new `ListResponsePlans`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListResponsePlans,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListResponsePlansError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListResponsePlansOutput,
            aws_smithy_http::result::SdkError<crate::error::ListResponsePlansError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListResponsePlansPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListResponsePlansPaginator {
            crate::paginator::ListResponsePlansPaginator::new(self.handle, self.inner)
        }
        /// <p>The maximum number of response plans per page.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of response plans per page.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>The pagination token to continue to the next page of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>The pagination token to continue to the next page of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListTagsForResource`.
    ///
    /// <p>Lists the tags that are attached to the specified response plan.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListTagsForResource {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_tags_for_resource_input::Builder,
    }
    impl ListTagsForResource {
        /// Creates a new `ListTagsForResource`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListTagsForResource,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListTagsForResourceError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListTagsForResourceOutput,
            aws_smithy_http::result::SdkError<crate::error::ListTagsForResourceError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan.</p>
        pub fn resource_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.resource_arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan.</p>
        pub fn set_resource_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_resource_arn(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListTimelineEvents`.
    ///
    /// <p>Lists timeline events for the specified incident record.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListTimelineEvents {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_timeline_events_input::Builder,
    }
    impl ListTimelineEvents {
        /// Creates a new `ListTimelineEvents`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListTimelineEvents,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListTimelineEventsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListTimelineEventsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListTimelineEventsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListTimelineEventsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListTimelineEventsPaginator {
            crate::paginator::ListTimelineEventsPaginator::new(self.handle, self.inner)
        }
        /// <p>The Amazon Resource Name (ARN) of the incident that includes the timeline event.</p>
        pub fn incident_record_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.incident_record_arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the incident that includes the timeline event.</p>
        pub fn set_incident_record_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_incident_record_arn(input);
            self
        }
        /// Appends an item to `filters`.
        ///
        /// To override the contents of this collection use [`set_filters`](Self::set_filters).
        ///
        /// <p>Filters the timeline events based on the provided conditional values. You can filter timeline events using the following keys:</p>
        /// <ul>
        /// <li> <p> <code>eventTime</code> </p> </li>
        /// <li> <p> <code>eventType</code> </p> </li>
        /// </ul>
        /// <p>Note the following when deciding how to use Filters:</p>
        /// <ul>
        /// <li> <p>If you don't specify a Filter, the response includes all timeline events.</p> </li>
        /// <li> <p>If you specify more than one filter in a single request, the response returns timeline events that match all filters.</p> </li>
        /// <li> <p>If you specify a filter with more than one value, the response returns timeline events that match any of the values provided.</p> </li>
        /// </ul>
        pub fn filters(mut self, input: crate::model::Filter) -> Self {
            self.inner = self.inner.filters(input);
            self
        }
        /// <p>Filters the timeline events based on the provided conditional values. You can filter timeline events using the following keys:</p>
        /// <ul>
        /// <li> <p> <code>eventTime</code> </p> </li>
        /// <li> <p> <code>eventType</code> </p> </li>
        /// </ul>
        /// <p>Note the following when deciding how to use Filters:</p>
        /// <ul>
        /// <li> <p>If you don't specify a Filter, the response includes all timeline events.</p> </li>
        /// <li> <p>If you specify more than one filter in a single request, the response returns timeline events that match all filters.</p> </li>
        /// <li> <p>If you specify a filter with more than one value, the response returns timeline events that match any of the values provided.</p> </li>
        /// </ul>
        pub fn set_filters(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Filter>>,
        ) -> Self {
            self.inner = self.inner.set_filters(input);
            self
        }
        /// <p>Sort by the specified key value pair.</p>
        pub fn sort_by(mut self, input: crate::model::TimelineEventSort) -> Self {
            self.inner = self.inner.sort_by(input);
            self
        }
        /// <p>Sort by the specified key value pair.</p>
        pub fn set_sort_by(
            mut self,
            input: std::option::Option<crate::model::TimelineEventSort>,
        ) -> Self {
            self.inner = self.inner.set_sort_by(input);
            self
        }
        /// <p>Sorts the order of timeline events by the value specified in the <code>sortBy</code> field.</p>
        pub fn sort_order(mut self, input: crate::model::SortOrder) -> Self {
            self.inner = self.inner.sort_order(input);
            self
        }
        /// <p>Sorts the order of timeline events by the value specified in the <code>sortBy</code> field.</p>
        pub fn set_sort_order(
            mut self,
            input: std::option::Option<crate::model::SortOrder>,
        ) -> Self {
            self.inner = self.inner.set_sort_order(input);
            self
        }
        /// <p>The maximum number of results per page.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results per page.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>The pagination token to continue to the next page of results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>The pagination token to continue to the next page of results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `PutResourcePolicy`.
    ///
    /// <p>Adds a resource policy to the specified response plan. The resource policy is used to share the response plan using Resource Access Manager (RAM). For more information about cross-account sharing, see <a href="https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-manager-cross-account-cross-region.html">Cross-Region and cross-account incident management</a>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct PutResourcePolicy {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::put_resource_policy_input::Builder,
    }
    impl PutResourcePolicy {
        /// Creates a new `PutResourcePolicy`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::PutResourcePolicy,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::PutResourcePolicyError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::PutResourcePolicyOutput,
            aws_smithy_http::result::SdkError<crate::error::PutResourcePolicyError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan to add the resource policy to.</p>
        pub fn resource_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.resource_arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan to add the resource policy to.</p>
        pub fn set_resource_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_resource_arn(input);
            self
        }
        /// <p>Details of the resource policy.</p>
        pub fn policy(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.policy(input.into());
            self
        }
        /// <p>Details of the resource policy.</p>
        pub fn set_policy(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_policy(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StartIncident`.
    ///
    /// <p>Used to start an incident from CloudWatch alarms, EventBridge events, or manually. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StartIncident {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::start_incident_input::Builder,
    }
    impl StartIncident {
        /// Creates a new `StartIncident`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StartIncident,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StartIncidentError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StartIncidentOutput,
            aws_smithy_http::result::SdkError<crate::error::StartIncidentError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>A token ensuring that the operation is called only once with the specified details.</p>
        pub fn client_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.client_token(input.into());
            self
        }
        /// <p>A token ensuring that the operation is called only once with the specified details.</p>
        pub fn set_client_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_client_token(input);
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan that pre-defines summary, chat channels, Amazon SNS topics, runbooks, title, and impact of the incident. </p>
        pub fn response_plan_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.response_plan_arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan that pre-defines summary, chat channels, Amazon SNS topics, runbooks, title, and impact of the incident. </p>
        pub fn set_response_plan_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_response_plan_arn(input);
            self
        }
        /// <p>Provide a title for the incident. Providing a title overwrites the title provided by the response plan. </p>
        pub fn title(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.title(input.into());
            self
        }
        /// <p>Provide a title for the incident. Providing a title overwrites the title provided by the response plan. </p>
        pub fn set_title(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_title(input);
            self
        }
        /// <p>Defines the impact to the customers. Providing an impact overwrites the impact provided by a response plan.</p>
        /// <p class="title"> <b>Possible impacts:</b> </p>
        /// <ul>
        /// <li> <p> <code>1</code> - Critical impact, this typically relates to full application failure that impacts many to all customers. </p> </li>
        /// <li> <p> <code>2</code> - High impact, partial application failure with impact to many customers.</p> </li>
        /// <li> <p> <code>3</code> - Medium impact, the application is providing reduced service to customers.</p> </li>
        /// <li> <p> <code>4</code> - Low impact, customer might aren't impacted by the problem yet.</p> </li>
        /// <li> <p> <code>5</code> - No impact, customers aren't currently impacted but urgent action is needed to avoid impact.</p> </li>
        /// </ul>
        pub fn impact(mut self, input: i32) -> Self {
            self.inner = self.inner.impact(input);
            self
        }
        /// <p>Defines the impact to the customers. Providing an impact overwrites the impact provided by a response plan.</p>
        /// <p class="title"> <b>Possible impacts:</b> </p>
        /// <ul>
        /// <li> <p> <code>1</code> - Critical impact, this typically relates to full application failure that impacts many to all customers. </p> </li>
        /// <li> <p> <code>2</code> - High impact, partial application failure with impact to many customers.</p> </li>
        /// <li> <p> <code>3</code> - Medium impact, the application is providing reduced service to customers.</p> </li>
        /// <li> <p> <code>4</code> - Low impact, customer might aren't impacted by the problem yet.</p> </li>
        /// <li> <p> <code>5</code> - No impact, customers aren't currently impacted but urgent action is needed to avoid impact.</p> </li>
        /// </ul>
        pub fn set_impact(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_impact(input);
            self
        }
        /// <p>Details of what created the incident record in Incident Manager.</p>
        pub fn trigger_details(mut self, input: crate::model::TriggerDetails) -> Self {
            self.inner = self.inner.trigger_details(input);
            self
        }
        /// <p>Details of what created the incident record in Incident Manager.</p>
        pub fn set_trigger_details(
            mut self,
            input: std::option::Option<crate::model::TriggerDetails>,
        ) -> Self {
            self.inner = self.inner.set_trigger_details(input);
            self
        }
        /// Appends an item to `relatedItems`.
        ///
        /// To override the contents of this collection use [`set_related_items`](Self::set_related_items).
        ///
        /// <p>Add related items to the incident for other responders to use. Related items are AWS resources, external links, or files uploaded to an Amazon S3 bucket. </p>
        pub fn related_items(mut self, input: crate::model::RelatedItem) -> Self {
            self.inner = self.inner.related_items(input);
            self
        }
        /// <p>Add related items to the incident for other responders to use. Related items are AWS resources, external links, or files uploaded to an Amazon S3 bucket. </p>
        pub fn set_related_items(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::RelatedItem>>,
        ) -> Self {
            self.inner = self.inner.set_related_items(input);
            self
        }
    }
    /// Fluent builder constructing a request to `TagResource`.
    ///
    /// <p>Adds a tag to a response plan.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct TagResource {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::tag_resource_input::Builder,
    }
    impl TagResource {
        /// Creates a new `TagResource`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::TagResource,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::TagResourceError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::TagResourceOutput,
            aws_smithy_http::result::SdkError<crate::error::TagResourceError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan you're adding the tags to.</p>
        pub fn resource_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.resource_arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan you're adding the tags to.</p>
        pub fn set_resource_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_resource_arn(input);
            self
        }
        /// Adds a key-value pair to `tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>A list of tags to add to the response plan.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>A list of tags to add to the response plan.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UntagResource`.
    ///
    /// <p>Removes a tag from a resource.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UntagResource {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::untag_resource_input::Builder,
    }
    impl UntagResource {
        /// Creates a new `UntagResource`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UntagResource,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UntagResourceError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UntagResourceOutput,
            aws_smithy_http::result::SdkError<crate::error::UntagResourceError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan you're removing a tag from.</p>
        pub fn resource_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.resource_arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan you're removing a tag from.</p>
        pub fn set_resource_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_resource_arn(input);
            self
        }
        /// Appends an item to `tagKeys`.
        ///
        /// To override the contents of this collection use [`set_tag_keys`](Self::set_tag_keys).
        ///
        /// <p>The name of the tag to remove from the response plan.</p>
        pub fn tag_keys(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.tag_keys(input.into());
            self
        }
        /// <p>The name of the tag to remove from the response plan.</p>
        pub fn set_tag_keys(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_tag_keys(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateDeletionProtection`.
    ///
    /// <p>Update deletion protection to either allow or deny deletion of the final Region in a replication set.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateDeletionProtection {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_deletion_protection_input::Builder,
    }
    impl UpdateDeletionProtection {
        /// Creates a new `UpdateDeletionProtection`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateDeletionProtection,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateDeletionProtectionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateDeletionProtectionOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateDeletionProtectionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the replication set to update.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the replication set to update.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_arn(input);
            self
        }
        /// <p>Specifies if deletion protection is turned on or off in your account. </p>
        pub fn deletion_protected(mut self, input: bool) -> Self {
            self.inner = self.inner.deletion_protected(input);
            self
        }
        /// <p>Specifies if deletion protection is turned on or off in your account. </p>
        pub fn set_deletion_protected(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_deletion_protected(input);
            self
        }
        /// <p>A token that ensures that the operation is called only once with the specified details.</p>
        pub fn client_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.client_token(input.into());
            self
        }
        /// <p>A token that ensures that the operation is called only once with the specified details.</p>
        pub fn set_client_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_client_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateIncidentRecord`.
    ///
    /// <p>Update the details of an incident record. You can use this operation to update an incident record from the defined chat channel. For more information about using actions in chat channels, see <a href="https://docs.aws.amazon.com/incident-manager/latest/userguide/chat.html#chat-interact">Interacting through chat</a>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateIncidentRecord {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_incident_record_input::Builder,
    }
    impl UpdateIncidentRecord {
        /// Creates a new `UpdateIncidentRecord`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateIncidentRecord,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateIncidentRecordError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateIncidentRecordOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateIncidentRecordError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>A token that ensures that the operation is called only once with the specified details.</p>
        pub fn client_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.client_token(input.into());
            self
        }
        /// <p>A token that ensures that the operation is called only once with the specified details.</p>
        pub fn set_client_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_client_token(input);
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the incident record you are updating.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the incident record you are updating.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_arn(input);
            self
        }
        /// <p>A brief description of the incident.</p>
        pub fn title(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.title(input.into());
            self
        }
        /// <p>A brief description of the incident.</p>
        pub fn set_title(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_title(input);
            self
        }
        /// <p>A longer description of what occurred during the incident.</p>
        pub fn summary(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.summary(input.into());
            self
        }
        /// <p>A longer description of what occurred during the incident.</p>
        pub fn set_summary(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_summary(input);
            self
        }
        /// <p>Defines the impact of the incident to customers and applications. Providing an impact overwrites the impact provided by the response plan.</p>
        /// <p class="title"> <b>Possible impacts:</b> </p>
        /// <ul>
        /// <li> <p> <code>1</code> - Critical impact, full application failure that impacts many to all customers. </p> </li>
        /// <li> <p> <code>2</code> - High impact, partial application failure with impact to many customers.</p> </li>
        /// <li> <p> <code>3</code> - Medium impact, the application is providing reduced service to customers.</p> </li>
        /// <li> <p> <code>4</code> - Low impact, customer aren't impacted by the problem yet.</p> </li>
        /// <li> <p> <code>5</code> - No impact, customers aren't currently impacted but urgent action is needed to avoid impact.</p> </li>
        /// </ul>
        pub fn impact(mut self, input: i32) -> Self {
            self.inner = self.inner.impact(input);
            self
        }
        /// <p>Defines the impact of the incident to customers and applications. Providing an impact overwrites the impact provided by the response plan.</p>
        /// <p class="title"> <b>Possible impacts:</b> </p>
        /// <ul>
        /// <li> <p> <code>1</code> - Critical impact, full application failure that impacts many to all customers. </p> </li>
        /// <li> <p> <code>2</code> - High impact, partial application failure with impact to many customers.</p> </li>
        /// <li> <p> <code>3</code> - Medium impact, the application is providing reduced service to customers.</p> </li>
        /// <li> <p> <code>4</code> - Low impact, customer aren't impacted by the problem yet.</p> </li>
        /// <li> <p> <code>5</code> - No impact, customers aren't currently impacted but urgent action is needed to avoid impact.</p> </li>
        /// </ul>
        pub fn set_impact(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_impact(input);
            self
        }
        /// <p>The status of the incident. An incident can be <code>Open</code> or <code>Resolved</code>.</p>
        pub fn status(mut self, input: crate::model::IncidentRecordStatus) -> Self {
            self.inner = self.inner.status(input);
            self
        }
        /// <p>The status of the incident. An incident can be <code>Open</code> or <code>Resolved</code>.</p>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::IncidentRecordStatus>,
        ) -> Self {
            self.inner = self.inner.set_status(input);
            self
        }
        /// <p>The Chatbot chat channel where responders can collaborate.</p>
        pub fn chat_channel(mut self, input: crate::model::ChatChannel) -> Self {
            self.inner = self.inner.chat_channel(input);
            self
        }
        /// <p>The Chatbot chat channel where responders can collaborate.</p>
        pub fn set_chat_channel(
            mut self,
            input: std::option::Option<crate::model::ChatChannel>,
        ) -> Self {
            self.inner = self.inner.set_chat_channel(input);
            self
        }
        /// Appends an item to `notificationTargets`.
        ///
        /// To override the contents of this collection use [`set_notification_targets`](Self::set_notification_targets).
        ///
        /// <p>The Amazon SNS targets that are notified when updates are made to an incident.</p>
        /// <p>Using multiple SNS topics creates redundancy in the event that a Region is down during the incident.</p>
        pub fn notification_targets(mut self, input: crate::model::NotificationTargetItem) -> Self {
            self.inner = self.inner.notification_targets(input);
            self
        }
        /// <p>The Amazon SNS targets that are notified when updates are made to an incident.</p>
        /// <p>Using multiple SNS topics creates redundancy in the event that a Region is down during the incident.</p>
        pub fn set_notification_targets(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::NotificationTargetItem>>,
        ) -> Self {
            self.inner = self.inner.set_notification_targets(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateRelatedItems`.
    ///
    /// <p>Add or remove related items from the related items tab of an incident record.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateRelatedItems {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_related_items_input::Builder,
    }
    impl UpdateRelatedItems {
        /// Creates a new `UpdateRelatedItems`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateRelatedItems,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateRelatedItemsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateRelatedItemsOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateRelatedItemsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>A token ensuring that the operation is called only once with the specified details.</p>
        pub fn client_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.client_token(input.into());
            self
        }
        /// <p>A token ensuring that the operation is called only once with the specified details.</p>
        pub fn set_client_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_client_token(input);
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the incident record containing the related items you are updating.</p>
        pub fn incident_record_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.incident_record_arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the incident record containing the related items you are updating.</p>
        pub fn set_incident_record_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_incident_record_arn(input);
            self
        }
        /// <p>Details about the item you are adding or deleting.</p>
        pub fn related_items_update(mut self, input: crate::model::RelatedItemsUpdate) -> Self {
            self.inner = self.inner.related_items_update(input);
            self
        }
        /// <p>Details about the item you are adding or deleting.</p>
        pub fn set_related_items_update(
            mut self,
            input: std::option::Option<crate::model::RelatedItemsUpdate>,
        ) -> Self {
            self.inner = self.inner.set_related_items_update(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateReplicationSet`.
    ///
    /// <p>Add or delete Regions from your replication set.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateReplicationSet {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_replication_set_input::Builder,
    }
    impl UpdateReplicationSet {
        /// Creates a new `UpdateReplicationSet`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateReplicationSet,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateReplicationSetError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateReplicationSetOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateReplicationSetError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the replication set you're updating.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the replication set you're updating.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_arn(input);
            self
        }
        /// Appends an item to `actions`.
        ///
        /// To override the contents of this collection use [`set_actions`](Self::set_actions).
        ///
        /// <p>An action to add or delete a Region.</p>
        pub fn actions(mut self, input: crate::model::UpdateReplicationSetAction) -> Self {
            self.inner = self.inner.actions(input);
            self
        }
        /// <p>An action to add or delete a Region.</p>
        pub fn set_actions(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::UpdateReplicationSetAction>>,
        ) -> Self {
            self.inner = self.inner.set_actions(input);
            self
        }
        /// <p>A token that ensures that the operation is called only once with the specified details.</p>
        pub fn client_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.client_token(input.into());
            self
        }
        /// <p>A token that ensures that the operation is called only once with the specified details.</p>
        pub fn set_client_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_client_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateResponsePlan`.
    ///
    /// <p>Updates the specified response plan.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateResponsePlan {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_response_plan_input::Builder,
    }
    impl UpdateResponsePlan {
        /// Creates a new `UpdateResponsePlan`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateResponsePlan,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateResponsePlanError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateResponsePlanOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateResponsePlanError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>A token ensuring that the operation is called only once with the specified details.</p>
        pub fn client_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.client_token(input.into());
            self
        }
        /// <p>A token ensuring that the operation is called only once with the specified details.</p>
        pub fn set_client_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_client_token(input);
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the response plan.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_arn(input);
            self
        }
        /// <p>The long format name of the response plan. The display name can't contain spaces.</p>
        pub fn display_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.display_name(input.into());
            self
        }
        /// <p>The long format name of the response plan. The display name can't contain spaces.</p>
        pub fn set_display_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_display_name(input);
            self
        }
        /// <p>The short format name of the incident. The title can't contain spaces.</p>
        pub fn incident_template_title(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.incident_template_title(input.into());
            self
        }
        /// <p>The short format name of the incident. The title can't contain spaces.</p>
        pub fn set_incident_template_title(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_incident_template_title(input);
            self
        }
        /// <p>Defines the impact to the customers. Providing an impact overwrites the impact provided by a response plan.</p>
        /// <p class="title"> <b>Possible impacts:</b> </p>
        /// <ul>
        /// <li> <p> <code>5</code> - Severe impact</p> </li>
        /// <li> <p> <code>4</code> - High impact</p> </li>
        /// <li> <p> <code>3</code> - Medium impact</p> </li>
        /// <li> <p> <code>2</code> - Low impact</p> </li>
        /// <li> <p> <code>1</code> - No impact</p> </li>
        /// </ul>
        pub fn incident_template_impact(mut self, input: i32) -> Self {
            self.inner = self.inner.incident_template_impact(input);
            self
        }
        /// <p>Defines the impact to the customers. Providing an impact overwrites the impact provided by a response plan.</p>
        /// <p class="title"> <b>Possible impacts:</b> </p>
        /// <ul>
        /// <li> <p> <code>5</code> - Severe impact</p> </li>
        /// <li> <p> <code>4</code> - High impact</p> </li>
        /// <li> <p> <code>3</code> - Medium impact</p> </li>
        /// <li> <p> <code>2</code> - Low impact</p> </li>
        /// <li> <p> <code>1</code> - No impact</p> </li>
        /// </ul>
        pub fn set_incident_template_impact(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_incident_template_impact(input);
            self
        }
        /// <p>A brief summary of the incident. This typically contains what has happened, what's currently happening, and next steps.</p>
        pub fn incident_template_summary(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.incident_template_summary(input.into());
            self
        }
        /// <p>A brief summary of the incident. This typically contains what has happened, what's currently happening, and next steps.</p>
        pub fn set_incident_template_summary(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_incident_template_summary(input);
            self
        }
        /// <p>The string Incident Manager uses to prevent duplicate incidents from being created by the same incident in the same account.</p>
        pub fn incident_template_dedupe_string(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.incident_template_dedupe_string(input.into());
            self
        }
        /// <p>The string Incident Manager uses to prevent duplicate incidents from being created by the same incident in the same account.</p>
        pub fn set_incident_template_dedupe_string(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_incident_template_dedupe_string(input);
            self
        }
        /// Appends an item to `incidentTemplateNotificationTargets`.
        ///
        /// To override the contents of this collection use [`set_incident_template_notification_targets`](Self::set_incident_template_notification_targets).
        ///
        /// <p>The Amazon SNS targets that are notified when updates are made to an incident.</p>
        pub fn incident_template_notification_targets(
            mut self,
            input: crate::model::NotificationTargetItem,
        ) -> Self {
            self.inner = self.inner.incident_template_notification_targets(input);
            self
        }
        /// <p>The Amazon SNS targets that are notified when updates are made to an incident.</p>
        pub fn set_incident_template_notification_targets(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::NotificationTargetItem>>,
        ) -> Self {
            self.inner = self.inner.set_incident_template_notification_targets(input);
            self
        }
        /// <p>The Chatbot chat channel used for collaboration during an incident.</p>
        /// <p>Use the empty structure to remove the chat channel from the response plan.</p>
        pub fn chat_channel(mut self, input: crate::model::ChatChannel) -> Self {
            self.inner = self.inner.chat_channel(input);
            self
        }
        /// <p>The Chatbot chat channel used for collaboration during an incident.</p>
        /// <p>Use the empty structure to remove the chat channel from the response plan.</p>
        pub fn set_chat_channel(
            mut self,
            input: std::option::Option<crate::model::ChatChannel>,
        ) -> Self {
            self.inner = self.inner.set_chat_channel(input);
            self
        }
        /// Appends an item to `engagements`.
        ///
        /// To override the contents of this collection use [`set_engagements`](Self::set_engagements).
        ///
        /// <p>The Amazon Resource Name (ARN) for the contacts and escalation plans that the response plan engages during an incident.</p>
        pub fn engagements(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.engagements(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) for the contacts and escalation plans that the response plan engages during an incident.</p>
        pub fn set_engagements(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_engagements(input);
            self
        }
        /// Appends an item to `actions`.
        ///
        /// To override the contents of this collection use [`set_actions`](Self::set_actions).
        ///
        /// <p>The actions that this response plan takes at the beginning of an incident.</p>
        pub fn actions(mut self, input: crate::model::Action) -> Self {
            self.inner = self.inner.actions(input);
            self
        }
        /// <p>The actions that this response plan takes at the beginning of an incident.</p>
        pub fn set_actions(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Action>>,
        ) -> Self {
            self.inner = self.inner.set_actions(input);
            self
        }
        /// Adds a key-value pair to `incidentTemplateTags`.
        ///
        /// To override the contents of this collection use [`set_incident_template_tags`](Self::set_incident_template_tags).
        ///
        /// <p>Tags to assign to the template. When the <code>StartIncident</code> API action is called, Incident Manager assigns the tags specified in the template to the incident. To call this action, you must also have permission to call the <code>TagResource</code> API action for the incident record resource.</p>
        pub fn incident_template_tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.incident_template_tags(k.into(), v.into());
            self
        }
        /// <p>Tags to assign to the template. When the <code>StartIncident</code> API action is called, Incident Manager assigns the tags specified in the template to the incident. To call this action, you must also have permission to call the <code>TagResource</code> API action for the incident record resource.</p>
        pub fn set_incident_template_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_incident_template_tags(input);
            self
        }
        /// Appends an item to `integrations`.
        ///
        /// To override the contents of this collection use [`set_integrations`](Self::set_integrations).
        ///
        /// <p>Information about third-party services integrated into the response plan.</p>
        pub fn integrations(mut self, input: crate::model::Integration) -> Self {
            self.inner = self.inner.integrations(input);
            self
        }
        /// <p>Information about third-party services integrated into the response plan.</p>
        pub fn set_integrations(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Integration>>,
        ) -> Self {
            self.inner = self.inner.set_integrations(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateTimelineEvent`.
    ///
    /// <p>Updates a timeline event. You can update events of type <code>Custom Event</code>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateTimelineEvent {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_timeline_event_input::Builder,
    }
    impl UpdateTimelineEvent {
        /// Creates a new `UpdateTimelineEvent`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateTimelineEvent,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateTimelineEventError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateTimelineEventOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateTimelineEventError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>A token ensuring that the operation is called only once with the specified details.</p>
        pub fn client_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.client_token(input.into());
            self
        }
        /// <p>A token ensuring that the operation is called only once with the specified details.</p>
        pub fn set_client_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_client_token(input);
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the incident that includes the timeline event.</p>
        pub fn incident_record_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.incident_record_arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the incident that includes the timeline event.</p>
        pub fn set_incident_record_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_incident_record_arn(input);
            self
        }
        /// <p>The ID of the event you are updating. You can find this by using <code>ListTimelineEvents</code>.</p>
        pub fn event_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.event_id(input.into());
            self
        }
        /// <p>The ID of the event you are updating. You can find this by using <code>ListTimelineEvents</code>.</p>
        pub fn set_event_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_event_id(input);
            self
        }
        /// <p>The time that the event occurred.</p>
        pub fn event_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.inner = self.inner.event_time(input);
            self
        }
        /// <p>The time that the event occurred.</p>
        pub fn set_event_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.inner = self.inner.set_event_time(input);
            self
        }
        /// <p>The type of the event. You can update events of type <code>Custom Event</code>.</p>
        pub fn event_type(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.event_type(input.into());
            self
        }
        /// <p>The type of the event. You can update events of type <code>Custom Event</code>.</p>
        pub fn set_event_type(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_event_type(input);
            self
        }
        /// <p>A short description of the event.</p>
        pub fn event_data(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.event_data(input.into());
            self
        }
        /// <p>A short description of the event.</p>
        pub fn set_event_data(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_event_data(input);
            self
        }
        /// Appends an item to `eventReferences`.
        ///
        /// To override the contents of this collection use [`set_event_references`](Self::set_event_references).
        ///
        /// <p>Updates all existing references in a <code>TimelineEvent</code>. A reference can be an Amazon Web Services resource involved in the incident or in some way associated with it. When you specify a reference, you enter the Amazon Resource Name (ARN) of the resource. You can also specify a related item. As an example, you could specify the ARN of an Amazon DynamoDB (DynamoDB) table. The table for this example is the resource. You could also specify a Amazon CloudWatch metric for that table. The metric is the related item.</p> <important>
        /// <p>This update action overrides all existing references. If you want to keep existing references, you must specify them in the call. If you don't, this action removes them and enters only new references.</p>
        /// </important>
        pub fn event_references(mut self, input: crate::model::EventReference) -> Self {
            self.inner = self.inner.event_references(input);
            self
        }
        /// <p>Updates all existing references in a <code>TimelineEvent</code>. A reference can be an Amazon Web Services resource involved in the incident or in some way associated with it. When you specify a reference, you enter the Amazon Resource Name (ARN) of the resource. You can also specify a related item. As an example, you could specify the ARN of an Amazon DynamoDB (DynamoDB) table. The table for this example is the resource. You could also specify a Amazon CloudWatch metric for that table. The metric is the related item.</p> <important>
        /// <p>This update action overrides all existing references. If you want to keep existing references, you must specify them in the call. If you don't, this action removes them and enters only new references.</p>
        /// </important>
        pub fn set_event_references(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::EventReference>>,
        ) -> Self {
            self.inner = self.inner.set_event_references(input);
            self
        }
    }
}

impl Client {
    /// Creates a new client from an [SDK Config](aws_types::sdk_config::SdkConfig).
    ///
    /// # Panics
    ///
    /// - This method will panic if the `sdk_config` is missing an async sleep implementation. If you experience this panic, set
    ///     the `sleep_impl` on the Config passed into this function to fix it.
    /// - This method will panic if the `sdk_config` is missing an HTTP connector. If you experience this panic, set the
    ///     `http_connector` on the Config passed into this function to fix it.
    pub fn new(sdk_config: &aws_types::sdk_config::SdkConfig) -> Self {
        Self::from_conf(sdk_config.into())
    }

    /// Creates a new client from the service [`Config`](crate::Config).
    ///
    /// # Panics
    ///
    /// - This method will panic if the `conf` is missing an async sleep implementation. If you experience this panic, set
    ///     the `sleep_impl` on the Config passed into this function to fix it.
    /// - This method will panic if the `conf` is missing an HTTP connector. If you experience this panic, set the
    ///     `http_connector` on the Config passed into this function to fix it.
    pub fn from_conf(conf: crate::Config) -> Self {
        let retry_config = conf
            .retry_config()
            .cloned()
            .unwrap_or_else(aws_smithy_types::retry::RetryConfig::disabled);
        let timeout_config = conf
            .timeout_config()
            .cloned()
            .unwrap_or_else(aws_smithy_types::timeout::TimeoutConfig::disabled);
        let sleep_impl = conf.sleep_impl();
        if (retry_config.has_retry() || timeout_config.has_timeouts()) && sleep_impl.is_none() {
            panic!("An async sleep implementation is required for retries or timeouts to work. \
                                    Set the `sleep_impl` on the Config passed into this function to fix this panic.");
        }

        let connector = conf.http_connector().and_then(|c| {
            let timeout_config = conf
                .timeout_config()
                .cloned()
                .unwrap_or_else(aws_smithy_types::timeout::TimeoutConfig::disabled);
            let connector_settings =
                aws_smithy_client::http_connector::ConnectorSettings::from_timeout_config(
                    &timeout_config,
                );
            c.connector(&connector_settings, conf.sleep_impl())
        });

        let builder = aws_smithy_client::Builder::new();

        let builder = match connector {
            // Use provided connector
            Some(c) => builder.connector(c),
            None => {
                #[cfg(any(feature = "rustls", feature = "native-tls"))]
                {
                    // Use default connector based on enabled features
                    builder.dyn_https_connector(
                        aws_smithy_client::http_connector::ConnectorSettings::from_timeout_config(
                            &timeout_config,
                        ),
                    )
                }
                #[cfg(not(any(feature = "rustls", feature = "native-tls")))]
                {
                    panic!("No HTTP connector was available. Enable the `rustls` or `native-tls` crate feature or set a connector to fix this.");
                }
            }
        };
        let mut builder = builder
            .middleware(aws_smithy_client::erase::DynMiddleware::new(
                crate::middleware::DefaultMiddleware::new(),
            ))
            .retry_config(retry_config.into())
            .operation_timeout_config(timeout_config.into());
        builder.set_sleep_impl(sleep_impl);
        let client = builder.build();

        Self {
            handle: std::sync::Arc::new(Handle { client, conf }),
        }
    }
}