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

/// <p>The input for the <code>SignalResource</code> action.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct SignalResourceInput {
    /// <p>The stack name or unique stack ID that includes the resource that you want to signal.</p>
    pub stack_name: ::std::option::Option<::std::string::String>,
    /// <p>The logical ID of the resource that you want to signal. The logical ID is the name of the resource that given in the template.</p>
    pub logical_resource_id: ::std::option::Option<::std::string::String>,
    /// <p>A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling groups, specify the instance ID that you are signaling as the unique ID. If you send multiple signals to a single resource (such as signaling a wait condition), each signal requires a different unique ID.</p>
    pub unique_id: ::std::option::Option<::std::string::String>,
    /// <p>The status of the signal, which is either success or failure. A failure signal causes CloudFormation to immediately fail the stack creation or update.</p>
    pub status: ::std::option::Option<crate::types::ResourceSignalStatus>,
}
impl SignalResourceInput {
    /// <p>The stack name or unique stack ID that includes the resource that you want to signal.</p>
    pub fn stack_name(&self) -> ::std::option::Option<&str> {
        self.stack_name.as_deref()
    }
    /// <p>The logical ID of the resource that you want to signal. The logical ID is the name of the resource that given in the template.</p>
    pub fn logical_resource_id(&self) -> ::std::option::Option<&str> {
        self.logical_resource_id.as_deref()
    }
    /// <p>A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling groups, specify the instance ID that you are signaling as the unique ID. If you send multiple signals to a single resource (such as signaling a wait condition), each signal requires a different unique ID.</p>
    pub fn unique_id(&self) -> ::std::option::Option<&str> {
        self.unique_id.as_deref()
    }
    /// <p>The status of the signal, which is either success or failure. A failure signal causes CloudFormation to immediately fail the stack creation or update.</p>
    pub fn status(&self) -> ::std::option::Option<&crate::types::ResourceSignalStatus> {
        self.status.as_ref()
    }
}
impl SignalResourceInput {
    /// Creates a new builder-style object to manufacture [`SignalResourceInput`](crate::operation::signal_resource::SignalResourceInput).
    pub fn builder() -> crate::operation::signal_resource::builders::SignalResourceInputBuilder {
        crate::operation::signal_resource::builders::SignalResourceInputBuilder::default()
    }
}

/// A builder for [`SignalResourceInput`](crate::operation::signal_resource::SignalResourceInput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct SignalResourceInputBuilder {
    pub(crate) stack_name: ::std::option::Option<::std::string::String>,
    pub(crate) logical_resource_id: ::std::option::Option<::std::string::String>,
    pub(crate) unique_id: ::std::option::Option<::std::string::String>,
    pub(crate) status: ::std::option::Option<crate::types::ResourceSignalStatus>,
}
impl SignalResourceInputBuilder {
    /// <p>The stack name or unique stack ID that includes the resource that you want to signal.</p>
    /// This field is required.
    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 stack name or unique stack ID that includes the resource that you want to signal.</p>
    pub fn set_stack_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.stack_name = input;
        self
    }
    /// <p>The stack name or unique stack ID that includes the resource that you want to signal.</p>
    pub fn get_stack_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.stack_name
    }
    /// <p>The logical ID of the resource that you want to signal. The logical ID is the name of the resource that given in the template.</p>
    /// This field is required.
    pub fn logical_resource_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.logical_resource_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The logical ID of the resource that you want to signal. The logical ID is the name of the resource that given in the template.</p>
    pub fn set_logical_resource_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.logical_resource_id = input;
        self
    }
    /// <p>The logical ID of the resource that you want to signal. The logical ID is the name of the resource that given in the template.</p>
    pub fn get_logical_resource_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.logical_resource_id
    }
    /// <p>A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling groups, specify the instance ID that you are signaling as the unique ID. If you send multiple signals to a single resource (such as signaling a wait condition), each signal requires a different unique ID.</p>
    /// This field is required.
    pub fn unique_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.unique_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling groups, specify the instance ID that you are signaling as the unique ID. If you send multiple signals to a single resource (such as signaling a wait condition), each signal requires a different unique ID.</p>
    pub fn set_unique_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.unique_id = input;
        self
    }
    /// <p>A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling groups, specify the instance ID that you are signaling as the unique ID. If you send multiple signals to a single resource (such as signaling a wait condition), each signal requires a different unique ID.</p>
    pub fn get_unique_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.unique_id
    }
    /// <p>The status of the signal, which is either success or failure. A failure signal causes CloudFormation to immediately fail the stack creation or update.</p>
    /// This field is required.
    pub fn status(mut self, input: crate::types::ResourceSignalStatus) -> Self {
        self.status = ::std::option::Option::Some(input);
        self
    }
    /// <p>The status of the signal, which is either success or failure. A failure signal causes CloudFormation to immediately fail the stack creation or update.</p>
    pub fn set_status(mut self, input: ::std::option::Option<crate::types::ResourceSignalStatus>) -> Self {
        self.status = input;
        self
    }
    /// <p>The status of the signal, which is either success or failure. A failure signal causes CloudFormation to immediately fail the stack creation or update.</p>
    pub fn get_status(&self) -> &::std::option::Option<crate::types::ResourceSignalStatus> {
        &self.status
    }
    /// Consumes the builder and constructs a [`SignalResourceInput`](crate::operation::signal_resource::SignalResourceInput).
    pub fn build(
        self,
    ) -> ::std::result::Result<crate::operation::signal_resource::SignalResourceInput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::signal_resource::SignalResourceInput {
            stack_name: self.stack_name,
            logical_resource_id: self.logical_resource_id,
            unique_id: self.unique_id,
            status: self.status,
        })
    }
}