// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`UpdateServiceLevelObjective`](crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`id(impl Into<String>)`](crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder::id) / [`set_id(Option<String>)`](crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder::set_id):<br>required: **true**<br><p>The Amazon Resource Name (ARN) or name of the service level objective that you want to update.</p><br>
/// - [`description(impl Into<String>)`](crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder::description) / [`set_description(Option<String>)`](crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder::set_description):<br>required: **false**<br><p>An optional description for the SLO.</p><br>
/// - [`sli_config(ServiceLevelIndicatorConfig)`](crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder::sli_config) / [`set_sli_config(Option<ServiceLevelIndicatorConfig>)`](crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder::set_sli_config):<br>required: **false**<br><p>If this SLO is a period-based SLO, this structure defines the information about what performance metric this SLO will monitor.</p><br>
/// - [`request_based_sli_config(RequestBasedServiceLevelIndicatorConfig)`](crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder::request_based_sli_config) / [`set_request_based_sli_config(Option<RequestBasedServiceLevelIndicatorConfig>)`](crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder::set_request_based_sli_config):<br>required: **false**<br><p>If this SLO is a request-based SLO, this structure defines the information about what performance metric this SLO will monitor.</p> <p>You can't specify both <code>SliConfig</code> and <code>RequestBasedSliConfig</code> in the same operation.</p><br>
/// - [`goal(Goal)`](crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder::goal) / [`set_goal(Option<Goal>)`](crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder::set_goal):<br>required: **false**<br><p>A structure that contains the attributes that determine the goal of the SLO. This includes the time period for evaluation and the attainment threshold.</p><br>
/// - [`burn_rate_configurations(BurnRateConfiguration)`](crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder::burn_rate_configurations) / [`set_burn_rate_configurations(Option<Vec::<BurnRateConfiguration>>)`](crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder::set_burn_rate_configurations):<br>required: **false**<br><p>Use this array to create <i>burn rates</i> for this SLO. Each burn rate is a metric that indicates how fast the service is consuming the error budget, relative to the attainment goal of the SLO.</p><br>
/// - [`auto_investigation_enabled(bool)`](crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder::auto_investigation_enabled) / [`set_auto_investigation_enabled(Option<bool>)`](crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder::set_auto_investigation_enabled):<br>required: **false**<br>Indicates whether DevOps Agent will automatically investigate this SLO when it is breached<br>
/// - On success, responds with [`UpdateServiceLevelObjectiveOutput`](crate::operation::update_service_level_objective::UpdateServiceLevelObjectiveOutput) with field(s):
/// - [`slo(Option<ServiceLevelObjective>)`](crate::operation::update_service_level_objective::UpdateServiceLevelObjectiveOutput::slo): <p>A structure that contains information about the SLO that you just updated.</p>
/// - On failure, responds with [`SdkError<UpdateServiceLevelObjectiveError>`](crate::operation::update_service_level_objective::UpdateServiceLevelObjectiveError)
pub fn update_service_level_objective(
&self,
) -> crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder {
crate::operation::update_service_level_objective::builders::UpdateServiceLevelObjectiveFluentBuilder::new(self.handle.clone())
}
}