1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
/// <p>Returns information about the resource being evaluated.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct ResourceDetails {
/// <p>A unique resource ID for an evaluation.</p>
pub resource_id: ::std::string::String,
/// <p>The type of resource being evaluated.</p>
pub resource_type: ::std::string::String,
/// <p>The resource definition to be evaluated as per the resource configuration schema type.</p>
pub resource_configuration: ::std::string::String,
/// <p>The schema type of the resource configuration.</p> <note>
/// <p>You can find the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html">Resource type schema</a>, or <code>CFN_RESOURCE_SCHEMA</code>, in "<i>Amazon Web Services public extensions</i>" within the CloudFormation registry or with the following CLI commmand: <code>aws cloudformation describe-type --type-name "AWS::S3::Bucket" --type RESOURCE</code>.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html#registry-view">Managing extensions through the CloudFormation registry</a> and <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon Web Services resource and property types reference</a> in the CloudFormation User Guide.</p>
/// </note>
pub resource_configuration_schema_type: ::std::option::Option<crate::types::ResourceConfigurationSchemaType>,
}
impl ResourceDetails {
/// <p>A unique resource ID for an evaluation.</p>
pub fn resource_id(&self) -> &str {
use std::ops::Deref;
self.resource_id.deref()
}
/// <p>The type of resource being evaluated.</p>
pub fn resource_type(&self) -> &str {
use std::ops::Deref;
self.resource_type.deref()
}
/// <p>The resource definition to be evaluated as per the resource configuration schema type.</p>
pub fn resource_configuration(&self) -> &str {
use std::ops::Deref;
self.resource_configuration.deref()
}
/// <p>The schema type of the resource configuration.</p> <note>
/// <p>You can find the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html">Resource type schema</a>, or <code>CFN_RESOURCE_SCHEMA</code>, in "<i>Amazon Web Services public extensions</i>" within the CloudFormation registry or with the following CLI commmand: <code>aws cloudformation describe-type --type-name "AWS::S3::Bucket" --type RESOURCE</code>.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html#registry-view">Managing extensions through the CloudFormation registry</a> and <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon Web Services resource and property types reference</a> in the CloudFormation User Guide.</p>
/// </note>
pub fn resource_configuration_schema_type(&self) -> ::std::option::Option<&crate::types::ResourceConfigurationSchemaType> {
self.resource_configuration_schema_type.as_ref()
}
}
impl ResourceDetails {
/// Creates a new builder-style object to manufacture [`ResourceDetails`](crate::types::ResourceDetails).
pub fn builder() -> crate::types::builders::ResourceDetailsBuilder {
crate::types::builders::ResourceDetailsBuilder::default()
}
}
/// A builder for [`ResourceDetails`](crate::types::ResourceDetails).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct ResourceDetailsBuilder {
pub(crate) resource_id: ::std::option::Option<::std::string::String>,
pub(crate) resource_type: ::std::option::Option<::std::string::String>,
pub(crate) resource_configuration: ::std::option::Option<::std::string::String>,
pub(crate) resource_configuration_schema_type: ::std::option::Option<crate::types::ResourceConfigurationSchemaType>,
}
impl ResourceDetailsBuilder {
/// <p>A unique resource ID for an evaluation.</p>
/// This field is required.
pub fn resource_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.resource_id = ::std::option::Option::Some(input.into());
self
}
/// <p>A unique resource ID for an evaluation.</p>
pub fn set_resource_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.resource_id = input;
self
}
/// <p>A unique resource ID for an evaluation.</p>
pub fn get_resource_id(&self) -> &::std::option::Option<::std::string::String> {
&self.resource_id
}
/// <p>The type of resource being evaluated.</p>
/// This field is required.
pub fn resource_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.resource_type = ::std::option::Option::Some(input.into());
self
}
/// <p>The type of resource being evaluated.</p>
pub fn set_resource_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.resource_type = input;
self
}
/// <p>The type of resource being evaluated.</p>
pub fn get_resource_type(&self) -> &::std::option::Option<::std::string::String> {
&self.resource_type
}
/// <p>The resource definition to be evaluated as per the resource configuration schema type.</p>
/// This field is required.
pub fn resource_configuration(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.resource_configuration = ::std::option::Option::Some(input.into());
self
}
/// <p>The resource definition to be evaluated as per the resource configuration schema type.</p>
pub fn set_resource_configuration(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.resource_configuration = input;
self
}
/// <p>The resource definition to be evaluated as per the resource configuration schema type.</p>
pub fn get_resource_configuration(&self) -> &::std::option::Option<::std::string::String> {
&self.resource_configuration
}
/// <p>The schema type of the resource configuration.</p> <note>
/// <p>You can find the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html">Resource type schema</a>, or <code>CFN_RESOURCE_SCHEMA</code>, in "<i>Amazon Web Services public extensions</i>" within the CloudFormation registry or with the following CLI commmand: <code>aws cloudformation describe-type --type-name "AWS::S3::Bucket" --type RESOURCE</code>.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html#registry-view">Managing extensions through the CloudFormation registry</a> and <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon Web Services resource and property types reference</a> in the CloudFormation User Guide.</p>
/// </note>
pub fn resource_configuration_schema_type(mut self, input: crate::types::ResourceConfigurationSchemaType) -> Self {
self.resource_configuration_schema_type = ::std::option::Option::Some(input);
self
}
/// <p>The schema type of the resource configuration.</p> <note>
/// <p>You can find the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html">Resource type schema</a>, or <code>CFN_RESOURCE_SCHEMA</code>, in "<i>Amazon Web Services public extensions</i>" within the CloudFormation registry or with the following CLI commmand: <code>aws cloudformation describe-type --type-name "AWS::S3::Bucket" --type RESOURCE</code>.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html#registry-view">Managing extensions through the CloudFormation registry</a> and <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon Web Services resource and property types reference</a> in the CloudFormation User Guide.</p>
/// </note>
pub fn set_resource_configuration_schema_type(mut self, input: ::std::option::Option<crate::types::ResourceConfigurationSchemaType>) -> Self {
self.resource_configuration_schema_type = input;
self
}
/// <p>The schema type of the resource configuration.</p> <note>
/// <p>You can find the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html">Resource type schema</a>, or <code>CFN_RESOURCE_SCHEMA</code>, in "<i>Amazon Web Services public extensions</i>" within the CloudFormation registry or with the following CLI commmand: <code>aws cloudformation describe-type --type-name "AWS::S3::Bucket" --type RESOURCE</code>.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html#registry-view">Managing extensions through the CloudFormation registry</a> and <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon Web Services resource and property types reference</a> in the CloudFormation User Guide.</p>
/// </note>
pub fn get_resource_configuration_schema_type(&self) -> &::std::option::Option<crate::types::ResourceConfigurationSchemaType> {
&self.resource_configuration_schema_type
}
/// Consumes the builder and constructs a [`ResourceDetails`](crate::types::ResourceDetails).
/// This method will fail if any of the following fields are not set:
/// - [`resource_id`](crate::types::builders::ResourceDetailsBuilder::resource_id)
/// - [`resource_type`](crate::types::builders::ResourceDetailsBuilder::resource_type)
/// - [`resource_configuration`](crate::types::builders::ResourceDetailsBuilder::resource_configuration)
pub fn build(self) -> ::std::result::Result<crate::types::ResourceDetails, ::aws_smithy_types::error::operation::BuildError> {
::std::result::Result::Ok(crate::types::ResourceDetails {
resource_id: self.resource_id.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"resource_id",
"resource_id was not specified but it is required when building ResourceDetails",
)
})?,
resource_type: self.resource_type.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"resource_type",
"resource_type was not specified but it is required when building ResourceDetails",
)
})?,
resource_configuration: self.resource_configuration.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"resource_configuration",
"resource_configuration was not specified but it is required when building ResourceDetails",
)
})?,
resource_configuration_schema_type: self.resource_configuration_schema_type,
})
}
}