1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
    /// Constructs a fluent builder for the [`PutScalingPolicy`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::name) / [`set_name(Option<String>)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::set_name):<br>required: **true**<br><p>A descriptive label that is associated with a fleet's scaling policy. Policy names do not need to be unique. A fleet can have only one scaling policy with the same name.</p><br>
    ///   - [`fleet_id(impl Into<String>)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::fleet_id) / [`set_fleet_id(Option<String>)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::set_fleet_id):<br>required: **true**<br><p>A unique identifier for the fleet to apply this policy to. You can use either the fleet ID or ARN value. The fleet cannot be in any of the following statuses: ERROR or DELETING.</p><br>
    ///   - [`scaling_adjustment(i32)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::scaling_adjustment) / [`set_scaling_adjustment(Option<i32>)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::set_scaling_adjustment):<br>required: **false**<br><p>Amount of adjustment to make, based on the scaling adjustment type.</p><br>
    ///   - [`scaling_adjustment_type(ScalingAdjustmentType)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::scaling_adjustment_type) / [`set_scaling_adjustment_type(Option<ScalingAdjustmentType>)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::set_scaling_adjustment_type):<br>required: **false**<br><p>The type of adjustment to make to a fleet's instance count:</p> <ul>  <li>   <p><b>ChangeInCapacity</b> -- add (or subtract) the scaling adjustment value from the current instance count. Positive values scale up while negative values scale down.</p></li>  <li>   <p><b>ExactCapacity</b> -- set the instance count to the scaling adjustment value.</p></li>  <li>   <p><b>PercentChangeInCapacity</b> -- increase or reduce the current instance count by the scaling adjustment, read as a percentage. Positive values scale up while negative values scale down; for example, a value of "-10" scales the fleet down by 10%.</p></li> </ul><br>
    ///   - [`threshold(f64)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::threshold) / [`set_threshold(Option<f64>)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::set_threshold):<br>required: **false**<br><p>Metric value used to trigger a scaling event.</p><br>
    ///   - [`comparison_operator(ComparisonOperatorType)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::comparison_operator) / [`set_comparison_operator(Option<ComparisonOperatorType>)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::set_comparison_operator):<br>required: **false**<br><p>Comparison operator to use when measuring the metric against the threshold value.</p><br>
    ///   - [`evaluation_periods(i32)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::evaluation_periods) / [`set_evaluation_periods(Option<i32>)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::set_evaluation_periods):<br>required: **false**<br><p>Length of time (in minutes) the metric must be at or beyond the threshold before a scaling event is triggered.</p><br>
    ///   - [`metric_name(MetricName)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::metric_name) / [`set_metric_name(Option<MetricName>)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::set_metric_name):<br>required: **true**<br><p>Name of the Amazon GameLift-defined metric that is used to trigger a scaling adjustment. For detailed descriptions of fleet metrics, see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/monitoring-cloudwatch.html">Monitor Amazon GameLift with Amazon CloudWatch</a>.</p> <ul>  <li>   <p><b>ActivatingGameSessions</b> -- Game sessions in the process of being created.</p></li>  <li>   <p><b>ActiveGameSessions</b> -- Game sessions that are currently running.</p></li>  <li>   <p><b>ActiveInstances</b> -- Fleet instances that are currently running at least one game session.</p></li>  <li>   <p><b>AvailableGameSessions</b> -- Additional game sessions that fleet could host simultaneously, given current capacity.</p></li>  <li>   <p><b>AvailablePlayerSessions</b> -- Empty player slots in currently active game sessions. This includes game sessions that are not currently accepting players. Reserved player slots are not included.</p></li>  <li>   <p><b>CurrentPlayerSessions</b> -- Player slots in active game sessions that are being used by a player or are reserved for a player.</p></li>  <li>   <p><b>IdleInstances</b> -- Active instances that are currently hosting zero game sessions.</p></li>  <li>   <p><b>PercentAvailableGameSessions</b> -- Unused percentage of the total number of game sessions that a fleet could host simultaneously, given current capacity. Use this metric for a target-based scaling policy.</p></li>  <li>   <p><b>PercentIdleInstances</b> -- Percentage of the total number of active instances that are hosting zero game sessions.</p></li>  <li>   <p><b>QueueDepth</b> -- Pending game session placement requests, in any queue, where the current fleet is the top-priority destination.</p></li>  <li>   <p><b>WaitTime</b> -- Current wait time for pending game session placement requests, in any queue, where the current fleet is the top-priority destination.</p></li> </ul><br>
    ///   - [`policy_type(PolicyType)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::policy_type) / [`set_policy_type(Option<PolicyType>)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::set_policy_type):<br>required: **false**<br><p>The type of scaling policy to create. For a target-based policy, set the parameter <i>MetricName</i> to 'PercentAvailableGameSessions' and specify a <i>TargetConfiguration</i>. For a rule-based policy set the following parameters: <i>MetricName</i>, <i>ComparisonOperator</i>, <i>Threshold</i>, <i>EvaluationPeriods</i>, <i>ScalingAdjustmentType</i>, and <i>ScalingAdjustment</i>.</p><br>
    ///   - [`target_configuration(TargetConfiguration)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::target_configuration) / [`set_target_configuration(Option<TargetConfiguration>)`](crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::set_target_configuration):<br>required: **false**<br><p>An object that contains settings for a target-based scaling policy.</p><br>
    /// - On success, responds with [`PutScalingPolicyOutput`](crate::operation::put_scaling_policy::PutScalingPolicyOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::operation::put_scaling_policy::PutScalingPolicyOutput::name): <p>A descriptive label that is associated with a fleet's scaling policy. Policy names do not need to be unique.</p>
    /// - On failure, responds with [`SdkError<PutScalingPolicyError>`](crate::operation::put_scaling_policy::PutScalingPolicyError)
    pub fn put_scaling_policy(&self) -> crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder {
        crate::operation::put_scaling_policy::builders::PutScalingPolicyFluentBuilder::new(self.handle.clone())
    }
}