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}