1#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
6pub struct ServiceTemplateVersion {
7 pub template_name: ::std::string::String,
9 pub major_version: ::std::string::String,
11 pub minor_version: ::std::string::String,
13 pub recommended_minor_version: ::std::option::Option<::std::string::String>,
15 pub status: crate::types::TemplateVersionStatus,
17 pub status_message: ::std::option::Option<::std::string::String>,
19 pub description: ::std::option::Option<::std::string::String>,
21 pub arn: ::std::string::String,
23 pub created_at: ::aws_smithy_types::DateTime,
25 pub last_modified_at: ::aws_smithy_types::DateTime,
27 pub compatible_environment_templates: ::std::vec::Vec<crate::types::CompatibleEnvironmentTemplate>,
29 pub schema: ::std::option::Option<::std::string::String>,
31 pub supported_component_sources: ::std::option::Option<::std::vec::Vec<crate::types::ServiceTemplateSupportedComponentSourceType>>,
34}
35impl ServiceTemplateVersion {
36 pub fn template_name(&self) -> &str {
38 use std::ops::Deref;
39 self.template_name.deref()
40 }
41 pub fn major_version(&self) -> &str {
43 use std::ops::Deref;
44 self.major_version.deref()
45 }
46 pub fn minor_version(&self) -> &str {
48 use std::ops::Deref;
49 self.minor_version.deref()
50 }
51 pub fn recommended_minor_version(&self) -> ::std::option::Option<&str> {
53 self.recommended_minor_version.as_deref()
54 }
55 pub fn status(&self) -> &crate::types::TemplateVersionStatus {
57 &self.status
58 }
59 pub fn status_message(&self) -> ::std::option::Option<&str> {
61 self.status_message.as_deref()
62 }
63 pub fn description(&self) -> ::std::option::Option<&str> {
65 self.description.as_deref()
66 }
67 pub fn arn(&self) -> &str {
69 use std::ops::Deref;
70 self.arn.deref()
71 }
72 pub fn created_at(&self) -> &::aws_smithy_types::DateTime {
74 &self.created_at
75 }
76 pub fn last_modified_at(&self) -> &::aws_smithy_types::DateTime {
78 &self.last_modified_at
79 }
80 pub fn compatible_environment_templates(&self) -> &[crate::types::CompatibleEnvironmentTemplate] {
82 use std::ops::Deref;
83 self.compatible_environment_templates.deref()
84 }
85 pub fn schema(&self) -> ::std::option::Option<&str> {
87 self.schema.as_deref()
88 }
89 pub fn supported_component_sources(&self) -> &[crate::types::ServiceTemplateSupportedComponentSourceType] {
94 self.supported_component_sources.as_deref().unwrap_or_default()
95 }
96}
97impl ::std::fmt::Debug for ServiceTemplateVersion {
98 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
99 let mut formatter = f.debug_struct("ServiceTemplateVersion");
100 formatter.field("template_name", &self.template_name);
101 formatter.field("major_version", &self.major_version);
102 formatter.field("minor_version", &self.minor_version);
103 formatter.field("recommended_minor_version", &self.recommended_minor_version);
104 formatter.field("status", &self.status);
105 formatter.field("status_message", &"*** Sensitive Data Redacted ***");
106 formatter.field("description", &"*** Sensitive Data Redacted ***");
107 formatter.field("arn", &self.arn);
108 formatter.field("created_at", &self.created_at);
109 formatter.field("last_modified_at", &self.last_modified_at);
110 formatter.field("compatible_environment_templates", &self.compatible_environment_templates);
111 formatter.field("schema", &"*** Sensitive Data Redacted ***");
112 formatter.field("supported_component_sources", &self.supported_component_sources);
113 formatter.finish()
114 }
115}
116impl ServiceTemplateVersion {
117 pub fn builder() -> crate::types::builders::ServiceTemplateVersionBuilder {
119 crate::types::builders::ServiceTemplateVersionBuilder::default()
120 }
121}
122
123#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
125#[non_exhaustive]
126pub struct ServiceTemplateVersionBuilder {
127 pub(crate) template_name: ::std::option::Option<::std::string::String>,
128 pub(crate) major_version: ::std::option::Option<::std::string::String>,
129 pub(crate) minor_version: ::std::option::Option<::std::string::String>,
130 pub(crate) recommended_minor_version: ::std::option::Option<::std::string::String>,
131 pub(crate) status: ::std::option::Option<crate::types::TemplateVersionStatus>,
132 pub(crate) status_message: ::std::option::Option<::std::string::String>,
133 pub(crate) description: ::std::option::Option<::std::string::String>,
134 pub(crate) arn: ::std::option::Option<::std::string::String>,
135 pub(crate) created_at: ::std::option::Option<::aws_smithy_types::DateTime>,
136 pub(crate) last_modified_at: ::std::option::Option<::aws_smithy_types::DateTime>,
137 pub(crate) compatible_environment_templates: ::std::option::Option<::std::vec::Vec<crate::types::CompatibleEnvironmentTemplate>>,
138 pub(crate) schema: ::std::option::Option<::std::string::String>,
139 pub(crate) supported_component_sources: ::std::option::Option<::std::vec::Vec<crate::types::ServiceTemplateSupportedComponentSourceType>>,
140}
141impl ServiceTemplateVersionBuilder {
142 pub fn template_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
145 self.template_name = ::std::option::Option::Some(input.into());
146 self
147 }
148 pub fn set_template_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
150 self.template_name = input;
151 self
152 }
153 pub fn get_template_name(&self) -> &::std::option::Option<::std::string::String> {
155 &self.template_name
156 }
157 pub fn major_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
160 self.major_version = ::std::option::Option::Some(input.into());
161 self
162 }
163 pub fn set_major_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
165 self.major_version = input;
166 self
167 }
168 pub fn get_major_version(&self) -> &::std::option::Option<::std::string::String> {
170 &self.major_version
171 }
172 pub fn minor_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
175 self.minor_version = ::std::option::Option::Some(input.into());
176 self
177 }
178 pub fn set_minor_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
180 self.minor_version = input;
181 self
182 }
183 pub fn get_minor_version(&self) -> &::std::option::Option<::std::string::String> {
185 &self.minor_version
186 }
187 pub fn recommended_minor_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
189 self.recommended_minor_version = ::std::option::Option::Some(input.into());
190 self
191 }
192 pub fn set_recommended_minor_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
194 self.recommended_minor_version = input;
195 self
196 }
197 pub fn get_recommended_minor_version(&self) -> &::std::option::Option<::std::string::String> {
199 &self.recommended_minor_version
200 }
201 pub fn status(mut self, input: crate::types::TemplateVersionStatus) -> Self {
204 self.status = ::std::option::Option::Some(input);
205 self
206 }
207 pub fn set_status(mut self, input: ::std::option::Option<crate::types::TemplateVersionStatus>) -> Self {
209 self.status = input;
210 self
211 }
212 pub fn get_status(&self) -> &::std::option::Option<crate::types::TemplateVersionStatus> {
214 &self.status
215 }
216 pub fn status_message(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
218 self.status_message = ::std::option::Option::Some(input.into());
219 self
220 }
221 pub fn set_status_message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
223 self.status_message = input;
224 self
225 }
226 pub fn get_status_message(&self) -> &::std::option::Option<::std::string::String> {
228 &self.status_message
229 }
230 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
232 self.description = ::std::option::Option::Some(input.into());
233 self
234 }
235 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
237 self.description = input;
238 self
239 }
240 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
242 &self.description
243 }
244 pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
247 self.arn = ::std::option::Option::Some(input.into());
248 self
249 }
250 pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
252 self.arn = input;
253 self
254 }
255 pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
257 &self.arn
258 }
259 pub fn created_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
262 self.created_at = ::std::option::Option::Some(input);
263 self
264 }
265 pub fn set_created_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
267 self.created_at = input;
268 self
269 }
270 pub fn get_created_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
272 &self.created_at
273 }
274 pub fn last_modified_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
277 self.last_modified_at = ::std::option::Option::Some(input);
278 self
279 }
280 pub fn set_last_modified_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
282 self.last_modified_at = input;
283 self
284 }
285 pub fn get_last_modified_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
287 &self.last_modified_at
288 }
289 pub fn compatible_environment_templates(mut self, input: crate::types::CompatibleEnvironmentTemplate) -> Self {
295 let mut v = self.compatible_environment_templates.unwrap_or_default();
296 v.push(input);
297 self.compatible_environment_templates = ::std::option::Option::Some(v);
298 self
299 }
300 pub fn set_compatible_environment_templates(
302 mut self,
303 input: ::std::option::Option<::std::vec::Vec<crate::types::CompatibleEnvironmentTemplate>>,
304 ) -> Self {
305 self.compatible_environment_templates = input;
306 self
307 }
308 pub fn get_compatible_environment_templates(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::CompatibleEnvironmentTemplate>> {
310 &self.compatible_environment_templates
311 }
312 pub fn schema(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
314 self.schema = ::std::option::Option::Some(input.into());
315 self
316 }
317 pub fn set_schema(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
319 self.schema = input;
320 self
321 }
322 pub fn get_schema(&self) -> &::std::option::Option<::std::string::String> {
324 &self.schema
325 }
326 pub fn supported_component_sources(mut self, input: crate::types::ServiceTemplateSupportedComponentSourceType) -> Self {
333 let mut v = self.supported_component_sources.unwrap_or_default();
334 v.push(input);
335 self.supported_component_sources = ::std::option::Option::Some(v);
336 self
337 }
338 pub fn set_supported_component_sources(
341 mut self,
342 input: ::std::option::Option<::std::vec::Vec<crate::types::ServiceTemplateSupportedComponentSourceType>>,
343 ) -> Self {
344 self.supported_component_sources = input;
345 self
346 }
347 pub fn get_supported_component_sources(
350 &self,
351 ) -> &::std::option::Option<::std::vec::Vec<crate::types::ServiceTemplateSupportedComponentSourceType>> {
352 &self.supported_component_sources
353 }
354 pub fn build(self) -> ::std::result::Result<crate::types::ServiceTemplateVersion, ::aws_smithy_types::error::operation::BuildError> {
365 ::std::result::Result::Ok(crate::types::ServiceTemplateVersion {
366 template_name: self.template_name.ok_or_else(|| {
367 ::aws_smithy_types::error::operation::BuildError::missing_field(
368 "template_name",
369 "template_name was not specified but it is required when building ServiceTemplateVersion",
370 )
371 })?,
372 major_version: self.major_version.ok_or_else(|| {
373 ::aws_smithy_types::error::operation::BuildError::missing_field(
374 "major_version",
375 "major_version was not specified but it is required when building ServiceTemplateVersion",
376 )
377 })?,
378 minor_version: self.minor_version.ok_or_else(|| {
379 ::aws_smithy_types::error::operation::BuildError::missing_field(
380 "minor_version",
381 "minor_version was not specified but it is required when building ServiceTemplateVersion",
382 )
383 })?,
384 recommended_minor_version: self.recommended_minor_version,
385 status: self.status.ok_or_else(|| {
386 ::aws_smithy_types::error::operation::BuildError::missing_field(
387 "status",
388 "status was not specified but it is required when building ServiceTemplateVersion",
389 )
390 })?,
391 status_message: self.status_message,
392 description: self.description,
393 arn: self.arn.ok_or_else(|| {
394 ::aws_smithy_types::error::operation::BuildError::missing_field(
395 "arn",
396 "arn was not specified but it is required when building ServiceTemplateVersion",
397 )
398 })?,
399 created_at: self.created_at.ok_or_else(|| {
400 ::aws_smithy_types::error::operation::BuildError::missing_field(
401 "created_at",
402 "created_at was not specified but it is required when building ServiceTemplateVersion",
403 )
404 })?,
405 last_modified_at: self.last_modified_at.ok_or_else(|| {
406 ::aws_smithy_types::error::operation::BuildError::missing_field(
407 "last_modified_at",
408 "last_modified_at was not specified but it is required when building ServiceTemplateVersion",
409 )
410 })?,
411 compatible_environment_templates: self.compatible_environment_templates.ok_or_else(|| {
412 ::aws_smithy_types::error::operation::BuildError::missing_field(
413 "compatible_environment_templates",
414 "compatible_environment_templates was not specified but it is required when building ServiceTemplateVersion",
415 )
416 })?,
417 schema: self.schema,
418 supported_component_sources: self.supported_component_sources,
419 })
420 }
421}
422impl ::std::fmt::Debug for ServiceTemplateVersionBuilder {
423 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
424 let mut formatter = f.debug_struct("ServiceTemplateVersionBuilder");
425 formatter.field("template_name", &self.template_name);
426 formatter.field("major_version", &self.major_version);
427 formatter.field("minor_version", &self.minor_version);
428 formatter.field("recommended_minor_version", &self.recommended_minor_version);
429 formatter.field("status", &self.status);
430 formatter.field("status_message", &"*** Sensitive Data Redacted ***");
431 formatter.field("description", &"*** Sensitive Data Redacted ***");
432 formatter.field("arn", &self.arn);
433 formatter.field("created_at", &self.created_at);
434 formatter.field("last_modified_at", &self.last_modified_at);
435 formatter.field("compatible_environment_templates", &self.compatible_environment_templates);
436 formatter.field("schema", &"*** Sensitive Data Redacted ***");
437 formatter.field("supported_component_sources", &self.supported_component_sources);
438 formatter.finish()
439 }
440}