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,
})
}
}