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
136
// 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 CreateImageInput {
    /// <p>The description of the image.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p>The display name of the image. If not provided, <code>ImageName</code> is displayed.</p>
    #[doc(hidden)]
    pub display_name: std::option::Option<std::string::String>,
    /// <p>The name of the image. Must be unique to your account.</p>
    #[doc(hidden)]
    pub image_name: std::option::Option<std::string::String>,
    /// <p>The ARN of an IAM role that enables Amazon SageMaker to perform tasks on your behalf.</p>
    #[doc(hidden)]
    pub role_arn: std::option::Option<std::string::String>,
    /// <p>A list of tags to apply to the image.</p>
    #[doc(hidden)]
    pub tags: std::option::Option<std::vec::Vec<crate::types::Tag>>,
}
impl CreateImageInput {
    /// <p>The description of the image.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>The display name of the image. If not provided, <code>ImageName</code> is displayed.</p>
    pub fn display_name(&self) -> std::option::Option<&str> {
        self.display_name.as_deref()
    }
    /// <p>The name of the image. Must be unique to your account.</p>
    pub fn image_name(&self) -> std::option::Option<&str> {
        self.image_name.as_deref()
    }
    /// <p>The ARN of an IAM role that enables Amazon SageMaker to perform tasks on your behalf.</p>
    pub fn role_arn(&self) -> std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// <p>A list of tags to apply to the image.</p>
    pub fn tags(&self) -> std::option::Option<&[crate::types::Tag]> {
        self.tags.as_deref()
    }
}
impl CreateImageInput {
    /// Creates a new builder-style object to manufacture [`CreateImageInput`](crate::operation::create_image::CreateImageInput).
    pub fn builder() -> crate::operation::create_image::builders::CreateImageInputBuilder {
        crate::operation::create_image::builders::CreateImageInputBuilder::default()
    }
}

/// A builder for [`CreateImageInput`](crate::operation::create_image::CreateImageInput).
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
pub struct CreateImageInputBuilder {
    pub(crate) description: std::option::Option<std::string::String>,
    pub(crate) display_name: std::option::Option<std::string::String>,
    pub(crate) image_name: std::option::Option<std::string::String>,
    pub(crate) role_arn: std::option::Option<std::string::String>,
    pub(crate) tags: std::option::Option<std::vec::Vec<crate::types::Tag>>,
}
impl CreateImageInputBuilder {
    /// <p>The description of the image.</p>
    pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
        self.description = Some(input.into());
        self
    }
    /// <p>The description of the image.</p>
    pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
        self.description = input;
        self
    }
    /// <p>The display name of the image. If not provided, <code>ImageName</code> is displayed.</p>
    pub fn display_name(mut self, input: impl Into<std::string::String>) -> Self {
        self.display_name = Some(input.into());
        self
    }
    /// <p>The display name of the image. If not provided, <code>ImageName</code> is displayed.</p>
    pub fn set_display_name(mut self, input: std::option::Option<std::string::String>) -> Self {
        self.display_name = input;
        self
    }
    /// <p>The name of the image. Must be unique to your account.</p>
    pub fn image_name(mut self, input: impl Into<std::string::String>) -> Self {
        self.image_name = Some(input.into());
        self
    }
    /// <p>The name of the image. Must be unique to your account.</p>
    pub fn set_image_name(mut self, input: std::option::Option<std::string::String>) -> Self {
        self.image_name = input;
        self
    }
    /// <p>The ARN of an IAM role that enables Amazon SageMaker to perform tasks on your behalf.</p>
    pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
        self.role_arn = Some(input.into());
        self
    }
    /// <p>The ARN of an IAM role that enables Amazon SageMaker to perform tasks on your behalf.</p>
    pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
        self.role_arn = input;
        self
    }
    /// Appends an item to `tags`.
    ///
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
    ///
    /// <p>A list of tags to apply to the image.</p>
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
        let mut v = self.tags.unwrap_or_default();
        v.push(input);
        self.tags = Some(v);
        self
    }
    /// <p>A list of tags to apply to the image.</p>
    pub fn set_tags(
        mut self,
        input: std::option::Option<std::vec::Vec<crate::types::Tag>>,
    ) -> Self {
        self.tags = input;
        self
    }
    /// Consumes the builder and constructs a [`CreateImageInput`](crate::operation::create_image::CreateImageInput).
    pub fn build(
        self,
    ) -> Result<
        crate::operation::create_image::CreateImageInput,
        aws_smithy_http::operation::error::BuildError,
    > {
        Ok(crate::operation::create_image::CreateImageInput {
            description: self.description,
            display_name: self.display_name,
            image_name: self.image_name,
            role_arn: self.role_arn,
            tags: self.tags,
        })
    }
}