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
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct DescribeComponentConfigurationRecommendationInput {
    /// <p>The name of the resource group.</p>
    pub resource_group_name: ::std::option::Option<::std::string::String>,
    /// <p>The name of the component.</p>
    pub component_name: ::std::option::Option<::std::string::String>,
    /// <p>The tier of the application component.</p>
    pub tier: ::std::option::Option<crate::types::Tier>,
    /// <p>The name of the workload.</p>
    pub workload_name: ::std::option::Option<::std::string::String>,
    /// <p>The recommended configuration type.</p>
    pub recommendation_type: ::std::option::Option<crate::types::RecommendationType>,
}
impl DescribeComponentConfigurationRecommendationInput {
    /// <p>The name of the resource group.</p>
    pub fn resource_group_name(&self) -> ::std::option::Option<&str> {
        self.resource_group_name.as_deref()
    }
    /// <p>The name of the component.</p>
    pub fn component_name(&self) -> ::std::option::Option<&str> {
        self.component_name.as_deref()
    }
    /// <p>The tier of the application component.</p>
    pub fn tier(&self) -> ::std::option::Option<&crate::types::Tier> {
        self.tier.as_ref()
    }
    /// <p>The name of the workload.</p>
    pub fn workload_name(&self) -> ::std::option::Option<&str> {
        self.workload_name.as_deref()
    }
    /// <p>The recommended configuration type.</p>
    pub fn recommendation_type(&self) -> ::std::option::Option<&crate::types::RecommendationType> {
        self.recommendation_type.as_ref()
    }
}
impl DescribeComponentConfigurationRecommendationInput {
    /// Creates a new builder-style object to manufacture [`DescribeComponentConfigurationRecommendationInput`](crate::operation::describe_component_configuration_recommendation::DescribeComponentConfigurationRecommendationInput).
    pub fn builder(
    ) -> crate::operation::describe_component_configuration_recommendation::builders::DescribeComponentConfigurationRecommendationInputBuilder {
        crate::operation::describe_component_configuration_recommendation::builders::DescribeComponentConfigurationRecommendationInputBuilder::default(
        )
    }
}

/// A builder for [`DescribeComponentConfigurationRecommendationInput`](crate::operation::describe_component_configuration_recommendation::DescribeComponentConfigurationRecommendationInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct DescribeComponentConfigurationRecommendationInputBuilder {
    pub(crate) resource_group_name: ::std::option::Option<::std::string::String>,
    pub(crate) component_name: ::std::option::Option<::std::string::String>,
    pub(crate) tier: ::std::option::Option<crate::types::Tier>,
    pub(crate) workload_name: ::std::option::Option<::std::string::String>,
    pub(crate) recommendation_type: ::std::option::Option<crate::types::RecommendationType>,
}
impl DescribeComponentConfigurationRecommendationInputBuilder {
    /// <p>The name of the resource group.</p>
    /// This field is required.
    pub fn resource_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.resource_group_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name of the resource group.</p>
    pub fn set_resource_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.resource_group_name = input;
        self
    }
    /// <p>The name of the resource group.</p>
    pub fn get_resource_group_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.resource_group_name
    }
    /// <p>The name of the component.</p>
    /// This field is required.
    pub fn component_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.component_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name of the component.</p>
    pub fn set_component_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.component_name = input;
        self
    }
    /// <p>The name of the component.</p>
    pub fn get_component_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.component_name
    }
    /// <p>The tier of the application component.</p>
    /// This field is required.
    pub fn tier(mut self, input: crate::types::Tier) -> Self {
        self.tier = ::std::option::Option::Some(input);
        self
    }
    /// <p>The tier of the application component.</p>
    pub fn set_tier(mut self, input: ::std::option::Option<crate::types::Tier>) -> Self {
        self.tier = input;
        self
    }
    /// <p>The tier of the application component.</p>
    pub fn get_tier(&self) -> &::std::option::Option<crate::types::Tier> {
        &self.tier
    }
    /// <p>The name of the workload.</p>
    pub fn workload_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.workload_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name of the workload.</p>
    pub fn set_workload_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.workload_name = input;
        self
    }
    /// <p>The name of the workload.</p>
    pub fn get_workload_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.workload_name
    }
    /// <p>The recommended configuration type.</p>
    pub fn recommendation_type(mut self, input: crate::types::RecommendationType) -> Self {
        self.recommendation_type = ::std::option::Option::Some(input);
        self
    }
    /// <p>The recommended configuration type.</p>
    pub fn set_recommendation_type(mut self, input: ::std::option::Option<crate::types::RecommendationType>) -> Self {
        self.recommendation_type = input;
        self
    }
    /// <p>The recommended configuration type.</p>
    pub fn get_recommendation_type(&self) -> &::std::option::Option<crate::types::RecommendationType> {
        &self.recommendation_type
    }
    /// Consumes the builder and constructs a [`DescribeComponentConfigurationRecommendationInput`](crate::operation::describe_component_configuration_recommendation::DescribeComponentConfigurationRecommendationInput).
    pub fn build(
        self,
    ) -> ::std::result::Result<
        crate::operation::describe_component_configuration_recommendation::DescribeComponentConfigurationRecommendationInput,
        ::aws_smithy_types::error::operation::BuildError,
    > {
        ::std::result::Result::Ok(
            crate::operation::describe_component_configuration_recommendation::DescribeComponentConfigurationRecommendationInput {
                resource_group_name: self.resource_group_name,
                component_name: self.component_name,
                tier: self.tier,
                workload_name: self.workload_name,
                recommendation_type: self.recommendation_type,
            },
        )
    }
}