#[allow(missing_docs)] #[non_exhaustive]
#[derive(
::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
)]
pub enum Dimension {
#[allow(missing_docs)] Az,
#[allow(missing_docs)] BillingEntity,
#[allow(missing_docs)] CacheEngine,
#[allow(missing_docs)] CostCategoryName,
#[allow(missing_docs)] DatabaseEngine,
#[allow(missing_docs)] DeploymentOption,
#[allow(missing_docs)] InstanceType,
#[allow(missing_docs)] InstanceTypeFamily,
#[allow(missing_docs)] InvoicingEntity,
#[allow(missing_docs)] LegalEntityName,
#[allow(missing_docs)] LinkedAccount,
#[allow(missing_docs)] LinkedAccountName,
#[allow(missing_docs)] OperatingSystem,
#[allow(missing_docs)] Operation,
#[allow(missing_docs)] PaymentOption,
#[allow(missing_docs)] Platform,
#[allow(missing_docs)] PurchaseType,
#[allow(missing_docs)] RecordType,
#[allow(missing_docs)] Region,
#[allow(missing_docs)] ReservationId,
#[allow(missing_docs)] ReservationModified,
#[allow(missing_docs)] ResourceId,
#[allow(missing_docs)] RightsizingType,
#[allow(missing_docs)] SavingsPlansType,
#[allow(missing_docs)] SavingsPlanArn,
#[allow(missing_docs)] Scope,
#[allow(missing_docs)] Service,
#[allow(missing_docs)] ServiceCode,
#[allow(missing_docs)] SubscriptionId,
#[allow(missing_docs)] TagKey,
#[allow(missing_docs)] Tenancy,
#[allow(missing_docs)] UsageType,
#[allow(missing_docs)] UsageTypeGroup,
#[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
}
impl ::std::convert::From<&str> for Dimension {
fn from(s: &str) -> Self {
match s {
"AZ" => Dimension::Az,
"BILLING_ENTITY" => Dimension::BillingEntity,
"CACHE_ENGINE" => Dimension::CacheEngine,
"COST_CATEGORY_NAME" => Dimension::CostCategoryName,
"DATABASE_ENGINE" => Dimension::DatabaseEngine,
"DEPLOYMENT_OPTION" => Dimension::DeploymentOption,
"INSTANCE_TYPE" => Dimension::InstanceType,
"INSTANCE_TYPE_FAMILY" => Dimension::InstanceTypeFamily,
"INVOICING_ENTITY" => Dimension::InvoicingEntity,
"LEGAL_ENTITY_NAME" => Dimension::LegalEntityName,
"LINKED_ACCOUNT" => Dimension::LinkedAccount,
"LINKED_ACCOUNT_NAME" => Dimension::LinkedAccountName,
"OPERATING_SYSTEM" => Dimension::OperatingSystem,
"OPERATION" => Dimension::Operation,
"PAYMENT_OPTION" => Dimension::PaymentOption,
"PLATFORM" => Dimension::Platform,
"PURCHASE_TYPE" => Dimension::PurchaseType,
"RECORD_TYPE" => Dimension::RecordType,
"REGION" => Dimension::Region,
"RESERVATION_ID" => Dimension::ReservationId,
"RESERVATION_MODIFIED" => Dimension::ReservationModified,
"RESOURCE_ID" => Dimension::ResourceId,
"RIGHTSIZING_TYPE" => Dimension::RightsizingType,
"SAVINGS_PLANS_TYPE" => Dimension::SavingsPlansType,
"SAVINGS_PLAN_ARN" => Dimension::SavingsPlanArn,
"SCOPE" => Dimension::Scope,
"SERVICE" => Dimension::Service,
"SERVICE_CODE" => Dimension::ServiceCode,
"SUBSCRIPTION_ID" => Dimension::SubscriptionId,
"TAG_KEY" => Dimension::TagKey,
"TENANCY" => Dimension::Tenancy,
"USAGE_TYPE" => Dimension::UsageType,
"USAGE_TYPE_GROUP" => Dimension::UsageTypeGroup,
other => Dimension::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
}
}
}
impl ::std::str::FromStr for Dimension {
type Err = ::std::convert::Infallible;
fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
::std::result::Result::Ok(Dimension::from(s))
}
}
impl Dimension {
pub fn as_str(&self) -> &str {
match self {
Dimension::Az => "AZ",
Dimension::BillingEntity => "BILLING_ENTITY",
Dimension::CacheEngine => "CACHE_ENGINE",
Dimension::CostCategoryName => "COST_CATEGORY_NAME",
Dimension::DatabaseEngine => "DATABASE_ENGINE",
Dimension::DeploymentOption => "DEPLOYMENT_OPTION",
Dimension::InstanceType => "INSTANCE_TYPE",
Dimension::InstanceTypeFamily => "INSTANCE_TYPE_FAMILY",
Dimension::InvoicingEntity => "INVOICING_ENTITY",
Dimension::LegalEntityName => "LEGAL_ENTITY_NAME",
Dimension::LinkedAccount => "LINKED_ACCOUNT",
Dimension::LinkedAccountName => "LINKED_ACCOUNT_NAME",
Dimension::OperatingSystem => "OPERATING_SYSTEM",
Dimension::Operation => "OPERATION",
Dimension::PaymentOption => "PAYMENT_OPTION",
Dimension::Platform => "PLATFORM",
Dimension::PurchaseType => "PURCHASE_TYPE",
Dimension::RecordType => "RECORD_TYPE",
Dimension::Region => "REGION",
Dimension::ReservationId => "RESERVATION_ID",
Dimension::ReservationModified => "RESERVATION_MODIFIED",
Dimension::ResourceId => "RESOURCE_ID",
Dimension::RightsizingType => "RIGHTSIZING_TYPE",
Dimension::SavingsPlansType => "SAVINGS_PLANS_TYPE",
Dimension::SavingsPlanArn => "SAVINGS_PLAN_ARN",
Dimension::Scope => "SCOPE",
Dimension::Service => "SERVICE",
Dimension::ServiceCode => "SERVICE_CODE",
Dimension::SubscriptionId => "SUBSCRIPTION_ID",
Dimension::TagKey => "TAG_KEY",
Dimension::Tenancy => "TENANCY",
Dimension::UsageType => "USAGE_TYPE",
Dimension::UsageTypeGroup => "USAGE_TYPE_GROUP",
Dimension::Unknown(value) => value.as_str(),
}
}
pub const fn values() -> &'static [&'static str] {
&[
"AZ",
"BILLING_ENTITY",
"CACHE_ENGINE",
"COST_CATEGORY_NAME",
"DATABASE_ENGINE",
"DEPLOYMENT_OPTION",
"INSTANCE_TYPE",
"INSTANCE_TYPE_FAMILY",
"INVOICING_ENTITY",
"LEGAL_ENTITY_NAME",
"LINKED_ACCOUNT",
"LINKED_ACCOUNT_NAME",
"OPERATING_SYSTEM",
"OPERATION",
"PAYMENT_OPTION",
"PLATFORM",
"PURCHASE_TYPE",
"RECORD_TYPE",
"REGION",
"RESERVATION_ID",
"RESERVATION_MODIFIED",
"RESOURCE_ID",
"RIGHTSIZING_TYPE",
"SAVINGS_PLANS_TYPE",
"SAVINGS_PLAN_ARN",
"SCOPE",
"SERVICE",
"SERVICE_CODE",
"SUBSCRIPTION_ID",
"TAG_KEY",
"TENANCY",
"USAGE_TYPE",
"USAGE_TYPE_GROUP",
]
}
}
impl ::std::convert::AsRef<str> for Dimension {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl Dimension {
pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
match Self::from(value) {
#[allow(deprecated)]
Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
known => Ok(known),
}
}
}
impl ::std::fmt::Display for Dimension {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
match self {
Dimension::Az => write!(f, "AZ"),
Dimension::BillingEntity => write!(f, "BILLING_ENTITY"),
Dimension::CacheEngine => write!(f, "CACHE_ENGINE"),
Dimension::CostCategoryName => write!(f, "COST_CATEGORY_NAME"),
Dimension::DatabaseEngine => write!(f, "DATABASE_ENGINE"),
Dimension::DeploymentOption => write!(f, "DEPLOYMENT_OPTION"),
Dimension::InstanceType => write!(f, "INSTANCE_TYPE"),
Dimension::InstanceTypeFamily => write!(f, "INSTANCE_TYPE_FAMILY"),
Dimension::InvoicingEntity => write!(f, "INVOICING_ENTITY"),
Dimension::LegalEntityName => write!(f, "LEGAL_ENTITY_NAME"),
Dimension::LinkedAccount => write!(f, "LINKED_ACCOUNT"),
Dimension::LinkedAccountName => write!(f, "LINKED_ACCOUNT_NAME"),
Dimension::OperatingSystem => write!(f, "OPERATING_SYSTEM"),
Dimension::Operation => write!(f, "OPERATION"),
Dimension::PaymentOption => write!(f, "PAYMENT_OPTION"),
Dimension::Platform => write!(f, "PLATFORM"),
Dimension::PurchaseType => write!(f, "PURCHASE_TYPE"),
Dimension::RecordType => write!(f, "RECORD_TYPE"),
Dimension::Region => write!(f, "REGION"),
Dimension::ReservationId => write!(f, "RESERVATION_ID"),
Dimension::ReservationModified => write!(f, "RESERVATION_MODIFIED"),
Dimension::ResourceId => write!(f, "RESOURCE_ID"),
Dimension::RightsizingType => write!(f, "RIGHTSIZING_TYPE"),
Dimension::SavingsPlansType => write!(f, "SAVINGS_PLANS_TYPE"),
Dimension::SavingsPlanArn => write!(f, "SAVINGS_PLAN_ARN"),
Dimension::Scope => write!(f, "SCOPE"),
Dimension::Service => write!(f, "SERVICE"),
Dimension::ServiceCode => write!(f, "SERVICE_CODE"),
Dimension::SubscriptionId => write!(f, "SUBSCRIPTION_ID"),
Dimension::TagKey => write!(f, "TAG_KEY"),
Dimension::Tenancy => write!(f, "TENANCY"),
Dimension::UsageType => write!(f, "USAGE_TYPE"),
Dimension::UsageTypeGroup => write!(f, "USAGE_TYPE_GROUP"),
Dimension::Unknown(value) => write!(f, "{}", value),
}
}
}