cost_and_usage_report

package
v0.14.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 28, 2025 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const CostUsageReportTableIdentifier = "aws_cost_and_usage_report"

Variables

This section is empty.

Functions

This section is empty.

Types

type CostAndUsageReportMapper added in v0.9.1

type CostAndUsageReportMapper struct {
	// contains filtered or unexported fields
}

func NewCostAndUsageReportMapper added in v0.9.1

func NewCostAndUsageReportMapper() *CostAndUsageReportMapper

func (*CostAndUsageReportMapper) Identifier added in v0.9.1

func (c *CostAndUsageReportMapper) Identifier() string

func (*CostAndUsageReportMapper) Map added in v0.9.1

func (*CostAndUsageReportMapper) OnHeader added in v0.9.1

func (c *CostAndUsageReportMapper) OnHeader(header []string)

OnHeader implementOnHeader so that when the collector is notified of a header row, we get notified

type CostUsageReport

type CostUsageReport struct {
	schema.CommonFields

	BillBillingEntity                                        *string                 `json:"bill_billing_entity,omitempty" parquet:"name=bill_billing_entity"`
	BillBillingPeriodEndDate                                 *time.Time              `json:"bill_billing_period_end_date,omitempty" parquet:"name=bill_billing_period_end_date"`
	BillBillingPeriodStartDate                               *time.Time              `json:"bill_billing_period_start_date,omitempty" parquet:"name=bill_billing_period_start_date"`
	BillBillType                                             *string                 `json:"bill_bill_type,omitempty" parquet:"name=bill_bill_type"`
	BillInvoiceId                                            *string                 `json:"bill_invoice_id,omitempty" parquet:"name=bill_invoice_id"`
	BillInvoicingEntity                                      *string                 `json:"bill_invoicing_entity,omitempty" parquet:"name=bill_invoicing_entity"`
	BillPayerAccountId                                       *string                 `json:"bill_payer_account_id,omitempty" parquet:"name=bill_payer_account_id"`
	BillPayerAccountName                                     *string                 `json:"bill_payer_account_name,omitempty" parquet:"name=bill_payer_account_name"`
	CostCategory                                             *map[string]interface{} `json:"cost_category,omitempty" parquet:"name=cost_category"`
	Discount                                                 *map[string]interface{} `json:"discount,omitempty" parquet:"name=discount"`
	DiscountBundledDiscount                                  *float64                `json:"discount_bundled_discount,omitempty" parquet:"name=discount_bundled_discount"`
	DiscountTotalDiscount                                    *float64                `json:"discount_total_discount,omitempty" parquet:"name=discount_total_discount"`
	IdentityLineItemId                                       *string                 `json:"identity_line_item_id,omitempty" parquet:"name=identity_line_item_id"`
	IdentityTimeInterval                                     *string                 `json:"identity_time_interval,omitempty" parquet:"name=identity_time_interval"`
	LineItemAvailabilityZone                                 *string                 `json:"line_item_availability_zone,omitempty" parquet:"name=line_item_availability_zone"`
	LineItemBlendedCost                                      *float64                `json:"line_item_blended_cost,omitempty" parquet:"name=line_item_blended_cost"`
	LineItemBlendedRate                                      *string                 `json:"line_item_blended_rate,omitempty" parquet:"name=line_item_blended_rate"`
	LineItemCurrencyCode                                     *string                 `json:"line_item_currency_code,omitempty" parquet:"name=line_item_currency_code"`
	LineItemLegalEntity                                      *string                 `json:"line_item_legal_entity,omitempty" parquet:"name=line_item_legal_entity"`
	LineItemLineItemDescription                              *string                 `json:"line_item_line_item_description,omitempty" parquet:"name=line_item_line_item_description"`
	LineItemLineItemType                                     *string                 `json:"line_item_line_item_type,omitempty" parquet:"name=line_item_line_item_type"`
	LineItemNetUnblendedCost                                 *float64                `json:"line_item_net_unblended_cost,omitempty" parquet:"name=line_item_net_unblended_cost"`
	LineItemNetUnblendedRate                                 *string                 `json:"line_item_net_unblended_rate,omitempty" parquet:"name=line_item_net_unblended_rate"`
	LineItemNormalizationFactor                              *float64                `json:"line_item_normalization_factor,omitempty" parquet:"name=line_item_normalization_factor"`
	LineItemNormalizedUsageAmount                            *float64                `json:"line_item_normalized_usage_amount,omitempty" parquet:"name=line_item_normalized_usage_amount"`
	LineItemOperation                                        *string                 `json:"line_item_operation,omitempty" parquet:"name=line_item_operation"`
	LineItemProductCode                                      *string                 `json:"line_item_product_code,omitempty" parquet:"name=line_item_product_code"`
	LineItemResourceId                                       *string                 `json:"line_item_resource_id,omitempty" parquet:"name=line_item_resource_id"`
	LineItemTaxType                                          *string                 `json:"line_item_tax_type,omitempty" parquet:"name=line_item_tax_type"`
	LineItemUnblendedCost                                    *float64                `json:"line_item_unblended_cost,omitempty" parquet:"name=line_item_unblended_cost"`
	LineItemUnblendedRate                                    *string                 `json:"line_item_unblended_rate,omitempty" parquet:"name=line_item_unblended_rate"`
	LineItemUsageAccountId                                   *string                 `json:"line_item_usage_account_id,omitempty" parquet:"name=line_item_usage_account_id"`
	LineItemUsageAccountName                                 *string                 `json:"line_item_usage_account_name,omitempty" parquet:"name=line_item_usage_account_name"`
	LineItemUsageAmount                                      *float64                `json:"line_item_usage_amount,omitempty" parquet:"name=line_item_usage_amount"`
	LineItemUsageEndDate                                     *time.Time              `json:"line_item_usage_end_date,omitempty" parquet:"name=line_item_usage_end_date"`
	LineItemUsageStartDate                                   *time.Time              `json:"line_item_usage_start_date,omitempty" parquet:"name=line_item_usage_start_date"`
	LineItemUsageType                                        *string                 `json:"line_item_usage_type,omitempty" parquet:"name=line_item_usage_type"`
	PricingCurrency                                          *string                 `json:"pricing_currency,omitempty" parquet:"name=pricing_currency"`
	PricingLeaseContractLength                               *string                 `json:"pricing_lease_contract_length,omitempty" parquet:"name=pricing_lease_contract_length"`
	PricingOfferingClass                                     *string                 `json:"pricing_offering_class,omitempty" parquet:"name=pricing_offering_class"`
	PricingPublicOnDemandCost                                *float64                `json:"pricing_public_on_demand_cost,omitempty" parquet:"name=pricing_public_on_demand_cost"`
	PricingPublicOnDemandRate                                *string                 `json:"pricing_public_on_demand_rate,omitempty" parquet:"name=pricing_public_on_demand_rate"`
	PricingPurchaseOption                                    *string                 `json:"pricing_purchase_option,omitempty" parquet:"name=pricing_purchase_option"`
	PricingRateCode                                          *string                 `json:"pricing_rate_code,omitempty" parquet:"name=pricing_rate_code"`
	PricingRateId                                            *string                 `json:"pricing_rate_id,omitempty" parquet:"name=pricing_rate_id"`
	PricingTerm                                              *string                 `json:"pricing_term,omitempty" parquet:"name=pricing_term"`
	PricingUnit                                              *string                 `json:"pricing_unit,omitempty" parquet:"name=pricing_unit"`
	Product                                                  *map[string]interface{} `json:"product,omitempty" parquet:"name=product"`
	ProductComment                                           *string                 `json:"product_comment,omitempty" parquet:"name=product_comment"`
	ProductFeeCode                                           *string                 `json:"product_fee_code,omitempty" parquet:"name=product_fee_code"`
	ProductFeeDescription                                    *string                 `json:"product_fee_description,omitempty" parquet:"name=product_fee_description"`
	ProductFromLocation                                      *string                 `json:"product_from_location,omitempty" parquet:"name=product_from_location"`
	ProductFromLocationType                                  *string                 `json:"product_from_location_type,omitempty" parquet:"name=product_from_location_type"`
	ProductFromRegionCode                                    *string                 `json:"product_from_region_code,omitempty" parquet:"name=product_from_region_code"`
	ProductInstanceSku                                       *string                 `json:"product_instancesku,omitempty" parquet:"name=product_instance_sku"`
	ProductInstanceFamily                                    *string                 `json:"product_instance_family,omitempty" parquet:"name=product_instance_family"`
	ProductInstanceType                                      *string                 `json:"product_instance_type,omitempty" parquet:"name=product_instance_type"`
	ProductLocation                                          *string                 `json:"product_location,omitempty" parquet:"name=product_location"`
	ProductLocationType                                      *string                 `json:"product_location_type,omitempty" parquet:"name=product_location_type"`
	ProductOperation                                         *string                 `json:"product_operation,omitempty" parquet:"name=product_operation"`
	ProductPricingUnit                                       *string                 `json:"product_pricing_unit,omitempty" parquet:"name=product_pricing_unit"`
	ProductProductFamily                                     *string                 `json:"product_product_family,omitempty" parquet:"name=product_product_family"`
	ProductRegionCode                                        *string                 `json:"product_region_code,omitempty" parquet:"name=product_region_code"`
	ProductSku                                               *string                 `json:"product_sku,omitempty" parquet:"name=product_sku"`
	ProductServiceCode                                       *string                 `json:"product_servicecode,omitempty" parquet:"name=product_service_code"`
	ProductToLocationType                                    *string                 `json:"product_to_location_type,omitempty" parquet:"name=product_to_location_type"`
	ProductToLocation                                        *string                 `json:"product_to_location,omitempty" parquet:"name=product_to_location"`
	ProductToRegionCode                                      *string                 `json:"product_to_region_code,omitempty" parquet:"name=product_to_region_code"`
	ProductUsageType                                         *string                 `json:"product_usagetype,omitempty" parquet:"name=product_usage_type"`
	Reservation                                              *map[string]interface{} `json:"reservation,omitempty" parquet:"name=reservation"`
	ReservationAmortizedUpfrontCostForUsage                  *float64                `json:"reservation_amortized_upfront_cost_for_usage,omitempty" parquet:"name=reservation_amortized_upfront_cost_for_usage"`
	ReservationAmortizedUpfrontFeeForBillingPeriod           *float64                `` /* 137-byte string literal not displayed */
	ReservationArn                                           *string                 `json:"reservation_reservation_arn,omitempty" parquet:"name=reservation_reservation_arn"`
	ReservationAvailabilityZone                              *string                 `json:"reservation_availability_zone,omitempty" parquet:"name=reservation_availability_zone"`
	ReservationEffectiveCost                                 *float64                `json:"reservation_effective_cost,omitempty" parquet:"name=reservation_effective_cost"`
	ReservationEndTime                                       *string                 `json:"reservation_end_time,omitempty" parquet:"name=reservation_end_time"`
	ReservationModificationStatus                            *string                 `json:"reservation_modification_status,omitempty" parquet:"name=reservation_modification_status"`
	ReservationNetAmortizedUpfrontCostForUsage               *float64                `` /* 129-byte string literal not displayed */
	ReservationNetAmortizedUpfrontFeeForBillingPeriod        *float64                `` /* 145-byte string literal not displayed */
	ReservationNetEffectiveCost                              *float64                `json:"reservation_net_effective_cost,omitempty" parquet:"name=reservation_net_effective_cost"`
	ReservationNetRecurringFeeForUsage                       *float64                `json:"reservation_net_recurring_fee_for_usage,omitempty" parquet:"name=reservation_net_recurring_fee_for_usage"`
	ReservationNetUnusedAmortizedUpfrontFeeForBillingPeriod  *float64                `` /* 159-byte string literal not displayed */
	ReservationNetUnusedRecurringFee                         *float64                `json:"reservation_net_unused_recurring_fee,omitempty" parquet:"name=reservation_net_unused_recurring_fee"`
	ReservationNetUpfrontValue                               *float64                `json:"reservation_net_upfront_value,omitempty" parquet:"name=reservation_net_upfront_value"`
	ReservationNormalizedUnitsPerReservation                 *string                 `json:"reservation_normalized_units_per_reservation,omitempty" parquet:"name=reservation_normalized_units_per_reservation"`
	ReservationNumberOfReservations                          *string                 `json:"reservation_number_of_reservations,omitempty" parquet:"name=reservation_number_of_reservations"`
	ReservationRecurringFeeForUsage                          *float64                `json:"reservation_recurring_fee_for_usage,omitempty" parquet:"name=reservation_recurring_fee_for_usage"`
	ReservationStartTime                                     *time.Time              `json:"reservation_start_time,omitempty" parquet:"name=reservation_start_time"`
	ReservationSubscriptionId                                *string                 `json:"reservation_subscription_id,omitempty" parquet:"name=reservation_subscription_id"`
	ReservationTotalReservedNormalizedUnits                  *string                 `json:"reservation_total_reserved_normalized_units,omitempty" parquet:"name=reservation_total_reserved_normalized_units"`
	ReservationTotalReservedUnits                            *string                 `json:"reservation_total_reserved_units,omitempty" parquet:"name=reservation_total_reserved_units"`
	ReservationUnitsPerReservation                           *string                 `json:"reservation_units_per_reservation,omitempty" parquet:"name=reservation_units_per_reservation"`
	ReservationUnusedAmortizedUpfrontFeeForBillingPeriod     *float64                `` /* 151-byte string literal not displayed */
	ReservationUnusedNormalizedUnitQuantity                  *float64                `json:"reservation_unused_normalized_unit_quantity,omitempty" parquet:"name=reservation_unused_normalized_unit_quantity"`
	ReservationUnusedQuantity                                *float64                `json:"reservation_unused_quantity,omitempty" parquet:"name=reservation_unused_quantity"`
	ReservationUnusedRecurringFee                            *float64                `json:"reservation_unused_recurring_fee,omitempty" parquet:"name=reservation_unused_recurring_fee"`
	ReservationUpfrontValue                                  *int64                  `json:"reservation_upfront_value,omitempty" parquet:"name=reservation_upfront_value"`
	ResourceTags                                             *map[string]interface{} `json:"resource_tags,omitempty" parquet:"name=resource_tags"`
	SavingsPlanAmortizedUpfrontCommitmentForBillingPeriod    *float64                `` /* 153-byte string literal not displayed */
	SavingsPlanEndTime                                       *time.Time              `json:"savings_plan_end_time,omitempty" parquet:"name=savings_plan_end_time"`
	SavingsPlanInstanceTypeFamily                            *string                 `json:"savings_plan_instance_type_family,omitempty" parquet:"name=savings_plan_instance_type_family"`
	SavingsPlanNetAmortizedUpfrontCommitmentForBillingPeriod *float64                `` /* 161-byte string literal not displayed */
	SavingsPlanNetRecurringCommitmentForBillingPeriod        *float64                `` /* 145-byte string literal not displayed */
	SavingsPlanNetSavingsPlanEffectiveCost                   *float64                `json:"savings_plan_net_savings_plan_effective_cost,omitempty" parquet:"name=savings_plan_net_savings_plan_effective_cost"`
	SavingsPlanOfferingType                                  *string                 `json:"savings_plan_offering_type,omitempty" parquet:"name=savings_plan_offering_type"`
	SavingsPlanPaymentOption                                 *string                 `json:"savings_plan_payment_option,omitempty" parquet:"name=savings_plan_payment_option"`
	SavingsPlanPurchaseTerm                                  *string                 `json:"savings_plan_purchase_term,omitempty" parquet:"name=savings_plan_purchase_term"`
	SavingsPlanRecurringCommitmentForBillingPeriod           *float64                `` /* 137-byte string literal not displayed */
	SavingsPlanRegion                                        *string                 `json:"savings_plan_region,omitempty" parquet:"name=savings_plan_region"`
	SavingsPlanSavingsPlanARN                                *string                 `json:"savings_plan_savings_plan_arn,omitempty" parquet:"name=savings_plan_savings_plan_arn"`
	SavingsPlanSavingsPlanEffectiveCost                      *float64                `json:"savings_plan_savings_plan_effective_cost,omitempty" parquet:"name=savings_plan_savings_plan_effective_cost"`
	SavingsPlanSavingsPlanRate                               *string                 `json:"savings_plan_savings_plan_rate,omitempty" parquet:"name=savings_plan_savings_plan_rate"`
	SavingsPlanStartTime                                     *time.Time              `json:"savings_plan_start_time,omitempty" parquet:"name=savings_plan_start_time"`
	SavingsPlanTotalCommitmentToDate                         *string                 `json:"savings_plan_total_commitment_to_date,omitempty" parquet:"name=savings_plan_total_commitment_to_date"`
	SavingsPlanUsedCommitment                                *string                 `json:"savings_plan_used_commitment,omitempty" parquet:"name=savings_plan_used_commitment"`
	SplitLineItemActualUsage                                 *float64                `json:"split_line_item_actual_usage,omitempty" parquet:"name=split_line_item_actual_usage"`
	SplitLineItemNetSplitCost                                *float64                `json:"split_line_item_net_split_cost,omitempty" parquet:"name=split_line_item_net_split_cost"`
	SplitLineItemNetUnusedCost                               *float64                `json:"split_line_item_net_unused_cost,omitempty" parquet:"name=split_line_item_net_unused_cost"`
	SplitLineItemParentResourceId                            *string                 `json:"split_line_item_parent_resource_id,omitempty" parquet:"name=split_line_item_parent_resource_id"`
	SplitLineItemPublicOnDemandSplitCost                     *float64                `json:"split_line_item_public_on_demand_split_cost,omitempty" parquet:"name=split_line_item_public_on_demand_split_cost"`
	SplitLineItemPublicOnDemandUnusedCost                    *float64                `json:"split_line_item_public_on_demand_unused_cost,omitempty" parquet:"name=split_line_item_public_on_demand_unused_cost"`
	SplitLineItemReservedUsage                               *float64                `json:"split_line_item_reserved_usage,omitempty" parquet:"name=split_line_item_reserved_usage"`
	SplitLineItemSplitCost                                   *float64                `json:"split_line_item_split_cost,omitempty" parquet:"name=split_line_item_split_cost"`
	SplitLineItemSplitUsage                                  *float64                `json:"split_line_item_split_usage,omitempty" parquet:"name=split_line_item_split_usage"`
	SplitLineItemSplitUsageRatio                             *string                 `json:"split_line_item_split_usage_ratio,omitempty" parquet:"name=split_line_item_split_usage_ratio"`
	SplitLineItemUnusedCost                                  *float64                `json:"split_line_item_unused_cost,omitempty" parquet:"name=split_line_item_unused_cost"`
}

CUR 2.0 Schema: https://docs.aws.amazon.com/cur/latest/userguide/table-dictionary-cur2.html

func NewCostUsageReport added in v0.9.1

func NewCostUsageReport() *CostUsageReport

func (*CostUsageReport) GetColumnDescriptions

func (c *CostUsageReport) GetColumnDescriptions() map[string]string

type CostUsageReportTable

type CostUsageReportTable struct{}

CostUsageReportTable - table for CostUsageReports

func (*CostUsageReportTable) EnrichRow

func (t *CostUsageReportTable) EnrichRow(row *CostUsageReport, sourceEnrichmentFields schema.SourceEnrichment) (*CostUsageReport, error)

EnrichRow implements table.Table

func (*CostUsageReportTable) GetDescription

func (t *CostUsageReportTable) GetDescription() string

func (*CostUsageReportTable) GetSourceMetadata

func (t *CostUsageReportTable) GetSourceMetadata() ([]*table.SourceMetadata[*CostUsageReport], error)

func (*CostUsageReportTable) Identifier

func (t *CostUsageReportTable) Identifier() string

Identifier implements table.Table

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL