#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct Subscription {
pub source: ::std::option::Option<::std::string::String>,
pub destination: ::std::option::Option<::std::string::String>,
pub metric: ::std::option::Option<crate::types::MetricType>,
pub statistic: ::std::option::Option<crate::types::StatisticType>,
pub period: ::std::option::Option<crate::types::PeriodType>,
}
impl Subscription {
pub fn source(&self) -> ::std::option::Option<&str> {
self.source.as_deref()
}
pub fn destination(&self) -> ::std::option::Option<&str> {
self.destination.as_deref()
}
pub fn metric(&self) -> ::std::option::Option<&crate::types::MetricType> {
self.metric.as_ref()
}
pub fn statistic(&self) -> ::std::option::Option<&crate::types::StatisticType> {
self.statistic.as_ref()
}
pub fn period(&self) -> ::std::option::Option<&crate::types::PeriodType> {
self.period.as_ref()
}
}
impl Subscription {
pub fn builder() -> crate::types::builders::SubscriptionBuilder {
crate::types::builders::SubscriptionBuilder::default()
}
}
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct SubscriptionBuilder {
pub(crate) source: ::std::option::Option<::std::string::String>,
pub(crate) destination: ::std::option::Option<::std::string::String>,
pub(crate) metric: ::std::option::Option<crate::types::MetricType>,
pub(crate) statistic: ::std::option::Option<crate::types::StatisticType>,
pub(crate) period: ::std::option::Option<crate::types::PeriodType>,
}
impl SubscriptionBuilder {
pub fn source(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.source = ::std::option::Option::Some(input.into());
self
}
pub fn set_source(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.source = input;
self
}
pub fn get_source(&self) -> &::std::option::Option<::std::string::String> {
&self.source
}
pub fn destination(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.destination = ::std::option::Option::Some(input.into());
self
}
pub fn set_destination(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.destination = input;
self
}
pub fn get_destination(&self) -> &::std::option::Option<::std::string::String> {
&self.destination
}
pub fn metric(mut self, input: crate::types::MetricType) -> Self {
self.metric = ::std::option::Option::Some(input);
self
}
pub fn set_metric(mut self, input: ::std::option::Option<crate::types::MetricType>) -> Self {
self.metric = input;
self
}
pub fn get_metric(&self) -> &::std::option::Option<crate::types::MetricType> {
&self.metric
}
pub fn statistic(mut self, input: crate::types::StatisticType) -> Self {
self.statistic = ::std::option::Option::Some(input);
self
}
pub fn set_statistic(mut self, input: ::std::option::Option<crate::types::StatisticType>) -> Self {
self.statistic = input;
self
}
pub fn get_statistic(&self) -> &::std::option::Option<crate::types::StatisticType> {
&self.statistic
}
pub fn period(mut self, input: crate::types::PeriodType) -> Self {
self.period = ::std::option::Option::Some(input);
self
}
pub fn set_period(mut self, input: ::std::option::Option<crate::types::PeriodType>) -> Self {
self.period = input;
self
}
pub fn get_period(&self) -> &::std::option::Option<crate::types::PeriodType> {
&self.period
}
pub fn build(self) -> crate::types::Subscription {
crate::types::Subscription {
source: self.source,
destination: self.destination,
metric: self.metric,
statistic: self.statistic,
period: self.period,
}
}
}