aws_sdk_nimble/types/
_launch_profile_initialization.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>A launch profile initialization contains information required for a workstation or server to connect to a launch profile.</p>
4/// <p>This includes scripts, endpoints, security groups, subnets, and other configuration.</p>
5#[non_exhaustive]
6#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
7pub struct LaunchProfileInitialization {
8    /// <p>A <code>LaunchProfileInitializationActiveDirectory</code> resource.</p>
9    pub active_directory: ::std::option::Option<crate::types::LaunchProfileInitializationActiveDirectory>,
10    /// <p>The EC2 security groups that control access to the studio component.</p>
11    pub ec2_security_group_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
12    /// <p>The ID of the launch profile used to control access from the streaming session.</p>
13    pub launch_profile_id: ::std::option::Option<::std::string::String>,
14    /// <p>The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".</p>
15    pub launch_profile_protocol_version: ::std::option::Option<::std::string::String>,
16    /// <p>The launch purpose.</p>
17    pub launch_purpose: ::std::option::Option<::std::string::String>,
18    /// <p>The name for the launch profile.</p>
19    pub name: ::std::option::Option<::std::string::String>,
20    /// <p>The platform of the launch platform, either Windows or Linux.</p>
21    pub platform: ::std::option::Option<crate::types::LaunchProfilePlatform>,
22    /// <p>The system initializtion scripts.</p>
23    pub system_initialization_scripts: ::std::option::Option<::std::vec::Vec<crate::types::LaunchProfileInitializationScript>>,
24    /// <p>The user initializtion scripts.</p>
25    pub user_initialization_scripts: ::std::option::Option<::std::vec::Vec<crate::types::LaunchProfileInitializationScript>>,
26}
27impl LaunchProfileInitialization {
28    /// <p>A <code>LaunchProfileInitializationActiveDirectory</code> resource.</p>
29    pub fn active_directory(&self) -> ::std::option::Option<&crate::types::LaunchProfileInitializationActiveDirectory> {
30        self.active_directory.as_ref()
31    }
32    /// <p>The EC2 security groups that control access to the studio component.</p>
33    ///
34    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.ec2_security_group_ids.is_none()`.
35    pub fn ec2_security_group_ids(&self) -> &[::std::string::String] {
36        self.ec2_security_group_ids.as_deref().unwrap_or_default()
37    }
38    /// <p>The ID of the launch profile used to control access from the streaming session.</p>
39    pub fn launch_profile_id(&self) -> ::std::option::Option<&str> {
40        self.launch_profile_id.as_deref()
41    }
42    /// <p>The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".</p>
43    pub fn launch_profile_protocol_version(&self) -> ::std::option::Option<&str> {
44        self.launch_profile_protocol_version.as_deref()
45    }
46    /// <p>The launch purpose.</p>
47    pub fn launch_purpose(&self) -> ::std::option::Option<&str> {
48        self.launch_purpose.as_deref()
49    }
50    /// <p>The name for the launch profile.</p>
51    pub fn name(&self) -> ::std::option::Option<&str> {
52        self.name.as_deref()
53    }
54    /// <p>The platform of the launch platform, either Windows or Linux.</p>
55    pub fn platform(&self) -> ::std::option::Option<&crate::types::LaunchProfilePlatform> {
56        self.platform.as_ref()
57    }
58    /// <p>The system initializtion scripts.</p>
59    ///
60    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.system_initialization_scripts.is_none()`.
61    pub fn system_initialization_scripts(&self) -> &[crate::types::LaunchProfileInitializationScript] {
62        self.system_initialization_scripts.as_deref().unwrap_or_default()
63    }
64    /// <p>The user initializtion scripts.</p>
65    ///
66    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.user_initialization_scripts.is_none()`.
67    pub fn user_initialization_scripts(&self) -> &[crate::types::LaunchProfileInitializationScript] {
68        self.user_initialization_scripts.as_deref().unwrap_or_default()
69    }
70}
71impl ::std::fmt::Debug for LaunchProfileInitialization {
72    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
73        let mut formatter = f.debug_struct("LaunchProfileInitialization");
74        formatter.field("active_directory", &self.active_directory);
75        formatter.field("ec2_security_group_ids", &self.ec2_security_group_ids);
76        formatter.field("launch_profile_id", &self.launch_profile_id);
77        formatter.field("launch_profile_protocol_version", &self.launch_profile_protocol_version);
78        formatter.field("launch_purpose", &self.launch_purpose);
79        formatter.field("name", &"*** Sensitive Data Redacted ***");
80        formatter.field("platform", &self.platform);
81        formatter.field("system_initialization_scripts", &self.system_initialization_scripts);
82        formatter.field("user_initialization_scripts", &self.user_initialization_scripts);
83        formatter.finish()
84    }
85}
86impl LaunchProfileInitialization {
87    /// Creates a new builder-style object to manufacture [`LaunchProfileInitialization`](crate::types::LaunchProfileInitialization).
88    pub fn builder() -> crate::types::builders::LaunchProfileInitializationBuilder {
89        crate::types::builders::LaunchProfileInitializationBuilder::default()
90    }
91}
92
93/// A builder for [`LaunchProfileInitialization`](crate::types::LaunchProfileInitialization).
94#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
95#[non_exhaustive]
96pub struct LaunchProfileInitializationBuilder {
97    pub(crate) active_directory: ::std::option::Option<crate::types::LaunchProfileInitializationActiveDirectory>,
98    pub(crate) ec2_security_group_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
99    pub(crate) launch_profile_id: ::std::option::Option<::std::string::String>,
100    pub(crate) launch_profile_protocol_version: ::std::option::Option<::std::string::String>,
101    pub(crate) launch_purpose: ::std::option::Option<::std::string::String>,
102    pub(crate) name: ::std::option::Option<::std::string::String>,
103    pub(crate) platform: ::std::option::Option<crate::types::LaunchProfilePlatform>,
104    pub(crate) system_initialization_scripts: ::std::option::Option<::std::vec::Vec<crate::types::LaunchProfileInitializationScript>>,
105    pub(crate) user_initialization_scripts: ::std::option::Option<::std::vec::Vec<crate::types::LaunchProfileInitializationScript>>,
106}
107impl LaunchProfileInitializationBuilder {
108    /// <p>A <code>LaunchProfileInitializationActiveDirectory</code> resource.</p>
109    pub fn active_directory(mut self, input: crate::types::LaunchProfileInitializationActiveDirectory) -> Self {
110        self.active_directory = ::std::option::Option::Some(input);
111        self
112    }
113    /// <p>A <code>LaunchProfileInitializationActiveDirectory</code> resource.</p>
114    pub fn set_active_directory(mut self, input: ::std::option::Option<crate::types::LaunchProfileInitializationActiveDirectory>) -> Self {
115        self.active_directory = input;
116        self
117    }
118    /// <p>A <code>LaunchProfileInitializationActiveDirectory</code> resource.</p>
119    pub fn get_active_directory(&self) -> &::std::option::Option<crate::types::LaunchProfileInitializationActiveDirectory> {
120        &self.active_directory
121    }
122    /// Appends an item to `ec2_security_group_ids`.
123    ///
124    /// To override the contents of this collection use [`set_ec2_security_group_ids`](Self::set_ec2_security_group_ids).
125    ///
126    /// <p>The EC2 security groups that control access to the studio component.</p>
127    pub fn ec2_security_group_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
128        let mut v = self.ec2_security_group_ids.unwrap_or_default();
129        v.push(input.into());
130        self.ec2_security_group_ids = ::std::option::Option::Some(v);
131        self
132    }
133    /// <p>The EC2 security groups that control access to the studio component.</p>
134    pub fn set_ec2_security_group_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
135        self.ec2_security_group_ids = input;
136        self
137    }
138    /// <p>The EC2 security groups that control access to the studio component.</p>
139    pub fn get_ec2_security_group_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
140        &self.ec2_security_group_ids
141    }
142    /// <p>The ID of the launch profile used to control access from the streaming session.</p>
143    pub fn launch_profile_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
144        self.launch_profile_id = ::std::option::Option::Some(input.into());
145        self
146    }
147    /// <p>The ID of the launch profile used to control access from the streaming session.</p>
148    pub fn set_launch_profile_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
149        self.launch_profile_id = input;
150        self
151    }
152    /// <p>The ID of the launch profile used to control access from the streaming session.</p>
153    pub fn get_launch_profile_id(&self) -> &::std::option::Option<::std::string::String> {
154        &self.launch_profile_id
155    }
156    /// <p>The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".</p>
157    pub fn launch_profile_protocol_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
158        self.launch_profile_protocol_version = ::std::option::Option::Some(input.into());
159        self
160    }
161    /// <p>The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".</p>
162    pub fn set_launch_profile_protocol_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
163        self.launch_profile_protocol_version = input;
164        self
165    }
166    /// <p>The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".</p>
167    pub fn get_launch_profile_protocol_version(&self) -> &::std::option::Option<::std::string::String> {
168        &self.launch_profile_protocol_version
169    }
170    /// <p>The launch purpose.</p>
171    pub fn launch_purpose(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
172        self.launch_purpose = ::std::option::Option::Some(input.into());
173        self
174    }
175    /// <p>The launch purpose.</p>
176    pub fn set_launch_purpose(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
177        self.launch_purpose = input;
178        self
179    }
180    /// <p>The launch purpose.</p>
181    pub fn get_launch_purpose(&self) -> &::std::option::Option<::std::string::String> {
182        &self.launch_purpose
183    }
184    /// <p>The name for the launch profile.</p>
185    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
186        self.name = ::std::option::Option::Some(input.into());
187        self
188    }
189    /// <p>The name for the launch profile.</p>
190    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
191        self.name = input;
192        self
193    }
194    /// <p>The name for the launch profile.</p>
195    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
196        &self.name
197    }
198    /// <p>The platform of the launch platform, either Windows or Linux.</p>
199    pub fn platform(mut self, input: crate::types::LaunchProfilePlatform) -> Self {
200        self.platform = ::std::option::Option::Some(input);
201        self
202    }
203    /// <p>The platform of the launch platform, either Windows or Linux.</p>
204    pub fn set_platform(mut self, input: ::std::option::Option<crate::types::LaunchProfilePlatform>) -> Self {
205        self.platform = input;
206        self
207    }
208    /// <p>The platform of the launch platform, either Windows or Linux.</p>
209    pub fn get_platform(&self) -> &::std::option::Option<crate::types::LaunchProfilePlatform> {
210        &self.platform
211    }
212    /// Appends an item to `system_initialization_scripts`.
213    ///
214    /// To override the contents of this collection use [`set_system_initialization_scripts`](Self::set_system_initialization_scripts).
215    ///
216    /// <p>The system initializtion scripts.</p>
217    pub fn system_initialization_scripts(mut self, input: crate::types::LaunchProfileInitializationScript) -> Self {
218        let mut v = self.system_initialization_scripts.unwrap_or_default();
219        v.push(input);
220        self.system_initialization_scripts = ::std::option::Option::Some(v);
221        self
222    }
223    /// <p>The system initializtion scripts.</p>
224    pub fn set_system_initialization_scripts(
225        mut self,
226        input: ::std::option::Option<::std::vec::Vec<crate::types::LaunchProfileInitializationScript>>,
227    ) -> Self {
228        self.system_initialization_scripts = input;
229        self
230    }
231    /// <p>The system initializtion scripts.</p>
232    pub fn get_system_initialization_scripts(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::LaunchProfileInitializationScript>> {
233        &self.system_initialization_scripts
234    }
235    /// Appends an item to `user_initialization_scripts`.
236    ///
237    /// To override the contents of this collection use [`set_user_initialization_scripts`](Self::set_user_initialization_scripts).
238    ///
239    /// <p>The user initializtion scripts.</p>
240    pub fn user_initialization_scripts(mut self, input: crate::types::LaunchProfileInitializationScript) -> Self {
241        let mut v = self.user_initialization_scripts.unwrap_or_default();
242        v.push(input);
243        self.user_initialization_scripts = ::std::option::Option::Some(v);
244        self
245    }
246    /// <p>The user initializtion scripts.</p>
247    pub fn set_user_initialization_scripts(
248        mut self,
249        input: ::std::option::Option<::std::vec::Vec<crate::types::LaunchProfileInitializationScript>>,
250    ) -> Self {
251        self.user_initialization_scripts = input;
252        self
253    }
254    /// <p>The user initializtion scripts.</p>
255    pub fn get_user_initialization_scripts(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::LaunchProfileInitializationScript>> {
256        &self.user_initialization_scripts
257    }
258    /// Consumes the builder and constructs a [`LaunchProfileInitialization`](crate::types::LaunchProfileInitialization).
259    pub fn build(self) -> crate::types::LaunchProfileInitialization {
260        crate::types::LaunchProfileInitialization {
261            active_directory: self.active_directory,
262            ec2_security_group_ids: self.ec2_security_group_ids,
263            launch_profile_id: self.launch_profile_id,
264            launch_profile_protocol_version: self.launch_profile_protocol_version,
265            launch_purpose: self.launch_purpose,
266            name: self.name,
267            platform: self.platform,
268            system_initialization_scripts: self.system_initialization_scripts,
269            user_initialization_scripts: self.user_initialization_scripts,
270        }
271    }
272}
273impl ::std::fmt::Debug for LaunchProfileInitializationBuilder {
274    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
275        let mut formatter = f.debug_struct("LaunchProfileInitializationBuilder");
276        formatter.field("active_directory", &self.active_directory);
277        formatter.field("ec2_security_group_ids", &self.ec2_security_group_ids);
278        formatter.field("launch_profile_id", &self.launch_profile_id);
279        formatter.field("launch_profile_protocol_version", &self.launch_profile_protocol_version);
280        formatter.field("launch_purpose", &self.launch_purpose);
281        formatter.field("name", &"*** Sensitive Data Redacted ***");
282        formatter.field("platform", &self.platform);
283        formatter.field("system_initialization_scripts", &self.system_initialization_scripts);
284        formatter.field("user_initialization_scripts", &self.user_initialization_scripts);
285        formatter.finish()
286    }
287}