aws_sdk_cloudformation/operation/describe_type/_describe_type_output.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct DescribeTypeOutput {
6 /// <p>The Amazon Resource Name (ARN) of the extension.</p>
7 pub arn: ::std::option::Option<::std::string::String>,
8 /// <p>The kind of extension.</p>
9 pub r#type: ::std::option::Option<crate::types::RegistryType>,
10 /// <p>The name of the extension.</p>
11 /// <p>If the extension is a public third-party type you have activated with a type name alias, CloudFormation returns the type name alias. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html">ActivateType</a>.</p>
12 pub type_name: ::std::option::Option<::std::string::String>,
13 /// <p>The ID of the default version of the extension. The default version is used when the extension version isn't specified.</p>
14 /// <p>This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon Web Services and published by third parties, CloudFormation returns <code>null</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
15 /// <p>To set the default version of an extension, use <code>SetTypeDefaultVersion</code>.</p>
16 pub default_version_id: ::std::option::Option<::std::string::String>,
17 /// <p>Whether the specified extension version is set as the default version.</p>
18 /// <p>This applies only to private extensions you have registered in your account, and extensions published by Amazon Web Services. For public third-party extensions, whether they are activated in your account, CloudFormation returns <code>null</code>.</p>
19 pub is_default_version: ::std::option::Option<bool>,
20 /// <p>The contract test status of the registered extension version. To return the extension test status of a specific extension version, you must specify <code>VersionId</code>.</p>
21 /// <p>This applies only to registered private extension versions. CloudFormation doesn't return this information for public extensions, whether they are activated in your account.</p>
22 /// <ul>
23 /// <li>
24 /// <p><code>PASSED</code>: The extension has passed all its contract tests.</p>
25 /// <p>An extension must have a test status of <code>PASSED</code> before it can be published. For more information, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html">Publishing extensions to make them available for public use</a> in the <i>CloudFormation Command Line Interface (CLI) User Guide</i>.</p></li>
26 /// <li>
27 /// <p><code>FAILED</code>: The extension has failed one or more contract tests.</p></li>
28 /// <li>
29 /// <p><code>IN_PROGRESS</code>: Contract tests are currently being performed on the extension.</p></li>
30 /// <li>
31 /// <p><code>NOT_TESTED</code>: Contract tests haven't been performed on the extension.</p></li>
32 /// </ul>
33 pub type_tests_status: ::std::option::Option<crate::types::TypeTestsStatus>,
34 /// <p>The description of the test status. To return the extension test status of a specific extension version, you must specify <code>VersionId</code>.</p>
35 /// <p>This applies only to registered private extension versions. CloudFormation doesn't return this information for public extensions, whether they are activated in your account.</p>
36 pub type_tests_status_description: ::std::option::Option<::std::string::String>,
37 /// <p>The description of the extension.</p>
38 pub description: ::std::option::Option<::std::string::String>,
39 /// <p>The schema that defines the extension.</p>
40 /// <p>For more information, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html">Resource type schema</a> in the <i>CloudFormation Command Line Interface (CLI) User Guide</i> and the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/what-is-cloudformation-hooks.html">CloudFormation Hooks User Guide</a>.</p>
41 pub schema: ::std::option::Option<::std::string::String>,
42 /// <p>For resource type extensions, the provisioning behavior of the resource type. CloudFormation determines the provisioning type during registration, based on the types of handlers in the schema handler package submitted.</p>
43 /// <p>Valid values include:</p>
44 /// <ul>
45 /// <li>
46 /// <p><code>FULLY_MUTABLE</code>: The resource type includes an update handler to process updates to the type during stack update operations.</p></li>
47 /// <li>
48 /// <p><code>IMMUTABLE</code>: The resource type doesn't include an update handler, so the type can't be updated and must instead be replaced during stack update operations.</p></li>
49 /// <li>
50 /// <p><code>NON_PROVISIONABLE</code>: The resource type doesn't include all the following handlers, and therefore can't actually be provisioned.</p>
51 /// <ul>
52 /// <li>
53 /// <p>create</p></li>
54 /// <li>
55 /// <p>read</p></li>
56 /// <li>
57 /// <p>delete</p></li>
58 /// </ul></li>
59 /// </ul>
60 pub provisioning_type: ::std::option::Option<crate::types::ProvisioningType>,
61 /// <p>The deprecation status of the extension version.</p>
62 /// <p>Valid values include:</p>
63 /// <ul>
64 /// <li>
65 /// <p><code>LIVE</code>: The extension is activated or registered and can be used in CloudFormation operations, dependent on its provisioning behavior and visibility scope.</p></li>
66 /// <li>
67 /// <p><code>DEPRECATED</code>: The extension has been deactivated or deregistered and can no longer be used in CloudFormation operations.</p></li>
68 /// </ul>
69 /// <p>For public third-party extensions, CloudFormation returns <code>null</code>.</p>
70 pub deprecated_status: ::std::option::Option<crate::types::DeprecatedStatus>,
71 /// <p>Contains logging configuration information for private extensions. This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon Web Services and published by third parties, CloudFormation returns <code>null</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
72 pub logging_config: ::std::option::Option<crate::types::LoggingConfig>,
73 /// <p>For extensions that are modules, the public third-party extensions that must be activated in your account in order for the module itself to be activated.</p>
74 pub required_activated_types: ::std::option::Option<::std::vec::Vec<crate::types::RequiredActivatedType>>,
75 /// <p>The Amazon Resource Name (ARN) of the IAM execution role used to register the extension. This applies only to private extensions you have registered in your account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
76 /// <p>If the registered extension calls any Amazon Web Services APIs, you must create an <i> <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html">IAM execution role</a> </i> that includes the necessary permissions to call those Amazon Web Services APIs, and provision that execution role in your account. CloudFormation then assumes that execution role to provide your extension with the appropriate credentials.</p>
77 pub execution_role_arn: ::std::option::Option<::std::string::String>,
78 /// <p>The scope at which the extension is visible and usable in CloudFormation operations.</p>
79 /// <p>Valid values include:</p>
80 /// <ul>
81 /// <li>
82 /// <p><code>PRIVATE</code>: The extension is only visible and usable within the account in which it is registered. CloudFormation marks any extensions you register as <code>PRIVATE</code>.</p></li>
83 /// <li>
84 /// <p><code>PUBLIC</code>: The extension is publicly visible and usable within any Amazon Web Services account.</p></li>
85 /// </ul>
86 pub visibility: ::std::option::Option<crate::types::Visibility>,
87 /// <p>The URL of the source code for the extension.</p>
88 pub source_url: ::std::option::Option<::std::string::String>,
89 /// <p>The URL of a page providing detailed documentation for this extension.</p>
90 pub documentation_url: ::std::option::Option<::std::string::String>,
91 /// <p>When the specified extension version was registered. This applies only to:</p>
92 /// <ul>
93 /// <li>
94 /// <p>Private extensions you have registered in your account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p></li>
95 /// <li>
96 /// <p>Public extensions you have activated in your account with auto-update specified. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html">ActivateType</a>.</p></li>
97 /// </ul>
98 pub last_updated: ::std::option::Option<::aws_smithy_types::DateTime>,
99 /// <p>When the specified private extension version was registered or activated in your account.</p>
100 pub time_created: ::std::option::Option<::aws_smithy_types::DateTime>,
101 /// <p>A JSON string that represent the current configuration data for the extension in this account and Region.</p>
102 /// <p>To set the configuration data for an extension, use <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html">SetTypeConfiguration</a>.</p>
103 pub configuration_schema: ::std::option::Option<::std::string::String>,
104 /// <p>The publisher ID of the extension publisher.</p>
105 /// <p>This applies only to public third-party extensions. For private registered extensions, and extensions provided by Amazon Web Services, CloudFormation returns <code>null</code>.</p>
106 pub publisher_id: ::std::option::Option<::std::string::String>,
107 /// <p>For public extensions that have been activated for this account and Region, the type name of the public extension.</p>
108 /// <p>If you specified a <code>TypeNameAlias</code> when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of the public extension. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias">Use aliases to refer to extensions</a> in the <i>CloudFormation User Guide</i>.</p>
109 pub original_type_name: ::std::option::Option<::std::string::String>,
110 /// <p>For public extensions that have been activated for this account and Region, the Amazon Resource Name (ARN) of the public extension.</p>
111 pub original_type_arn: ::std::option::Option<::std::string::String>,
112 /// <p>The version number of a public third-party extension.</p>
113 /// <p>This applies only if you specify a public extension you have activated in your account, or specify a public extension without specifying a version. For all other extensions, CloudFormation returns <code>null</code>.</p>
114 pub public_version_number: ::std::option::Option<::std::string::String>,
115 /// <p>The latest version of a public extension <i>that is available</i> for use.</p>
116 /// <p>This only applies if you specify a public extension, and you don't specify a version. For all other requests, CloudFormation returns <code>null</code>.</p>
117 pub latest_public_version: ::std::option::Option<::std::string::String>,
118 /// <p>Whether the extension is activated in the account and Region.</p>
119 /// <p>This only applies to public third-party extensions. For all other extensions, CloudFormation returns <code>null</code>.</p>
120 pub is_activated: ::std::option::Option<bool>,
121 /// <p>Whether CloudFormation automatically updates the extension in this account and Region when a new <i>minor</i> version is published by the extension publisher. Major versions released by the publisher must be manually updated. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto">Automatically use new versions of extensions</a> in the <i>CloudFormation User Guide</i>.</p>
122 pub auto_update: ::std::option::Option<bool>,
123 _request_id: Option<String>,
124}
125impl DescribeTypeOutput {
126 /// <p>The Amazon Resource Name (ARN) of the extension.</p>
127 pub fn arn(&self) -> ::std::option::Option<&str> {
128 self.arn.as_deref()
129 }
130 /// <p>The kind of extension.</p>
131 pub fn r#type(&self) -> ::std::option::Option<&crate::types::RegistryType> {
132 self.r#type.as_ref()
133 }
134 /// <p>The name of the extension.</p>
135 /// <p>If the extension is a public third-party type you have activated with a type name alias, CloudFormation returns the type name alias. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html">ActivateType</a>.</p>
136 pub fn type_name(&self) -> ::std::option::Option<&str> {
137 self.type_name.as_deref()
138 }
139 /// <p>The ID of the default version of the extension. The default version is used when the extension version isn't specified.</p>
140 /// <p>This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon Web Services and published by third parties, CloudFormation returns <code>null</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
141 /// <p>To set the default version of an extension, use <code>SetTypeDefaultVersion</code>.</p>
142 pub fn default_version_id(&self) -> ::std::option::Option<&str> {
143 self.default_version_id.as_deref()
144 }
145 /// <p>Whether the specified extension version is set as the default version.</p>
146 /// <p>This applies only to private extensions you have registered in your account, and extensions published by Amazon Web Services. For public third-party extensions, whether they are activated in your account, CloudFormation returns <code>null</code>.</p>
147 pub fn is_default_version(&self) -> ::std::option::Option<bool> {
148 self.is_default_version
149 }
150 /// <p>The contract test status of the registered extension version. To return the extension test status of a specific extension version, you must specify <code>VersionId</code>.</p>
151 /// <p>This applies only to registered private extension versions. CloudFormation doesn't return this information for public extensions, whether they are activated in your account.</p>
152 /// <ul>
153 /// <li>
154 /// <p><code>PASSED</code>: The extension has passed all its contract tests.</p>
155 /// <p>An extension must have a test status of <code>PASSED</code> before it can be published. For more information, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html">Publishing extensions to make them available for public use</a> in the <i>CloudFormation Command Line Interface (CLI) User Guide</i>.</p></li>
156 /// <li>
157 /// <p><code>FAILED</code>: The extension has failed one or more contract tests.</p></li>
158 /// <li>
159 /// <p><code>IN_PROGRESS</code>: Contract tests are currently being performed on the extension.</p></li>
160 /// <li>
161 /// <p><code>NOT_TESTED</code>: Contract tests haven't been performed on the extension.</p></li>
162 /// </ul>
163 pub fn type_tests_status(&self) -> ::std::option::Option<&crate::types::TypeTestsStatus> {
164 self.type_tests_status.as_ref()
165 }
166 /// <p>The description of the test status. To return the extension test status of a specific extension version, you must specify <code>VersionId</code>.</p>
167 /// <p>This applies only to registered private extension versions. CloudFormation doesn't return this information for public extensions, whether they are activated in your account.</p>
168 pub fn type_tests_status_description(&self) -> ::std::option::Option<&str> {
169 self.type_tests_status_description.as_deref()
170 }
171 /// <p>The description of the extension.</p>
172 pub fn description(&self) -> ::std::option::Option<&str> {
173 self.description.as_deref()
174 }
175 /// <p>The schema that defines the extension.</p>
176 /// <p>For more information, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html">Resource type schema</a> in the <i>CloudFormation Command Line Interface (CLI) User Guide</i> and the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/what-is-cloudformation-hooks.html">CloudFormation Hooks User Guide</a>.</p>
177 pub fn schema(&self) -> ::std::option::Option<&str> {
178 self.schema.as_deref()
179 }
180 /// <p>For resource type extensions, the provisioning behavior of the resource type. CloudFormation determines the provisioning type during registration, based on the types of handlers in the schema handler package submitted.</p>
181 /// <p>Valid values include:</p>
182 /// <ul>
183 /// <li>
184 /// <p><code>FULLY_MUTABLE</code>: The resource type includes an update handler to process updates to the type during stack update operations.</p></li>
185 /// <li>
186 /// <p><code>IMMUTABLE</code>: The resource type doesn't include an update handler, so the type can't be updated and must instead be replaced during stack update operations.</p></li>
187 /// <li>
188 /// <p><code>NON_PROVISIONABLE</code>: The resource type doesn't include all the following handlers, and therefore can't actually be provisioned.</p>
189 /// <ul>
190 /// <li>
191 /// <p>create</p></li>
192 /// <li>
193 /// <p>read</p></li>
194 /// <li>
195 /// <p>delete</p></li>
196 /// </ul></li>
197 /// </ul>
198 pub fn provisioning_type(&self) -> ::std::option::Option<&crate::types::ProvisioningType> {
199 self.provisioning_type.as_ref()
200 }
201 /// <p>The deprecation status of the extension version.</p>
202 /// <p>Valid values include:</p>
203 /// <ul>
204 /// <li>
205 /// <p><code>LIVE</code>: The extension is activated or registered and can be used in CloudFormation operations, dependent on its provisioning behavior and visibility scope.</p></li>
206 /// <li>
207 /// <p><code>DEPRECATED</code>: The extension has been deactivated or deregistered and can no longer be used in CloudFormation operations.</p></li>
208 /// </ul>
209 /// <p>For public third-party extensions, CloudFormation returns <code>null</code>.</p>
210 pub fn deprecated_status(&self) -> ::std::option::Option<&crate::types::DeprecatedStatus> {
211 self.deprecated_status.as_ref()
212 }
213 /// <p>Contains logging configuration information for private extensions. This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon Web Services and published by third parties, CloudFormation returns <code>null</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
214 pub fn logging_config(&self) -> ::std::option::Option<&crate::types::LoggingConfig> {
215 self.logging_config.as_ref()
216 }
217 /// <p>For extensions that are modules, the public third-party extensions that must be activated in your account in order for the module itself to be activated.</p>
218 ///
219 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.required_activated_types.is_none()`.
220 pub fn required_activated_types(&self) -> &[crate::types::RequiredActivatedType] {
221 self.required_activated_types.as_deref().unwrap_or_default()
222 }
223 /// <p>The Amazon Resource Name (ARN) of the IAM execution role used to register the extension. This applies only to private extensions you have registered in your account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
224 /// <p>If the registered extension calls any Amazon Web Services APIs, you must create an <i> <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html">IAM execution role</a> </i> that includes the necessary permissions to call those Amazon Web Services APIs, and provision that execution role in your account. CloudFormation then assumes that execution role to provide your extension with the appropriate credentials.</p>
225 pub fn execution_role_arn(&self) -> ::std::option::Option<&str> {
226 self.execution_role_arn.as_deref()
227 }
228 /// <p>The scope at which the extension is visible and usable in CloudFormation operations.</p>
229 /// <p>Valid values include:</p>
230 /// <ul>
231 /// <li>
232 /// <p><code>PRIVATE</code>: The extension is only visible and usable within the account in which it is registered. CloudFormation marks any extensions you register as <code>PRIVATE</code>.</p></li>
233 /// <li>
234 /// <p><code>PUBLIC</code>: The extension is publicly visible and usable within any Amazon Web Services account.</p></li>
235 /// </ul>
236 pub fn visibility(&self) -> ::std::option::Option<&crate::types::Visibility> {
237 self.visibility.as_ref()
238 }
239 /// <p>The URL of the source code for the extension.</p>
240 pub fn source_url(&self) -> ::std::option::Option<&str> {
241 self.source_url.as_deref()
242 }
243 /// <p>The URL of a page providing detailed documentation for this extension.</p>
244 pub fn documentation_url(&self) -> ::std::option::Option<&str> {
245 self.documentation_url.as_deref()
246 }
247 /// <p>When the specified extension version was registered. This applies only to:</p>
248 /// <ul>
249 /// <li>
250 /// <p>Private extensions you have registered in your account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p></li>
251 /// <li>
252 /// <p>Public extensions you have activated in your account with auto-update specified. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html">ActivateType</a>.</p></li>
253 /// </ul>
254 pub fn last_updated(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
255 self.last_updated.as_ref()
256 }
257 /// <p>When the specified private extension version was registered or activated in your account.</p>
258 pub fn time_created(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
259 self.time_created.as_ref()
260 }
261 /// <p>A JSON string that represent the current configuration data for the extension in this account and Region.</p>
262 /// <p>To set the configuration data for an extension, use <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html">SetTypeConfiguration</a>.</p>
263 pub fn configuration_schema(&self) -> ::std::option::Option<&str> {
264 self.configuration_schema.as_deref()
265 }
266 /// <p>The publisher ID of the extension publisher.</p>
267 /// <p>This applies only to public third-party extensions. For private registered extensions, and extensions provided by Amazon Web Services, CloudFormation returns <code>null</code>.</p>
268 pub fn publisher_id(&self) -> ::std::option::Option<&str> {
269 self.publisher_id.as_deref()
270 }
271 /// <p>For public extensions that have been activated for this account and Region, the type name of the public extension.</p>
272 /// <p>If you specified a <code>TypeNameAlias</code> when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of the public extension. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias">Use aliases to refer to extensions</a> in the <i>CloudFormation User Guide</i>.</p>
273 pub fn original_type_name(&self) -> ::std::option::Option<&str> {
274 self.original_type_name.as_deref()
275 }
276 /// <p>For public extensions that have been activated for this account and Region, the Amazon Resource Name (ARN) of the public extension.</p>
277 pub fn original_type_arn(&self) -> ::std::option::Option<&str> {
278 self.original_type_arn.as_deref()
279 }
280 /// <p>The version number of a public third-party extension.</p>
281 /// <p>This applies only if you specify a public extension you have activated in your account, or specify a public extension without specifying a version. For all other extensions, CloudFormation returns <code>null</code>.</p>
282 pub fn public_version_number(&self) -> ::std::option::Option<&str> {
283 self.public_version_number.as_deref()
284 }
285 /// <p>The latest version of a public extension <i>that is available</i> for use.</p>
286 /// <p>This only applies if you specify a public extension, and you don't specify a version. For all other requests, CloudFormation returns <code>null</code>.</p>
287 pub fn latest_public_version(&self) -> ::std::option::Option<&str> {
288 self.latest_public_version.as_deref()
289 }
290 /// <p>Whether the extension is activated in the account and Region.</p>
291 /// <p>This only applies to public third-party extensions. For all other extensions, CloudFormation returns <code>null</code>.</p>
292 pub fn is_activated(&self) -> ::std::option::Option<bool> {
293 self.is_activated
294 }
295 /// <p>Whether CloudFormation automatically updates the extension in this account and Region when a new <i>minor</i> version is published by the extension publisher. Major versions released by the publisher must be manually updated. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto">Automatically use new versions of extensions</a> in the <i>CloudFormation User Guide</i>.</p>
296 pub fn auto_update(&self) -> ::std::option::Option<bool> {
297 self.auto_update
298 }
299}
300impl ::aws_types::request_id::RequestId for DescribeTypeOutput {
301 fn request_id(&self) -> Option<&str> {
302 self._request_id.as_deref()
303 }
304}
305impl DescribeTypeOutput {
306 /// Creates a new builder-style object to manufacture [`DescribeTypeOutput`](crate::operation::describe_type::DescribeTypeOutput).
307 pub fn builder() -> crate::operation::describe_type::builders::DescribeTypeOutputBuilder {
308 crate::operation::describe_type::builders::DescribeTypeOutputBuilder::default()
309 }
310}
311
312/// A builder for [`DescribeTypeOutput`](crate::operation::describe_type::DescribeTypeOutput).
313#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
314#[non_exhaustive]
315pub struct DescribeTypeOutputBuilder {
316 pub(crate) arn: ::std::option::Option<::std::string::String>,
317 pub(crate) r#type: ::std::option::Option<crate::types::RegistryType>,
318 pub(crate) type_name: ::std::option::Option<::std::string::String>,
319 pub(crate) default_version_id: ::std::option::Option<::std::string::String>,
320 pub(crate) is_default_version: ::std::option::Option<bool>,
321 pub(crate) type_tests_status: ::std::option::Option<crate::types::TypeTestsStatus>,
322 pub(crate) type_tests_status_description: ::std::option::Option<::std::string::String>,
323 pub(crate) description: ::std::option::Option<::std::string::String>,
324 pub(crate) schema: ::std::option::Option<::std::string::String>,
325 pub(crate) provisioning_type: ::std::option::Option<crate::types::ProvisioningType>,
326 pub(crate) deprecated_status: ::std::option::Option<crate::types::DeprecatedStatus>,
327 pub(crate) logging_config: ::std::option::Option<crate::types::LoggingConfig>,
328 pub(crate) required_activated_types: ::std::option::Option<::std::vec::Vec<crate::types::RequiredActivatedType>>,
329 pub(crate) execution_role_arn: ::std::option::Option<::std::string::String>,
330 pub(crate) visibility: ::std::option::Option<crate::types::Visibility>,
331 pub(crate) source_url: ::std::option::Option<::std::string::String>,
332 pub(crate) documentation_url: ::std::option::Option<::std::string::String>,
333 pub(crate) last_updated: ::std::option::Option<::aws_smithy_types::DateTime>,
334 pub(crate) time_created: ::std::option::Option<::aws_smithy_types::DateTime>,
335 pub(crate) configuration_schema: ::std::option::Option<::std::string::String>,
336 pub(crate) publisher_id: ::std::option::Option<::std::string::String>,
337 pub(crate) original_type_name: ::std::option::Option<::std::string::String>,
338 pub(crate) original_type_arn: ::std::option::Option<::std::string::String>,
339 pub(crate) public_version_number: ::std::option::Option<::std::string::String>,
340 pub(crate) latest_public_version: ::std::option::Option<::std::string::String>,
341 pub(crate) is_activated: ::std::option::Option<bool>,
342 pub(crate) auto_update: ::std::option::Option<bool>,
343 _request_id: Option<String>,
344}
345impl DescribeTypeOutputBuilder {
346 /// <p>The Amazon Resource Name (ARN) of the extension.</p>
347 pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
348 self.arn = ::std::option::Option::Some(input.into());
349 self
350 }
351 /// <p>The Amazon Resource Name (ARN) of the extension.</p>
352 pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
353 self.arn = input;
354 self
355 }
356 /// <p>The Amazon Resource Name (ARN) of the extension.</p>
357 pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
358 &self.arn
359 }
360 /// <p>The kind of extension.</p>
361 pub fn r#type(mut self, input: crate::types::RegistryType) -> Self {
362 self.r#type = ::std::option::Option::Some(input);
363 self
364 }
365 /// <p>The kind of extension.</p>
366 pub fn set_type(mut self, input: ::std::option::Option<crate::types::RegistryType>) -> Self {
367 self.r#type = input;
368 self
369 }
370 /// <p>The kind of extension.</p>
371 pub fn get_type(&self) -> &::std::option::Option<crate::types::RegistryType> {
372 &self.r#type
373 }
374 /// <p>The name of the extension.</p>
375 /// <p>If the extension is a public third-party type you have activated with a type name alias, CloudFormation returns the type name alias. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html">ActivateType</a>.</p>
376 pub fn type_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
377 self.type_name = ::std::option::Option::Some(input.into());
378 self
379 }
380 /// <p>The name of the extension.</p>
381 /// <p>If the extension is a public third-party type you have activated with a type name alias, CloudFormation returns the type name alias. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html">ActivateType</a>.</p>
382 pub fn set_type_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
383 self.type_name = input;
384 self
385 }
386 /// <p>The name of the extension.</p>
387 /// <p>If the extension is a public third-party type you have activated with a type name alias, CloudFormation returns the type name alias. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html">ActivateType</a>.</p>
388 pub fn get_type_name(&self) -> &::std::option::Option<::std::string::String> {
389 &self.type_name
390 }
391 /// <p>The ID of the default version of the extension. The default version is used when the extension version isn't specified.</p>
392 /// <p>This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon Web Services and published by third parties, CloudFormation returns <code>null</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
393 /// <p>To set the default version of an extension, use <code>SetTypeDefaultVersion</code>.</p>
394 pub fn default_version_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
395 self.default_version_id = ::std::option::Option::Some(input.into());
396 self
397 }
398 /// <p>The ID of the default version of the extension. The default version is used when the extension version isn't specified.</p>
399 /// <p>This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon Web Services and published by third parties, CloudFormation returns <code>null</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
400 /// <p>To set the default version of an extension, use <code>SetTypeDefaultVersion</code>.</p>
401 pub fn set_default_version_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
402 self.default_version_id = input;
403 self
404 }
405 /// <p>The ID of the default version of the extension. The default version is used when the extension version isn't specified.</p>
406 /// <p>This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon Web Services and published by third parties, CloudFormation returns <code>null</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
407 /// <p>To set the default version of an extension, use <code>SetTypeDefaultVersion</code>.</p>
408 pub fn get_default_version_id(&self) -> &::std::option::Option<::std::string::String> {
409 &self.default_version_id
410 }
411 /// <p>Whether the specified extension version is set as the default version.</p>
412 /// <p>This applies only to private extensions you have registered in your account, and extensions published by Amazon Web Services. For public third-party extensions, whether they are activated in your account, CloudFormation returns <code>null</code>.</p>
413 pub fn is_default_version(mut self, input: bool) -> Self {
414 self.is_default_version = ::std::option::Option::Some(input);
415 self
416 }
417 /// <p>Whether the specified extension version is set as the default version.</p>
418 /// <p>This applies only to private extensions you have registered in your account, and extensions published by Amazon Web Services. For public third-party extensions, whether they are activated in your account, CloudFormation returns <code>null</code>.</p>
419 pub fn set_is_default_version(mut self, input: ::std::option::Option<bool>) -> Self {
420 self.is_default_version = input;
421 self
422 }
423 /// <p>Whether the specified extension version is set as the default version.</p>
424 /// <p>This applies only to private extensions you have registered in your account, and extensions published by Amazon Web Services. For public third-party extensions, whether they are activated in your account, CloudFormation returns <code>null</code>.</p>
425 pub fn get_is_default_version(&self) -> &::std::option::Option<bool> {
426 &self.is_default_version
427 }
428 /// <p>The contract test status of the registered extension version. To return the extension test status of a specific extension version, you must specify <code>VersionId</code>.</p>
429 /// <p>This applies only to registered private extension versions. CloudFormation doesn't return this information for public extensions, whether they are activated in your account.</p>
430 /// <ul>
431 /// <li>
432 /// <p><code>PASSED</code>: The extension has passed all its contract tests.</p>
433 /// <p>An extension must have a test status of <code>PASSED</code> before it can be published. For more information, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html">Publishing extensions to make them available for public use</a> in the <i>CloudFormation Command Line Interface (CLI) User Guide</i>.</p></li>
434 /// <li>
435 /// <p><code>FAILED</code>: The extension has failed one or more contract tests.</p></li>
436 /// <li>
437 /// <p><code>IN_PROGRESS</code>: Contract tests are currently being performed on the extension.</p></li>
438 /// <li>
439 /// <p><code>NOT_TESTED</code>: Contract tests haven't been performed on the extension.</p></li>
440 /// </ul>
441 pub fn type_tests_status(mut self, input: crate::types::TypeTestsStatus) -> Self {
442 self.type_tests_status = ::std::option::Option::Some(input);
443 self
444 }
445 /// <p>The contract test status of the registered extension version. To return the extension test status of a specific extension version, you must specify <code>VersionId</code>.</p>
446 /// <p>This applies only to registered private extension versions. CloudFormation doesn't return this information for public extensions, whether they are activated in your account.</p>
447 /// <ul>
448 /// <li>
449 /// <p><code>PASSED</code>: The extension has passed all its contract tests.</p>
450 /// <p>An extension must have a test status of <code>PASSED</code> before it can be published. For more information, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html">Publishing extensions to make them available for public use</a> in the <i>CloudFormation Command Line Interface (CLI) User Guide</i>.</p></li>
451 /// <li>
452 /// <p><code>FAILED</code>: The extension has failed one or more contract tests.</p></li>
453 /// <li>
454 /// <p><code>IN_PROGRESS</code>: Contract tests are currently being performed on the extension.</p></li>
455 /// <li>
456 /// <p><code>NOT_TESTED</code>: Contract tests haven't been performed on the extension.</p></li>
457 /// </ul>
458 pub fn set_type_tests_status(mut self, input: ::std::option::Option<crate::types::TypeTestsStatus>) -> Self {
459 self.type_tests_status = input;
460 self
461 }
462 /// <p>The contract test status of the registered extension version. To return the extension test status of a specific extension version, you must specify <code>VersionId</code>.</p>
463 /// <p>This applies only to registered private extension versions. CloudFormation doesn't return this information for public extensions, whether they are activated in your account.</p>
464 /// <ul>
465 /// <li>
466 /// <p><code>PASSED</code>: The extension has passed all its contract tests.</p>
467 /// <p>An extension must have a test status of <code>PASSED</code> before it can be published. For more information, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html">Publishing extensions to make them available for public use</a> in the <i>CloudFormation Command Line Interface (CLI) User Guide</i>.</p></li>
468 /// <li>
469 /// <p><code>FAILED</code>: The extension has failed one or more contract tests.</p></li>
470 /// <li>
471 /// <p><code>IN_PROGRESS</code>: Contract tests are currently being performed on the extension.</p></li>
472 /// <li>
473 /// <p><code>NOT_TESTED</code>: Contract tests haven't been performed on the extension.</p></li>
474 /// </ul>
475 pub fn get_type_tests_status(&self) -> &::std::option::Option<crate::types::TypeTestsStatus> {
476 &self.type_tests_status
477 }
478 /// <p>The description of the test status. To return the extension test status of a specific extension version, you must specify <code>VersionId</code>.</p>
479 /// <p>This applies only to registered private extension versions. CloudFormation doesn't return this information for public extensions, whether they are activated in your account.</p>
480 pub fn type_tests_status_description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
481 self.type_tests_status_description = ::std::option::Option::Some(input.into());
482 self
483 }
484 /// <p>The description of the test status. To return the extension test status of a specific extension version, you must specify <code>VersionId</code>.</p>
485 /// <p>This applies only to registered private extension versions. CloudFormation doesn't return this information for public extensions, whether they are activated in your account.</p>
486 pub fn set_type_tests_status_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
487 self.type_tests_status_description = input;
488 self
489 }
490 /// <p>The description of the test status. To return the extension test status of a specific extension version, you must specify <code>VersionId</code>.</p>
491 /// <p>This applies only to registered private extension versions. CloudFormation doesn't return this information for public extensions, whether they are activated in your account.</p>
492 pub fn get_type_tests_status_description(&self) -> &::std::option::Option<::std::string::String> {
493 &self.type_tests_status_description
494 }
495 /// <p>The description of the extension.</p>
496 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
497 self.description = ::std::option::Option::Some(input.into());
498 self
499 }
500 /// <p>The description of the extension.</p>
501 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
502 self.description = input;
503 self
504 }
505 /// <p>The description of the extension.</p>
506 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
507 &self.description
508 }
509 /// <p>The schema that defines the extension.</p>
510 /// <p>For more information, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html">Resource type schema</a> in the <i>CloudFormation Command Line Interface (CLI) User Guide</i> and the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/what-is-cloudformation-hooks.html">CloudFormation Hooks User Guide</a>.</p>
511 pub fn schema(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
512 self.schema = ::std::option::Option::Some(input.into());
513 self
514 }
515 /// <p>The schema that defines the extension.</p>
516 /// <p>For more information, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html">Resource type schema</a> in the <i>CloudFormation Command Line Interface (CLI) User Guide</i> and the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/what-is-cloudformation-hooks.html">CloudFormation Hooks User Guide</a>.</p>
517 pub fn set_schema(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
518 self.schema = input;
519 self
520 }
521 /// <p>The schema that defines the extension.</p>
522 /// <p>For more information, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html">Resource type schema</a> in the <i>CloudFormation Command Line Interface (CLI) User Guide</i> and the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/what-is-cloudformation-hooks.html">CloudFormation Hooks User Guide</a>.</p>
523 pub fn get_schema(&self) -> &::std::option::Option<::std::string::String> {
524 &self.schema
525 }
526 /// <p>For resource type extensions, the provisioning behavior of the resource type. CloudFormation determines the provisioning type during registration, based on the types of handlers in the schema handler package submitted.</p>
527 /// <p>Valid values include:</p>
528 /// <ul>
529 /// <li>
530 /// <p><code>FULLY_MUTABLE</code>: The resource type includes an update handler to process updates to the type during stack update operations.</p></li>
531 /// <li>
532 /// <p><code>IMMUTABLE</code>: The resource type doesn't include an update handler, so the type can't be updated and must instead be replaced during stack update operations.</p></li>
533 /// <li>
534 /// <p><code>NON_PROVISIONABLE</code>: The resource type doesn't include all the following handlers, and therefore can't actually be provisioned.</p>
535 /// <ul>
536 /// <li>
537 /// <p>create</p></li>
538 /// <li>
539 /// <p>read</p></li>
540 /// <li>
541 /// <p>delete</p></li>
542 /// </ul></li>
543 /// </ul>
544 pub fn provisioning_type(mut self, input: crate::types::ProvisioningType) -> Self {
545 self.provisioning_type = ::std::option::Option::Some(input);
546 self
547 }
548 /// <p>For resource type extensions, the provisioning behavior of the resource type. CloudFormation determines the provisioning type during registration, based on the types of handlers in the schema handler package submitted.</p>
549 /// <p>Valid values include:</p>
550 /// <ul>
551 /// <li>
552 /// <p><code>FULLY_MUTABLE</code>: The resource type includes an update handler to process updates to the type during stack update operations.</p></li>
553 /// <li>
554 /// <p><code>IMMUTABLE</code>: The resource type doesn't include an update handler, so the type can't be updated and must instead be replaced during stack update operations.</p></li>
555 /// <li>
556 /// <p><code>NON_PROVISIONABLE</code>: The resource type doesn't include all the following handlers, and therefore can't actually be provisioned.</p>
557 /// <ul>
558 /// <li>
559 /// <p>create</p></li>
560 /// <li>
561 /// <p>read</p></li>
562 /// <li>
563 /// <p>delete</p></li>
564 /// </ul></li>
565 /// </ul>
566 pub fn set_provisioning_type(mut self, input: ::std::option::Option<crate::types::ProvisioningType>) -> Self {
567 self.provisioning_type = input;
568 self
569 }
570 /// <p>For resource type extensions, the provisioning behavior of the resource type. CloudFormation determines the provisioning type during registration, based on the types of handlers in the schema handler package submitted.</p>
571 /// <p>Valid values include:</p>
572 /// <ul>
573 /// <li>
574 /// <p><code>FULLY_MUTABLE</code>: The resource type includes an update handler to process updates to the type during stack update operations.</p></li>
575 /// <li>
576 /// <p><code>IMMUTABLE</code>: The resource type doesn't include an update handler, so the type can't be updated and must instead be replaced during stack update operations.</p></li>
577 /// <li>
578 /// <p><code>NON_PROVISIONABLE</code>: The resource type doesn't include all the following handlers, and therefore can't actually be provisioned.</p>
579 /// <ul>
580 /// <li>
581 /// <p>create</p></li>
582 /// <li>
583 /// <p>read</p></li>
584 /// <li>
585 /// <p>delete</p></li>
586 /// </ul></li>
587 /// </ul>
588 pub fn get_provisioning_type(&self) -> &::std::option::Option<crate::types::ProvisioningType> {
589 &self.provisioning_type
590 }
591 /// <p>The deprecation status of the extension version.</p>
592 /// <p>Valid values include:</p>
593 /// <ul>
594 /// <li>
595 /// <p><code>LIVE</code>: The extension is activated or registered and can be used in CloudFormation operations, dependent on its provisioning behavior and visibility scope.</p></li>
596 /// <li>
597 /// <p><code>DEPRECATED</code>: The extension has been deactivated or deregistered and can no longer be used in CloudFormation operations.</p></li>
598 /// </ul>
599 /// <p>For public third-party extensions, CloudFormation returns <code>null</code>.</p>
600 pub fn deprecated_status(mut self, input: crate::types::DeprecatedStatus) -> Self {
601 self.deprecated_status = ::std::option::Option::Some(input);
602 self
603 }
604 /// <p>The deprecation status of the extension version.</p>
605 /// <p>Valid values include:</p>
606 /// <ul>
607 /// <li>
608 /// <p><code>LIVE</code>: The extension is activated or registered and can be used in CloudFormation operations, dependent on its provisioning behavior and visibility scope.</p></li>
609 /// <li>
610 /// <p><code>DEPRECATED</code>: The extension has been deactivated or deregistered and can no longer be used in CloudFormation operations.</p></li>
611 /// </ul>
612 /// <p>For public third-party extensions, CloudFormation returns <code>null</code>.</p>
613 pub fn set_deprecated_status(mut self, input: ::std::option::Option<crate::types::DeprecatedStatus>) -> Self {
614 self.deprecated_status = input;
615 self
616 }
617 /// <p>The deprecation status of the extension version.</p>
618 /// <p>Valid values include:</p>
619 /// <ul>
620 /// <li>
621 /// <p><code>LIVE</code>: The extension is activated or registered and can be used in CloudFormation operations, dependent on its provisioning behavior and visibility scope.</p></li>
622 /// <li>
623 /// <p><code>DEPRECATED</code>: The extension has been deactivated or deregistered and can no longer be used in CloudFormation operations.</p></li>
624 /// </ul>
625 /// <p>For public third-party extensions, CloudFormation returns <code>null</code>.</p>
626 pub fn get_deprecated_status(&self) -> &::std::option::Option<crate::types::DeprecatedStatus> {
627 &self.deprecated_status
628 }
629 /// <p>Contains logging configuration information for private extensions. This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon Web Services and published by third parties, CloudFormation returns <code>null</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
630 pub fn logging_config(mut self, input: crate::types::LoggingConfig) -> Self {
631 self.logging_config = ::std::option::Option::Some(input);
632 self
633 }
634 /// <p>Contains logging configuration information for private extensions. This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon Web Services and published by third parties, CloudFormation returns <code>null</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
635 pub fn set_logging_config(mut self, input: ::std::option::Option<crate::types::LoggingConfig>) -> Self {
636 self.logging_config = input;
637 self
638 }
639 /// <p>Contains logging configuration information for private extensions. This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon Web Services and published by third parties, CloudFormation returns <code>null</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
640 pub fn get_logging_config(&self) -> &::std::option::Option<crate::types::LoggingConfig> {
641 &self.logging_config
642 }
643 /// Appends an item to `required_activated_types`.
644 ///
645 /// To override the contents of this collection use [`set_required_activated_types`](Self::set_required_activated_types).
646 ///
647 /// <p>For extensions that are modules, the public third-party extensions that must be activated in your account in order for the module itself to be activated.</p>
648 pub fn required_activated_types(mut self, input: crate::types::RequiredActivatedType) -> Self {
649 let mut v = self.required_activated_types.unwrap_or_default();
650 v.push(input);
651 self.required_activated_types = ::std::option::Option::Some(v);
652 self
653 }
654 /// <p>For extensions that are modules, the public third-party extensions that must be activated in your account in order for the module itself to be activated.</p>
655 pub fn set_required_activated_types(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::RequiredActivatedType>>) -> Self {
656 self.required_activated_types = input;
657 self
658 }
659 /// <p>For extensions that are modules, the public third-party extensions that must be activated in your account in order for the module itself to be activated.</p>
660 pub fn get_required_activated_types(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::RequiredActivatedType>> {
661 &self.required_activated_types
662 }
663 /// <p>The Amazon Resource Name (ARN) of the IAM execution role used to register the extension. This applies only to private extensions you have registered in your account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
664 /// <p>If the registered extension calls any Amazon Web Services APIs, you must create an <i> <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html">IAM execution role</a> </i> that includes the necessary permissions to call those Amazon Web Services APIs, and provision that execution role in your account. CloudFormation then assumes that execution role to provide your extension with the appropriate credentials.</p>
665 pub fn execution_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
666 self.execution_role_arn = ::std::option::Option::Some(input.into());
667 self
668 }
669 /// <p>The Amazon Resource Name (ARN) of the IAM execution role used to register the extension. This applies only to private extensions you have registered in your account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
670 /// <p>If the registered extension calls any Amazon Web Services APIs, you must create an <i> <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html">IAM execution role</a> </i> that includes the necessary permissions to call those Amazon Web Services APIs, and provision that execution role in your account. CloudFormation then assumes that execution role to provide your extension with the appropriate credentials.</p>
671 pub fn set_execution_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
672 self.execution_role_arn = input;
673 self
674 }
675 /// <p>The Amazon Resource Name (ARN) of the IAM execution role used to register the extension. This applies only to private extensions you have registered in your account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p>
676 /// <p>If the registered extension calls any Amazon Web Services APIs, you must create an <i> <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html">IAM execution role</a> </i> that includes the necessary permissions to call those Amazon Web Services APIs, and provision that execution role in your account. CloudFormation then assumes that execution role to provide your extension with the appropriate credentials.</p>
677 pub fn get_execution_role_arn(&self) -> &::std::option::Option<::std::string::String> {
678 &self.execution_role_arn
679 }
680 /// <p>The scope at which the extension is visible and usable in CloudFormation operations.</p>
681 /// <p>Valid values include:</p>
682 /// <ul>
683 /// <li>
684 /// <p><code>PRIVATE</code>: The extension is only visible and usable within the account in which it is registered. CloudFormation marks any extensions you register as <code>PRIVATE</code>.</p></li>
685 /// <li>
686 /// <p><code>PUBLIC</code>: The extension is publicly visible and usable within any Amazon Web Services account.</p></li>
687 /// </ul>
688 pub fn visibility(mut self, input: crate::types::Visibility) -> Self {
689 self.visibility = ::std::option::Option::Some(input);
690 self
691 }
692 /// <p>The scope at which the extension is visible and usable in CloudFormation operations.</p>
693 /// <p>Valid values include:</p>
694 /// <ul>
695 /// <li>
696 /// <p><code>PRIVATE</code>: The extension is only visible and usable within the account in which it is registered. CloudFormation marks any extensions you register as <code>PRIVATE</code>.</p></li>
697 /// <li>
698 /// <p><code>PUBLIC</code>: The extension is publicly visible and usable within any Amazon Web Services account.</p></li>
699 /// </ul>
700 pub fn set_visibility(mut self, input: ::std::option::Option<crate::types::Visibility>) -> Self {
701 self.visibility = input;
702 self
703 }
704 /// <p>The scope at which the extension is visible and usable in CloudFormation operations.</p>
705 /// <p>Valid values include:</p>
706 /// <ul>
707 /// <li>
708 /// <p><code>PRIVATE</code>: The extension is only visible and usable within the account in which it is registered. CloudFormation marks any extensions you register as <code>PRIVATE</code>.</p></li>
709 /// <li>
710 /// <p><code>PUBLIC</code>: The extension is publicly visible and usable within any Amazon Web Services account.</p></li>
711 /// </ul>
712 pub fn get_visibility(&self) -> &::std::option::Option<crate::types::Visibility> {
713 &self.visibility
714 }
715 /// <p>The URL of the source code for the extension.</p>
716 pub fn source_url(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
717 self.source_url = ::std::option::Option::Some(input.into());
718 self
719 }
720 /// <p>The URL of the source code for the extension.</p>
721 pub fn set_source_url(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
722 self.source_url = input;
723 self
724 }
725 /// <p>The URL of the source code for the extension.</p>
726 pub fn get_source_url(&self) -> &::std::option::Option<::std::string::String> {
727 &self.source_url
728 }
729 /// <p>The URL of a page providing detailed documentation for this extension.</p>
730 pub fn documentation_url(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
731 self.documentation_url = ::std::option::Option::Some(input.into());
732 self
733 }
734 /// <p>The URL of a page providing detailed documentation for this extension.</p>
735 pub fn set_documentation_url(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
736 self.documentation_url = input;
737 self
738 }
739 /// <p>The URL of a page providing detailed documentation for this extension.</p>
740 pub fn get_documentation_url(&self) -> &::std::option::Option<::std::string::String> {
741 &self.documentation_url
742 }
743 /// <p>When the specified extension version was registered. This applies only to:</p>
744 /// <ul>
745 /// <li>
746 /// <p>Private extensions you have registered in your account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p></li>
747 /// <li>
748 /// <p>Public extensions you have activated in your account with auto-update specified. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html">ActivateType</a>.</p></li>
749 /// </ul>
750 pub fn last_updated(mut self, input: ::aws_smithy_types::DateTime) -> Self {
751 self.last_updated = ::std::option::Option::Some(input);
752 self
753 }
754 /// <p>When the specified extension version was registered. This applies only to:</p>
755 /// <ul>
756 /// <li>
757 /// <p>Private extensions you have registered in your account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p></li>
758 /// <li>
759 /// <p>Public extensions you have activated in your account with auto-update specified. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html">ActivateType</a>.</p></li>
760 /// </ul>
761 pub fn set_last_updated(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
762 self.last_updated = input;
763 self
764 }
765 /// <p>When the specified extension version was registered. This applies only to:</p>
766 /// <ul>
767 /// <li>
768 /// <p>Private extensions you have registered in your account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.</p></li>
769 /// <li>
770 /// <p>Public extensions you have activated in your account with auto-update specified. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html">ActivateType</a>.</p></li>
771 /// </ul>
772 pub fn get_last_updated(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
773 &self.last_updated
774 }
775 /// <p>When the specified private extension version was registered or activated in your account.</p>
776 pub fn time_created(mut self, input: ::aws_smithy_types::DateTime) -> Self {
777 self.time_created = ::std::option::Option::Some(input);
778 self
779 }
780 /// <p>When the specified private extension version was registered or activated in your account.</p>
781 pub fn set_time_created(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
782 self.time_created = input;
783 self
784 }
785 /// <p>When the specified private extension version was registered or activated in your account.</p>
786 pub fn get_time_created(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
787 &self.time_created
788 }
789 /// <p>A JSON string that represent the current configuration data for the extension in this account and Region.</p>
790 /// <p>To set the configuration data for an extension, use <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html">SetTypeConfiguration</a>.</p>
791 pub fn configuration_schema(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
792 self.configuration_schema = ::std::option::Option::Some(input.into());
793 self
794 }
795 /// <p>A JSON string that represent the current configuration data for the extension in this account and Region.</p>
796 /// <p>To set the configuration data for an extension, use <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html">SetTypeConfiguration</a>.</p>
797 pub fn set_configuration_schema(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
798 self.configuration_schema = input;
799 self
800 }
801 /// <p>A JSON string that represent the current configuration data for the extension in this account and Region.</p>
802 /// <p>To set the configuration data for an extension, use <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html">SetTypeConfiguration</a>.</p>
803 pub fn get_configuration_schema(&self) -> &::std::option::Option<::std::string::String> {
804 &self.configuration_schema
805 }
806 /// <p>The publisher ID of the extension publisher.</p>
807 /// <p>This applies only to public third-party extensions. For private registered extensions, and extensions provided by Amazon Web Services, CloudFormation returns <code>null</code>.</p>
808 pub fn publisher_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
809 self.publisher_id = ::std::option::Option::Some(input.into());
810 self
811 }
812 /// <p>The publisher ID of the extension publisher.</p>
813 /// <p>This applies only to public third-party extensions. For private registered extensions, and extensions provided by Amazon Web Services, CloudFormation returns <code>null</code>.</p>
814 pub fn set_publisher_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
815 self.publisher_id = input;
816 self
817 }
818 /// <p>The publisher ID of the extension publisher.</p>
819 /// <p>This applies only to public third-party extensions. For private registered extensions, and extensions provided by Amazon Web Services, CloudFormation returns <code>null</code>.</p>
820 pub fn get_publisher_id(&self) -> &::std::option::Option<::std::string::String> {
821 &self.publisher_id
822 }
823 /// <p>For public extensions that have been activated for this account and Region, the type name of the public extension.</p>
824 /// <p>If you specified a <code>TypeNameAlias</code> when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of the public extension. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias">Use aliases to refer to extensions</a> in the <i>CloudFormation User Guide</i>.</p>
825 pub fn original_type_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
826 self.original_type_name = ::std::option::Option::Some(input.into());
827 self
828 }
829 /// <p>For public extensions that have been activated for this account and Region, the type name of the public extension.</p>
830 /// <p>If you specified a <code>TypeNameAlias</code> when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of the public extension. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias">Use aliases to refer to extensions</a> in the <i>CloudFormation User Guide</i>.</p>
831 pub fn set_original_type_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
832 self.original_type_name = input;
833 self
834 }
835 /// <p>For public extensions that have been activated for this account and Region, the type name of the public extension.</p>
836 /// <p>If you specified a <code>TypeNameAlias</code> when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of the public extension. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias">Use aliases to refer to extensions</a> in the <i>CloudFormation User Guide</i>.</p>
837 pub fn get_original_type_name(&self) -> &::std::option::Option<::std::string::String> {
838 &self.original_type_name
839 }
840 /// <p>For public extensions that have been activated for this account and Region, the Amazon Resource Name (ARN) of the public extension.</p>
841 pub fn original_type_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
842 self.original_type_arn = ::std::option::Option::Some(input.into());
843 self
844 }
845 /// <p>For public extensions that have been activated for this account and Region, the Amazon Resource Name (ARN) of the public extension.</p>
846 pub fn set_original_type_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
847 self.original_type_arn = input;
848 self
849 }
850 /// <p>For public extensions that have been activated for this account and Region, the Amazon Resource Name (ARN) of the public extension.</p>
851 pub fn get_original_type_arn(&self) -> &::std::option::Option<::std::string::String> {
852 &self.original_type_arn
853 }
854 /// <p>The version number of a public third-party extension.</p>
855 /// <p>This applies only if you specify a public extension you have activated in your account, or specify a public extension without specifying a version. For all other extensions, CloudFormation returns <code>null</code>.</p>
856 pub fn public_version_number(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
857 self.public_version_number = ::std::option::Option::Some(input.into());
858 self
859 }
860 /// <p>The version number of a public third-party extension.</p>
861 /// <p>This applies only if you specify a public extension you have activated in your account, or specify a public extension without specifying a version. For all other extensions, CloudFormation returns <code>null</code>.</p>
862 pub fn set_public_version_number(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
863 self.public_version_number = input;
864 self
865 }
866 /// <p>The version number of a public third-party extension.</p>
867 /// <p>This applies only if you specify a public extension you have activated in your account, or specify a public extension without specifying a version. For all other extensions, CloudFormation returns <code>null</code>.</p>
868 pub fn get_public_version_number(&self) -> &::std::option::Option<::std::string::String> {
869 &self.public_version_number
870 }
871 /// <p>The latest version of a public extension <i>that is available</i> for use.</p>
872 /// <p>This only applies if you specify a public extension, and you don't specify a version. For all other requests, CloudFormation returns <code>null</code>.</p>
873 pub fn latest_public_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
874 self.latest_public_version = ::std::option::Option::Some(input.into());
875 self
876 }
877 /// <p>The latest version of a public extension <i>that is available</i> for use.</p>
878 /// <p>This only applies if you specify a public extension, and you don't specify a version. For all other requests, CloudFormation returns <code>null</code>.</p>
879 pub fn set_latest_public_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
880 self.latest_public_version = input;
881 self
882 }
883 /// <p>The latest version of a public extension <i>that is available</i> for use.</p>
884 /// <p>This only applies if you specify a public extension, and you don't specify a version. For all other requests, CloudFormation returns <code>null</code>.</p>
885 pub fn get_latest_public_version(&self) -> &::std::option::Option<::std::string::String> {
886 &self.latest_public_version
887 }
888 /// <p>Whether the extension is activated in the account and Region.</p>
889 /// <p>This only applies to public third-party extensions. For all other extensions, CloudFormation returns <code>null</code>.</p>
890 pub fn is_activated(mut self, input: bool) -> Self {
891 self.is_activated = ::std::option::Option::Some(input);
892 self
893 }
894 /// <p>Whether the extension is activated in the account and Region.</p>
895 /// <p>This only applies to public third-party extensions. For all other extensions, CloudFormation returns <code>null</code>.</p>
896 pub fn set_is_activated(mut self, input: ::std::option::Option<bool>) -> Self {
897 self.is_activated = input;
898 self
899 }
900 /// <p>Whether the extension is activated in the account and Region.</p>
901 /// <p>This only applies to public third-party extensions. For all other extensions, CloudFormation returns <code>null</code>.</p>
902 pub fn get_is_activated(&self) -> &::std::option::Option<bool> {
903 &self.is_activated
904 }
905 /// <p>Whether CloudFormation automatically updates the extension in this account and Region when a new <i>minor</i> version is published by the extension publisher. Major versions released by the publisher must be manually updated. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto">Automatically use new versions of extensions</a> in the <i>CloudFormation User Guide</i>.</p>
906 pub fn auto_update(mut self, input: bool) -> Self {
907 self.auto_update = ::std::option::Option::Some(input);
908 self
909 }
910 /// <p>Whether CloudFormation automatically updates the extension in this account and Region when a new <i>minor</i> version is published by the extension publisher. Major versions released by the publisher must be manually updated. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto">Automatically use new versions of extensions</a> in the <i>CloudFormation User Guide</i>.</p>
911 pub fn set_auto_update(mut self, input: ::std::option::Option<bool>) -> Self {
912 self.auto_update = input;
913 self
914 }
915 /// <p>Whether CloudFormation automatically updates the extension in this account and Region when a new <i>minor</i> version is published by the extension publisher. Major versions released by the publisher must be manually updated. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto">Automatically use new versions of extensions</a> in the <i>CloudFormation User Guide</i>.</p>
916 pub fn get_auto_update(&self) -> &::std::option::Option<bool> {
917 &self.auto_update
918 }
919 pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
920 self._request_id = Some(request_id.into());
921 self
922 }
923
924 pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
925 self._request_id = request_id;
926 self
927 }
928 /// Consumes the builder and constructs a [`DescribeTypeOutput`](crate::operation::describe_type::DescribeTypeOutput).
929 pub fn build(self) -> crate::operation::describe_type::DescribeTypeOutput {
930 crate::operation::describe_type::DescribeTypeOutput {
931 arn: self.arn,
932 r#type: self.r#type,
933 type_name: self.type_name,
934 default_version_id: self.default_version_id,
935 is_default_version: self.is_default_version,
936 type_tests_status: self.type_tests_status,
937 type_tests_status_description: self.type_tests_status_description,
938 description: self.description,
939 schema: self.schema,
940 provisioning_type: self.provisioning_type,
941 deprecated_status: self.deprecated_status,
942 logging_config: self.logging_config,
943 required_activated_types: self.required_activated_types,
944 execution_role_arn: self.execution_role_arn,
945 visibility: self.visibility,
946 source_url: self.source_url,
947 documentation_url: self.documentation_url,
948 last_updated: self.last_updated,
949 time_created: self.time_created,
950 configuration_schema: self.configuration_schema,
951 publisher_id: self.publisher_id,
952 original_type_name: self.original_type_name,
953 original_type_arn: self.original_type_arn,
954 public_version_number: self.public_version_number,
955 latest_public_version: self.latest_public_version,
956 is_activated: self.is_activated,
957 auto_update: self.auto_update,
958 _request_id: self._request_id,
959 }
960 }
961}