aws_sdk_fms/operation/delete_policy/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::delete_policy::_delete_policy_output::DeletePolicyOutputBuilder;
3
4pub use crate::operation::delete_policy::_delete_policy_input::DeletePolicyInputBuilder;
5
6impl crate::operation::delete_policy::builders::DeletePolicyInputBuilder {
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::delete_policy::DeletePolicyOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::delete_policy::DeletePolicyError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.delete_policy();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `DeletePolicy`.
24///
25/// <p>Permanently deletes an Firewall Manager policy.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct DeletePolicyFluentBuilder {
28 handle: ::std::sync::Arc<crate::client::Handle>,
29 inner: crate::operation::delete_policy::builders::DeletePolicyInputBuilder,
30 config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33 crate::client::customize::internal::CustomizableSend<
34 crate::operation::delete_policy::DeletePolicyOutput,
35 crate::operation::delete_policy::DeletePolicyError,
36 > for DeletePolicyFluentBuilder
37{
38 fn send(
39 self,
40 config_override: crate::config::Builder,
41 ) -> crate::client::customize::internal::BoxFuture<
42 crate::client::customize::internal::SendResult<
43 crate::operation::delete_policy::DeletePolicyOutput,
44 crate::operation::delete_policy::DeletePolicyError,
45 >,
46 > {
47 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48 }
49}
50impl DeletePolicyFluentBuilder {
51 /// Creates a new `DeletePolicyFluentBuilder`.
52 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53 Self {
54 handle,
55 inner: ::std::default::Default::default(),
56 config_override: ::std::option::Option::None,
57 }
58 }
59 /// Access the DeletePolicy as a reference.
60 pub fn as_input(&self) -> &crate::operation::delete_policy::builders::DeletePolicyInputBuilder {
61 &self.inner
62 }
63 /// Sends the request and returns the response.
64 ///
65 /// If an error occurs, an `SdkError` will be returned with additional details that
66 /// can be matched against.
67 ///
68 /// By default, any retryable failures will be retried twice. Retry behavior
69 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70 /// set when configuring the client.
71 pub async fn send(
72 self,
73 ) -> ::std::result::Result<
74 crate::operation::delete_policy::DeletePolicyOutput,
75 ::aws_smithy_runtime_api::client::result::SdkError<
76 crate::operation::delete_policy::DeletePolicyError,
77 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78 >,
79 > {
80 let input = self
81 .inner
82 .build()
83 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84 let runtime_plugins = crate::operation::delete_policy::DeletePolicy::operation_runtime_plugins(
85 self.handle.runtime_plugins.clone(),
86 &self.handle.conf,
87 self.config_override,
88 );
89 crate::operation::delete_policy::DeletePolicy::orchestrate(&runtime_plugins, input).await
90 }
91
92 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93 pub fn customize(
94 self,
95 ) -> crate::client::customize::CustomizableOperation<
96 crate::operation::delete_policy::DeletePolicyOutput,
97 crate::operation::delete_policy::DeletePolicyError,
98 Self,
99 > {
100 crate::client::customize::CustomizableOperation::new(self)
101 }
102 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103 self.set_config_override(::std::option::Option::Some(config_override.into()));
104 self
105 }
106
107 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108 self.config_override = config_override;
109 self
110 }
111 /// <p>The ID of the policy that you want to delete. You can retrieve this ID from <code>PutPolicy</code> and <code>ListPolicies</code>.</p>
112 pub fn policy_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113 self.inner = self.inner.policy_id(input.into());
114 self
115 }
116 /// <p>The ID of the policy that you want to delete. You can retrieve this ID from <code>PutPolicy</code> and <code>ListPolicies</code>.</p>
117 pub fn set_policy_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118 self.inner = self.inner.set_policy_id(input);
119 self
120 }
121 /// <p>The ID of the policy that you want to delete. You can retrieve this ID from <code>PutPolicy</code> and <code>ListPolicies</code>.</p>
122 pub fn get_policy_id(&self) -> &::std::option::Option<::std::string::String> {
123 self.inner.get_policy_id()
124 }
125 /// <p>If <code>True</code>, the request performs cleanup according to the policy type.</p>
126 /// <p>For WAF and Shield Advanced policies, the cleanup does the following:</p>
127 /// <ul>
128 /// <li>
129 /// <p>Deletes rule groups created by Firewall Manager</p></li>
130 /// <li>
131 /// <p>Removes web ACLs from in-scope resources</p></li>
132 /// <li>
133 /// <p>Deletes web ACLs that contain no rules or rule groups</p></li>
134 /// </ul>
135 /// <p>For security group policies, the cleanup does the following for each security group in the policy:</p>
136 /// <ul>
137 /// <li>
138 /// <p>Disassociates the security group from in-scope resources</p></li>
139 /// <li>
140 /// <p>Deletes the security group if it was created through Firewall Manager and if it's no longer associated with any resources through another policy</p></li>
141 /// </ul><note>
142 /// <p>For security group common policies, even if set to <code>False</code>, Firewall Manager deletes all security groups created by Firewall Manager that aren't associated with any other resources through another policy.</p>
143 /// </note>
144 /// <p>After the cleanup, in-scope resources are no longer protected by web ACLs in this policy. Protection of out-of-scope resources remains unchanged. Scope is determined by tags that you create and accounts that you associate with the policy. When creating the policy, if you specify that only resources in specific accounts or with specific tags are in scope of the policy, those accounts and resources are handled by the policy. All others are out of scope. If you don't specify tags or accounts, all resources are in scope.</p>
145 pub fn delete_all_policy_resources(mut self, input: bool) -> Self {
146 self.inner = self.inner.delete_all_policy_resources(input);
147 self
148 }
149 /// <p>If <code>True</code>, the request performs cleanup according to the policy type.</p>
150 /// <p>For WAF and Shield Advanced policies, the cleanup does the following:</p>
151 /// <ul>
152 /// <li>
153 /// <p>Deletes rule groups created by Firewall Manager</p></li>
154 /// <li>
155 /// <p>Removes web ACLs from in-scope resources</p></li>
156 /// <li>
157 /// <p>Deletes web ACLs that contain no rules or rule groups</p></li>
158 /// </ul>
159 /// <p>For security group policies, the cleanup does the following for each security group in the policy:</p>
160 /// <ul>
161 /// <li>
162 /// <p>Disassociates the security group from in-scope resources</p></li>
163 /// <li>
164 /// <p>Deletes the security group if it was created through Firewall Manager and if it's no longer associated with any resources through another policy</p></li>
165 /// </ul><note>
166 /// <p>For security group common policies, even if set to <code>False</code>, Firewall Manager deletes all security groups created by Firewall Manager that aren't associated with any other resources through another policy.</p>
167 /// </note>
168 /// <p>After the cleanup, in-scope resources are no longer protected by web ACLs in this policy. Protection of out-of-scope resources remains unchanged. Scope is determined by tags that you create and accounts that you associate with the policy. When creating the policy, if you specify that only resources in specific accounts or with specific tags are in scope of the policy, those accounts and resources are handled by the policy. All others are out of scope. If you don't specify tags or accounts, all resources are in scope.</p>
169 pub fn set_delete_all_policy_resources(mut self, input: ::std::option::Option<bool>) -> Self {
170 self.inner = self.inner.set_delete_all_policy_resources(input);
171 self
172 }
173 /// <p>If <code>True</code>, the request performs cleanup according to the policy type.</p>
174 /// <p>For WAF and Shield Advanced policies, the cleanup does the following:</p>
175 /// <ul>
176 /// <li>
177 /// <p>Deletes rule groups created by Firewall Manager</p></li>
178 /// <li>
179 /// <p>Removes web ACLs from in-scope resources</p></li>
180 /// <li>
181 /// <p>Deletes web ACLs that contain no rules or rule groups</p></li>
182 /// </ul>
183 /// <p>For security group policies, the cleanup does the following for each security group in the policy:</p>
184 /// <ul>
185 /// <li>
186 /// <p>Disassociates the security group from in-scope resources</p></li>
187 /// <li>
188 /// <p>Deletes the security group if it was created through Firewall Manager and if it's no longer associated with any resources through another policy</p></li>
189 /// </ul><note>
190 /// <p>For security group common policies, even if set to <code>False</code>, Firewall Manager deletes all security groups created by Firewall Manager that aren't associated with any other resources through another policy.</p>
191 /// </note>
192 /// <p>After the cleanup, in-scope resources are no longer protected by web ACLs in this policy. Protection of out-of-scope resources remains unchanged. Scope is determined by tags that you create and accounts that you associate with the policy. When creating the policy, if you specify that only resources in specific accounts or with specific tags are in scope of the policy, those accounts and resources are handled by the policy. All others are out of scope. If you don't specify tags or accounts, all resources are in scope.</p>
193 pub fn get_delete_all_policy_resources(&self) -> &::std::option::Option<bool> {
194 self.inner.get_delete_all_policy_resources()
195 }
196}