aws_sdk_quicksight/operation/create_topic/
_create_topic_input.rs

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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
// 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 CreateTopicInput {
    /// <p>The ID of the Amazon Web Services account that you want to create a topic in.</p>
    pub aws_account_id: ::std::option::Option<::std::string::String>,
    /// <p>The ID for the topic that you want to create. This ID is unique per Amazon Web Services Region for each Amazon Web Services account.</p>
    pub topic_id: ::std::option::Option<::std::string::String>,
    /// <p>The definition of a topic to create.</p>
    pub topic: ::std::option::Option<crate::types::TopicDetails>,
    /// <p>Contains a map of the key-value pairs for the resource tag or tags that are assigned to the dataset.</p>
    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
    /// <p>The Folder ARN of the folder that you want the topic to reside in.</p>
    pub folder_arns: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
}
impl CreateTopicInput {
    /// <p>The ID of the Amazon Web Services account that you want to create a topic in.</p>
    pub fn aws_account_id(&self) -> ::std::option::Option<&str> {
        self.aws_account_id.as_deref()
    }
    /// <p>The ID for the topic that you want to create. This ID is unique per Amazon Web Services Region for each Amazon Web Services account.</p>
    pub fn topic_id(&self) -> ::std::option::Option<&str> {
        self.topic_id.as_deref()
    }
    /// <p>The definition of a topic to create.</p>
    pub fn topic(&self) -> ::std::option::Option<&crate::types::TopicDetails> {
        self.topic.as_ref()
    }
    /// <p>Contains a map of the key-value pairs for the resource tag or tags that are assigned to the dataset.</p>
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
    pub fn tags(&self) -> &[crate::types::Tag] {
        self.tags.as_deref().unwrap_or_default()
    }
    /// <p>The Folder ARN of the folder that you want the topic to reside in.</p>
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.folder_arns.is_none()`.
    pub fn folder_arns(&self) -> &[::std::string::String] {
        self.folder_arns.as_deref().unwrap_or_default()
    }
}
impl CreateTopicInput {
    /// Creates a new builder-style object to manufacture [`CreateTopicInput`](crate::operation::create_topic::CreateTopicInput).
    pub fn builder() -> crate::operation::create_topic::builders::CreateTopicInputBuilder {
        crate::operation::create_topic::builders::CreateTopicInputBuilder::default()
    }
}

/// A builder for [`CreateTopicInput`](crate::operation::create_topic::CreateTopicInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct CreateTopicInputBuilder {
    pub(crate) aws_account_id: ::std::option::Option<::std::string::String>,
    pub(crate) topic_id: ::std::option::Option<::std::string::String>,
    pub(crate) topic: ::std::option::Option<crate::types::TopicDetails>,
    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
    pub(crate) folder_arns: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
}
impl CreateTopicInputBuilder {
    /// <p>The ID of the Amazon Web Services account that you want to create a topic in.</p>
    /// This field is required.
    pub fn aws_account_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.aws_account_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The ID of the Amazon Web Services account that you want to create a topic in.</p>
    pub fn set_aws_account_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.aws_account_id = input;
        self
    }
    /// <p>The ID of the Amazon Web Services account that you want to create a topic in.</p>
    pub fn get_aws_account_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.aws_account_id
    }
    /// <p>The ID for the topic that you want to create. This ID is unique per Amazon Web Services Region for each Amazon Web Services account.</p>
    /// This field is required.
    pub fn topic_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.topic_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The ID for the topic that you want to create. This ID is unique per Amazon Web Services Region for each Amazon Web Services account.</p>
    pub fn set_topic_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.topic_id = input;
        self
    }
    /// <p>The ID for the topic that you want to create. This ID is unique per Amazon Web Services Region for each Amazon Web Services account.</p>
    pub fn get_topic_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.topic_id
    }
    /// <p>The definition of a topic to create.</p>
    /// This field is required.
    pub fn topic(mut self, input: crate::types::TopicDetails) -> Self {
        self.topic = ::std::option::Option::Some(input);
        self
    }
    /// <p>The definition of a topic to create.</p>
    pub fn set_topic(mut self, input: ::std::option::Option<crate::types::TopicDetails>) -> Self {
        self.topic = input;
        self
    }
    /// <p>The definition of a topic to create.</p>
    pub fn get_topic(&self) -> &::std::option::Option<crate::types::TopicDetails> {
        &self.topic
    }
    /// Appends an item to `tags`.
    ///
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
    ///
    /// <p>Contains a map of the key-value pairs for the resource tag or tags that are assigned to the dataset.</p>
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
        let mut v = self.tags.unwrap_or_default();
        v.push(input);
        self.tags = ::std::option::Option::Some(v);
        self
    }
    /// <p>Contains a map of the key-value pairs for the resource tag or tags that are assigned to the dataset.</p>
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
        self.tags = input;
        self
    }
    /// <p>Contains a map of the key-value pairs for the resource tag or tags that are assigned to the dataset.</p>
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
        &self.tags
    }
    /// Appends an item to `folder_arns`.
    ///
    /// To override the contents of this collection use [`set_folder_arns`](Self::set_folder_arns).
    ///
    /// <p>The Folder ARN of the folder that you want the topic to reside in.</p>
    pub fn folder_arns(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        let mut v = self.folder_arns.unwrap_or_default();
        v.push(input.into());
        self.folder_arns = ::std::option::Option::Some(v);
        self
    }
    /// <p>The Folder ARN of the folder that you want the topic to reside in.</p>
    pub fn set_folder_arns(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
        self.folder_arns = input;
        self
    }
    /// <p>The Folder ARN of the folder that you want the topic to reside in.</p>
    pub fn get_folder_arns(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
        &self.folder_arns
    }
    /// Consumes the builder and constructs a [`CreateTopicInput`](crate::operation::create_topic::CreateTopicInput).
    pub fn build(self) -> ::std::result::Result<crate::operation::create_topic::CreateTopicInput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::create_topic::CreateTopicInput {
            aws_account_id: self.aws_account_id,
            topic_id: self.topic_id,
            topic: self.topic,
            tags: self.tags,
            folder_arns: self.folder_arns,
        })
    }
}