package models

type AWSBilling struct {
	IdentityLineItemId                  string  `json:"identity/LineItemId"`
	IdentityTimeInterval                string  `json:"identity/TimeInterval"`
	BillInvoiceId                       string  `json:"bill/InvoiceId"`
	BillInvoicingEntity                 string  `json:"bill/InvoicingEntity"`
	BillBillingEntity                   string  `json:"bill/BillingEntity"`
	BillBillType                        string  `json:"bill/BillType"`
	BillPayerAccountId                  string  `json:"bill/PayerAccountId"`
	BillBillingPeriodStartDate          string  `json:"bill/BillingPeriodStartDate"`
	BillBillingPeriodEndDate            string  `json:"bill/BillingPeriodEndDate"`
	LineItemUsageAccountId              string  `json:"lineItem/UsageAccountId"`
	LineItemLineItemType                string  `json:"lineItem/LineItemType"`
	LineItemUsageStartDate              string  `json:"lineItem/UsageStartDate"`
	LineItemUsageEndDate                string  `json:"lineItem/UsageEndDate"`
	LineItemProductCode                 string  `json:"lineItem/ProductCode"`
	LineItemUsageType                   string  `json:"lineItem/UsageType"`
	LineItemOperation                   string  `json:"lineItem/Operation"`
	LineItemAvailabilityZone            string  `json:"lineItem/AvailabilityZone"`
	LineItemResourceId                  string  `json:"lineItem/ResourceId"`
	LineItemUsageAmount                 float64 `json:"lineItem/UsageAmount"`
	LineItemNormalizationFactor         string  `json:"lineItem/NormalizationFactor"`
	LineItemNormalizedUsageAmount       string  `json:"lineItem/NormalizedUsageAmount"`
	LineItemCurrencyCode                string  `json:"lineItem/CurrencyCode"`
	LineItemUnblendedRate               float64 `json:"lineItem/UnblendedRate"`
	LineItemUnblendedCost               float64 `json:"lineItem/UnblendedCost"`
	LineItemBlendedRate                 float64 `json:"lineItem/BlendedRate"`
	LineItemBlendedCost                 float64 `json:"lineItem/BlendedCost"`
	LineItemLineItemDescription         string  `json:"lineItem/LineItemDescription"`
	LineItemTaxType                     string  `json:"lineItem/TaxType"`
	ProductProductName                  string  `json:"product/ProductName"`
	ProductRegion                       string  `json:"product/region"`
	ProductRegionCode                   string  `json:"product/regionCode"`
	ProductServicecode                  string  `json:"product/servicecode"`
	ProductServicename                  string  `json:"product/servicename"`
	ProductSku                          string  `json:"product/sku"`
	ProductType                         string  `json:"product/type"`
	ProductTypeDescription              string  `json:"product/typeDescription"`
	PricingUnit                         string  `json:"pricing/unit"`
	ResourceTagsApplication             string  `json:"resourceTags/user:Application"`
	ResourceTagsDepartment              string  `json:"resourceTags/user:Department"`
	ResourceTagsEnvironment             string  `json:"resourceTags/user:Environment"`
	ResourceTagsName                    string  `json:"resourceTags/user:Name"`
	ResourceTagsOwner                   string  `json:"resourceTags/user:Owner"`
	ResourceTagsProject                 string  `json:"resourceTags/user:project"`
	ResourceTagsCluster                 string  `json:"resourceTags/user:cluster"`
	ResourceTagsComponent               string  `json:"resourceTags/user:component"`
	ResourceTagsSharedPool              string  `json:"resourceTags/user:shared_pool"`
	ResourceTagsEnv                     string  `json:"resourceTags/user:env"`
	ResourceTagsKubernetesIoServiceName string  `json:"resourceTags/user:kubernetes.io/service-name"`
	ResourceTagsServicetype             string  `json:"resourceTags/user:servicetype"`
	ResourceTagsTenant                  string  `json:"resourceTags/user:tenant"`
	ResourceTagsUsedby                  string  `json:"resourceTags/user:usedby"`

	MeteringServicePlan           string `json:"-"`
	MeteringProviderAcct          string `json:"-"`
	MeteringPremiumResMatchedOnly bool   `json:"-"`
}
type AWSBillingParquet struct {
	IdentityLineItemId                  string  `parquet:"identity_line_item_id,snappy,plain"`
	IdentityTimeInterval                string  `parquet:"identity_time_interval,snappy,plain"`
	BillInvoiceId                       string  `parquet:"bill_invoice_id,snappy,plain"`
	BillInvoicingEntity                 string  `parquet:"bill_invoicing_entity,snappy,plain"`
	BillBillingEntity                   string  `parquet:"bill_billing_entity,snappy,plain"`
	BillBillType                        string  `parquet:"bill_bill_type,snappy,plain"`
	BillPayerAccountId                  string  `parquet:"bill_payer_account_id,snappy,plain"`
	LineItemUsageAccountId              string  `parquet:"line_item_usage_account_id,snappy,plain"`
	LineItemLineItemType                string  `parquet:"line_item_line_item_type,snappy,plain"`
	LineItemUsageStartDate              int64   `parquet:"line_item_usage_start_date,snappy,timestamp"`
	LineItemUsageEndDate                int64   `parquet:"line_item_usage_end_date,snappy,timestamp"`
	LineItemProductCode                 string  `parquet:"line_item_product_code,snappy,plain"`
	LineItemUsageType                   string  `parquet:"line_item_usage_type,snappy,plain"`
	LineItemOperation                   string  `parquet:"line_item_operation,snappy,plain"`
	LineItemAvailabilityZone            string  `parquet:"line_item_availability_zone,snappy,plain"`
	LineItemResourceId                  string  `parquet:"line_item_resource_id,snappy,plain"`
	LineItemUsageAmount                 float64 `parquet:"line_item_usage_amount,snappy"`
	LineItemNormalizationFactor         float64 `parquet:"line_item_normalization_factor,snappy"`
	LineItemNormalizedUsageAmount       float64 `parquet:"line_item_normalized_usage_amount,snappy"`
	LineItemCurrencyCode                string  `parquet:"line_item_currency_code,snappy,plain"`
	LineItemUnblendedCost               float64 `parquet:"line_item_unblended_cost,snappy"`
	ProductRegion                       string  `parquet:"product_region,snappy,plain"`
	ProductRegionCode                   string  `parquet:"product_region_code,snappy,plain"`
	ProductServicename                  string  `parquet:"product_servicename,snappy,plain"`
	PricingUnit                         string  `parquet:"pricing_unit,snappy,plain"`
	ResourceTagsApplication             string  `parquet:"resource_tags_user_application,snappy,plain"`
	ResourceTagsDepartment              string  `parquet:"resource_tags_user_department,snappy,plain"`
	ResourceTagsEnvironment             string  `parquet:"resource_tags_user_environment,snappy,plain"`
	ResourceTagsName                    string  `parquet:"resource_tags_user_name,snappy,plain"`
	ResourceTagsOwner                   string  `parquet:"resource_tags_user_owner,snappy,plain"`
	ResourceTagsProject                 string  `parquet:"resource_tags_user_project,snappy,plain"`
	ResourceTagsCluster                 string  `parquet:"resource_tags_user_cluster,snappy,plain"`
	ResourceTagsComponent               string  `parquet:"resource_tags_user_component,snappy,plain"`
	ResourceTagsSharedPool              string  `parquet:"resource_tags_user_shared_pool,snappy,plain"`
	ResourceTagsEnv                     string  `parquet:"resource_tags_user_env, snappy,plain"`
	ResourceTagsKubernetesIoServiceName string  `parquet:"resource_tags_user_kubernetes_io_service_name,snappy,plain"`
	ResourceTagsServicetype             string  `parquet:"resource_tags_user_servicetype,snappy,plain"`
	ResourceTagsTenant                  string  `parquet:"resource_tags_user_tenant,snappy,plain"`
	ResourceTagsUsedby                  string  `parquet:"resource_tags_user_usedby, snappy,plain"`
}

type AWSParquetMeta struct {
	ReportKeys []string `json:"reportKeys"`
}
