Skip to main content

aws_sdk_datazone/operation/create_project/
_create_project_output.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
5pub struct CreateProjectOutput {
6    /// <p>The identifier of the Amazon DataZone domain in which the project was created.</p>
7    pub domain_id: ::std::string::String,
8    /// <p>The ID of the Amazon DataZone project.</p>
9    pub id: ::std::string::String,
10    /// <p>The name of the project.</p>
11    pub name: ::std::string::String,
12    /// <p>The description of the project.</p>
13    pub description: ::std::option::Option<::std::string::String>,
14    /// <p>The status of the Amazon DataZone project that was created.</p>
15    pub project_status: ::std::option::Option<crate::types::ProjectStatus>,
16    /// <p>Specifies the error message that is returned if the operation cannot be successfully completed.</p>
17    pub failure_reasons: ::std::option::Option<::std::vec::Vec<crate::types::ProjectDeletionError>>,
18    /// <p>The Amazon DataZone user who created the project.</p>
19    pub created_by: ::std::string::String,
20    /// <p>The timestamp of when the project was created.</p>
21    pub created_at: ::std::option::Option<::aws_smithy_types::DateTime>,
22    /// <p>The timestamp of when the project was last updated.</p>
23    pub last_updated_at: ::std::option::Option<::aws_smithy_types::DateTime>,
24    /// <p>The resource tags of the project.</p>
25    pub resource_tags: ::std::option::Option<::std::vec::Vec<crate::types::ResourceTag>>,
26    /// <p>The glossary terms that can be used in the project.</p>
27    pub glossary_terms: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
28    /// <p>The ID of the domain unit.</p>
29    pub domain_unit_id: ::std::option::Option<::std::string::String>,
30    /// <p>The project profile ID.</p>
31    pub project_profile_id: ::std::option::Option<::std::string::String>,
32    /// <p>The user parameters of the project.</p>
33    pub user_parameters: ::std::option::Option<::std::vec::Vec<crate::types::EnvironmentConfigurationUserParameter>>,
34    /// <p>The environment deployment details.</p>
35    pub environment_deployment_details: ::std::option::Option<crate::types::EnvironmentDeploymentDetails>,
36    /// <p>The category of the project.</p>
37    pub project_category: ::std::option::Option<::std::string::String>,
38    _request_id: Option<String>,
39}
40impl CreateProjectOutput {
41    /// <p>The identifier of the Amazon DataZone domain in which the project was created.</p>
42    pub fn domain_id(&self) -> &str {
43        use std::ops::Deref;
44        self.domain_id.deref()
45    }
46    /// <p>The ID of the Amazon DataZone project.</p>
47    pub fn id(&self) -> &str {
48        use std::ops::Deref;
49        self.id.deref()
50    }
51    /// <p>The name of the project.</p>
52    pub fn name(&self) -> &str {
53        use std::ops::Deref;
54        self.name.deref()
55    }
56    /// <p>The description of the project.</p>
57    pub fn description(&self) -> ::std::option::Option<&str> {
58        self.description.as_deref()
59    }
60    /// <p>The status of the Amazon DataZone project that was created.</p>
61    pub fn project_status(&self) -> ::std::option::Option<&crate::types::ProjectStatus> {
62        self.project_status.as_ref()
63    }
64    /// <p>Specifies the error message that is returned if the operation cannot be successfully completed.</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 `.failure_reasons.is_none()`.
67    pub fn failure_reasons(&self) -> &[crate::types::ProjectDeletionError] {
68        self.failure_reasons.as_deref().unwrap_or_default()
69    }
70    /// <p>The Amazon DataZone user who created the project.</p>
71    pub fn created_by(&self) -> &str {
72        use std::ops::Deref;
73        self.created_by.deref()
74    }
75    /// <p>The timestamp of when the project was created.</p>
76    pub fn created_at(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
77        self.created_at.as_ref()
78    }
79    /// <p>The timestamp of when the project was last updated.</p>
80    pub fn last_updated_at(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
81        self.last_updated_at.as_ref()
82    }
83    /// <p>The resource tags of the project.</p>
84    ///
85    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.resource_tags.is_none()`.
86    pub fn resource_tags(&self) -> &[crate::types::ResourceTag] {
87        self.resource_tags.as_deref().unwrap_or_default()
88    }
89    /// <p>The glossary terms that can be used in the project.</p>
90    ///
91    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.glossary_terms.is_none()`.
92    pub fn glossary_terms(&self) -> &[::std::string::String] {
93        self.glossary_terms.as_deref().unwrap_or_default()
94    }
95    /// <p>The ID of the domain unit.</p>
96    pub fn domain_unit_id(&self) -> ::std::option::Option<&str> {
97        self.domain_unit_id.as_deref()
98    }
99    /// <p>The project profile ID.</p>
100    pub fn project_profile_id(&self) -> ::std::option::Option<&str> {
101        self.project_profile_id.as_deref()
102    }
103    /// <p>The user parameters of the project.</p>
104    ///
105    /// 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_parameters.is_none()`.
106    pub fn user_parameters(&self) -> &[crate::types::EnvironmentConfigurationUserParameter] {
107        self.user_parameters.as_deref().unwrap_or_default()
108    }
109    /// <p>The environment deployment details.</p>
110    pub fn environment_deployment_details(&self) -> ::std::option::Option<&crate::types::EnvironmentDeploymentDetails> {
111        self.environment_deployment_details.as_ref()
112    }
113    /// <p>The category of the project.</p>
114    pub fn project_category(&self) -> ::std::option::Option<&str> {
115        self.project_category.as_deref()
116    }
117}
118impl ::std::fmt::Debug for CreateProjectOutput {
119    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
120        let mut formatter = f.debug_struct("CreateProjectOutput");
121        formatter.field("domain_id", &self.domain_id);
122        formatter.field("id", &self.id);
123        formatter.field("name", &"*** Sensitive Data Redacted ***");
124        formatter.field("description", &"*** Sensitive Data Redacted ***");
125        formatter.field("project_status", &self.project_status);
126        formatter.field("failure_reasons", &self.failure_reasons);
127        formatter.field("created_by", &self.created_by);
128        formatter.field("created_at", &self.created_at);
129        formatter.field("last_updated_at", &self.last_updated_at);
130        formatter.field("resource_tags", &self.resource_tags);
131        formatter.field("glossary_terms", &self.glossary_terms);
132        formatter.field("domain_unit_id", &self.domain_unit_id);
133        formatter.field("project_profile_id", &self.project_profile_id);
134        formatter.field("user_parameters", &self.user_parameters);
135        formatter.field("environment_deployment_details", &self.environment_deployment_details);
136        formatter.field("project_category", &self.project_category);
137        formatter.field("_request_id", &self._request_id);
138        formatter.finish()
139    }
140}
141impl ::aws_types::request_id::RequestId for CreateProjectOutput {
142    fn request_id(&self) -> Option<&str> {
143        self._request_id.as_deref()
144    }
145}
146impl CreateProjectOutput {
147    /// Creates a new builder-style object to manufacture [`CreateProjectOutput`](crate::operation::create_project::CreateProjectOutput).
148    pub fn builder() -> crate::operation::create_project::builders::CreateProjectOutputBuilder {
149        crate::operation::create_project::builders::CreateProjectOutputBuilder::default()
150    }
151}
152
153/// A builder for [`CreateProjectOutput`](crate::operation::create_project::CreateProjectOutput).
154#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
155#[non_exhaustive]
156pub struct CreateProjectOutputBuilder {
157    pub(crate) domain_id: ::std::option::Option<::std::string::String>,
158    pub(crate) id: ::std::option::Option<::std::string::String>,
159    pub(crate) name: ::std::option::Option<::std::string::String>,
160    pub(crate) description: ::std::option::Option<::std::string::String>,
161    pub(crate) project_status: ::std::option::Option<crate::types::ProjectStatus>,
162    pub(crate) failure_reasons: ::std::option::Option<::std::vec::Vec<crate::types::ProjectDeletionError>>,
163    pub(crate) created_by: ::std::option::Option<::std::string::String>,
164    pub(crate) created_at: ::std::option::Option<::aws_smithy_types::DateTime>,
165    pub(crate) last_updated_at: ::std::option::Option<::aws_smithy_types::DateTime>,
166    pub(crate) resource_tags: ::std::option::Option<::std::vec::Vec<crate::types::ResourceTag>>,
167    pub(crate) glossary_terms: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
168    pub(crate) domain_unit_id: ::std::option::Option<::std::string::String>,
169    pub(crate) project_profile_id: ::std::option::Option<::std::string::String>,
170    pub(crate) user_parameters: ::std::option::Option<::std::vec::Vec<crate::types::EnvironmentConfigurationUserParameter>>,
171    pub(crate) environment_deployment_details: ::std::option::Option<crate::types::EnvironmentDeploymentDetails>,
172    pub(crate) project_category: ::std::option::Option<::std::string::String>,
173    _request_id: Option<String>,
174}
175impl CreateProjectOutputBuilder {
176    /// <p>The identifier of the Amazon DataZone domain in which the project was created.</p>
177    /// This field is required.
178    pub fn domain_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
179        self.domain_id = ::std::option::Option::Some(input.into());
180        self
181    }
182    /// <p>The identifier of the Amazon DataZone domain in which the project was created.</p>
183    pub fn set_domain_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
184        self.domain_id = input;
185        self
186    }
187    /// <p>The identifier of the Amazon DataZone domain in which the project was created.</p>
188    pub fn get_domain_id(&self) -> &::std::option::Option<::std::string::String> {
189        &self.domain_id
190    }
191    /// <p>The ID of the Amazon DataZone project.</p>
192    /// This field is required.
193    pub fn id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
194        self.id = ::std::option::Option::Some(input.into());
195        self
196    }
197    /// <p>The ID of the Amazon DataZone project.</p>
198    pub fn set_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
199        self.id = input;
200        self
201    }
202    /// <p>The ID of the Amazon DataZone project.</p>
203    pub fn get_id(&self) -> &::std::option::Option<::std::string::String> {
204        &self.id
205    }
206    /// <p>The name of the project.</p>
207    /// This field is required.
208    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
209        self.name = ::std::option::Option::Some(input.into());
210        self
211    }
212    /// <p>The name of the project.</p>
213    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
214        self.name = input;
215        self
216    }
217    /// <p>The name of the project.</p>
218    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
219        &self.name
220    }
221    /// <p>The description of the project.</p>
222    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
223        self.description = ::std::option::Option::Some(input.into());
224        self
225    }
226    /// <p>The description of the project.</p>
227    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
228        self.description = input;
229        self
230    }
231    /// <p>The description of the project.</p>
232    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
233        &self.description
234    }
235    /// <p>The status of the Amazon DataZone project that was created.</p>
236    pub fn project_status(mut self, input: crate::types::ProjectStatus) -> Self {
237        self.project_status = ::std::option::Option::Some(input);
238        self
239    }
240    /// <p>The status of the Amazon DataZone project that was created.</p>
241    pub fn set_project_status(mut self, input: ::std::option::Option<crate::types::ProjectStatus>) -> Self {
242        self.project_status = input;
243        self
244    }
245    /// <p>The status of the Amazon DataZone project that was created.</p>
246    pub fn get_project_status(&self) -> &::std::option::Option<crate::types::ProjectStatus> {
247        &self.project_status
248    }
249    /// Appends an item to `failure_reasons`.
250    ///
251    /// To override the contents of this collection use [`set_failure_reasons`](Self::set_failure_reasons).
252    ///
253    /// <p>Specifies the error message that is returned if the operation cannot be successfully completed.</p>
254    pub fn failure_reasons(mut self, input: crate::types::ProjectDeletionError) -> Self {
255        let mut v = self.failure_reasons.unwrap_or_default();
256        v.push(input);
257        self.failure_reasons = ::std::option::Option::Some(v);
258        self
259    }
260    /// <p>Specifies the error message that is returned if the operation cannot be successfully completed.</p>
261    pub fn set_failure_reasons(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ProjectDeletionError>>) -> Self {
262        self.failure_reasons = input;
263        self
264    }
265    /// <p>Specifies the error message that is returned if the operation cannot be successfully completed.</p>
266    pub fn get_failure_reasons(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ProjectDeletionError>> {
267        &self.failure_reasons
268    }
269    /// <p>The Amazon DataZone user who created the project.</p>
270    /// This field is required.
271    pub fn created_by(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
272        self.created_by = ::std::option::Option::Some(input.into());
273        self
274    }
275    /// <p>The Amazon DataZone user who created the project.</p>
276    pub fn set_created_by(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
277        self.created_by = input;
278        self
279    }
280    /// <p>The Amazon DataZone user who created the project.</p>
281    pub fn get_created_by(&self) -> &::std::option::Option<::std::string::String> {
282        &self.created_by
283    }
284    /// <p>The timestamp of when the project was created.</p>
285    pub fn created_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
286        self.created_at = ::std::option::Option::Some(input);
287        self
288    }
289    /// <p>The timestamp of when the project was created.</p>
290    pub fn set_created_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
291        self.created_at = input;
292        self
293    }
294    /// <p>The timestamp of when the project was created.</p>
295    pub fn get_created_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
296        &self.created_at
297    }
298    /// <p>The timestamp of when the project was last updated.</p>
299    pub fn last_updated_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
300        self.last_updated_at = ::std::option::Option::Some(input);
301        self
302    }
303    /// <p>The timestamp of when the project was last updated.</p>
304    pub fn set_last_updated_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
305        self.last_updated_at = input;
306        self
307    }
308    /// <p>The timestamp of when the project was last updated.</p>
309    pub fn get_last_updated_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
310        &self.last_updated_at
311    }
312    /// Appends an item to `resource_tags`.
313    ///
314    /// To override the contents of this collection use [`set_resource_tags`](Self::set_resource_tags).
315    ///
316    /// <p>The resource tags of the project.</p>
317    pub fn resource_tags(mut self, input: crate::types::ResourceTag) -> Self {
318        let mut v = self.resource_tags.unwrap_or_default();
319        v.push(input);
320        self.resource_tags = ::std::option::Option::Some(v);
321        self
322    }
323    /// <p>The resource tags of the project.</p>
324    pub fn set_resource_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ResourceTag>>) -> Self {
325        self.resource_tags = input;
326        self
327    }
328    /// <p>The resource tags of the project.</p>
329    pub fn get_resource_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ResourceTag>> {
330        &self.resource_tags
331    }
332    /// Appends an item to `glossary_terms`.
333    ///
334    /// To override the contents of this collection use [`set_glossary_terms`](Self::set_glossary_terms).
335    ///
336    /// <p>The glossary terms that can be used in the project.</p>
337    pub fn glossary_terms(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
338        let mut v = self.glossary_terms.unwrap_or_default();
339        v.push(input.into());
340        self.glossary_terms = ::std::option::Option::Some(v);
341        self
342    }
343    /// <p>The glossary terms that can be used in the project.</p>
344    pub fn set_glossary_terms(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
345        self.glossary_terms = input;
346        self
347    }
348    /// <p>The glossary terms that can be used in the project.</p>
349    pub fn get_glossary_terms(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
350        &self.glossary_terms
351    }
352    /// <p>The ID of the domain unit.</p>
353    pub fn domain_unit_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
354        self.domain_unit_id = ::std::option::Option::Some(input.into());
355        self
356    }
357    /// <p>The ID of the domain unit.</p>
358    pub fn set_domain_unit_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
359        self.domain_unit_id = input;
360        self
361    }
362    /// <p>The ID of the domain unit.</p>
363    pub fn get_domain_unit_id(&self) -> &::std::option::Option<::std::string::String> {
364        &self.domain_unit_id
365    }
366    /// <p>The project profile ID.</p>
367    pub fn project_profile_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
368        self.project_profile_id = ::std::option::Option::Some(input.into());
369        self
370    }
371    /// <p>The project profile ID.</p>
372    pub fn set_project_profile_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
373        self.project_profile_id = input;
374        self
375    }
376    /// <p>The project profile ID.</p>
377    pub fn get_project_profile_id(&self) -> &::std::option::Option<::std::string::String> {
378        &self.project_profile_id
379    }
380    /// Appends an item to `user_parameters`.
381    ///
382    /// To override the contents of this collection use [`set_user_parameters`](Self::set_user_parameters).
383    ///
384    /// <p>The user parameters of the project.</p>
385    pub fn user_parameters(mut self, input: crate::types::EnvironmentConfigurationUserParameter) -> Self {
386        let mut v = self.user_parameters.unwrap_or_default();
387        v.push(input);
388        self.user_parameters = ::std::option::Option::Some(v);
389        self
390    }
391    /// <p>The user parameters of the project.</p>
392    pub fn set_user_parameters(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::EnvironmentConfigurationUserParameter>>) -> Self {
393        self.user_parameters = input;
394        self
395    }
396    /// <p>The user parameters of the project.</p>
397    pub fn get_user_parameters(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::EnvironmentConfigurationUserParameter>> {
398        &self.user_parameters
399    }
400    /// <p>The environment deployment details.</p>
401    pub fn environment_deployment_details(mut self, input: crate::types::EnvironmentDeploymentDetails) -> Self {
402        self.environment_deployment_details = ::std::option::Option::Some(input);
403        self
404    }
405    /// <p>The environment deployment details.</p>
406    pub fn set_environment_deployment_details(mut self, input: ::std::option::Option<crate::types::EnvironmentDeploymentDetails>) -> Self {
407        self.environment_deployment_details = input;
408        self
409    }
410    /// <p>The environment deployment details.</p>
411    pub fn get_environment_deployment_details(&self) -> &::std::option::Option<crate::types::EnvironmentDeploymentDetails> {
412        &self.environment_deployment_details
413    }
414    /// <p>The category of the project.</p>
415    pub fn project_category(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
416        self.project_category = ::std::option::Option::Some(input.into());
417        self
418    }
419    /// <p>The category of the project.</p>
420    pub fn set_project_category(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
421        self.project_category = input;
422        self
423    }
424    /// <p>The category of the project.</p>
425    pub fn get_project_category(&self) -> &::std::option::Option<::std::string::String> {
426        &self.project_category
427    }
428    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
429        self._request_id = Some(request_id.into());
430        self
431    }
432
433    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
434        self._request_id = request_id;
435        self
436    }
437    /// Consumes the builder and constructs a [`CreateProjectOutput`](crate::operation::create_project::CreateProjectOutput).
438    /// This method will fail if any of the following fields are not set:
439    /// - [`domain_id`](crate::operation::create_project::builders::CreateProjectOutputBuilder::domain_id)
440    /// - [`id`](crate::operation::create_project::builders::CreateProjectOutputBuilder::id)
441    /// - [`name`](crate::operation::create_project::builders::CreateProjectOutputBuilder::name)
442    /// - [`created_by`](crate::operation::create_project::builders::CreateProjectOutputBuilder::created_by)
443    pub fn build(
444        self,
445    ) -> ::std::result::Result<crate::operation::create_project::CreateProjectOutput, ::aws_smithy_types::error::operation::BuildError> {
446        ::std::result::Result::Ok(crate::operation::create_project::CreateProjectOutput {
447            domain_id: self.domain_id.ok_or_else(|| {
448                ::aws_smithy_types::error::operation::BuildError::missing_field(
449                    "domain_id",
450                    "domain_id was not specified but it is required when building CreateProjectOutput",
451                )
452            })?,
453            id: self.id.ok_or_else(|| {
454                ::aws_smithy_types::error::operation::BuildError::missing_field(
455                    "id",
456                    "id was not specified but it is required when building CreateProjectOutput",
457                )
458            })?,
459            name: self.name.ok_or_else(|| {
460                ::aws_smithy_types::error::operation::BuildError::missing_field(
461                    "name",
462                    "name was not specified but it is required when building CreateProjectOutput",
463                )
464            })?,
465            description: self.description,
466            project_status: self.project_status,
467            failure_reasons: self.failure_reasons,
468            created_by: self.created_by.ok_or_else(|| {
469                ::aws_smithy_types::error::operation::BuildError::missing_field(
470                    "created_by",
471                    "created_by was not specified but it is required when building CreateProjectOutput",
472                )
473            })?,
474            created_at: self.created_at,
475            last_updated_at: self.last_updated_at,
476            resource_tags: self.resource_tags,
477            glossary_terms: self.glossary_terms,
478            domain_unit_id: self.domain_unit_id,
479            project_profile_id: self.project_profile_id,
480            user_parameters: self.user_parameters,
481            environment_deployment_details: self.environment_deployment_details,
482            project_category: self.project_category,
483            _request_id: self._request_id,
484        })
485    }
486}
487impl ::std::fmt::Debug for CreateProjectOutputBuilder {
488    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
489        let mut formatter = f.debug_struct("CreateProjectOutputBuilder");
490        formatter.field("domain_id", &self.domain_id);
491        formatter.field("id", &self.id);
492        formatter.field("name", &"*** Sensitive Data Redacted ***");
493        formatter.field("description", &"*** Sensitive Data Redacted ***");
494        formatter.field("project_status", &self.project_status);
495        formatter.field("failure_reasons", &self.failure_reasons);
496        formatter.field("created_by", &self.created_by);
497        formatter.field("created_at", &self.created_at);
498        formatter.field("last_updated_at", &self.last_updated_at);
499        formatter.field("resource_tags", &self.resource_tags);
500        formatter.field("glossary_terms", &self.glossary_terms);
501        formatter.field("domain_unit_id", &self.domain_unit_id);
502        formatter.field("project_profile_id", &self.project_profile_id);
503        formatter.field("user_parameters", &self.user_parameters);
504        formatter.field("environment_deployment_details", &self.environment_deployment_details);
505        formatter.field("project_category", &self.project_category);
506        formatter.field("_request_id", &self._request_id);
507        formatter.finish()
508    }
509}