aws_sdk_ssm/operation/describe_instance_information/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::describe_instance_information::_describe_instance_information_output::DescribeInstanceInformationOutputBuilder;
3
4pub use crate::operation::describe_instance_information::_describe_instance_information_input::DescribeInstanceInformationInputBuilder;
5
6impl crate::operation::describe_instance_information::builders::DescribeInstanceInformationInputBuilder {
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::describe_instance_information::DescribeInstanceInformationOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::describe_instance_information::DescribeInstanceInformationError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.describe_instance_information();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `DescribeInstanceInformation`.
24///
25/// <p>Provides information about one or more of your managed nodes, including the operating system platform, SSM Agent version, association status, and IP address. This operation does not return information for nodes that are either Stopped or Terminated.</p>
26/// <p>If you specify one or more node IDs, the operation returns information for those managed nodes. If you don't specify node IDs, it returns information for all your managed nodes. If you specify a node ID that isn't valid or a node that you don't own, you receive an error.</p><note>
27/// <p>The <code>IamRole</code> field returned for this API operation is the role assigned to an Amazon EC2 instance configured with a Systems Manager Quick Setup host management configuration or the role assigned to an on-premises managed node.</p>
28/// </note>
29#[derive(::std::clone::Clone, ::std::fmt::Debug)]
30pub struct DescribeInstanceInformationFluentBuilder {
31    handle: ::std::sync::Arc<crate::client::Handle>,
32    inner: crate::operation::describe_instance_information::builders::DescribeInstanceInformationInputBuilder,
33    config_override: ::std::option::Option<crate::config::Builder>,
34}
35impl
36    crate::client::customize::internal::CustomizableSend<
37        crate::operation::describe_instance_information::DescribeInstanceInformationOutput,
38        crate::operation::describe_instance_information::DescribeInstanceInformationError,
39    > for DescribeInstanceInformationFluentBuilder
40{
41    fn send(
42        self,
43        config_override: crate::config::Builder,
44    ) -> crate::client::customize::internal::BoxFuture<
45        crate::client::customize::internal::SendResult<
46            crate::operation::describe_instance_information::DescribeInstanceInformationOutput,
47            crate::operation::describe_instance_information::DescribeInstanceInformationError,
48        >,
49    > {
50        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
51    }
52}
53impl DescribeInstanceInformationFluentBuilder {
54    /// Creates a new `DescribeInstanceInformationFluentBuilder`.
55    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
56        Self {
57            handle,
58            inner: ::std::default::Default::default(),
59            config_override: ::std::option::Option::None,
60        }
61    }
62    /// Access the DescribeInstanceInformation as a reference.
63    pub fn as_input(&self) -> &crate::operation::describe_instance_information::builders::DescribeInstanceInformationInputBuilder {
64        &self.inner
65    }
66    /// Sends the request and returns the response.
67    ///
68    /// If an error occurs, an `SdkError` will be returned with additional details that
69    /// can be matched against.
70    ///
71    /// By default, any retryable failures will be retried twice. Retry behavior
72    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
73    /// set when configuring the client.
74    pub async fn send(
75        self,
76    ) -> ::std::result::Result<
77        crate::operation::describe_instance_information::DescribeInstanceInformationOutput,
78        ::aws_smithy_runtime_api::client::result::SdkError<
79            crate::operation::describe_instance_information::DescribeInstanceInformationError,
80            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
81        >,
82    > {
83        let input = self
84            .inner
85            .build()
86            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
87        let runtime_plugins = crate::operation::describe_instance_information::DescribeInstanceInformation::operation_runtime_plugins(
88            self.handle.runtime_plugins.clone(),
89            &self.handle.conf,
90            self.config_override,
91        );
92        crate::operation::describe_instance_information::DescribeInstanceInformation::orchestrate(&runtime_plugins, input).await
93    }
94
95    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
96    pub fn customize(
97        self,
98    ) -> crate::client::customize::CustomizableOperation<
99        crate::operation::describe_instance_information::DescribeInstanceInformationOutput,
100        crate::operation::describe_instance_information::DescribeInstanceInformationError,
101        Self,
102    > {
103        crate::client::customize::CustomizableOperation::new(self)
104    }
105    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
106        self.set_config_override(::std::option::Option::Some(config_override.into()));
107        self
108    }
109
110    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
111        self.config_override = config_override;
112        self
113    }
114    /// Create a paginator for this request
115    ///
116    /// Paginators are used by calling [`send().await`](crate::operation::describe_instance_information::paginator::DescribeInstanceInformationPaginator::send) which returns a [`PaginationStream`](aws_smithy_async::future::pagination_stream::PaginationStream).
117    pub fn into_paginator(self) -> crate::operation::describe_instance_information::paginator::DescribeInstanceInformationPaginator {
118        crate::operation::describe_instance_information::paginator::DescribeInstanceInformationPaginator::new(self.handle, self.inner)
119    }
120    ///
121    /// Appends an item to `InstanceInformationFilterList`.
122    ///
123    /// To override the contents of this collection use [`set_instance_information_filter_list`](Self::set_instance_information_filter_list).
124    ///
125    /// <p>This is a legacy method. We recommend that you don't use this method. Instead, use the <code>Filters</code> data type. <code>Filters</code> enables you to return node information by filtering based on tags applied to managed nodes.</p><note>
126    /// <p>Attempting to use <code>InstanceInformationFilterList</code> and <code>Filters</code> leads to an exception error.</p>
127    /// </note>
128    pub fn instance_information_filter_list(mut self, input: crate::types::InstanceInformationFilter) -> Self {
129        self.inner = self.inner.instance_information_filter_list(input);
130        self
131    }
132    /// <p>This is a legacy method. We recommend that you don't use this method. Instead, use the <code>Filters</code> data type. <code>Filters</code> enables you to return node information by filtering based on tags applied to managed nodes.</p><note>
133    /// <p>Attempting to use <code>InstanceInformationFilterList</code> and <code>Filters</code> leads to an exception error.</p>
134    /// </note>
135    pub fn set_instance_information_filter_list(
136        mut self,
137        input: ::std::option::Option<::std::vec::Vec<crate::types::InstanceInformationFilter>>,
138    ) -> Self {
139        self.inner = self.inner.set_instance_information_filter_list(input);
140        self
141    }
142    /// <p>This is a legacy method. We recommend that you don't use this method. Instead, use the <code>Filters</code> data type. <code>Filters</code> enables you to return node information by filtering based on tags applied to managed nodes.</p><note>
143    /// <p>Attempting to use <code>InstanceInformationFilterList</code> and <code>Filters</code> leads to an exception error.</p>
144    /// </note>
145    pub fn get_instance_information_filter_list(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InstanceInformationFilter>> {
146        self.inner.get_instance_information_filter_list()
147    }
148    ///
149    /// Appends an item to `Filters`.
150    ///
151    /// To override the contents of this collection use [`set_filters`](Self::set_filters).
152    ///
153    /// <p>One or more filters. Use a filter to return a more specific list of managed nodes. You can filter based on tags applied to your managed nodes. Tag filters can't be combined with other filter types. Use this <code>Filters</code> data type instead of <code>InstanceInformationFilterList</code>, which is deprecated.</p>
154    pub fn filters(mut self, input: crate::types::InstanceInformationStringFilter) -> Self {
155        self.inner = self.inner.filters(input);
156        self
157    }
158    /// <p>One or more filters. Use a filter to return a more specific list of managed nodes. You can filter based on tags applied to your managed nodes. Tag filters can't be combined with other filter types. Use this <code>Filters</code> data type instead of <code>InstanceInformationFilterList</code>, which is deprecated.</p>
159    pub fn set_filters(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::InstanceInformationStringFilter>>) -> Self {
160        self.inner = self.inner.set_filters(input);
161        self
162    }
163    /// <p>One or more filters. Use a filter to return a more specific list of managed nodes. You can filter based on tags applied to your managed nodes. Tag filters can't be combined with other filter types. Use this <code>Filters</code> data type instead of <code>InstanceInformationFilterList</code>, which is deprecated.</p>
164    pub fn get_filters(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InstanceInformationStringFilter>> {
165        self.inner.get_filters()
166    }
167    /// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. The default value is 10 items.</p>
168    pub fn max_results(mut self, input: i32) -> Self {
169        self.inner = self.inner.max_results(input);
170        self
171    }
172    /// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. The default value is 10 items.</p>
173    pub fn set_max_results(mut self, input: ::std::option::Option<i32>) -> Self {
174        self.inner = self.inner.set_max_results(input);
175        self
176    }
177    /// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. The default value is 10 items.</p>
178    pub fn get_max_results(&self) -> &::std::option::Option<i32> {
179        self.inner.get_max_results()
180    }
181    /// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
182    pub fn next_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
183        self.inner = self.inner.next_token(input.into());
184        self
185    }
186    /// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
187    pub fn set_next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
188        self.inner = self.inner.set_next_token(input);
189        self
190    }
191    /// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
192    pub fn get_next_token(&self) -> &::std::option::Option<::std::string::String> {
193        self.inner.get_next_token()
194    }
195}