1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::modify_default_credit_specification::_modify_default_credit_specification_output::ModifyDefaultCreditSpecificationOutputBuilder;

pub use crate::operation::modify_default_credit_specification::_modify_default_credit_specification_input::ModifyDefaultCreditSpecificationInputBuilder;

/// Fluent builder constructing a request to `ModifyDefaultCreditSpecification`.
///
/// <p>Modifies the default credit option for CPU usage of burstable performance instances. The default credit option is set at the account level per Amazon Web Services Region, and is specified per instance family. All new burstable performance instances in the account launch using the default credit option.</p>
/// <p> <code>ModifyDefaultCreditSpecification</code> is an asynchronous operation, which works at an Amazon Web Services Region level and modifies the credit option for each Availability Zone. All zones in a Region are updated within five minutes. But if instances are launched during this operation, they might not get the new credit option until the zone is updated. To verify whether the update has occurred, you can call <code>GetDefaultCreditSpecification</code> and check <code>DefaultCreditSpecification</code> for updates.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable performance instances</a> in the <i>Amazon EC2 User Guide</i>.</p>
#[derive(std::clone::Clone, std::fmt::Debug)]
pub struct ModifyDefaultCreditSpecificationFluentBuilder {
                handle: std::sync::Arc<crate::client::Handle>,
                inner: crate::operation::modify_default_credit_specification::builders::ModifyDefaultCreditSpecificationInputBuilder
            }
impl ModifyDefaultCreditSpecificationFluentBuilder {
    /// Creates a new `ModifyDefaultCreditSpecification`.
    pub(crate) fn new(handle: std::sync::Arc<crate::client::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::client::customize::CustomizableOperation<crate::operation::modify_default_credit_specification::ModifyDefaultCreditSpecification, aws_http::retry::AwsResponseRetryClassifier,>,
                        aws_smithy_http::result::SdkError<crate::operation::modify_default_credit_specification::ModifyDefaultCreditSpecificationError>
    >{
        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::client::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::operation::modify_default_credit_specification::ModifyDefaultCreditSpecificationOutput, aws_smithy_http::result::SdkError<crate::operation::modify_default_credit_specification::ModifyDefaultCreditSpecificationError>>
                     {
        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>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
    pub fn dry_run(mut self, input: bool) -> Self {
        self.inner = self.inner.dry_run(input);
        self
    }
    /// <p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
    pub fn set_dry_run(mut self, input: std::option::Option<bool>) -> Self {
        self.inner = self.inner.set_dry_run(input);
        self
    }
    /// <p>The instance family.</p>
    pub fn instance_family(
        mut self,
        input: crate::types::UnlimitedSupportedInstanceFamily,
    ) -> Self {
        self.inner = self.inner.instance_family(input);
        self
    }
    /// <p>The instance family.</p>
    pub fn set_instance_family(
        mut self,
        input: std::option::Option<crate::types::UnlimitedSupportedInstanceFamily>,
    ) -> Self {
        self.inner = self.inner.set_instance_family(input);
        self
    }
    /// <p>The credit option for CPU usage of the instance family.</p>
    /// <p>Valid Values: <code>standard</code> | <code>unlimited</code> </p>
    pub fn cpu_credits(mut self, input: impl Into<std::string::String>) -> Self {
        self.inner = self.inner.cpu_credits(input.into());
        self
    }
    /// <p>The credit option for CPU usage of the instance family.</p>
    /// <p>Valid Values: <code>standard</code> | <code>unlimited</code> </p>
    pub fn set_cpu_credits(mut self, input: std::option::Option<std::string::String>) -> Self {
        self.inner = self.inner.set_cpu_credits(input);
        self
    }
}