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
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>The input for a <code>GetTemplate</code> action.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct GetTemplateInput {
    /// <p>The name or the unique stack ID that's associated with the stack, which aren't always interchangeable:</p>
    /// <ul>
    /// <li>
    /// <p>Running stacks: You can specify either the stack's name or its unique stack ID.</p></li>
    /// <li>
    /// <p>Deleted stacks: You must specify the unique stack ID.</p></li>
    /// </ul>
    /// <p>Default: There is no default value.</p>
    pub stack_name: ::std::option::Option<::std::string::String>,
    /// <p>The name or Amazon Resource Name (ARN) of a change set for which CloudFormation returns the associated template. If you specify a name, you must also specify the <code>StackName</code>.</p>
    pub change_set_name: ::std::option::Option<::std::string::String>,
    /// <p>For templates that include transforms, the stage of the template that CloudFormation returns. To get the user-submitted template, specify <code>Original</code>. To get the template after CloudFormation has processed all transforms, specify <code>Processed</code>.</p>
    /// <p>If the template doesn't include transforms, <code>Original</code> and <code>Processed</code> return the same template. By default, CloudFormation specifies <code>Processed</code>.</p>
    pub template_stage: ::std::option::Option<crate::types::TemplateStage>,
}
impl GetTemplateInput {
    /// <p>The name or the unique stack ID that's associated with the stack, which aren't always interchangeable:</p>
    /// <ul>
    /// <li>
    /// <p>Running stacks: You can specify either the stack's name or its unique stack ID.</p></li>
    /// <li>
    /// <p>Deleted stacks: You must specify the unique stack ID.</p></li>
    /// </ul>
    /// <p>Default: There is no default value.</p>
    pub fn stack_name(&self) -> ::std::option::Option<&str> {
        self.stack_name.as_deref()
    }
    /// <p>The name or Amazon Resource Name (ARN) of a change set for which CloudFormation returns the associated template. If you specify a name, you must also specify the <code>StackName</code>.</p>
    pub fn change_set_name(&self) -> ::std::option::Option<&str> {
        self.change_set_name.as_deref()
    }
    /// <p>For templates that include transforms, the stage of the template that CloudFormation returns. To get the user-submitted template, specify <code>Original</code>. To get the template after CloudFormation has processed all transforms, specify <code>Processed</code>.</p>
    /// <p>If the template doesn't include transforms, <code>Original</code> and <code>Processed</code> return the same template. By default, CloudFormation specifies <code>Processed</code>.</p>
    pub fn template_stage(&self) -> ::std::option::Option<&crate::types::TemplateStage> {
        self.template_stage.as_ref()
    }
}
impl GetTemplateInput {
    /// Creates a new builder-style object to manufacture [`GetTemplateInput`](crate::operation::get_template::GetTemplateInput).
    pub fn builder() -> crate::operation::get_template::builders::GetTemplateInputBuilder {
        crate::operation::get_template::builders::GetTemplateInputBuilder::default()
    }
}

/// A builder for [`GetTemplateInput`](crate::operation::get_template::GetTemplateInput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct GetTemplateInputBuilder {
    pub(crate) stack_name: ::std::option::Option<::std::string::String>,
    pub(crate) change_set_name: ::std::option::Option<::std::string::String>,
    pub(crate) template_stage: ::std::option::Option<crate::types::TemplateStage>,
}
impl GetTemplateInputBuilder {
    /// <p>The name or the unique stack ID that's associated with the stack, which aren't always interchangeable:</p>
    /// <ul>
    /// <li>
    /// <p>Running stacks: You can specify either the stack's name or its unique stack ID.</p></li>
    /// <li>
    /// <p>Deleted stacks: You must specify the unique stack ID.</p></li>
    /// </ul>
    /// <p>Default: There is no default value.</p>
    pub fn stack_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.stack_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name or the unique stack ID that's associated with the stack, which aren't always interchangeable:</p>
    /// <ul>
    /// <li>
    /// <p>Running stacks: You can specify either the stack's name or its unique stack ID.</p></li>
    /// <li>
    /// <p>Deleted stacks: You must specify the unique stack ID.</p></li>
    /// </ul>
    /// <p>Default: There is no default value.</p>
    pub fn set_stack_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.stack_name = input;
        self
    }
    /// <p>The name or the unique stack ID that's associated with the stack, which aren't always interchangeable:</p>
    /// <ul>
    /// <li>
    /// <p>Running stacks: You can specify either the stack's name or its unique stack ID.</p></li>
    /// <li>
    /// <p>Deleted stacks: You must specify the unique stack ID.</p></li>
    /// </ul>
    /// <p>Default: There is no default value.</p>
    pub fn get_stack_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.stack_name
    }
    /// <p>The name or Amazon Resource Name (ARN) of a change set for which CloudFormation returns the associated template. If you specify a name, you must also specify the <code>StackName</code>.</p>
    pub fn change_set_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.change_set_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name or Amazon Resource Name (ARN) of a change set for which CloudFormation returns the associated template. If you specify a name, you must also specify the <code>StackName</code>.</p>
    pub fn set_change_set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.change_set_name = input;
        self
    }
    /// <p>The name or Amazon Resource Name (ARN) of a change set for which CloudFormation returns the associated template. If you specify a name, you must also specify the <code>StackName</code>.</p>
    pub fn get_change_set_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.change_set_name
    }
    /// <p>For templates that include transforms, the stage of the template that CloudFormation returns. To get the user-submitted template, specify <code>Original</code>. To get the template after CloudFormation has processed all transforms, specify <code>Processed</code>.</p>
    /// <p>If the template doesn't include transforms, <code>Original</code> and <code>Processed</code> return the same template. By default, CloudFormation specifies <code>Processed</code>.</p>
    pub fn template_stage(mut self, input: crate::types::TemplateStage) -> Self {
        self.template_stage = ::std::option::Option::Some(input);
        self
    }
    /// <p>For templates that include transforms, the stage of the template that CloudFormation returns. To get the user-submitted template, specify <code>Original</code>. To get the template after CloudFormation has processed all transforms, specify <code>Processed</code>.</p>
    /// <p>If the template doesn't include transforms, <code>Original</code> and <code>Processed</code> return the same template. By default, CloudFormation specifies <code>Processed</code>.</p>
    pub fn set_template_stage(mut self, input: ::std::option::Option<crate::types::TemplateStage>) -> Self {
        self.template_stage = input;
        self
    }
    /// <p>For templates that include transforms, the stage of the template that CloudFormation returns. To get the user-submitted template, specify <code>Original</code>. To get the template after CloudFormation has processed all transforms, specify <code>Processed</code>.</p>
    /// <p>If the template doesn't include transforms, <code>Original</code> and <code>Processed</code> return the same template. By default, CloudFormation specifies <code>Processed</code>.</p>
    pub fn get_template_stage(&self) -> &::std::option::Option<crate::types::TemplateStage> {
        &self.template_stage
    }
    /// Consumes the builder and constructs a [`GetTemplateInput`](crate::operation::get_template::GetTemplateInput).
    pub fn build(self) -> ::std::result::Result<crate::operation::get_template::GetTemplateInput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::get_template::GetTemplateInput {
            stack_name: self.stack_name,
            change_set_name: self.change_set_name,
            template_stage: self.template_stage,
        })
    }
}