Documentation
¶
Index ¶
- Constants
- type CostOptimizationRecommendation
- type CostOptimizationRecommendationMapper
- type CostOptimizationRecommendationsTable
- func (t *CostOptimizationRecommendationsTable) EnrichRow(row *CostOptimizationRecommendation, ...) (*CostOptimizationRecommendation, error)
- func (t *CostOptimizationRecommendationsTable) GetDescription() string
- func (t *CostOptimizationRecommendationsTable) GetSourceMetadata() ([]*table.SourceMetadata[*CostOptimizationRecommendation], error)
- func (t *CostOptimizationRecommendationsTable) Identifier() string
Constants ¶
View Source
const CostOptimizationRecommendationsTableIdentifier = "aws_cost_optimization_recommendation"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CostOptimizationRecommendation ¶
type CostOptimizationRecommendation struct {
schema.CommonFields
AccountID *string `json:"account_id,omitempty" parquet:"name=account_id"`
ActionType *string `json:"action_type,omitempty" parquet:"name=action_type"`
CurrencyCode *string `json:"currency_code,omitempty" parquet:"name=currency_code"`
// CurrentResourceDetails Contains metadata about the current resource configuration.
// The structure varies depending on the resource type.
// For example:
// - For EC2: {"InstanceType": "m5.large", "Region": "us-east-1", "Platform": "Linux/UNIX", "Tenancy": "Shared"}
// - For Lambda: {"FunctionName": "my-function", "MemorySize": 128, "Region": "us-west-2"}
// - For EBS: {"VolumeType": "gp2", "Size": 100, "Region": "us-east-1"}
// This field is defined as map[string]interface{} to accommodate these varying shapes.
CurrentResourceDetails *map[string]interface{} `json:"current_resource_details,omitempty" parquet:"name=current_resource_details"`
CurrentResourceSummary *string `json:"current_resource_summary,omitempty" parquet:"name=current_resource_summary"`
CurrentResourceType *string `json:"current_resource_type,omitempty" parquet:"name=current_resource_type"`
EstimatedMonthlyCostAfterDiscount *float64 `json:"estimated_monthly_cost_after_discount,omitempty" parquet:"name=estimated_monthly_cost_after_discount"`
EstimatedMonthlyCostBeforeDiscount *float64 `json:"estimated_monthly_cost_before_discount,omitempty" parquet:"name=estimated_monthly_cost_before_discount"`
EstimatedMonthlySavingsAfterDiscount *float64 `json:"estimated_monthly_savings_after_discount,omitempty" parquet:"name=estimated_monthly_savings_after_discount"`
EstimatedMonthlySavingsBeforeDiscount *float64 `json:"estimated_monthly_savings_before_discount,omitempty" parquet:"name=estimated_monthly_savings_before_discount"`
EstimatedSavingsPercentageAfterDiscount *float64 `json:"estimated_savings_percentage_after_discount,omitempty" parquet:"name=estimated_savings_percentage_after_discount"`
EstimatedSavingsPercentageBeforeDiscount *float64 `json:"estimated_savings_percentage_before_discount,omitempty" parquet:"name=estimated_savings_percentage_before_discount"`
ImplementationEffort *string `json:"implementation_effort,omitempty" parquet:"name=implementation_effort"`
LastRefreshTimestamp *time.Time `json:"last_refresh_timestamp,omitempty" parquet:"name=last_refresh_timestamp"`
RecommendationID *string `json:"recommendation_id,omitempty" parquet:"name=recommendation_id"`
RecommendationLookbackPeriodInDays *int `json:"recommendation_lookback_period_in_days,omitempty" parquet:"name=recommendation_lookback_period_in_days"`
RecommendationSource *string `json:"recommendation_source,omitempty" parquet:"name=recommendation_source"`
// RecommendedResourceDetails Contains metadata about the current resource configuration.
// The structure varies depending on the resource type. So we don't have a fixed structure.
RecommendedResourceDetails *map[string]interface{} `json:"recommended_resource_details,omitempty" parquet:"name=recommended_resource_details"`
RecommendedResourceSummary *string `json:"recommended_resource_summary,omitempty" parquet:"name=recommended_resource_summary"`
RecommendedResourceType *string `json:"recommended_resource_type,omitempty" parquet:"name=recommended_resource_type"`
Region *string `json:"region,omitempty" parquet:"name=region"`
ResourceARN *string `json:"resource_arn,omitempty" parquet:"name=resource_arn"`
RestartNeeded *bool `json:"restart_needed,omitempty" parquet:"name=restart_needed"`
RollbackPossible *bool `json:"rollback_possible,omitempty" parquet:"name=rollback_possible"`
Tags *map[string]string `json:"tags,omitempty" parquet:"name=tags"`
}
Based on AWS Cost Optimization Recommendations columns Reference: https://docs.aws.amazon.com/cur/latest/userguide/table-dictionary-cor-columns.html
func NewCostOptimizationRecommendation ¶ added in v0.9.1
func NewCostOptimizationRecommendation() *CostOptimizationRecommendation
func (*CostOptimizationRecommendation) GetColumnDescriptions ¶
func (c *CostOptimizationRecommendation) GetColumnDescriptions() map[string]string
type CostOptimizationRecommendationMapper ¶ added in v0.9.1
type CostOptimizationRecommendationMapper struct {
// contains filtered or unexported fields
}
func NewCostOptimizationRecommendationMapper ¶ added in v0.9.1
func NewCostOptimizationRecommendationMapper() *CostOptimizationRecommendationMapper
func (*CostOptimizationRecommendationMapper) Identifier ¶ added in v0.9.1
func (m *CostOptimizationRecommendationMapper) Identifier() string
func (*CostOptimizationRecommendationMapper) Map ¶ added in v0.9.1
func (m *CostOptimizationRecommendationMapper) Map(_ context.Context, a any, opts ...mappers.MapOption[*CostOptimizationRecommendation]) (*CostOptimizationRecommendation, error)
func (*CostOptimizationRecommendationMapper) OnHeader ¶ added in v0.9.1
func (m *CostOptimizationRecommendationMapper) OnHeader(header []string)
OnHeader implements mappers.HeaderHandler so that when the collector is notified of a header, we set headers
type CostOptimizationRecommendationsTable ¶
type CostOptimizationRecommendationsTable struct{}
CostOptimizationRecommendationsTable - table for CostOptimizationRecommendations
func (*CostOptimizationRecommendationsTable) EnrichRow ¶
func (t *CostOptimizationRecommendationsTable) EnrichRow(row *CostOptimizationRecommendation, sourceEnrichmentFields schema.SourceEnrichment) (*CostOptimizationRecommendation, error)
EnrichRow implements table.Table
func (*CostOptimizationRecommendationsTable) GetDescription ¶
func (t *CostOptimizationRecommendationsTable) GetDescription() string
func (*CostOptimizationRecommendationsTable) GetSourceMetadata ¶
func (t *CostOptimizationRecommendationsTable) GetSourceMetadata() ([]*table.SourceMetadata[*CostOptimizationRecommendation], error)
GetSourceMetadata implements table.Table
func (*CostOptimizationRecommendationsTable) Identifier ¶
func (t *CostOptimizationRecommendationsTable) Identifier() string
Identifier implements table.Table
Click to show internal directories.
Click to hide internal directories.