aws_sdk_licensemanager/operation/create_license_configuration/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_license_configuration::_create_license_configuration_output::CreateLicenseConfigurationOutputBuilder;
3
4pub use crate::operation::create_license_configuration::_create_license_configuration_input::CreateLicenseConfigurationInputBuilder;
5
6impl crate::operation::create_license_configuration::builders::CreateLicenseConfigurationInputBuilder {
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::create_license_configuration::CreateLicenseConfigurationOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::create_license_configuration::CreateLicenseConfigurationError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.create_license_configuration();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `CreateLicenseConfiguration`.
24///
25/// <p>Creates a license configuration.</p>
26/// <p>A license configuration is an abstraction of a customer license agreement that can be consumed and enforced by License Manager. Components include specifications for the license type (licensing by instance, socket, CPU, or vCPU), allowed tenancy (shared tenancy, Dedicated Instance, Dedicated Host, or all of these), license affinity to host (how long a license must be associated with a host), and the number of licenses purchased and used.</p>
27#[derive(::std::clone::Clone, ::std::fmt::Debug)]
28pub struct CreateLicenseConfigurationFluentBuilder {
29 handle: ::std::sync::Arc<crate::client::Handle>,
30 inner: crate::operation::create_license_configuration::builders::CreateLicenseConfigurationInputBuilder,
31 config_override: ::std::option::Option<crate::config::Builder>,
32}
33impl
34 crate::client::customize::internal::CustomizableSend<
35 crate::operation::create_license_configuration::CreateLicenseConfigurationOutput,
36 crate::operation::create_license_configuration::CreateLicenseConfigurationError,
37 > for CreateLicenseConfigurationFluentBuilder
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::create_license_configuration::CreateLicenseConfigurationOutput,
45 crate::operation::create_license_configuration::CreateLicenseConfigurationError,
46 >,
47 > {
48 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
49 }
50}
51impl CreateLicenseConfigurationFluentBuilder {
52 /// Creates a new `CreateLicenseConfigurationFluentBuilder`.
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 CreateLicenseConfiguration as a reference.
61 pub fn as_input(&self) -> &crate::operation::create_license_configuration::builders::CreateLicenseConfigurationInputBuilder {
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::create_license_configuration::CreateLicenseConfigurationOutput,
76 ::aws_smithy_runtime_api::client::result::SdkError<
77 crate::operation::create_license_configuration::CreateLicenseConfigurationError,
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::create_license_configuration::CreateLicenseConfiguration::operation_runtime_plugins(
86 self.handle.runtime_plugins.clone(),
87 &self.handle.conf,
88 self.config_override,
89 );
90 crate::operation::create_license_configuration::CreateLicenseConfiguration::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::create_license_configuration::CreateLicenseConfigurationOutput,
98 crate::operation::create_license_configuration::CreateLicenseConfigurationError,
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 /// <p>Name of the license configuration.</p>
113 pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
114 self.inner = self.inner.name(input.into());
115 self
116 }
117 /// <p>Name of the license configuration.</p>
118 pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
119 self.inner = self.inner.set_name(input);
120 self
121 }
122 /// <p>Name of the license configuration.</p>
123 pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
124 self.inner.get_name()
125 }
126 /// <p>Description of the license configuration.</p>
127 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
128 self.inner = self.inner.description(input.into());
129 self
130 }
131 /// <p>Description of the license configuration.</p>
132 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
133 self.inner = self.inner.set_description(input);
134 self
135 }
136 /// <p>Description of the license configuration.</p>
137 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
138 self.inner.get_description()
139 }
140 /// <p>Dimension used to track the license inventory.</p>
141 pub fn license_counting_type(mut self, input: crate::types::LicenseCountingType) -> Self {
142 self.inner = self.inner.license_counting_type(input);
143 self
144 }
145 /// <p>Dimension used to track the license inventory.</p>
146 pub fn set_license_counting_type(mut self, input: ::std::option::Option<crate::types::LicenseCountingType>) -> Self {
147 self.inner = self.inner.set_license_counting_type(input);
148 self
149 }
150 /// <p>Dimension used to track the license inventory.</p>
151 pub fn get_license_counting_type(&self) -> &::std::option::Option<crate::types::LicenseCountingType> {
152 self.inner.get_license_counting_type()
153 }
154 /// <p>Number of licenses managed by the license configuration.</p>
155 pub fn license_count(mut self, input: i64) -> Self {
156 self.inner = self.inner.license_count(input);
157 self
158 }
159 /// <p>Number of licenses managed by the license configuration.</p>
160 pub fn set_license_count(mut self, input: ::std::option::Option<i64>) -> Self {
161 self.inner = self.inner.set_license_count(input);
162 self
163 }
164 /// <p>Number of licenses managed by the license configuration.</p>
165 pub fn get_license_count(&self) -> &::std::option::Option<i64> {
166 self.inner.get_license_count()
167 }
168 /// <p>Indicates whether hard or soft license enforcement is used. Exceeding a hard limit blocks the launch of new instances.</p>
169 pub fn license_count_hard_limit(mut self, input: bool) -> Self {
170 self.inner = self.inner.license_count_hard_limit(input);
171 self
172 }
173 /// <p>Indicates whether hard or soft license enforcement is used. Exceeding a hard limit blocks the launch of new instances.</p>
174 pub fn set_license_count_hard_limit(mut self, input: ::std::option::Option<bool>) -> Self {
175 self.inner = self.inner.set_license_count_hard_limit(input);
176 self
177 }
178 /// <p>Indicates whether hard or soft license enforcement is used. Exceeding a hard limit blocks the launch of new instances.</p>
179 pub fn get_license_count_hard_limit(&self) -> &::std::option::Option<bool> {
180 self.inner.get_license_count_hard_limit()
181 }
182 ///
183 /// Appends an item to `LicenseRules`.
184 ///
185 /// To override the contents of this collection use [`set_license_rules`](Self::set_license_rules).
186 ///
187 /// <p>License rules. The syntax is #name=value (for example, #allowedTenancy=EC2-DedicatedHost). The available rules vary by dimension, as follows.</p>
188 /// <ul>
189 /// <li>
190 /// <p><code>Cores</code> dimension: <code>allowedTenancy</code> | <code>licenseAffinityToHost</code> | <code>maximumCores</code> | <code>minimumCores</code></p></li>
191 /// <li>
192 /// <p><code>Instances</code> dimension: <code>allowedTenancy</code> | <code>maximumVcpus</code> | <code>minimumVcpus</code></p></li>
193 /// <li>
194 /// <p><code>Sockets</code> dimension: <code>allowedTenancy</code> | <code>licenseAffinityToHost</code> | <code>maximumSockets</code> | <code>minimumSockets</code></p></li>
195 /// <li>
196 /// <p><code>vCPUs</code> dimension: <code>allowedTenancy</code> | <code>honorVcpuOptimization</code> | <code>maximumVcpus</code> | <code>minimumVcpus</code></p></li>
197 /// </ul>
198 /// <p>The unit for <code>licenseAffinityToHost</code> is days and the range is 1 to 180. The possible values for <code>allowedTenancy</code> are <code>EC2-Default</code>, <code>EC2-DedicatedHost</code>, and <code>EC2-DedicatedInstance</code>. The possible values for <code>honorVcpuOptimization</code> are <code>True</code> and <code>False</code>.</p>
199 pub fn license_rules(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
200 self.inner = self.inner.license_rules(input.into());
201 self
202 }
203 /// <p>License rules. The syntax is #name=value (for example, #allowedTenancy=EC2-DedicatedHost). The available rules vary by dimension, as follows.</p>
204 /// <ul>
205 /// <li>
206 /// <p><code>Cores</code> dimension: <code>allowedTenancy</code> | <code>licenseAffinityToHost</code> | <code>maximumCores</code> | <code>minimumCores</code></p></li>
207 /// <li>
208 /// <p><code>Instances</code> dimension: <code>allowedTenancy</code> | <code>maximumVcpus</code> | <code>minimumVcpus</code></p></li>
209 /// <li>
210 /// <p><code>Sockets</code> dimension: <code>allowedTenancy</code> | <code>licenseAffinityToHost</code> | <code>maximumSockets</code> | <code>minimumSockets</code></p></li>
211 /// <li>
212 /// <p><code>vCPUs</code> dimension: <code>allowedTenancy</code> | <code>honorVcpuOptimization</code> | <code>maximumVcpus</code> | <code>minimumVcpus</code></p></li>
213 /// </ul>
214 /// <p>The unit for <code>licenseAffinityToHost</code> is days and the range is 1 to 180. The possible values for <code>allowedTenancy</code> are <code>EC2-Default</code>, <code>EC2-DedicatedHost</code>, and <code>EC2-DedicatedInstance</code>. The possible values for <code>honorVcpuOptimization</code> are <code>True</code> and <code>False</code>.</p>
215 pub fn set_license_rules(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
216 self.inner = self.inner.set_license_rules(input);
217 self
218 }
219 /// <p>License rules. The syntax is #name=value (for example, #allowedTenancy=EC2-DedicatedHost). The available rules vary by dimension, as follows.</p>
220 /// <ul>
221 /// <li>
222 /// <p><code>Cores</code> dimension: <code>allowedTenancy</code> | <code>licenseAffinityToHost</code> | <code>maximumCores</code> | <code>minimumCores</code></p></li>
223 /// <li>
224 /// <p><code>Instances</code> dimension: <code>allowedTenancy</code> | <code>maximumVcpus</code> | <code>minimumVcpus</code></p></li>
225 /// <li>
226 /// <p><code>Sockets</code> dimension: <code>allowedTenancy</code> | <code>licenseAffinityToHost</code> | <code>maximumSockets</code> | <code>minimumSockets</code></p></li>
227 /// <li>
228 /// <p><code>vCPUs</code> dimension: <code>allowedTenancy</code> | <code>honorVcpuOptimization</code> | <code>maximumVcpus</code> | <code>minimumVcpus</code></p></li>
229 /// </ul>
230 /// <p>The unit for <code>licenseAffinityToHost</code> is days and the range is 1 to 180. The possible values for <code>allowedTenancy</code> are <code>EC2-Default</code>, <code>EC2-DedicatedHost</code>, and <code>EC2-DedicatedInstance</code>. The possible values for <code>honorVcpuOptimization</code> are <code>True</code> and <code>False</code>.</p>
231 pub fn get_license_rules(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
232 self.inner.get_license_rules()
233 }
234 ///
235 /// Appends an item to `Tags`.
236 ///
237 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
238 ///
239 /// <p>Tags to add to the license configuration.</p>
240 pub fn tags(mut self, input: crate::types::Tag) -> Self {
241 self.inner = self.inner.tags(input);
242 self
243 }
244 /// <p>Tags to add to the license configuration.</p>
245 pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
246 self.inner = self.inner.set_tags(input);
247 self
248 }
249 /// <p>Tags to add to the license configuration.</p>
250 pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
251 self.inner.get_tags()
252 }
253 /// <p>When true, disassociates a resource when software is uninstalled.</p>
254 pub fn disassociate_when_not_found(mut self, input: bool) -> Self {
255 self.inner = self.inner.disassociate_when_not_found(input);
256 self
257 }
258 /// <p>When true, disassociates a resource when software is uninstalled.</p>
259 pub fn set_disassociate_when_not_found(mut self, input: ::std::option::Option<bool>) -> Self {
260 self.inner = self.inner.set_disassociate_when_not_found(input);
261 self
262 }
263 /// <p>When true, disassociates a resource when software is uninstalled.</p>
264 pub fn get_disassociate_when_not_found(&self) -> &::std::option::Option<bool> {
265 self.inner.get_disassociate_when_not_found()
266 }
267 ///
268 /// Appends an item to `ProductInformationList`.
269 ///
270 /// To override the contents of this collection use [`set_product_information_list`](Self::set_product_information_list).
271 ///
272 /// <p>Product information.</p>
273 pub fn product_information_list(mut self, input: crate::types::ProductInformation) -> Self {
274 self.inner = self.inner.product_information_list(input);
275 self
276 }
277 /// <p>Product information.</p>
278 pub fn set_product_information_list(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ProductInformation>>) -> Self {
279 self.inner = self.inner.set_product_information_list(input);
280 self
281 }
282 /// <p>Product information.</p>
283 pub fn get_product_information_list(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ProductInformation>> {
284 self.inner.get_product_information_list()
285 }
286}