aws_sdk_emr/operation/terminate_job_flows/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::terminate_job_flows::_terminate_job_flows_output::TerminateJobFlowsOutputBuilder;
3
4pub use crate::operation::terminate_job_flows::_terminate_job_flows_input::TerminateJobFlowsInputBuilder;
5
6impl crate::operation::terminate_job_flows::builders::TerminateJobFlowsInputBuilder {
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::terminate_job_flows::TerminateJobFlowsOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::terminate_job_flows::TerminateJobFlowsError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.terminate_job_flows();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `TerminateJobFlows`.
24///
25/// <p>TerminateJobFlows shuts a list of clusters (job flows) down. When a job flow is shut down, any step not yet completed is canceled and the Amazon EC2 instances on which the cluster is running are stopped. Any log files not already saved are uploaded to Amazon S3 if a LogUri was specified when the cluster was created.</p>
26/// <p>The maximum number of clusters allowed is 10. The call to <code>TerminateJobFlows</code> is asynchronous. Depending on the configuration of the cluster, it may take up to 1-5 minutes for the cluster to completely terminate and release allocated resources, such as Amazon EC2 instances.</p>
27#[derive(::std::clone::Clone, ::std::fmt::Debug)]
28pub struct TerminateJobFlowsFluentBuilder {
29    handle: ::std::sync::Arc<crate::client::Handle>,
30    inner: crate::operation::terminate_job_flows::builders::TerminateJobFlowsInputBuilder,
31    config_override: ::std::option::Option<crate::config::Builder>,
32}
33impl
34    crate::client::customize::internal::CustomizableSend<
35        crate::operation::terminate_job_flows::TerminateJobFlowsOutput,
36        crate::operation::terminate_job_flows::TerminateJobFlowsError,
37    > for TerminateJobFlowsFluentBuilder
38{
39    fn send(
40        self,
41        config_override: crate::config::Builder,
42    ) -> crate::client::customize::internal::BoxFuture<
43        crate::client::customize::internal::SendResult<
44            crate::operation::terminate_job_flows::TerminateJobFlowsOutput,
45            crate::operation::terminate_job_flows::TerminateJobFlowsError,
46        >,
47    > {
48        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
49    }
50}
51impl TerminateJobFlowsFluentBuilder {
52    /// Creates a new `TerminateJobFlowsFluentBuilder`.
53    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
54        Self {
55            handle,
56            inner: ::std::default::Default::default(),
57            config_override: ::std::option::Option::None,
58        }
59    }
60    /// Access the TerminateJobFlows as a reference.
61    pub fn as_input(&self) -> &crate::operation::terminate_job_flows::builders::TerminateJobFlowsInputBuilder {
62        &self.inner
63    }
64    /// Sends the request and returns the response.
65    ///
66    /// If an error occurs, an `SdkError` will be returned with additional details that
67    /// can be matched against.
68    ///
69    /// By default, any retryable failures will be retried twice. Retry behavior
70    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
71    /// set when configuring the client.
72    pub async fn send(
73        self,
74    ) -> ::std::result::Result<
75        crate::operation::terminate_job_flows::TerminateJobFlowsOutput,
76        ::aws_smithy_runtime_api::client::result::SdkError<
77            crate::operation::terminate_job_flows::TerminateJobFlowsError,
78            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
79        >,
80    > {
81        let input = self
82            .inner
83            .build()
84            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
85        let runtime_plugins = crate::operation::terminate_job_flows::TerminateJobFlows::operation_runtime_plugins(
86            self.handle.runtime_plugins.clone(),
87            &self.handle.conf,
88            self.config_override,
89        );
90        crate::operation::terminate_job_flows::TerminateJobFlows::orchestrate(&runtime_plugins, input).await
91    }
92
93    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
94    pub fn customize(
95        self,
96    ) -> crate::client::customize::CustomizableOperation<
97        crate::operation::terminate_job_flows::TerminateJobFlowsOutput,
98        crate::operation::terminate_job_flows::TerminateJobFlowsError,
99        Self,
100    > {
101        crate::client::customize::CustomizableOperation::new(self)
102    }
103    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
104        self.set_config_override(::std::option::Option::Some(config_override.into()));
105        self
106    }
107
108    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
109        self.config_override = config_override;
110        self
111    }
112    ///
113    /// Appends an item to `JobFlowIds`.
114    ///
115    /// To override the contents of this collection use [`set_job_flow_ids`](Self::set_job_flow_ids).
116    ///
117    /// <p>A list of job flows to be shut down.</p>
118    pub fn job_flow_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
119        self.inner = self.inner.job_flow_ids(input.into());
120        self
121    }
122    /// <p>A list of job flows to be shut down.</p>
123    pub fn set_job_flow_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
124        self.inner = self.inner.set_job_flow_ids(input);
125        self
126    }
127    /// <p>A list of job flows to be shut down.</p>
128    pub fn get_job_flow_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
129        self.inner.get_job_flow_ids()
130    }
131}