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
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct GetComponentOutput {
    /// <p>The format of the recipe.</p>
    pub recipe_output_format: crate::types::RecipeOutputFormat,
    /// <p>The recipe of the component version.</p>
    pub recipe: ::aws_smithy_types::Blob,
    /// <p>A list of key-value pairs that contain metadata for the resource. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html">Tag your resources</a> in the <i>IoT Greengrass V2 Developer Guide</i>.</p>
    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    _request_id: Option<String>,
}
impl GetComponentOutput {
    /// <p>The format of the recipe.</p>
    pub fn recipe_output_format(&self) -> &crate::types::RecipeOutputFormat {
        &self.recipe_output_format
    }
    /// <p>The recipe of the component version.</p>
    pub fn recipe(&self) -> &::aws_smithy_types::Blob {
        &self.recipe
    }
    /// <p>A list of key-value pairs that contain metadata for the resource. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html">Tag your resources</a> in the <i>IoT Greengrass V2 Developer Guide</i>.</p>
    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
        self.tags.as_ref()
    }
}
impl ::aws_types::request_id::RequestId for GetComponentOutput {
    fn request_id(&self) -> Option<&str> {
        self._request_id.as_deref()
    }
}
impl GetComponentOutput {
    /// Creates a new builder-style object to manufacture [`GetComponentOutput`](crate::operation::get_component::GetComponentOutput).
    pub fn builder() -> crate::operation::get_component::builders::GetComponentOutputBuilder {
        crate::operation::get_component::builders::GetComponentOutputBuilder::default()
    }
}

/// A builder for [`GetComponentOutput`](crate::operation::get_component::GetComponentOutput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct GetComponentOutputBuilder {
    pub(crate) recipe_output_format: ::std::option::Option<crate::types::RecipeOutputFormat>,
    pub(crate) recipe: ::std::option::Option<::aws_smithy_types::Blob>,
    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    _request_id: Option<String>,
}
impl GetComponentOutputBuilder {
    /// <p>The format of the recipe.</p>
    /// This field is required.
    pub fn recipe_output_format(mut self, input: crate::types::RecipeOutputFormat) -> Self {
        self.recipe_output_format = ::std::option::Option::Some(input);
        self
    }
    /// <p>The format of the recipe.</p>
    pub fn set_recipe_output_format(mut self, input: ::std::option::Option<crate::types::RecipeOutputFormat>) -> Self {
        self.recipe_output_format = input;
        self
    }
    /// <p>The format of the recipe.</p>
    pub fn get_recipe_output_format(&self) -> &::std::option::Option<crate::types::RecipeOutputFormat> {
        &self.recipe_output_format
    }
    /// <p>The recipe of the component version.</p>
    /// This field is required.
    pub fn recipe(mut self, input: ::aws_smithy_types::Blob) -> Self {
        self.recipe = ::std::option::Option::Some(input);
        self
    }
    /// <p>The recipe of the component version.</p>
    pub fn set_recipe(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
        self.recipe = input;
        self
    }
    /// <p>The recipe of the component version.</p>
    pub fn get_recipe(&self) -> &::std::option::Option<::aws_smithy_types::Blob> {
        &self.recipe
    }
    /// Adds a key-value pair to `tags`.
    ///
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
    ///
    /// <p>A list of key-value pairs that contain metadata for the resource. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html">Tag your resources</a> in the <i>IoT Greengrass V2 Developer Guide</i>.</p>
    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
        let mut hash_map = self.tags.unwrap_or_default();
        hash_map.insert(k.into(), v.into());
        self.tags = ::std::option::Option::Some(hash_map);
        self
    }
    /// <p>A list of key-value pairs that contain metadata for the resource. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html">Tag your resources</a> in the <i>IoT Greengrass V2 Developer Guide</i>.</p>
    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
        self.tags = input;
        self
    }
    /// <p>A list of key-value pairs that contain metadata for the resource. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html">Tag your resources</a> in the <i>IoT Greengrass V2 Developer Guide</i>.</p>
    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
        &self.tags
    }
    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
        self._request_id = Some(request_id.into());
        self
    }

    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
        self._request_id = request_id;
        self
    }
    /// Consumes the builder and constructs a [`GetComponentOutput`](crate::operation::get_component::GetComponentOutput).
    /// This method will fail if any of the following fields are not set:
    /// - [`recipe_output_format`](crate::operation::get_component::builders::GetComponentOutputBuilder::recipe_output_format)
    /// - [`recipe`](crate::operation::get_component::builders::GetComponentOutputBuilder::recipe)
    pub fn build(
        self,
    ) -> ::std::result::Result<crate::operation::get_component::GetComponentOutput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::get_component::GetComponentOutput {
            recipe_output_format: self.recipe_output_format.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "recipe_output_format",
                    "recipe_output_format was not specified but it is required when building GetComponentOutput",
                )
            })?,
            recipe: self.recipe.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "recipe",
                    "recipe was not specified but it is required when building GetComponentOutput",
                )
            })?,
            tags: self.tags,
            _request_id: self._request_id,
        })
    }
}