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
137
138
// 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 UpdateSchemaInput {
    /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
    /// <ul>
    /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
    /// <li> <p>SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
    /// </ul>
    pub schema_id: ::std::option::Option<crate::types::SchemaId>,
    /// <p>Version number required for check pointing. One of <code>VersionNumber</code> or <code>Compatibility</code> has to be provided.</p>
    pub schema_version_number: ::std::option::Option<crate::types::SchemaVersionNumber>,
    /// <p>The new compatibility setting for the schema.</p>
    pub compatibility: ::std::option::Option<crate::types::Compatibility>,
    /// <p>The new description for the schema.</p>
    pub description: ::std::option::Option<::std::string::String>,
}
impl UpdateSchemaInput {
    /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
    /// <ul>
    /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
    /// <li> <p>SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
    /// </ul>
    pub fn schema_id(&self) -> ::std::option::Option<&crate::types::SchemaId> {
        self.schema_id.as_ref()
    }
    /// <p>Version number required for check pointing. One of <code>VersionNumber</code> or <code>Compatibility</code> has to be provided.</p>
    pub fn schema_version_number(&self) -> ::std::option::Option<&crate::types::SchemaVersionNumber> {
        self.schema_version_number.as_ref()
    }
    /// <p>The new compatibility setting for the schema.</p>
    pub fn compatibility(&self) -> ::std::option::Option<&crate::types::Compatibility> {
        self.compatibility.as_ref()
    }
    /// <p>The new description for the schema.</p>
    pub fn description(&self) -> ::std::option::Option<&str> {
        self.description.as_deref()
    }
}
impl UpdateSchemaInput {
    /// Creates a new builder-style object to manufacture [`UpdateSchemaInput`](crate::operation::update_schema::UpdateSchemaInput).
    pub fn builder() -> crate::operation::update_schema::builders::UpdateSchemaInputBuilder {
        crate::operation::update_schema::builders::UpdateSchemaInputBuilder::default()
    }
}

/// A builder for [`UpdateSchemaInput`](crate::operation::update_schema::UpdateSchemaInput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct UpdateSchemaInputBuilder {
    pub(crate) schema_id: ::std::option::Option<crate::types::SchemaId>,
    pub(crate) schema_version_number: ::std::option::Option<crate::types::SchemaVersionNumber>,
    pub(crate) compatibility: ::std::option::Option<crate::types::Compatibility>,
    pub(crate) description: ::std::option::Option<::std::string::String>,
}
impl UpdateSchemaInputBuilder {
    /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
    /// <ul>
    /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
    /// <li> <p>SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
    /// </ul>
    /// This field is required.
    pub fn schema_id(mut self, input: crate::types::SchemaId) -> Self {
        self.schema_id = ::std::option::Option::Some(input);
        self
    }
    /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
    /// <ul>
    /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
    /// <li> <p>SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
    /// </ul>
    pub fn set_schema_id(mut self, input: ::std::option::Option<crate::types::SchemaId>) -> Self {
        self.schema_id = input;
        self
    }
    /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
    /// <ul>
    /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
    /// <li> <p>SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
    /// </ul>
    pub fn get_schema_id(&self) -> &::std::option::Option<crate::types::SchemaId> {
        &self.schema_id
    }
    /// <p>Version number required for check pointing. One of <code>VersionNumber</code> or <code>Compatibility</code> has to be provided.</p>
    pub fn schema_version_number(mut self, input: crate::types::SchemaVersionNumber) -> Self {
        self.schema_version_number = ::std::option::Option::Some(input);
        self
    }
    /// <p>Version number required for check pointing. One of <code>VersionNumber</code> or <code>Compatibility</code> has to be provided.</p>
    pub fn set_schema_version_number(mut self, input: ::std::option::Option<crate::types::SchemaVersionNumber>) -> Self {
        self.schema_version_number = input;
        self
    }
    /// <p>Version number required for check pointing. One of <code>VersionNumber</code> or <code>Compatibility</code> has to be provided.</p>
    pub fn get_schema_version_number(&self) -> &::std::option::Option<crate::types::SchemaVersionNumber> {
        &self.schema_version_number
    }
    /// <p>The new compatibility setting for the schema.</p>
    pub fn compatibility(mut self, input: crate::types::Compatibility) -> Self {
        self.compatibility = ::std::option::Option::Some(input);
        self
    }
    /// <p>The new compatibility setting for the schema.</p>
    pub fn set_compatibility(mut self, input: ::std::option::Option<crate::types::Compatibility>) -> Self {
        self.compatibility = input;
        self
    }
    /// <p>The new compatibility setting for the schema.</p>
    pub fn get_compatibility(&self) -> &::std::option::Option<crate::types::Compatibility> {
        &self.compatibility
    }
    /// <p>The new description for the schema.</p>
    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.description = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The new description for the schema.</p>
    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.description = input;
        self
    }
    /// <p>The new description for the schema.</p>
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
        &self.description
    }
    /// Consumes the builder and constructs a [`UpdateSchemaInput`](crate::operation::update_schema::UpdateSchemaInput).
    pub fn build(
        self,
    ) -> ::std::result::Result<crate::operation::update_schema::UpdateSchemaInput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::update_schema::UpdateSchemaInput {
            schema_id: self.schema_id,
            schema_version_number: self.schema_version_number,
            compatibility: self.compatibility,
            description: self.description,
        })
    }
}