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

/// <p>Object of all event configurations and the status of the event topics.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct EventNotificationItemConfigurations {
    /// <p>Device registration state event configuration for an event configuration item.</p>
    pub device_registration_state: ::std::option::Option<crate::types::DeviceRegistrationStateEventConfiguration>,
    /// <p>Proximity event configuration for an event configuration item.</p>
    pub proximity: ::std::option::Option<crate::types::ProximityEventConfiguration>,
    /// <p>Join event configuration for an event configuration item.</p>
    pub join: ::std::option::Option<crate::types::JoinEventConfiguration>,
    /// <p>Connection status event configuration for an event configuration item.</p>
    pub connection_status: ::std::option::Option<crate::types::ConnectionStatusEventConfiguration>,
    /// <p>Message delivery status event configuration for an event configuration item.</p>
    pub message_delivery_status: ::std::option::Option<crate::types::MessageDeliveryStatusEventConfiguration>,
}
impl EventNotificationItemConfigurations {
    /// <p>Device registration state event configuration for an event configuration item.</p>
    pub fn device_registration_state(&self) -> ::std::option::Option<&crate::types::DeviceRegistrationStateEventConfiguration> {
        self.device_registration_state.as_ref()
    }
    /// <p>Proximity event configuration for an event configuration item.</p>
    pub fn proximity(&self) -> ::std::option::Option<&crate::types::ProximityEventConfiguration> {
        self.proximity.as_ref()
    }
    /// <p>Join event configuration for an event configuration item.</p>
    pub fn join(&self) -> ::std::option::Option<&crate::types::JoinEventConfiguration> {
        self.join.as_ref()
    }
    /// <p>Connection status event configuration for an event configuration item.</p>
    pub fn connection_status(&self) -> ::std::option::Option<&crate::types::ConnectionStatusEventConfiguration> {
        self.connection_status.as_ref()
    }
    /// <p>Message delivery status event configuration for an event configuration item.</p>
    pub fn message_delivery_status(&self) -> ::std::option::Option<&crate::types::MessageDeliveryStatusEventConfiguration> {
        self.message_delivery_status.as_ref()
    }
}
impl EventNotificationItemConfigurations {
    /// Creates a new builder-style object to manufacture [`EventNotificationItemConfigurations`](crate::types::EventNotificationItemConfigurations).
    pub fn builder() -> crate::types::builders::EventNotificationItemConfigurationsBuilder {
        crate::types::builders::EventNotificationItemConfigurationsBuilder::default()
    }
}

/// A builder for [`EventNotificationItemConfigurations`](crate::types::EventNotificationItemConfigurations).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct EventNotificationItemConfigurationsBuilder {
    pub(crate) device_registration_state: ::std::option::Option<crate::types::DeviceRegistrationStateEventConfiguration>,
    pub(crate) proximity: ::std::option::Option<crate::types::ProximityEventConfiguration>,
    pub(crate) join: ::std::option::Option<crate::types::JoinEventConfiguration>,
    pub(crate) connection_status: ::std::option::Option<crate::types::ConnectionStatusEventConfiguration>,
    pub(crate) message_delivery_status: ::std::option::Option<crate::types::MessageDeliveryStatusEventConfiguration>,
}
impl EventNotificationItemConfigurationsBuilder {
    /// <p>Device registration state event configuration for an event configuration item.</p>
    pub fn device_registration_state(mut self, input: crate::types::DeviceRegistrationStateEventConfiguration) -> Self {
        self.device_registration_state = ::std::option::Option::Some(input);
        self
    }
    /// <p>Device registration state event configuration for an event configuration item.</p>
    pub fn set_device_registration_state(mut self, input: ::std::option::Option<crate::types::DeviceRegistrationStateEventConfiguration>) -> Self {
        self.device_registration_state = input;
        self
    }
    /// <p>Device registration state event configuration for an event configuration item.</p>
    pub fn get_device_registration_state(&self) -> &::std::option::Option<crate::types::DeviceRegistrationStateEventConfiguration> {
        &self.device_registration_state
    }
    /// <p>Proximity event configuration for an event configuration item.</p>
    pub fn proximity(mut self, input: crate::types::ProximityEventConfiguration) -> Self {
        self.proximity = ::std::option::Option::Some(input);
        self
    }
    /// <p>Proximity event configuration for an event configuration item.</p>
    pub fn set_proximity(mut self, input: ::std::option::Option<crate::types::ProximityEventConfiguration>) -> Self {
        self.proximity = input;
        self
    }
    /// <p>Proximity event configuration for an event configuration item.</p>
    pub fn get_proximity(&self) -> &::std::option::Option<crate::types::ProximityEventConfiguration> {
        &self.proximity
    }
    /// <p>Join event configuration for an event configuration item.</p>
    pub fn join(mut self, input: crate::types::JoinEventConfiguration) -> Self {
        self.join = ::std::option::Option::Some(input);
        self
    }
    /// <p>Join event configuration for an event configuration item.</p>
    pub fn set_join(mut self, input: ::std::option::Option<crate::types::JoinEventConfiguration>) -> Self {
        self.join = input;
        self
    }
    /// <p>Join event configuration for an event configuration item.</p>
    pub fn get_join(&self) -> &::std::option::Option<crate::types::JoinEventConfiguration> {
        &self.join
    }
    /// <p>Connection status event configuration for an event configuration item.</p>
    pub fn connection_status(mut self, input: crate::types::ConnectionStatusEventConfiguration) -> Self {
        self.connection_status = ::std::option::Option::Some(input);
        self
    }
    /// <p>Connection status event configuration for an event configuration item.</p>
    pub fn set_connection_status(mut self, input: ::std::option::Option<crate::types::ConnectionStatusEventConfiguration>) -> Self {
        self.connection_status = input;
        self
    }
    /// <p>Connection status event configuration for an event configuration item.</p>
    pub fn get_connection_status(&self) -> &::std::option::Option<crate::types::ConnectionStatusEventConfiguration> {
        &self.connection_status
    }
    /// <p>Message delivery status event configuration for an event configuration item.</p>
    pub fn message_delivery_status(mut self, input: crate::types::MessageDeliveryStatusEventConfiguration) -> Self {
        self.message_delivery_status = ::std::option::Option::Some(input);
        self
    }
    /// <p>Message delivery status event configuration for an event configuration item.</p>
    pub fn set_message_delivery_status(mut self, input: ::std::option::Option<crate::types::MessageDeliveryStatusEventConfiguration>) -> Self {
        self.message_delivery_status = input;
        self
    }
    /// <p>Message delivery status event configuration for an event configuration item.</p>
    pub fn get_message_delivery_status(&self) -> &::std::option::Option<crate::types::MessageDeliveryStatusEventConfiguration> {
        &self.message_delivery_status
    }
    /// Consumes the builder and constructs a [`EventNotificationItemConfigurations`](crate::types::EventNotificationItemConfigurations).
    pub fn build(self) -> crate::types::EventNotificationItemConfigurations {
        crate::types::EventNotificationItemConfigurations {
            device_registration_state: self.device_registration_state,
            proximity: self.proximity,
            join: self.join,
            connection_status: self.connection_status,
            message_delivery_status: self.message_delivery_status,
        }
    }
}