pub struct FocusRecord {Show 73 fields
pub billed_cost: Decimal,
pub effective_cost: Decimal,
pub list_cost: Decimal,
pub contracted_cost: Decimal,
pub billing_account_id: String,
pub billing_account_name: String,
pub billing_account_type: Option<String>,
pub billing_currency: String,
pub billing_period_start: DateTime<Utc>,
pub billing_period_end: DateTime<Utc>,
pub charge_period_start: DateTime<Utc>,
pub charge_period_end: DateTime<Utc>,
pub charge_category: String,
pub charge_class: Option<String>,
pub charge_description: String,
pub charge_frequency: String,
pub service_name: String,
pub service_category: String,
pub service_subcategory: Option<String>,
pub service_provider_name: String,
pub host_provider_name: String,
pub invoice_issuer_name: String,
pub provider_name: String,
pub publisher_name: String,
pub invoice_id: Option<String>,
pub sku_id: Option<String>,
pub sku_price_id: Option<String>,
pub sku_meter: Option<String>,
pub sku_price_details: Option<String>,
pub pricing_category: Option<String>,
pub pricing_currency: String,
pub pricing_quantity: Option<Decimal>,
pub pricing_unit: Option<String>,
pub list_unit_price: Option<Decimal>,
pub contracted_unit_price: Option<Decimal>,
pub pricing_currency_list_unit_price: Option<Decimal>,
pub pricing_currency_contracted_unit_price: Option<Decimal>,
pub pricing_currency_effective_cost: Decimal,
pub consumed_quantity: Option<Decimal>,
pub consumed_unit: String,
pub commitment_discount_category: Option<String>,
pub commitment_discount_id: Option<String>,
pub commitment_discount_name: Option<String>,
pub commitment_discount_quantity: Option<Decimal>,
pub commitment_discount_status: Option<String>,
pub commitment_discount_type: Option<String>,
pub commitment_discount_unit: Option<String>,
pub capacity_reservation_id: Option<String>,
pub capacity_reservation_status: Option<String>,
pub region_id: Option<String>,
pub region_name: Option<String>,
pub availability_zone: Option<String>,
pub resource_id: Option<String>,
pub resource_name: Option<String>,
pub resource_type: Option<String>,
pub sub_account_id: Option<String>,
pub sub_account_name: Option<String>,
pub sub_account_type: Option<String>,
pub tags: Option<String>,
pub contract_applied: Option<String>,
pub allocated_method_id: Option<String>,
pub allocated_method_details: Option<String>,
pub allocated_resource_id: Option<String>,
pub allocated_resource_name: Option<String>,
pub allocated_tags: Option<String>,
pub x_model: String,
pub x_token_type: String,
pub x_access_path: String,
pub x_estimated: bool,
pub x_tool: String,
pub x_project: Option<String>,
pub x_pricing_status: String,
pub x_consumed_tokens: Decimal,
}Expand description
A FOCUS 1.3 Cost and Usage charge row.
Field order is the serialized column order. The full FOCUS 1.3 column set
comes first (PascalCase via serde), Costroid’s custom x_ columns last.
Numeric columns use [serialize_decimal] / [serialize_decimal_opt].
Fields§
§billed_cost: Decimal§effective_cost: Decimal§list_cost: Decimal§contracted_cost: Decimal§billing_account_id: String§billing_account_name: String§billing_account_type: Option<String>§billing_currency: String§billing_period_start: DateTime<Utc>§billing_period_end: DateTime<Utc>§charge_period_start: DateTime<Utc>§charge_period_end: DateTime<Utc>§charge_category: String§charge_class: Option<String>§charge_description: String§charge_frequency: String§service_name: String§service_category: String§service_subcategory: Option<String>§service_provider_name: String§host_provider_name: String§invoice_issuer_name: String§provider_name: String§publisher_name: String§invoice_id: Option<String>§sku_id: Option<String>§sku_price_id: Option<String>§sku_meter: Option<String>§sku_price_details: Option<String>§pricing_category: Option<String>§pricing_currency: String§pricing_quantity: Option<Decimal>§pricing_unit: Option<String>§list_unit_price: Option<Decimal>§contracted_unit_price: Option<Decimal>§pricing_currency_list_unit_price: Option<Decimal>§pricing_currency_contracted_unit_price: Option<Decimal>§pricing_currency_effective_cost: Decimal§consumed_quantity: Option<Decimal>§consumed_unit: String§commitment_discount_category: Option<String>§commitment_discount_id: Option<String>§commitment_discount_name: Option<String>§commitment_discount_quantity: Option<Decimal>§commitment_discount_status: Option<String>§commitment_discount_type: Option<String>§commitment_discount_unit: Option<String>§capacity_reservation_id: Option<String>§capacity_reservation_status: Option<String>§region_id: Option<String>§region_name: Option<String>§availability_zone: Option<String>§resource_id: Option<String>§resource_name: Option<String>§resource_type: Option<String>§sub_account_id: Option<String>§sub_account_name: Option<String>§sub_account_type: Option<String>§contract_applied: Option<String>§allocated_method_id: Option<String>§allocated_method_details: Option<String>§allocated_resource_id: Option<String>§allocated_resource_name: Option<String>§x_model: String§x_token_type: String§x_access_path: String§x_estimated: bool§x_tool: String§x_project: Option<String>§x_pricing_status: String§x_consumed_tokens: DecimalRaw token count for this meter row, always populated (even on unpriced
rows where ConsumedQuantity must be null). The aggregation engine reads
this for token totals so nulling ConsumedQuantity never drops usage.
Implementations§
Source§impl FocusRecord
impl FocusRecord
pub fn unpriced_usage(input: UnpricedUsage) -> Result<Self, FocusError>
Trait Implementations§
Source§impl Clone for FocusRecord
impl Clone for FocusRecord
Source§fn clone(&self) -> FocusRecord
fn clone(&self) -> FocusRecord
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for FocusRecord
impl Debug for FocusRecord
Source§impl<'de> Deserialize<'de> for FocusRecord
impl<'de> Deserialize<'de> for FocusRecord
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for FocusRecord
impl PartialEq for FocusRecord
Source§fn eq(&self, other: &FocusRecord) -> bool
fn eq(&self, other: &FocusRecord) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for FocusRecord
impl Serialize for FocusRecord
impl StructuralPartialEq for FocusRecord
Auto Trait Implementations§
impl Freeze for FocusRecord
impl RefUnwindSafe for FocusRecord
impl Send for FocusRecord
impl Sync for FocusRecord
impl Unpin for FocusRecord
impl UnsafeUnpin for FocusRecord
impl UnwindSafe for FocusRecord
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more