aws_sdk_tnb/operation/update_sol_network_instance/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::update_sol_network_instance::_update_sol_network_instance_output::UpdateSolNetworkInstanceOutputBuilder;
3
4pub use crate::operation::update_sol_network_instance::_update_sol_network_instance_input::UpdateSolNetworkInstanceInputBuilder;
5
6impl crate::operation::update_sol_network_instance::builders::UpdateSolNetworkInstanceInputBuilder {
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_sol_network_instance::UpdateSolNetworkInstanceOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::update_sol_network_instance::UpdateSolNetworkInstanceError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.update_sol_network_instance();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `UpdateSolNetworkInstance`.
24///
25/// <p>Update a network instance.</p>
26/// <p>A network instance is a single network created in Amazon Web Services TNB that can be deployed and on which life-cycle operations (like terminate, update, and delete) can be performed.</p>
27/// <p>Choose the <i>updateType</i> parameter to target the necessary update of the network instance.</p>
28#[derive(::std::clone::Clone, ::std::fmt::Debug)]
29pub struct UpdateSolNetworkInstanceFluentBuilder {
30    handle: ::std::sync::Arc<crate::client::Handle>,
31    inner: crate::operation::update_sol_network_instance::builders::UpdateSolNetworkInstanceInputBuilder,
32    config_override: ::std::option::Option<crate::config::Builder>,
33}
34impl
35    crate::client::customize::internal::CustomizableSend<
36        crate::operation::update_sol_network_instance::UpdateSolNetworkInstanceOutput,
37        crate::operation::update_sol_network_instance::UpdateSolNetworkInstanceError,
38    > for UpdateSolNetworkInstanceFluentBuilder
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_sol_network_instance::UpdateSolNetworkInstanceOutput,
46            crate::operation::update_sol_network_instance::UpdateSolNetworkInstanceError,
47        >,
48    > {
49        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
50    }
51}
52impl UpdateSolNetworkInstanceFluentBuilder {
53    /// Creates a new `UpdateSolNetworkInstanceFluentBuilder`.
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 UpdateSolNetworkInstance as a reference.
62    pub fn as_input(&self) -> &crate::operation::update_sol_network_instance::builders::UpdateSolNetworkInstanceInputBuilder {
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_sol_network_instance::UpdateSolNetworkInstanceOutput,
77        ::aws_smithy_runtime_api::client::result::SdkError<
78            crate::operation::update_sol_network_instance::UpdateSolNetworkInstanceError,
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_sol_network_instance::UpdateSolNetworkInstance::operation_runtime_plugins(
87            self.handle.runtime_plugins.clone(),
88            &self.handle.conf,
89            self.config_override,
90        );
91        crate::operation::update_sol_network_instance::UpdateSolNetworkInstance::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_sol_network_instance::UpdateSolNetworkInstanceOutput,
99        crate::operation::update_sol_network_instance::UpdateSolNetworkInstanceError,
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>ID of the network instance.</p>
114    pub fn ns_instance_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
115        self.inner = self.inner.ns_instance_id(input.into());
116        self
117    }
118    /// <p>ID of the network instance.</p>
119    pub fn set_ns_instance_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
120        self.inner = self.inner.set_ns_instance_id(input);
121        self
122    }
123    /// <p>ID of the network instance.</p>
124    pub fn get_ns_instance_id(&self) -> &::std::option::Option<::std::string::String> {
125        self.inner.get_ns_instance_id()
126    }
127    /// <p>The type of update.</p>
128    /// <ul>
129    /// <li>
130    /// <p>Use the <code>MODIFY_VNF_INFORMATION</code> update type, to update a specific network function configuration, in the network instance.</p></li>
131    /// <li>
132    /// <p>Use the <code>UPDATE_NS</code> update type, to update the network instance to a new network service descriptor.</p></li>
133    /// </ul>
134    pub fn update_type(mut self, input: crate::types::UpdateSolNetworkType) -> Self {
135        self.inner = self.inner.update_type(input);
136        self
137    }
138    /// <p>The type of update.</p>
139    /// <ul>
140    /// <li>
141    /// <p>Use the <code>MODIFY_VNF_INFORMATION</code> update type, to update a specific network function configuration, in the network instance.</p></li>
142    /// <li>
143    /// <p>Use the <code>UPDATE_NS</code> update type, to update the network instance to a new network service descriptor.</p></li>
144    /// </ul>
145    pub fn set_update_type(mut self, input: ::std::option::Option<crate::types::UpdateSolNetworkType>) -> Self {
146        self.inner = self.inner.set_update_type(input);
147        self
148    }
149    /// <p>The type of update.</p>
150    /// <ul>
151    /// <li>
152    /// <p>Use the <code>MODIFY_VNF_INFORMATION</code> update type, to update a specific network function configuration, in the network instance.</p></li>
153    /// <li>
154    /// <p>Use the <code>UPDATE_NS</code> update type, to update the network instance to a new network service descriptor.</p></li>
155    /// </ul>
156    pub fn get_update_type(&self) -> &::std::option::Option<crate::types::UpdateSolNetworkType> {
157        self.inner.get_update_type()
158    }
159    /// <p>Identifies the network function information parameters and/or the configurable properties of the network function to be modified.</p>
160    /// <p>Include this property only if the update type is <code>MODIFY_VNF_INFORMATION</code>.</p>
161    pub fn modify_vnf_info_data(mut self, input: crate::types::UpdateSolNetworkModify) -> Self {
162        self.inner = self.inner.modify_vnf_info_data(input);
163        self
164    }
165    /// <p>Identifies the network function information parameters and/or the configurable properties of the network function to be modified.</p>
166    /// <p>Include this property only if the update type is <code>MODIFY_VNF_INFORMATION</code>.</p>
167    pub fn set_modify_vnf_info_data(mut self, input: ::std::option::Option<crate::types::UpdateSolNetworkModify>) -> Self {
168        self.inner = self.inner.set_modify_vnf_info_data(input);
169        self
170    }
171    /// <p>Identifies the network function information parameters and/or the configurable properties of the network function to be modified.</p>
172    /// <p>Include this property only if the update type is <code>MODIFY_VNF_INFORMATION</code>.</p>
173    pub fn get_modify_vnf_info_data(&self) -> &::std::option::Option<crate::types::UpdateSolNetworkModify> {
174        self.inner.get_modify_vnf_info_data()
175    }
176    /// <p>Identifies the network service descriptor and the configurable properties of the descriptor, to be used for the update.</p>
177    /// <p>Include this property only if the update type is <code>UPDATE_NS</code>.</p>
178    pub fn update_ns(mut self, input: crate::types::UpdateSolNetworkServiceData) -> Self {
179        self.inner = self.inner.update_ns(input);
180        self
181    }
182    /// <p>Identifies the network service descriptor and the configurable properties of the descriptor, to be used for the update.</p>
183    /// <p>Include this property only if the update type is <code>UPDATE_NS</code>.</p>
184    pub fn set_update_ns(mut self, input: ::std::option::Option<crate::types::UpdateSolNetworkServiceData>) -> Self {
185        self.inner = self.inner.set_update_ns(input);
186        self
187    }
188    /// <p>Identifies the network service descriptor and the configurable properties of the descriptor, to be used for the update.</p>
189    /// <p>Include this property only if the update type is <code>UPDATE_NS</code>.</p>
190    pub fn get_update_ns(&self) -> &::std::option::Option<crate::types::UpdateSolNetworkServiceData> {
191        self.inner.get_update_ns()
192    }
193    ///
194    /// Adds a key-value pair to `tags`.
195    ///
196    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
197    ///
198    /// <p>A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are only applied to the network operation that is created. These tags are not applied to the network instance. Use tags to search and filter your resources or track your Amazon Web Services costs.</p>
199    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
200        self.inner = self.inner.tags(k.into(), v.into());
201        self
202    }
203    /// <p>A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are only applied to the network operation that is created. These tags are not applied to the network instance. Use tags to search and filter your resources or track your Amazon Web Services costs.</p>
204    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
205        self.inner = self.inner.set_tags(input);
206        self
207    }
208    /// <p>A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are only applied to the network operation that is created. These tags are not applied to the network instance. Use tags to search and filter your resources or track your Amazon Web Services costs.</p>
209    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
210        self.inner.get_tags()
211    }
212}