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
// 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)]
pub struct CreateBuildOutput {
    /// <p>The newly created build resource, including a unique build IDs and status.</p>
    ///
    /// _Note: This member has been renamed from `build`._
    pub build_value: ::std::option::Option<crate::types::Build>,
    /// <p>This element is returned only when the operation is called without a storage location. It contains credentials to use when you are uploading a build file to an Amazon S3 bucket that is owned by Amazon GameLift. Credentials have a limited life span. To refresh these credentials, call <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_RequestUploadCredentials.html">RequestUploadCredentials</a>.</p>
    pub upload_credentials: ::std::option::Option<crate::types::AwsCredentials>,
    /// <p>Amazon S3 location for your game build file, including bucket name and key.</p>
    pub storage_location: ::std::option::Option<crate::types::S3Location>,
    _request_id: Option<String>,
}
impl CreateBuildOutput {
    /// <p>The newly created build resource, including a unique build IDs and status.</p>
    ///
    /// _Note: This member has been renamed from `build`._
    pub fn build_value(&self) -> ::std::option::Option<&crate::types::Build> {
        self.build_value.as_ref()
    }
    /// <p>This element is returned only when the operation is called without a storage location. It contains credentials to use when you are uploading a build file to an Amazon S3 bucket that is owned by Amazon GameLift. Credentials have a limited life span. To refresh these credentials, call <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_RequestUploadCredentials.html">RequestUploadCredentials</a>.</p>
    pub fn upload_credentials(&self) -> ::std::option::Option<&crate::types::AwsCredentials> {
        self.upload_credentials.as_ref()
    }
    /// <p>Amazon S3 location for your game build file, including bucket name and key.</p>
    pub fn storage_location(&self) -> ::std::option::Option<&crate::types::S3Location> {
        self.storage_location.as_ref()
    }
}
impl ::std::fmt::Debug for CreateBuildOutput {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        let mut formatter = f.debug_struct("CreateBuildOutput");
        formatter.field("build_value", &self.build_value);
        formatter.field("upload_credentials", &"*** Sensitive Data Redacted ***");
        formatter.field("storage_location", &self.storage_location);
        formatter.field("_request_id", &self._request_id);
        formatter.finish()
    }
}
impl ::aws_types::request_id::RequestId for CreateBuildOutput {
    fn request_id(&self) -> Option<&str> {
        self._request_id.as_deref()
    }
}
impl CreateBuildOutput {
    /// Creates a new builder-style object to manufacture [`CreateBuildOutput`](crate::operation::create_build::CreateBuildOutput).
    pub fn builder() -> crate::operation::create_build::builders::CreateBuildOutputBuilder {
        crate::operation::create_build::builders::CreateBuildOutputBuilder::default()
    }
}

/// A builder for [`CreateBuildOutput`](crate::operation::create_build::CreateBuildOutput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
pub struct CreateBuildOutputBuilder {
    pub(crate) build_value: ::std::option::Option<crate::types::Build>,
    pub(crate) upload_credentials: ::std::option::Option<crate::types::AwsCredentials>,
    pub(crate) storage_location: ::std::option::Option<crate::types::S3Location>,
    _request_id: Option<String>,
}
impl CreateBuildOutputBuilder {
    /// <p>The newly created build resource, including a unique build IDs and status.</p>
    pub fn build_value(mut self, input: crate::types::Build) -> Self {
        self.build_value = ::std::option::Option::Some(input);
        self
    }
    /// <p>The newly created build resource, including a unique build IDs and status.</p>
    pub fn set_build(mut self, input: ::std::option::Option<crate::types::Build>) -> Self {
        self.build_value = input;
        self
    }
    /// <p>The newly created build resource, including a unique build IDs and status.</p>
    pub fn get_build(&self) -> &::std::option::Option<crate::types::Build> {
        &self.build_value
    }
    /// <p>This element is returned only when the operation is called without a storage location. It contains credentials to use when you are uploading a build file to an Amazon S3 bucket that is owned by Amazon GameLift. Credentials have a limited life span. To refresh these credentials, call <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_RequestUploadCredentials.html">RequestUploadCredentials</a>.</p>
    pub fn upload_credentials(mut self, input: crate::types::AwsCredentials) -> Self {
        self.upload_credentials = ::std::option::Option::Some(input);
        self
    }
    /// <p>This element is returned only when the operation is called without a storage location. It contains credentials to use when you are uploading a build file to an Amazon S3 bucket that is owned by Amazon GameLift. Credentials have a limited life span. To refresh these credentials, call <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_RequestUploadCredentials.html">RequestUploadCredentials</a>.</p>
    pub fn set_upload_credentials(mut self, input: ::std::option::Option<crate::types::AwsCredentials>) -> Self {
        self.upload_credentials = input;
        self
    }
    /// <p>This element is returned only when the operation is called without a storage location. It contains credentials to use when you are uploading a build file to an Amazon S3 bucket that is owned by Amazon GameLift. Credentials have a limited life span. To refresh these credentials, call <a href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_RequestUploadCredentials.html">RequestUploadCredentials</a>.</p>
    pub fn get_upload_credentials(&self) -> &::std::option::Option<crate::types::AwsCredentials> {
        &self.upload_credentials
    }
    /// <p>Amazon S3 location for your game build file, including bucket name and key.</p>
    pub fn storage_location(mut self, input: crate::types::S3Location) -> Self {
        self.storage_location = ::std::option::Option::Some(input);
        self
    }
    /// <p>Amazon S3 location for your game build file, including bucket name and key.</p>
    pub fn set_storage_location(mut self, input: ::std::option::Option<crate::types::S3Location>) -> Self {
        self.storage_location = input;
        self
    }
    /// <p>Amazon S3 location for your game build file, including bucket name and key.</p>
    pub fn get_storage_location(&self) -> &::std::option::Option<crate::types::S3Location> {
        &self.storage_location
    }
    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 [`CreateBuildOutput`](crate::operation::create_build::CreateBuildOutput).
    pub fn build(self) -> crate::operation::create_build::CreateBuildOutput {
        crate::operation::create_build::CreateBuildOutput {
            build_value: self.build_value,
            upload_credentials: self.upload_credentials,
            storage_location: self.storage_location,
            _request_id: self._request_id,
        }
    }
}
impl ::std::fmt::Debug for CreateBuildOutputBuilder {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        let mut formatter = f.debug_struct("CreateBuildOutputBuilder");
        formatter.field("build_value", &self.build_value);
        formatter.field("upload_credentials", &"*** Sensitive Data Redacted ***");
        formatter.field("storage_location", &self.storage_location);
        formatter.field("_request_id", &self._request_id);
        formatter.finish()
    }
}