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
// 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 PutFileOutput {
    /// <p>The full SHA ID of the commit that contains this file change.</p>
    pub commit_id: ::std::string::String,
    /// <p>The ID of the blob, which is its SHA-1 pointer.</p>
    pub blob_id: ::std::string::String,
    /// <p>The full SHA-1 pointer of the tree information for the commit that contains this file change.</p>
    pub tree_id: ::std::string::String,
    _request_id: Option<String>,
}
impl PutFileOutput {
    /// <p>The full SHA ID of the commit that contains this file change.</p>
    pub fn commit_id(&self) -> &str {
        use std::ops::Deref;
        self.commit_id.deref()
    }
    /// <p>The ID of the blob, which is its SHA-1 pointer.</p>
    pub fn blob_id(&self) -> &str {
        use std::ops::Deref;
        self.blob_id.deref()
    }
    /// <p>The full SHA-1 pointer of the tree information for the commit that contains this file change.</p>
    pub fn tree_id(&self) -> &str {
        use std::ops::Deref;
        self.tree_id.deref()
    }
}
impl ::aws_types::request_id::RequestId for PutFileOutput {
    fn request_id(&self) -> Option<&str> {
        self._request_id.as_deref()
    }
}
impl PutFileOutput {
    /// Creates a new builder-style object to manufacture [`PutFileOutput`](crate::operation::put_file::PutFileOutput).
    pub fn builder() -> crate::operation::put_file::builders::PutFileOutputBuilder {
        crate::operation::put_file::builders::PutFileOutputBuilder::default()
    }
}

/// A builder for [`PutFileOutput`](crate::operation::put_file::PutFileOutput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct PutFileOutputBuilder {
    pub(crate) commit_id: ::std::option::Option<::std::string::String>,
    pub(crate) blob_id: ::std::option::Option<::std::string::String>,
    pub(crate) tree_id: ::std::option::Option<::std::string::String>,
    _request_id: Option<String>,
}
impl PutFileOutputBuilder {
    /// <p>The full SHA ID of the commit that contains this file change.</p>
    /// This field is required.
    pub fn commit_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.commit_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The full SHA ID of the commit that contains this file change.</p>
    pub fn set_commit_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.commit_id = input;
        self
    }
    /// <p>The full SHA ID of the commit that contains this file change.</p>
    pub fn get_commit_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.commit_id
    }
    /// <p>The ID of the blob, which is its SHA-1 pointer.</p>
    /// This field is required.
    pub fn blob_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.blob_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The ID of the blob, which is its SHA-1 pointer.</p>
    pub fn set_blob_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.blob_id = input;
        self
    }
    /// <p>The ID of the blob, which is its SHA-1 pointer.</p>
    pub fn get_blob_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.blob_id
    }
    /// <p>The full SHA-1 pointer of the tree information for the commit that contains this file change.</p>
    /// This field is required.
    pub fn tree_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.tree_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The full SHA-1 pointer of the tree information for the commit that contains this file change.</p>
    pub fn set_tree_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.tree_id = input;
        self
    }
    /// <p>The full SHA-1 pointer of the tree information for the commit that contains this file change.</p>
    pub fn get_tree_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.tree_id
    }
    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 [`PutFileOutput`](crate::operation::put_file::PutFileOutput).
    /// This method will fail if any of the following fields are not set:
    /// - [`commit_id`](crate::operation::put_file::builders::PutFileOutputBuilder::commit_id)
    /// - [`blob_id`](crate::operation::put_file::builders::PutFileOutputBuilder::blob_id)
    /// - [`tree_id`](crate::operation::put_file::builders::PutFileOutputBuilder::tree_id)
    pub fn build(self) -> ::std::result::Result<crate::operation::put_file::PutFileOutput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::put_file::PutFileOutput {
            commit_id: self.commit_id.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "commit_id",
                    "commit_id was not specified but it is required when building PutFileOutput",
                )
            })?,
            blob_id: self.blob_id.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "blob_id",
                    "blob_id was not specified but it is required when building PutFileOutput",
                )
            })?,
            tree_id: self.tree_id.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "tree_id",
                    "tree_id was not specified but it is required when building PutFileOutput",
                )
            })?,
            _request_id: self._request_id,
        })
    }
}