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
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
/// <p>Contains the name and value of a tag that you can provide to <code>SendEmail</code> or <code>SendRawEmail</code> to apply to an email.</p>
/// <p>Message tags, which you use with configuration sets, enable you to publish email sending events. For information about using configuration sets, see the <a href="https://docs.aws.amazon.com/ses/latest/dg/monitor-sending-activity.html">Amazon SES Developer Guide</a>.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct MessageTag {
/// <p>The name of the tag. The name must meet the following requirements:</p>
/// <ul>
/// <li>
/// <p>Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).</p></li>
/// <li>
/// <p>Contain 256 characters or fewer.</p></li>
/// </ul>
pub name: ::std::string::String,
/// <p>The value of the tag. The value must meet the following requirements:</p>
/// <ul>
/// <li>
/// <p>Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).</p></li>
/// <li>
/// <p>Contain 256 characters or fewer.</p></li>
/// </ul>
pub value: ::std::string::String,
}
impl MessageTag {
/// <p>The name of the tag. The name must meet the following requirements:</p>
/// <ul>
/// <li>
/// <p>Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).</p></li>
/// <li>
/// <p>Contain 256 characters or fewer.</p></li>
/// </ul>
pub fn name(&self) -> &str {
use std::ops::Deref;
self.name.deref()
}
/// <p>The value of the tag. The value must meet the following requirements:</p>
/// <ul>
/// <li>
/// <p>Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).</p></li>
/// <li>
/// <p>Contain 256 characters or fewer.</p></li>
/// </ul>
pub fn value(&self) -> &str {
use std::ops::Deref;
self.value.deref()
}
}
impl MessageTag {
/// Creates a new builder-style object to manufacture [`MessageTag`](crate::types::MessageTag).
pub fn builder() -> crate::types::builders::MessageTagBuilder {
crate::types::builders::MessageTagBuilder::default()
}
}
/// A builder for [`MessageTag`](crate::types::MessageTag).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct MessageTagBuilder {
pub(crate) name: ::std::option::Option<::std::string::String>,
pub(crate) value: ::std::option::Option<::std::string::String>,
}
impl MessageTagBuilder {
/// <p>The name of the tag. The name must meet the following requirements:</p>
/// <ul>
/// <li>
/// <p>Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).</p></li>
/// <li>
/// <p>Contain 256 characters or fewer.</p></li>
/// </ul>
/// This field is required.
pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.name = ::std::option::Option::Some(input.into());
self
}
/// <p>The name of the tag. The name must meet the following requirements:</p>
/// <ul>
/// <li>
/// <p>Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).</p></li>
/// <li>
/// <p>Contain 256 characters or fewer.</p></li>
/// </ul>
pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.name = input;
self
}
/// <p>The name of the tag. The name must meet the following requirements:</p>
/// <ul>
/// <li>
/// <p>Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).</p></li>
/// <li>
/// <p>Contain 256 characters or fewer.</p></li>
/// </ul>
pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
&self.name
}
/// <p>The value of the tag. The value must meet the following requirements:</p>
/// <ul>
/// <li>
/// <p>Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).</p></li>
/// <li>
/// <p>Contain 256 characters or fewer.</p></li>
/// </ul>
/// This field is required.
pub fn value(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.value = ::std::option::Option::Some(input.into());
self
}
/// <p>The value of the tag. The value must meet the following requirements:</p>
/// <ul>
/// <li>
/// <p>Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).</p></li>
/// <li>
/// <p>Contain 256 characters or fewer.</p></li>
/// </ul>
pub fn set_value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.value = input;
self
}
/// <p>The value of the tag. The value must meet the following requirements:</p>
/// <ul>
/// <li>
/// <p>Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).</p></li>
/// <li>
/// <p>Contain 256 characters or fewer.</p></li>
/// </ul>
pub fn get_value(&self) -> &::std::option::Option<::std::string::String> {
&self.value
}
/// Consumes the builder and constructs a [`MessageTag`](crate::types::MessageTag).
/// This method will fail if any of the following fields are not set:
/// - [`name`](crate::types::builders::MessageTagBuilder::name)
/// - [`value`](crate::types::builders::MessageTagBuilder::value)
pub fn build(self) -> ::std::result::Result<crate::types::MessageTag, ::aws_smithy_types::error::operation::BuildError> {
::std::result::Result::Ok(crate::types::MessageTag {
name: self.name.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"name",
"name was not specified but it is required when building MessageTag",
)
})?,
value: self.value.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"value",
"value was not specified but it is required when building MessageTag",
)
})?,
})
}
}