aws_sdk_ssm/operation/update_service_setting/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::update_service_setting::_update_service_setting_output::UpdateServiceSettingOutputBuilder;
3
4pub use crate::operation::update_service_setting::_update_service_setting_input::UpdateServiceSettingInputBuilder;
5
6impl crate::operation::update_service_setting::builders::UpdateServiceSettingInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::update_service_setting::UpdateServiceSettingOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::update_service_setting::UpdateServiceSettingError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.update_service_setting();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `UpdateServiceSetting`.
24///
25/// <p><code>ServiceSetting</code> is an account-level setting for an Amazon Web Services service. This setting defines how a user interacts with or uses a service or a feature of a service. For example, if an Amazon Web Services service charges money to the account based on feature or service usage, then the Amazon Web Services service team might create a default setting of "false". This means the user can't use this feature unless they change the setting to "true" and intentionally opt in for a paid feature.</p>
26/// <p>Services map a <code>SettingId</code> object to a setting value. Amazon Web Services services teams define the default value for a <code>SettingId</code>. You can't create a new <code>SettingId</code>, but you can overwrite the default value if you have the <code>ssm:UpdateServiceSetting</code> permission for the setting. Use the <code>GetServiceSetting</code> API operation to view the current value. Or, use the <code>ResetServiceSetting</code> to change the value back to the original value defined by the Amazon Web Services service team.</p>
27/// <p>Update the service setting for the account.</p>
28#[derive(::std::clone::Clone, ::std::fmt::Debug)]
29pub struct UpdateServiceSettingFluentBuilder {
30    handle: ::std::sync::Arc<crate::client::Handle>,
31    inner: crate::operation::update_service_setting::builders::UpdateServiceSettingInputBuilder,
32    config_override: ::std::option::Option<crate::config::Builder>,
33}
34impl
35    crate::client::customize::internal::CustomizableSend<
36        crate::operation::update_service_setting::UpdateServiceSettingOutput,
37        crate::operation::update_service_setting::UpdateServiceSettingError,
38    > for UpdateServiceSettingFluentBuilder
39{
40    fn send(
41        self,
42        config_override: crate::config::Builder,
43    ) -> crate::client::customize::internal::BoxFuture<
44        crate::client::customize::internal::SendResult<
45            crate::operation::update_service_setting::UpdateServiceSettingOutput,
46            crate::operation::update_service_setting::UpdateServiceSettingError,
47        >,
48    > {
49        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
50    }
51}
52impl UpdateServiceSettingFluentBuilder {
53    /// Creates a new `UpdateServiceSettingFluentBuilder`.
54    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
55        Self {
56            handle,
57            inner: ::std::default::Default::default(),
58            config_override: ::std::option::Option::None,
59        }
60    }
61    /// Access the UpdateServiceSetting as a reference.
62    pub fn as_input(&self) -> &crate::operation::update_service_setting::builders::UpdateServiceSettingInputBuilder {
63        &self.inner
64    }
65    /// Sends the request and returns the response.
66    ///
67    /// If an error occurs, an `SdkError` will be returned with additional details that
68    /// can be matched against.
69    ///
70    /// By default, any retryable failures will be retried twice. Retry behavior
71    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
72    /// set when configuring the client.
73    pub async fn send(
74        self,
75    ) -> ::std::result::Result<
76        crate::operation::update_service_setting::UpdateServiceSettingOutput,
77        ::aws_smithy_runtime_api::client::result::SdkError<
78            crate::operation::update_service_setting::UpdateServiceSettingError,
79            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
80        >,
81    > {
82        let input = self
83            .inner
84            .build()
85            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
86        let runtime_plugins = crate::operation::update_service_setting::UpdateServiceSetting::operation_runtime_plugins(
87            self.handle.runtime_plugins.clone(),
88            &self.handle.conf,
89            self.config_override,
90        );
91        crate::operation::update_service_setting::UpdateServiceSetting::orchestrate(&runtime_plugins, input).await
92    }
93
94    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
95    pub fn customize(
96        self,
97    ) -> crate::client::customize::CustomizableOperation<
98        crate::operation::update_service_setting::UpdateServiceSettingOutput,
99        crate::operation::update_service_setting::UpdateServiceSettingError,
100        Self,
101    > {
102        crate::client::customize::CustomizableOperation::new(self)
103    }
104    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
105        self.set_config_override(::std::option::Option::Some(config_override.into()));
106        self
107    }
108
109    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
110        self.config_override = config_override;
111        self
112    }
113    /// <p>The Amazon Resource Name (ARN) of the service setting to update. For example, <code>arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/parameter-store/high-throughput-enabled</code>. The setting ID can be one of the following.</p>
114    /// <ul>
115    /// <li>
116    /// <p><code>/ssm/appmanager/appmanager-enabled</code></p></li>
117    /// <li>
118    /// <p><code>/ssm/automation/customer-script-log-destination</code></p></li>
119    /// <li>
120    /// <p><code>/ssm/automation/customer-script-log-group-name</code></p></li>
121    /// <li>
122    /// <p>/ssm/automation/enable-adaptive-concurrency</p></li>
123    /// <li>
124    /// <p><code>/ssm/documents/console/public-sharing-permission</code></p></li>
125    /// <li>
126    /// <p><code>/ssm/managed-instance/activation-tier</code></p></li>
127    /// <li>
128    /// <p><code>/ssm/managed-instance/default-ec2-instance-management-role</code></p></li>
129    /// <li>
130    /// <p><code>/ssm/opsinsights/opscenter</code></p></li>
131    /// <li>
132    /// <p><code>/ssm/parameter-store/default-parameter-tier</code></p></li>
133    /// <li>
134    /// <p><code>/ssm/parameter-store/high-throughput-enabled</code></p></li>
135    /// </ul><note>
136    /// <p>Permissions to update the <code>/ssm/managed-instance/default-ec2-instance-management-role</code> setting should only be provided to administrators. Implement least privilege access when allowing individuals to configure or modify the Default Host Management Configuration.</p>
137    /// </note>
138    pub fn setting_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
139        self.inner = self.inner.setting_id(input.into());
140        self
141    }
142    /// <p>The Amazon Resource Name (ARN) of the service setting to update. For example, <code>arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/parameter-store/high-throughput-enabled</code>. The setting ID can be one of the following.</p>
143    /// <ul>
144    /// <li>
145    /// <p><code>/ssm/appmanager/appmanager-enabled</code></p></li>
146    /// <li>
147    /// <p><code>/ssm/automation/customer-script-log-destination</code></p></li>
148    /// <li>
149    /// <p><code>/ssm/automation/customer-script-log-group-name</code></p></li>
150    /// <li>
151    /// <p>/ssm/automation/enable-adaptive-concurrency</p></li>
152    /// <li>
153    /// <p><code>/ssm/documents/console/public-sharing-permission</code></p></li>
154    /// <li>
155    /// <p><code>/ssm/managed-instance/activation-tier</code></p></li>
156    /// <li>
157    /// <p><code>/ssm/managed-instance/default-ec2-instance-management-role</code></p></li>
158    /// <li>
159    /// <p><code>/ssm/opsinsights/opscenter</code></p></li>
160    /// <li>
161    /// <p><code>/ssm/parameter-store/default-parameter-tier</code></p></li>
162    /// <li>
163    /// <p><code>/ssm/parameter-store/high-throughput-enabled</code></p></li>
164    /// </ul><note>
165    /// <p>Permissions to update the <code>/ssm/managed-instance/default-ec2-instance-management-role</code> setting should only be provided to administrators. Implement least privilege access when allowing individuals to configure or modify the Default Host Management Configuration.</p>
166    /// </note>
167    pub fn set_setting_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
168        self.inner = self.inner.set_setting_id(input);
169        self
170    }
171    /// <p>The Amazon Resource Name (ARN) of the service setting to update. For example, <code>arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/parameter-store/high-throughput-enabled</code>. The setting ID can be one of the following.</p>
172    /// <ul>
173    /// <li>
174    /// <p><code>/ssm/appmanager/appmanager-enabled</code></p></li>
175    /// <li>
176    /// <p><code>/ssm/automation/customer-script-log-destination</code></p></li>
177    /// <li>
178    /// <p><code>/ssm/automation/customer-script-log-group-name</code></p></li>
179    /// <li>
180    /// <p>/ssm/automation/enable-adaptive-concurrency</p></li>
181    /// <li>
182    /// <p><code>/ssm/documents/console/public-sharing-permission</code></p></li>
183    /// <li>
184    /// <p><code>/ssm/managed-instance/activation-tier</code></p></li>
185    /// <li>
186    /// <p><code>/ssm/managed-instance/default-ec2-instance-management-role</code></p></li>
187    /// <li>
188    /// <p><code>/ssm/opsinsights/opscenter</code></p></li>
189    /// <li>
190    /// <p><code>/ssm/parameter-store/default-parameter-tier</code></p></li>
191    /// <li>
192    /// <p><code>/ssm/parameter-store/high-throughput-enabled</code></p></li>
193    /// </ul><note>
194    /// <p>Permissions to update the <code>/ssm/managed-instance/default-ec2-instance-management-role</code> setting should only be provided to administrators. Implement least privilege access when allowing individuals to configure or modify the Default Host Management Configuration.</p>
195    /// </note>
196    pub fn get_setting_id(&self) -> &::std::option::Option<::std::string::String> {
197        self.inner.get_setting_id()
198    }
199    /// <p>The new value to specify for the service setting. The following list specifies the available values for each setting.</p>
200    /// <ul>
201    /// <li>
202    /// <p>For <code>/ssm/appmanager/appmanager-enabled</code>, enter <code>True</code> or <code>False</code>.</p></li>
203    /// <li>
204    /// <p>For <code>/ssm/automation/customer-script-log-destination</code>, enter <code>CloudWatch</code>.</p></li>
205    /// <li>
206    /// <p>For <code>/ssm/automation/customer-script-log-group-name</code>, enter the name of an Amazon CloudWatch Logs log group.</p></li>
207    /// <li>
208    /// <p>For <code>/ssm/documents/console/public-sharing-permission</code>, enter <code>Enable</code> or <code>Disable</code>.</p></li>
209    /// <li>
210    /// <p>For <code>/ssm/managed-instance/activation-tier</code>, enter <code>standard</code> or <code>advanced</code>.</p></li>
211    /// <li>
212    /// <p>For <code>/ssm/managed-instance/default-ec2-instance-management-role</code>, enter the name of an IAM role.</p></li>
213    /// <li>
214    /// <p>For <code>/ssm/opsinsights/opscenter</code>, enter <code>Enabled</code> or <code>Disabled</code>.</p></li>
215    /// <li>
216    /// <p>For <code>/ssm/parameter-store/default-parameter-tier</code>, enter <code>Standard</code>, <code>Advanced</code>, or <code>Intelligent-Tiering</code></p></li>
217    /// <li>
218    /// <p>For <code>/ssm/parameter-store/high-throughput-enabled</code>, enter <code>true</code> or <code>false</code>.</p></li>
219    /// </ul>
220    pub fn setting_value(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
221        self.inner = self.inner.setting_value(input.into());
222        self
223    }
224    /// <p>The new value to specify for the service setting. The following list specifies the available values for each setting.</p>
225    /// <ul>
226    /// <li>
227    /// <p>For <code>/ssm/appmanager/appmanager-enabled</code>, enter <code>True</code> or <code>False</code>.</p></li>
228    /// <li>
229    /// <p>For <code>/ssm/automation/customer-script-log-destination</code>, enter <code>CloudWatch</code>.</p></li>
230    /// <li>
231    /// <p>For <code>/ssm/automation/customer-script-log-group-name</code>, enter the name of an Amazon CloudWatch Logs log group.</p></li>
232    /// <li>
233    /// <p>For <code>/ssm/documents/console/public-sharing-permission</code>, enter <code>Enable</code> or <code>Disable</code>.</p></li>
234    /// <li>
235    /// <p>For <code>/ssm/managed-instance/activation-tier</code>, enter <code>standard</code> or <code>advanced</code>.</p></li>
236    /// <li>
237    /// <p>For <code>/ssm/managed-instance/default-ec2-instance-management-role</code>, enter the name of an IAM role.</p></li>
238    /// <li>
239    /// <p>For <code>/ssm/opsinsights/opscenter</code>, enter <code>Enabled</code> or <code>Disabled</code>.</p></li>
240    /// <li>
241    /// <p>For <code>/ssm/parameter-store/default-parameter-tier</code>, enter <code>Standard</code>, <code>Advanced</code>, or <code>Intelligent-Tiering</code></p></li>
242    /// <li>
243    /// <p>For <code>/ssm/parameter-store/high-throughput-enabled</code>, enter <code>true</code> or <code>false</code>.</p></li>
244    /// </ul>
245    pub fn set_setting_value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
246        self.inner = self.inner.set_setting_value(input);
247        self
248    }
249    /// <p>The new value to specify for the service setting. The following list specifies the available values for each setting.</p>
250    /// <ul>
251    /// <li>
252    /// <p>For <code>/ssm/appmanager/appmanager-enabled</code>, enter <code>True</code> or <code>False</code>.</p></li>
253    /// <li>
254    /// <p>For <code>/ssm/automation/customer-script-log-destination</code>, enter <code>CloudWatch</code>.</p></li>
255    /// <li>
256    /// <p>For <code>/ssm/automation/customer-script-log-group-name</code>, enter the name of an Amazon CloudWatch Logs log group.</p></li>
257    /// <li>
258    /// <p>For <code>/ssm/documents/console/public-sharing-permission</code>, enter <code>Enable</code> or <code>Disable</code>.</p></li>
259    /// <li>
260    /// <p>For <code>/ssm/managed-instance/activation-tier</code>, enter <code>standard</code> or <code>advanced</code>.</p></li>
261    /// <li>
262    /// <p>For <code>/ssm/managed-instance/default-ec2-instance-management-role</code>, enter the name of an IAM role.</p></li>
263    /// <li>
264    /// <p>For <code>/ssm/opsinsights/opscenter</code>, enter <code>Enabled</code> or <code>Disabled</code>.</p></li>
265    /// <li>
266    /// <p>For <code>/ssm/parameter-store/default-parameter-tier</code>, enter <code>Standard</code>, <code>Advanced</code>, or <code>Intelligent-Tiering</code></p></li>
267    /// <li>
268    /// <p>For <code>/ssm/parameter-store/high-throughput-enabled</code>, enter <code>true</code> or <code>false</code>.</p></li>
269    /// </ul>
270    pub fn get_setting_value(&self) -> &::std::option::Option<::std::string::String> {
271        self.inner.get_setting_value()
272    }
273}