aws

package
v0.10.35 Latest Latest
Warning

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

Go to latest
Published: Apr 2, 2024 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var AutoscalingGroupUsageSchema = append([]*schema.UsageItem{
	{Key: "instances", DefaultValue: 0, ValueType: schema.Int64},
}, InstanceUsageSchema...)
View Source
var CloudwatchLogGroupUsageSchema = []*schema.UsageItem{
	{Key: "monthly_data_ingested_gb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "storage_gb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "monthly_data_scanned_gb", ValueType: schema.Float64, DefaultValue: 0},
}
View Source
var DBInstanceUsageSchema = []*schema.UsageItem{
	{Key: "monthly_standard_io_requests", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "additional_backup_storage_gb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "monthly_additional_performance_insights_requests", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "reserved_instance_term", DefaultValue: "", ValueType: schema.String},
	{Key: "reserved_instance_payment_option", DefaultValue: "", ValueType: schema.String},
}
View Source
var ECRRepositoryUsageSchema = []*schema.UsageItem{
	{Key: "storage_gb", ValueType: schema.Float64, DefaultValue: 0},
}
View Source
var EKSNodeGroupUsageSchema = append([]*schema.UsageItem{
	{Key: "instances", DefaultValue: 0, ValueType: schema.Int64},
}, InstanceUsageSchema...)
View Source
var ELBUsageSchema = []*schema.UsageItem{
	{Key: "monthly_data_processed_gb", ValueType: schema.Float64, DefaultValue: 0},
}
View Source
var InstanceTypeToVCPU = map[string]int64{}/* 407 elements not displayed */

this map was generated with: aws ec2 describe-instance-types | jq -r '[.InstanceTypes[] | "\"" + .InstanceType + "\": " + (.VCpuInfo.DefaultVCpus | tostring) + ","] | sort | .[]'

View Source
var InstanceUsageSchema = []*schema.UsageItem{
	{Key: "operating_system", DefaultValue: "linux", ValueType: schema.String},
	{Key: "reserved_instance_type", DefaultValue: "", ValueType: schema.String},
	{Key: "reserved_instance_term", DefaultValue: "", ValueType: schema.String},
	{Key: "reserved_instance_payment_option", DefaultValue: "", ValueType: schema.String},
	{Key: "monthly_cpu_credit_hrs", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "vcpu_count", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_hrs", DefaultValue: 730, ValueType: schema.Float64},
}
View Source
var LBUsageSchema = []*schema.UsageItem{
	{Key: "rule_evaluations", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "new_connections", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "active_connections", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "processed_bytes_gb", ValueType: schema.Float64, DefaultValue: 0},
}
View Source
var LaunchConfigurationUsageSchema = InstanceUsageSchema
View Source
var LaunchTemplateUsageSchema = InstanceUsageSchema
View Source
var RegionCodeMapping = map[string]string{
	"ap-southeast-1": "APS1",
}

RegionCodeMapping helps to find region's abbreviated code for a more granular filtering when resources may have multiple products for the same region.

View Source
var RegionMapping = map[string]string{
	"us-gov-west-1":   "AWS GovCloud (US-West)",
	"us-gov-east-1":   "AWS GovCloud (US-East)",
	"us-east-1":       "US East (N. Virginia)",
	"us-east-2":       "US East (Ohio)",
	"us-west-1":       "US West (N. California)",
	"us-west-2":       "US West (Oregon)",
	"us-west-2-lax-1": "US West (Los Angeles)",
	"ca-central-1":    "Canada (Central)",
	"ca-west-1":       "Canada West (Calgary)",
	"cn-north-1":      "China (Beijing)",
	"cn-northwest-1":  "China (Ningxia)",
	"eu-central-1":    "EU (Frankfurt)",
	"eu-central-2":    "EU (Zurich)",
	"eu-west-1":       "EU (Ireland)",
	"eu-west-2":       "EU (London)",
	"eu-south-1":      "EU (Milan)",
	"eu-south-2":      "EU (Spain)",
	"eu-west-3":       "EU (Paris)",
	"eu-north-1":      "EU (Stockholm)",
	"il-central-1":    "Israel (Tel Aviv)",
	"ap-east-1":       "Asia Pacific (Hong Kong)",
	"ap-northeast-1":  "Asia Pacific (Tokyo)",
	"ap-northeast-2":  "Asia Pacific (Seoul)",
	"ap-northeast-3":  "Asia Pacific (Osaka)",
	"ap-southeast-1":  "Asia Pacific (Singapore)",
	"ap-southeast-2":  "Asia Pacific (Sydney)",
	"ap-southeast-3":  "Asia Pacific (Jakarta)",
	"ap-southeast-4":  "Asia Pacific (Melbourne)",
	"ap-south-1":      "Asia Pacific (Mumbai)",
	"ap-south-2":      "Asia Pacific (Hyderabad)",
	"me-central-1":    "Middle East (UAE)",
	"me-south-1":      "Middle East (Bahrain)",
	"sa-east-1":       "South America (Sao Paulo)",
	"af-south-1":      "Africa (Cape Town)",
}

RegionMapping is a helpful conversion map that changes aws region name to the name commonly used in pricing filters.

View Source
var RegionUsageSchema = []*schema.UsageItem{
	{Key: "us_gov_west_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "us_gov_east_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "us_east_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "us_east_2", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "us_west_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "us_west_2", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "us_west_2_lax_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "ca_central_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "cn_north_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "cn_northwest_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "eu_central_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "eu_west_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "eu_west_2", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "eu_south_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "eu_west_3", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "eu_north_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "ap_east_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "ap_northeast_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "ap_northeast_2", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "ap_northeast_3", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "ap_southeast_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "ap_southeast_2", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "ap_southeast_3", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "ap_south_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "me_south_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "sa_east_1", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "af_south_1", DefaultValue: 0, ValueType: schema.Float64},
}

RegionUsageSchema is the schema representation of the RegionsUsage type. This can be used as a schema.SubResourceUsage to define a structure that's commonly used with data transfer usage. e.g:

monthly_data_transfer_out_gb:
	us_gov_west_1: 122
	ca_central_1: 99

See DirectoryServiceDirectory for an example usage.

View Source
var S3GlacierDeepArchiveStorageClassUsageSchema = []*schema.UsageItem{
	{Key: "storage_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_tier_1_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_tier_2_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_lifecycle_transition_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_standard_data_retrieval_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_standard_data_retrieval_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_bulk_data_retrieval_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_bulk_data_retrieval_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "early_delete_gb", DefaultValue: 0.0, ValueType: schema.Float64},
}
View Source
var S3GlacierFlexibleRetrievalStorageClassUsageSchema = []*schema.UsageItem{
	{Key: "storage_gb", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_tier_1_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_tier_2_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_lifecycle_transition_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_standard_data_retrieval_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_standard_data_retrieval_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_standard_select_data_scanned_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_standard_select_data_returned_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_expedited_data_retrieval_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_expedited_data_retrieval_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_expedited_select_data_scanned_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_expedited_select_data_returned_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_bulk_select_data_scanned_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_bulk_select_data_returned_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "early_delete_gb", DefaultValue: 0.0, ValueType: schema.Float64},
}
View Source
var S3IntelligentTieringStorageClassUsageSchema = []*schema.UsageItem{
	{Key: "frequent_access_storage_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "infrequent_access_storage_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "archive_access_storage_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "deep_archive_access_storage_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monitored_objects", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_tier_1_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_tier_2_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_lifecycle_transition_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_select_data_scanned_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_select_data_returned_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "early_delete_gb", DefaultValue: 0.0, ValueType: schema.Float64},
}
View Source
var S3OneZoneInfrequentAccessStorageClassUsageSchema = []*schema.UsageItem{
	{Key: "storage_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_tier_1_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_tier_2_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_lifecycle_transition_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_data_retrieval_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_select_data_scanned_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_select_data_returned_gb", DefaultValue: 0.0, ValueType: schema.Float64},
}
View Source
var S3StandardInfrequentAccessStorageClassUsageSchema = []*schema.UsageItem{
	{Key: "storage_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_tier_1_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_tier_2_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_lifecycle_transition_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_data_retrieval_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_select_data_scanned_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_select_data_returned_gb", DefaultValue: 0.0, ValueType: schema.Float64},
}
View Source
var S3StandardStorageClassUsageSchema = []*schema.UsageItem{
	{Key: "storage_gb", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "monthly_tier_1_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_tier_2_requests", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_select_data_scanned_gb", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "monthly_select_data_returned_gb", DefaultValue: 0, ValueType: schema.Float64},
}
View Source
var SNSFIFOTopicUsageSchema = []*schema.UsageItem{
	{Key: "request_size_kb", ValueType: schema.Float64, DefaultValue: 1},
	{Key: "monthly_requests", ValueType: schema.Int64, DefaultValue: 0},
}

SNSFIFOTopicUsageSchema defines a list which represents the usage schema of SNSFIFOTopic.

View Source
var SNSTopicUsageSchema = []*schema.UsageItem{
	{Key: "request_size_kb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "monthly_requests", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "http_subscriptions", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "email_subscriptions", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "kinesis_subscriptions", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "mobile_push_subscriptions", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "macos_subscriptions", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "sms_subscriptions", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "sms_notification_price", ValueType: schema.Float64, DefaultValue: 0.0075},
}

SNSTopicUsageSchema defines a list which represents the usage schema of SNSTopic.

Functions

This section is empty.

Types

type ACMCertificate added in v0.9.17

type ACMCertificate struct {
	Address                 string
	Region                  string
	CertificateAuthorityARN string
}

func (*ACMCertificate) BuildResource added in v0.9.17

func (r *ACMCertificate) BuildResource() *schema.Resource

func (*ACMCertificate) CoreType added in v0.10.35

func (r *ACMCertificate) CoreType() string

func (*ACMCertificate) PopulateUsage added in v0.9.17

func (r *ACMCertificate) PopulateUsage(u *schema.UsageData)

func (*ACMCertificate) UsageSchema added in v0.10.35

func (r *ACMCertificate) UsageSchema() []*schema.UsageItem

type ACMPCACertificateAuthority added in v0.9.17

type ACMPCACertificateAuthority struct {
	Address         string
	Region          string
	UsageMode       string
	MonthlyRequests *int64 `infracost_usage:"monthly_requests"`
}

func (*ACMPCACertificateAuthority) BuildResource added in v0.9.17

func (r *ACMPCACertificateAuthority) BuildResource() *schema.Resource

func (*ACMPCACertificateAuthority) CoreType added in v0.10.35

func (r *ACMPCACertificateAuthority) CoreType() string

func (*ACMPCACertificateAuthority) PopulateUsage added in v0.9.17

func (r *ACMPCACertificateAuthority) PopulateUsage(u *schema.UsageData)

func (*ACMPCACertificateAuthority) UsageSchema added in v0.10.35

func (r *ACMPCACertificateAuthority) UsageSchema() []*schema.UsageItem

type APIGatewayRestAPI added in v0.9.17

type APIGatewayRestAPI struct {
	Address         string
	Region          string
	MonthlyRequests *int64 `infracost_usage:"monthly_requests"`
}

func (*APIGatewayRestAPI) BuildResource added in v0.9.17

func (r *APIGatewayRestAPI) BuildResource() *schema.Resource

func (*APIGatewayRestAPI) CoreType added in v0.10.35

func (r *APIGatewayRestAPI) CoreType() string

func (*APIGatewayRestAPI) PopulateUsage added in v0.9.17

func (r *APIGatewayRestAPI) PopulateUsage(u *schema.UsageData)

func (*APIGatewayRestAPI) UsageSchema added in v0.10.35

func (r *APIGatewayRestAPI) UsageSchema() []*schema.UsageItem

type APIGatewayStage added in v0.9.17

type APIGatewayStage struct {
	Address          string
	Region           string
	CacheClusterSize float64
	CacheEnabled     bool
}

func (*APIGatewayStage) BuildResource added in v0.9.17

func (r *APIGatewayStage) BuildResource() *schema.Resource

func (*APIGatewayStage) CoreType added in v0.10.35

func (r *APIGatewayStage) CoreType() string

func (*APIGatewayStage) PopulateUsage added in v0.9.17

func (r *APIGatewayStage) PopulateUsage(u *schema.UsageData)

func (*APIGatewayStage) UsageSchema added in v0.10.35

func (r *APIGatewayStage) UsageSchema() []*schema.UsageItem

type APIGatewayV2API added in v0.9.17

type APIGatewayV2API struct {
	Address               string
	Region                string
	ProtocolType          string
	MessageSizeKB         *int64 `infracost_usage:"message_size_kb"`
	MonthlyConnectionMins *int64 `infracost_usage:"monthly_connection_mins"`
	MonthlyRequests       *int64 `infracost_usage:"monthly_requests"`
	RequestSizeKB         *int64 `infracost_usage:"request_size_kb"`
	MonthlyMessages       *int64 `infracost_usage:"monthly_messages"`
}

func (*APIGatewayV2API) BuildResource added in v0.9.17

func (r *APIGatewayV2API) BuildResource() *schema.Resource

func (*APIGatewayV2API) CoreType added in v0.10.35

func (r *APIGatewayV2API) CoreType() string

func (*APIGatewayV2API) PopulateUsage added in v0.9.17

func (r *APIGatewayV2API) PopulateUsage(u *schema.UsageData)

func (*APIGatewayV2API) UsageSchema added in v0.10.35

func (r *APIGatewayV2API) UsageSchema() []*schema.UsageItem

type AppAutoscalingTarget added in v0.9.19

type AppAutoscalingTarget struct {
	Address string
	Region  string

	ResourceID        string
	ScalableDimension string

	MinCapacity int64
	MaxCapacity int64

	// "usage" args
	Capacity *int64 `infracost_usage:"capacity"`
}

func (*AppAutoscalingTarget) BuildResource added in v0.9.19

func (r *AppAutoscalingTarget) BuildResource() *schema.Resource

func (*AppAutoscalingTarget) CoreType added in v0.10.35

func (r *AppAutoscalingTarget) CoreType() string

func (*AppAutoscalingTarget) PopulateUsage added in v0.9.19

func (r *AppAutoscalingTarget) PopulateUsage(u *schema.UsageData)

func (*AppAutoscalingTarget) UsageSchema added in v0.10.35

func (r *AppAutoscalingTarget) UsageSchema() []*schema.UsageItem

type AutoscalingGroup added in v0.9.9

type AutoscalingGroup struct {
	// "required" args that can't really be missing.
	Address string
	Region  string
	Name    string

	// "optional" args, that may be empty depending on the resource config
	LaunchConfiguration *LaunchConfiguration
	LaunchTemplate      *LaunchTemplate
}

func (*AutoscalingGroup) BuildResource added in v0.9.9

func (a *AutoscalingGroup) BuildResource() *schema.Resource

func (*AutoscalingGroup) CoreType added in v0.10.35

func (a *AutoscalingGroup) CoreType() string

func (*AutoscalingGroup) PopulateUsage added in v0.9.9

func (a *AutoscalingGroup) PopulateUsage(u *schema.UsageData)

func (*AutoscalingGroup) UsageSchema added in v0.10.35

func (a *AutoscalingGroup) UsageSchema() []*schema.UsageItem

type BackupVault added in v0.9.18

type BackupVault struct {
	Address                       string
	Region                        string
	MonthlyEFSWarmBackupGB        *float64 `infracost_usage:"monthly_efs_warm_backup_gb"`
	MonthlyEFSColdRestoreGB       *float64 `infracost_usage:"monthly_efs_cold_restore_gb"`
	MonthlyRDSSnapshotGB          *float64 `infracost_usage:"monthly_rds_snapshot_gb"`
	MonthlyAuroraSnapshotGB       *float64 `infracost_usage:"monthly_aurora_snapshot_gb"`
	MonthlyDynamodbBackupGB       *float64 `infracost_usage:"monthly_dynamodb_backup_gb"`
	MonthlyDynamodbRestoreGB      *float64 `infracost_usage:"monthly_dynamodb_restore_gb"`
	MonthlyFSxWindowsBackupGB     *float64 `infracost_usage:"monthly_fsx_windows_backup_gb"`
	MonthlyFSxLustreBackupGB      *float64 `infracost_usage:"monthly_fsx_lustre_backup_gb"`
	MonthlyEFSColdBackupGB        *float64 `infracost_usage:"monthly_efs_cold_backup_gb"`
	MonthlyEFSWarmRestoreGB       *float64 `infracost_usage:"monthly_efs_warm_restore_gb"`
	MonthlyEFSItemRestoreRequests *int64   `infracost_usage:"monthly_efs_item_restore_requests"`
	MonthlyEBSSnapshotGB          *float64 `infracost_usage:"monthly_ebs_snapshot_gb"`
}

func (*BackupVault) BuildResource added in v0.9.18

func (r *BackupVault) BuildResource() *schema.Resource

func (*BackupVault) CoreType added in v0.10.35

func (r *BackupVault) CoreType() string

func (*BackupVault) PopulateUsage added in v0.9.18

func (r *BackupVault) PopulateUsage(u *schema.UsageData)

func (*BackupVault) UsageSchema added in v0.10.35

func (r *BackupVault) UsageSchema() []*schema.UsageItem

type CloudFormationStack added in v0.9.17

type CloudFormationStack struct {
	Address                  string
	Region                   string
	TemplateBody             string
	MonthlyHandlerOperations *int64 `infracost_usage:"monthly_handler_operations"`
	MonthlyDurationSecs      *int64 `infracost_usage:"monthly_duration_secs"`
}

func (*CloudFormationStack) BuildResource added in v0.9.17

func (r *CloudFormationStack) BuildResource() *schema.Resource

func (*CloudFormationStack) CoreType added in v0.10.35

func (r *CloudFormationStack) CoreType() string

func (*CloudFormationStack) PopulateUsage added in v0.9.17

func (r *CloudFormationStack) PopulateUsage(u *schema.UsageData)

func (*CloudFormationStack) UsageSchema added in v0.10.35

func (r *CloudFormationStack) UsageSchema() []*schema.UsageItem

type CloudFormationStackSet added in v0.9.17

type CloudFormationStackSet struct {
	Address                  string
	Region                   string
	TemplateBody             string
	MonthlyHandlerOperations *int64 `infracost_usage:"monthly_handler_operations"`
	MonthlyDurationSecs      *int64 `infracost_usage:"monthly_duration_secs"`
}

func (*CloudFormationStackSet) BuildResource added in v0.9.17

func (r *CloudFormationStackSet) BuildResource() *schema.Resource

func (*CloudFormationStackSet) CoreType added in v0.10.35

func (r *CloudFormationStackSet) CoreType() string

func (*CloudFormationStackSet) PopulateUsage added in v0.9.17

func (r *CloudFormationStackSet) PopulateUsage(u *schema.UsageData)

func (*CloudFormationStackSet) UsageSchema added in v0.10.35

func (r *CloudFormationStackSet) UsageSchema() []*schema.UsageItem

type CloudHSMv2HSM added in v0.10.32

type CloudHSMv2HSM struct {
	Address string
	Region  string

	MonthlyHours *float64 `infracost_usage:"monthly_hrs"`
}

CloudHSMv2HSM struct represents an HSM module in a CloudHSM cluster.

The HSM module is charged a hourly rate. Terraform allows you to specify the instance type of the HSM cluster, but at the moment AWS only supports one instance type, so each module has a set price depending on region.

The cluster is counted as a free resource, but each cluster can have up to 32 HSM modules.

Resource information: https://aws.amazon.com/cloudhsm/ Pricing information: https://aws.amazon.com/cloudhsm/pricing/

func (*CloudHSMv2HSM) BuildResource added in v0.10.32

func (r *CloudHSMv2HSM) BuildResource() *schema.Resource

BuildResource builds a schema.Resource from a valid CloudHSMv2HSM struct. This method is called after the resource is initialised by an IaC provider. See providers folder for more information.

func (*CloudHSMv2HSM) CoreType added in v0.10.32

func (r *CloudHSMv2HSM) CoreType() string

CoreType returns the name of this resource type

func (*CloudHSMv2HSM) PopulateUsage added in v0.10.32

func (r *CloudHSMv2HSM) PopulateUsage(u *schema.UsageData)

PopulateUsage parses the u schema.UsageData into the CloudHSMv2HSM. It uses the `infracost_usage` struct tags to populate data into the CloudHSMv2HSM.

func (*CloudHSMv2HSM) UsageSchema added in v0.10.32

func (r *CloudHSMv2HSM) UsageSchema() []*schema.UsageItem

UsageSchema defines a list which represents the usage schema of CloudHSMv2HSM.

type CloudfrontDistribution added in v0.9.18

type CloudfrontDistribution struct {
	Address string
	Region  string

	IsOriginShieldEnabled     bool
	IsSSLSupportMethodVIP     bool
	HasLoggingConfigBucket    bool
	HasFieldLevelEncryptionID bool
	OriginShieldRegion        string

	// "usage" args
	MonthlyHTTPRequests             *cloudfrontDistributionRegionRequestsUsage     `infracost_usage:"monthly_http_requests"`
	MonthlyHTTPSRequests            *cloudfrontDistributionRegionRequestsUsage     `infracost_usage:"monthly_https_requests"`
	MonthlyShieldRequests           *cloudfrontDistributionShieldRequestsUsage     `infracost_usage:"monthly_shield_requests"`
	MonthlyInvalidationRequests     *int64                                         `infracost_usage:"monthly_invalidation_requests"`
	MonthlyEncryptionRequests       *int64                                         `infracost_usage:"monthly_encryption_requests"`
	MonthlyLogLines                 *int64                                         `infracost_usage:"monthly_log_lines"`
	MonthlyDataTransferToInternetGB *cloudfrontDistributionRegionDataTransferUsage `infracost_usage:"monthly_data_transfer_to_internet_gb"`
	MonthlyDataTransferToOriginGB   *cloudfrontDistributionRegionDataTransferUsage `infracost_usage:"monthly_data_transfer_to_origin_gb"`
	CustomSslCertificates           *int64                                         `infracost_usage:"custom_ssl_certificates"`
}

func (*CloudfrontDistribution) BuildResource added in v0.9.18

func (r *CloudfrontDistribution) BuildResource() *schema.Resource

func (*CloudfrontDistribution) CoreType added in v0.10.35

func (r *CloudfrontDistribution) CoreType() string

func (*CloudfrontDistribution) PopulateUsage added in v0.9.18

func (r *CloudfrontDistribution) PopulateUsage(u *schema.UsageData)

func (*CloudfrontDistribution) UsageSchema added in v0.10.35

func (r *CloudfrontDistribution) UsageSchema() []*schema.UsageItem

type Cloudtrail added in v0.9.16

type Cloudtrail struct {
	Address                 string
	Region                  string
	IncludeManagementEvents bool
	IncludeInsightEvents    bool

	MonthlyAdditionalManagementEvents *float64 `infracost_usage:"monthly_additional_management_events"`
	MonthlyDataEvents                 *float64 `infracost_usage:"monthly_data_events"`
	MonthlyInsightEvents              *float64 `infracost_usage:"monthly_insight_events"`
}

Cloudtrail struct represents a cloudtrail instance to monitor activity across a set of resources. AWS Cloudtrail monitors and records account activity across infrastructure, keeping an audit log of activity. This is mostly used for security purposes.

Resource information: https://aws.amazon.com/cloudtrail/ Pricing information: https://aws.amazon.com/cloudtrail/pricing/

func (*Cloudtrail) BuildResource added in v0.9.16

func (r *Cloudtrail) BuildResource() *schema.Resource

BuildResource builds a schema.Resource from a valid Cloudtrail struct. It returns Cloudtrail as a schema.Resource with 3 main cost components. All cost components are defined as "events". All cost components are charged per 100k events delivered/analyzed.

  1. Additional Management events delivered to S3, charged at $2.00 per 100k management events delivered. Management events are normally priced as free, however if a user specifies an additional replication of events this is charged. We only show this cost therefore if Cloudtrail.IncludeManagementEvents is set. This is set at a per IAC basis.
  2. Data events delivered to S3, charged at $0.10 per 100k events delivered.
  3. CloudTrail Insights, charged at $0.35 per 100k events analyzed. This again is configured optionally on a Cloudtrail instance. Hence, we only include the cost component if Cloudtrail.IncludeInsightEvents. This is set at a per IAC basis.

This method is called after the resource is initialised by an IaC provider. See providers folder for more information.

func (*Cloudtrail) CoreType added in v0.10.35

func (r *Cloudtrail) CoreType() string

func (*Cloudtrail) PopulateUsage added in v0.9.16

func (r *Cloudtrail) PopulateUsage(u *schema.UsageData)

PopulateUsage parses the u schema.UsageData into the Cloudtrail. It uses the `infracost_usage` struct tags to populate data into the Cloudtrail.

func (*Cloudtrail) UsageSchema added in v0.10.35

func (r *Cloudtrail) UsageSchema() []*schema.UsageItem

type CloudwatchDashboard added in v0.9.17

type CloudwatchDashboard struct {
	Address string
}

func (*CloudwatchDashboard) BuildResource added in v0.9.17

func (r *CloudwatchDashboard) BuildResource() *schema.Resource

func (*CloudwatchDashboard) CoreType added in v0.10.35

func (r *CloudwatchDashboard) CoreType() string

func (*CloudwatchDashboard) PopulateUsage added in v0.9.17

func (r *CloudwatchDashboard) PopulateUsage(u *schema.UsageData)

func (*CloudwatchDashboard) UsageSchema added in v0.10.35

func (r *CloudwatchDashboard) UsageSchema() []*schema.UsageItem

type CloudwatchEventBus added in v0.9.17

type CloudwatchEventBus struct {
	Address                      string
	Region                       string
	MonthlySchemaDiscoveryEvents *int64   `infracost_usage:"monthly_schema_discovery_events"`
	MonthlyCustomEvents          *int64   `infracost_usage:"monthly_custom_events"`
	MonthlyThirdPartyEvents      *int64   `infracost_usage:"monthly_third_party_events"`
	MonthlyArchiveProcessingGB   *float64 `infracost_usage:"monthly_archive_processing_gb"`
	ArchiveStorageGB             *float64 `infracost_usage:"archive_storage_gb"`
}

func (*CloudwatchEventBus) BuildResource added in v0.9.17

func (r *CloudwatchEventBus) BuildResource() *schema.Resource

func (*CloudwatchEventBus) CoreType added in v0.10.35

func (r *CloudwatchEventBus) CoreType() string

func (*CloudwatchEventBus) PopulateUsage added in v0.9.17

func (r *CloudwatchEventBus) PopulateUsage(u *schema.UsageData)

func (*CloudwatchEventBus) UsageSchema added in v0.10.35

func (r *CloudwatchEventBus) UsageSchema() []*schema.UsageItem

type CloudwatchLogGroup added in v0.9.17

type CloudwatchLogGroup struct {
	Address               string
	Region                string
	MonthlyDataIngestedGB *float64 `infracost_usage:"monthly_data_ingested_gb"`
	StorageGB             *float64 `infracost_usage:"storage_gb"`
	MonthlyDataScannedGB  *float64 `infracost_usage:"monthly_data_scanned_gb"`
}

func (*CloudwatchLogGroup) BuildResource added in v0.9.17

func (r *CloudwatchLogGroup) BuildResource() *schema.Resource

func (*CloudwatchLogGroup) CoreType added in v0.10.35

func (r *CloudwatchLogGroup) CoreType() string

func (*CloudwatchLogGroup) PopulateUsage added in v0.9.17

func (r *CloudwatchLogGroup) PopulateUsage(u *schema.UsageData)

func (*CloudwatchLogGroup) UsageSchema added in v0.10.35

func (r *CloudwatchLogGroup) UsageSchema() []*schema.UsageItem

type CloudwatchMetricAlarm added in v0.9.18

type CloudwatchMetricAlarm struct {
	Address            string
	Region             string
	ComparisonOperator string
	Metrics            int64
	Period             int64
}

func (*CloudwatchMetricAlarm) BuildResource added in v0.9.18

func (r *CloudwatchMetricAlarm) BuildResource() *schema.Resource

func (*CloudwatchMetricAlarm) CalcMetricResolution added in v0.9.18

func (r *CloudwatchMetricAlarm) CalcMetricResolution(metricPeriod decimal.Decimal) bool

func (*CloudwatchMetricAlarm) CoreType added in v0.10.35

func (r *CloudwatchMetricAlarm) CoreType() string

func (*CloudwatchMetricAlarm) PopulateUsage added in v0.9.18

func (r *CloudwatchMetricAlarm) PopulateUsage(u *schema.UsageData)

func (*CloudwatchMetricAlarm) UsageSchema added in v0.10.35

func (r *CloudwatchMetricAlarm) UsageSchema() []*schema.UsageItem

type CodeBuildProject added in v0.9.17

type CodeBuildProject struct {
	Address          string
	Region           string
	ComputeType      string
	EnvironmentType  string
	MonthlyBuildMins *int64 `infracost_usage:"monthly_build_mins"`
}

func (*CodeBuildProject) BuildResource added in v0.9.17

func (r *CodeBuildProject) BuildResource() *schema.Resource

func (*CodeBuildProject) CoreType added in v0.10.35

func (r *CodeBuildProject) CoreType() string

func (*CodeBuildProject) PopulateUsage added in v0.9.17

func (r *CodeBuildProject) PopulateUsage(u *schema.UsageData)

func (*CodeBuildProject) UsageSchema added in v0.10.35

func (r *CodeBuildProject) UsageSchema() []*schema.UsageItem

type ConfigConfigRule added in v0.9.17

type ConfigConfigRule struct {
	Address                string
	Region                 string
	MonthlyRuleEvaluations *int64 `infracost_usage:"monthly_rule_evaluations"`
}

func (*ConfigConfigRule) BuildResource added in v0.9.17

func (r *ConfigConfigRule) BuildResource() *schema.Resource

func (*ConfigConfigRule) CoreType added in v0.10.35

func (r *ConfigConfigRule) CoreType() string

func (*ConfigConfigRule) PopulateUsage added in v0.9.17

func (r *ConfigConfigRule) PopulateUsage(u *schema.UsageData)

func (*ConfigConfigRule) UsageSchema added in v0.10.35

func (r *ConfigConfigRule) UsageSchema() []*schema.UsageItem

type ConfigConfigurationRecorder added in v0.9.17

type ConfigConfigurationRecorder struct {
	Address                  string
	Region                   string
	MonthlyConfigItems       *int64 `infracost_usage:"monthly_config_items"`
	MonthlyCustomConfigItems *int64 `infracost_usage:"monthly_custom_config_items"`
}

func (*ConfigConfigurationRecorder) BuildResource added in v0.9.17

func (r *ConfigConfigurationRecorder) BuildResource() *schema.Resource

func (*ConfigConfigurationRecorder) CoreType added in v0.10.35

func (r *ConfigConfigurationRecorder) CoreType() string

func (*ConfigConfigurationRecorder) PopulateUsage added in v0.9.17

func (r *ConfigConfigurationRecorder) PopulateUsage(u *schema.UsageData)

func (*ConfigConfigurationRecorder) UsageSchema added in v0.10.35

func (r *ConfigConfigurationRecorder) UsageSchema() []*schema.UsageItem

type DBInstance added in v0.9.17

type DBInstance struct {
	Address                                      string
	Region                                       string
	LicenseModel                                 string
	StorageType                                  string
	BackupRetentionPeriod                        int64
	IOOptimized                                  bool
	PerformanceInsightsEnabled                   bool
	PerformanceInsightsLongTermRetention         bool
	MultiAZ                                      bool
	InstanceClass                                string
	Engine                                       string
	Version                                      string
	IOPS                                         float64
	AllocatedStorageGB                           *float64
	MonthlyStandardIORequests                    *int64   `infracost_usage:"monthly_standard_io_requests"`
	AdditionalBackupStorageGB                    *float64 `infracost_usage:"additional_backup_storage_gb"`
	MonthlyAdditionalPerformanceInsightsRequests *int64   `infracost_usage:"monthly_additional_performance_insights_requests"`
	ReservedInstanceTerm                         *string  `infracost_usage:"reserved_instance_term"`
	ReservedInstancePaymentOption                *string  `infracost_usage:"reserved_instance_payment_option"`
}

func (*DBInstance) BuildResource added in v0.9.17

func (r *DBInstance) BuildResource() *schema.Resource

func (*DBInstance) CoreType added in v0.10.14

func (r *DBInstance) CoreType() string

func (*DBInstance) PopulateUsage added in v0.9.17

func (r *DBInstance) PopulateUsage(u *schema.UsageData)

func (*DBInstance) UsageSchema added in v0.10.14

func (r *DBInstance) UsageSchema() []*schema.UsageItem

type DMSReplicationInstance added in v0.9.17

type DMSReplicationInstance struct {
	Address                  string
	Region                   string
	AllocatedStorageGB       int64
	ReplicationInstanceClass string
	MultiAZ                  bool
}

func (*DMSReplicationInstance) BuildResource added in v0.9.17

func (r *DMSReplicationInstance) BuildResource() *schema.Resource

func (*DMSReplicationInstance) CoreType added in v0.10.35

func (r *DMSReplicationInstance) CoreType() string

func (*DMSReplicationInstance) PopulateUsage added in v0.9.17

func (r *DMSReplicationInstance) PopulateUsage(u *schema.UsageData)

func (*DMSReplicationInstance) UsageSchema added in v0.10.35

func (r *DMSReplicationInstance) UsageSchema() []*schema.UsageItem

type DXConnection added in v0.9.18

type DXConnection struct {
	Address                                         string
	Bandwidth                                       string
	Location                                        string
	Region                                          string
	MonthlyOutboundFromRegionToDXConnectionLocation *RegionsUsage `infracost_usage:"monthly_outbound_from_region_to_dx_connection_location"`
	MonthlyOutboundRegionToDxLocationGB             *float64      `infracost_usage:"monthly_outbound_region_to_dx_location_gb"`
	DxVirtualInterfaceType                          *string       `infracost_usage:"dx_virtual_interface_type"`
	DXConnectionType                                *string       `infracost_usage:"dx_connection_type"`
}

func (*DXConnection) BuildResource added in v0.9.18

func (r *DXConnection) BuildResource() *schema.Resource

func (*DXConnection) CoreType added in v0.10.35

func (r *DXConnection) CoreType() string

func (*DXConnection) PopulateUsage added in v0.9.18

func (r *DXConnection) PopulateUsage(u *schema.UsageData)

func (*DXConnection) UsageSchema added in v0.10.35

func (r *DXConnection) UsageSchema() []*schema.UsageItem

type DXGatewayAssociation added in v0.9.17

type DXGatewayAssociation struct {
	Address                 string
	Region                  string
	AssociatedGatewayRegion string
	MonthlyDataProcessedGB  *float64 `infracost_usage:"monthly_data_processed_gb"`
}

func (*DXGatewayAssociation) BuildResource added in v0.9.17

func (r *DXGatewayAssociation) BuildResource() *schema.Resource

func (*DXGatewayAssociation) CoreType added in v0.10.35

func (r *DXGatewayAssociation) CoreType() string

func (*DXGatewayAssociation) PopulateUsage added in v0.9.17

func (r *DXGatewayAssociation) PopulateUsage(u *schema.UsageData)

func (*DXGatewayAssociation) UsageSchema added in v0.10.35

func (r *DXGatewayAssociation) UsageSchema() []*schema.UsageItem

type DataTransfer added in v0.9.14

type DataTransfer struct {
	Address string
	Region  string

	// "usage" args
	MonthlyInfraRegionGB            *float64 `infracost_usage:"monthly_intra_region_gb"`
	MonthlyOutboundInternetGB       *float64 `infracost_usage:"monthly_outbound_internet_gb"`
	MonthlyOutboundUsEastToUsEastGB *float64 `infracost_usage:"monthly_outbound_us_east_to_us_east_gb"`
	MonthlyOutboundOtherRegionsGB   *float64 `infracost_usage:"monthly_outbound_other_regions_gb"`
}

DataTransfer represents data transferred "in" to and "out" of Amazon EC2.

Pricing information here: https://aws.amazon.com/ec2/pricing/on-demand/

func (*DataTransfer) BuildResource added in v0.9.14

func (r *DataTransfer) BuildResource() *schema.Resource

BuildResource builds a schema.Resource from a valid DataTransfer. This method is called after the resource is initialised by an IaC provider. See providers folder for more information.

func (*DataTransfer) CoreType added in v0.10.35

func (r *DataTransfer) CoreType() string

func (*DataTransfer) PopulateUsage added in v0.9.14

func (r *DataTransfer) PopulateUsage(u *schema.UsageData)

PopulateUsage parses the u schema.UsageData into the DataTransfer. It uses the `infracost_usage` struct tags to populate data into the DataTransfer.

func (*DataTransfer) UsageSchema added in v0.10.35

func (r *DataTransfer) UsageSchema() []*schema.UsageItem

type DirectoryServiceDirectory added in v0.9.12

type DirectoryServiceDirectory struct {
	// Address is the unique name of the resource in terraform/cloudfront.
	Address string
	// Region is the aws region the DirectoryServiceDirectory is provisioned within
	Region string
	// RegionName is the full region name used in product filters for the DirectoryService
	RegionName string

	// Type is the directory type. It can be one of (SimpleAD|ADConnector|MicrosoftAD)
	Type string
	// Edition is the edition of the MicrosoftAD type directory service. This field
	// is only applicable with MicrosoftAD and can either be (Standard|Enterprise).
	Edition string
	// The size of the directory, only applicable if the type is SimpleAD or ADConnector.
	// Values can be either (Small|Large)
	Size string

	// AdditionalDomainControllers represents a usage cost definition for the number controllers
	// above the default value (2) that are provisioned in this directory service.
	AdditionalDomainControllers *float64 `infracost_usage:"additional_domain_controllers"`

	// SharedAccounts represents the number of accounts/vpcs the directory is shared with.
	// This cost is only applicable if the type of directory is MicrosoftAD.
	// Directory Service sharing support is not supported by terraform aws at this time.
	// Therefore, this field is built from the usage cost file. An open issue referencing
	// shared directory support here: https://github.com/hashicorp/terraform-provider-aws/issues/6003
	SharedAccounts *float64 `infracost_usage:"shared_accounts"`
}

DirectoryServiceDirectory represents a single AWS Directory Service "Directory". AWS Directory Service has three main types: Microsoft AD, AD Connector & Simple AD. All the types are meant to support some form of Active Directory integration. Microsoft Active Directory is used by Windows applications to manage access and enable single sign-on. For example, you can manage access to Microsoft SharePoint using different Microsoft Active Directory security groups.

The Microsoft AD type is a fully managed Microsoft Active Directory service. The Simple AD type is a fully managed Samba service which is compatible with Microsoft Active Directory. The AD Connector type is a gateway with which you can redirect directory requests to your on-premises Microsoft Active Directory.

Read more about Directory service here: https://aws.amazon.com/directoryservice/ Microsoft Active Directory here: https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html Other Supported Active Directory types here:

https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_simple_ad.html
https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_simple_ad.html

DirectoryServicePricing pricing is based on

> Hourly price based on the type and edition (only Microsoft AD) of the directory service directory > Additional hourly price added directory per account/vpc the directory is shared with (only Microsoft AD) > Costs for data transfer out (on a per-region basis)

More information on pricing can be found here:

https://aws.amazon.com/directoryservice/pricing/
https://aws.amazon.com/directoryservice/other-directories-pricing/

func (*DirectoryServiceDirectory) BuildResource added in v0.9.12

func (d *DirectoryServiceDirectory) BuildResource() *schema.Resource

BuildResource builds a schema.Resource from a valid DirectoryServiceDirectory.

func (*DirectoryServiceDirectory) CoreType added in v0.10.35

func (d *DirectoryServiceDirectory) CoreType() string

func (*DirectoryServiceDirectory) PopulateUsage added in v0.9.12

func (d *DirectoryServiceDirectory) PopulateUsage(u *schema.UsageData)

PopulateUsage parses the u schema.Usage into the DirectoryServiceDirectory. It uses the `infracost_usage` struct tags to populate data into the DirectoryServiceDirectory.

func (*DirectoryServiceDirectory) UsageSchema added in v0.10.35

func (d *DirectoryServiceDirectory) UsageSchema() []*schema.UsageItem

type DocDBCluster added in v0.9.17

type DocDBCluster struct {
	Address               string
	Region                string
	BackupRetentionPeriod int64
	BackupStorageGB       *float64 `infracost_usage:"backup_storage_gb"`
}

func (*DocDBCluster) BuildResource added in v0.9.17

func (r *DocDBCluster) BuildResource() *schema.Resource

func (*DocDBCluster) CoreType added in v0.10.35

func (r *DocDBCluster) CoreType() string

func (*DocDBCluster) PopulateUsage added in v0.9.17

func (r *DocDBCluster) PopulateUsage(u *schema.UsageData)

func (*DocDBCluster) UsageSchema added in v0.10.35

func (r *DocDBCluster) UsageSchema() []*schema.UsageItem

type DocDBClusterInstance added in v0.9.17

type DocDBClusterInstance struct {
	Address             string
	Region              string
	InstanceClass       string
	DataStorageGB       *float64 `infracost_usage:"data_storage_gb"`
	MonthlyIORequests   *int64   `infracost_usage:"monthly_io_requests"`
	MonthlyCPUCreditHrs *int64   `infracost_usage:"monthly_cpu_credit_hrs"`
}

func (*DocDBClusterInstance) BuildResource added in v0.9.17

func (r *DocDBClusterInstance) BuildResource() *schema.Resource

func (*DocDBClusterInstance) CoreType added in v0.10.35

func (r *DocDBClusterInstance) CoreType() string

func (*DocDBClusterInstance) PopulateUsage added in v0.9.17

func (r *DocDBClusterInstance) PopulateUsage(u *schema.UsageData)

func (*DocDBClusterInstance) UsageSchema added in v0.10.35

func (r *DocDBClusterInstance) UsageSchema() []*schema.UsageItem

type DocDBClusterSnapshot added in v0.9.17

type DocDBClusterSnapshot struct {
	Address         string
	Region          string
	BackupStorageGB *float64 `infracost_usage:"backup_storage_gb"`
}

func (*DocDBClusterSnapshot) BuildResource added in v0.9.17

func (r *DocDBClusterSnapshot) BuildResource() *schema.Resource

func (*DocDBClusterSnapshot) CoreType added in v0.10.35

func (r *DocDBClusterSnapshot) CoreType() string

func (*DocDBClusterSnapshot) PopulateUsage added in v0.9.17

func (r *DocDBClusterSnapshot) PopulateUsage(u *schema.UsageData)

func (*DocDBClusterSnapshot) UsageSchema added in v0.10.35

func (r *DocDBClusterSnapshot) UsageSchema() []*schema.UsageItem

type DynamoDBTable added in v0.9.8

type DynamoDBTable struct {
	// "required" args that can't really be missing.
	Address        string
	Region         string
	Name           string
	BillingMode    string
	ReplicaRegions []string

	// "optional" args, that may be empty depending on the resource config
	WriteCapacity *int64
	ReadCapacity  *int64

	AppAutoscalingTarget []*AppAutoscalingTarget

	// "usage" args
	MonthlyWriteRequestUnits       *int64 `infracost_usage:"monthly_write_request_units"`
	MonthlyReadRequestUnits        *int64 `infracost_usage:"monthly_read_request_units"`
	StorageGB                      *int64 `infracost_usage:"storage_gb"`
	PitrBackupStorageGB            *int64 `infracost_usage:"pitr_backup_storage_gb"`
	OnDemandBackupStorageGB        *int64 `infracost_usage:"on_demand_backup_storage_gb"`
	MonthlyDataRestoredGB          *int64 `infracost_usage:"monthly_data_restored_gb"`
	MonthlyStreamsReadRequestUnits *int64 `infracost_usage:"monthly_streams_read_request_units"`
}

func (*DynamoDBTable) BuildResource added in v0.9.8

func (a *DynamoDBTable) BuildResource() *schema.Resource

func (*DynamoDBTable) CoreType added in v0.10.12

func (a *DynamoDBTable) CoreType() string

func (*DynamoDBTable) PopulateUsage added in v0.9.8

func (a *DynamoDBTable) PopulateUsage(u *schema.UsageData)

func (*DynamoDBTable) UsageSchema added in v0.10.12

func (a *DynamoDBTable) UsageSchema() []*schema.UsageItem

type EBSSnapshot added in v0.9.17

type EBSSnapshot struct {
	Address                  string
	Region                   string
	SizeGB                   *float64
	MonthlyListBlockRequests *int64 `infracost_usage:"monthly_list_block_requests"`
	MonthlyGetBlockRequests  *int64 `infracost_usage:"monthly_get_block_requests"`
	MonthlyPutBlockRequests  *int64 `infracost_usage:"monthly_put_block_requests"`
	FastSnapshotRestoreHours *int64 `infracost_usage:"fast_snapshot_restore_hours"`
}

func (*EBSSnapshot) BuildResource added in v0.9.17

func (r *EBSSnapshot) BuildResource() *schema.Resource

func (*EBSSnapshot) CoreType added in v0.10.35

func (r *EBSSnapshot) CoreType() string

func (*EBSSnapshot) PopulateUsage added in v0.9.17

func (r *EBSSnapshot) PopulateUsage(u *schema.UsageData)

func (*EBSSnapshot) UsageSchema added in v0.10.35

func (r *EBSSnapshot) UsageSchema() []*schema.UsageItem

type EBSSnapshotCopy added in v0.9.17

type EBSSnapshotCopy struct {
	Address string
	Region  string
	SizeGB  *float64
}

func (*EBSSnapshotCopy) BuildResource added in v0.9.17

func (r *EBSSnapshotCopy) BuildResource() *schema.Resource

func (*EBSSnapshotCopy) CoreType added in v0.10.35

func (r *EBSSnapshotCopy) CoreType() string

func (*EBSSnapshotCopy) PopulateUsage added in v0.9.17

func (r *EBSSnapshotCopy) PopulateUsage(u *schema.UsageData)

func (*EBSSnapshotCopy) UsageSchema added in v0.10.35

func (r *EBSSnapshotCopy) UsageSchema() []*schema.UsageItem

type EBSVolume added in v0.9.9

type EBSVolume struct {
	// "required" args that can't really be missing.
	Address    string
	Region     string
	Type       string
	IOPS       int64
	Throughput int64

	// "optional" args that can be empty strings.
	Size *int64

	// "usage" args
	MonthlyStandardIORequests *int64 `infracost_usage:"monthly_standard_io_requests"`
}

func (*EBSVolume) BuildResource added in v0.9.9

func (a *EBSVolume) BuildResource() *schema.Resource

func (*EBSVolume) CoreType added in v0.10.35

func (a *EBSVolume) CoreType() string

func (*EBSVolume) PopulateUsage added in v0.9.9

func (a *EBSVolume) PopulateUsage(u *schema.UsageData)

func (*EBSVolume) UsageSchema added in v0.10.35

func (a *EBSVolume) UsageSchema() []*schema.UsageItem

type EC2ClientVPNEndpoint added in v0.9.17

type EC2ClientVPNEndpoint struct {
	Address string
	Region  string
}

func (*EC2ClientVPNEndpoint) BuildResource added in v0.9.17

func (r *EC2ClientVPNEndpoint) BuildResource() *schema.Resource

func (*EC2ClientVPNEndpoint) CoreType added in v0.10.35

func (r *EC2ClientVPNEndpoint) CoreType() string

func (*EC2ClientVPNEndpoint) PopulateUsage added in v0.9.17

func (r *EC2ClientVPNEndpoint) PopulateUsage(u *schema.UsageData)

func (*EC2ClientVPNEndpoint) UsageSchema added in v0.10.35

func (r *EC2ClientVPNEndpoint) UsageSchema() []*schema.UsageItem

type EC2ClientVPNNetworkAssociation added in v0.9.17

type EC2ClientVPNNetworkAssociation struct {
	Address string
	Region  string
}

func (*EC2ClientVPNNetworkAssociation) BuildResource added in v0.9.17

func (r *EC2ClientVPNNetworkAssociation) BuildResource() *schema.Resource

func (*EC2ClientVPNNetworkAssociation) CoreType added in v0.10.35

func (r *EC2ClientVPNNetworkAssociation) CoreType() string

func (*EC2ClientVPNNetworkAssociation) PopulateUsage added in v0.9.17

func (r *EC2ClientVPNNetworkAssociation) PopulateUsage(u *schema.UsageData)

func (*EC2ClientVPNNetworkAssociation) UsageSchema added in v0.10.35

func (r *EC2ClientVPNNetworkAssociation) UsageSchema() []*schema.UsageItem

type EC2Host added in v0.10.14

type EC2Host struct {
	Address                       string
	Region                        string
	InstanceType                  string
	InstanceFamily                string
	ReservedInstanceTerm          *string `infracost_usage:"reserved_instance_term"`
	ReservedInstancePaymentOption *string `infracost_usage:"reserved_instance_payment_option"`
}

Ec2Host defines an AWS EC2 dedicated host. It suppports multiple instance families & allows you to run workloads on a physical server dedicated for your use. You can use on-demand or reservation pricing.

See more resource information here: https://aws.amazon.com/ec2/dedicated-hosts/

See the pricing information here: https://aws.amazon.com/ec2/dedicated-hosts/pricing/

func (*EC2Host) BuildResource added in v0.10.14

func (r *EC2Host) BuildResource() *schema.Resource

func (*EC2Host) CoreType added in v0.10.35

func (r *EC2Host) CoreType() string

func (*EC2Host) PopulateUsage added in v0.10.14

func (r *EC2Host) PopulateUsage(u *schema.UsageData)

func (*EC2Host) UsageSchema added in v0.10.35

func (r *EC2Host) UsageSchema() []*schema.UsageItem

type EC2TrafficMirrorSession added in v0.9.17

type EC2TrafficMirrorSession struct {
	Address string
	Region  string
}

func (*EC2TrafficMirrorSession) BuildResource added in v0.9.17

func (r *EC2TrafficMirrorSession) BuildResource() *schema.Resource

func (*EC2TrafficMirrorSession) CoreType added in v0.10.35

func (r *EC2TrafficMirrorSession) CoreType() string

func (*EC2TrafficMirrorSession) PopulateUsage added in v0.9.17

func (r *EC2TrafficMirrorSession) PopulateUsage(u *schema.UsageData)

func (*EC2TrafficMirrorSession) UsageSchema added in v0.10.35

func (r *EC2TrafficMirrorSession) UsageSchema() []*schema.UsageItem

type EC2TransitGatewayPeeringAttachment added in v0.9.17

type EC2TransitGatewayPeeringAttachment struct {
	Address              string
	Region               string
	TransitGatewayRegion string
}

func (*EC2TransitGatewayPeeringAttachment) BuildResource added in v0.9.17

func (*EC2TransitGatewayPeeringAttachment) CoreType added in v0.10.35

func (*EC2TransitGatewayPeeringAttachment) PopulateUsage added in v0.9.17

func (*EC2TransitGatewayPeeringAttachment) UsageSchema added in v0.10.35

type ECRRepository added in v0.9.17

type ECRRepository struct {
	Address   string
	Region    string
	StorageGB *float64 `infracost_usage:"storage_gb"`
}

func (*ECRRepository) BuildResource added in v0.9.17

func (r *ECRRepository) BuildResource() *schema.Resource

func (*ECRRepository) CoreType added in v0.10.18

func (r *ECRRepository) CoreType() string

func (*ECRRepository) PopulateUsage added in v0.9.17

func (r *ECRRepository) PopulateUsage(u *schema.UsageData)

func (*ECRRepository) UsageSchema added in v0.10.18

func (r *ECRRepository) UsageSchema() []*schema.UsageItem

type ECSService added in v0.9.17

type ECSService struct {
	Address                        string
	LaunchType                     string
	Region                         string
	DesiredCount                   int64
	MemoryGB                       float64
	VCPU                           float64
	InferenceAcceleratorDeviceType string
}

func (*ECSService) BuildResource added in v0.9.17

func (r *ECSService) BuildResource() *schema.Resource

func (*ECSService) CoreType added in v0.10.35

func (r *ECSService) CoreType() string

func (*ECSService) PopulateUsage added in v0.9.17

func (r *ECSService) PopulateUsage(u *schema.UsageData)

func (*ECSService) UsageSchema added in v0.10.35

func (r *ECSService) UsageSchema() []*schema.UsageItem

type EFSFileSystem added in v0.9.17

type EFSFileSystem struct {
	Address                        string
	Region                         string
	HasLifecyclePolicy             bool
	AvailabilityZoneName           string
	ProvisionedThroughputInMBps    float64
	InfrequentAccessStorageGB      *float64 `infracost_usage:"infrequent_access_storage_gb"`
	StorageGB                      *float64 `infracost_usage:"storage_gb"`
	MonthlyInfrequentAccessReadGB  *float64 `infracost_usage:"monthly_infrequent_access_read_gb"`
	MonthlyInfrequentAccessWriteGB *float64 `infracost_usage:"monthly_infrequent_access_write_gb"`
}

func (*EFSFileSystem) BuildResource added in v0.9.17

func (r *EFSFileSystem) BuildResource() *schema.Resource

func (*EFSFileSystem) CoreType added in v0.10.35

func (r *EFSFileSystem) CoreType() string

func (*EFSFileSystem) PopulateUsage added in v0.9.17

func (r *EFSFileSystem) PopulateUsage(u *schema.UsageData)

func (*EFSFileSystem) UsageSchema added in v0.10.35

func (r *EFSFileSystem) UsageSchema() []*schema.UsageItem

type EIP added in v0.9.17

type EIP struct {
	Address   string
	Region    string
	Allocated bool
}

func (*EIP) BuildResource added in v0.9.17

func (r *EIP) BuildResource() *schema.Resource

func (*EIP) CoreType added in v0.10.35

func (r *EIP) CoreType() string

func (*EIP) PopulateUsage added in v0.9.17

func (r *EIP) PopulateUsage(u *schema.UsageData)

func (*EIP) UsageSchema added in v0.10.35

func (r *EIP) UsageSchema() []*schema.UsageItem

type EKSCluster added in v0.9.17

type EKSCluster struct {
	Address string
	Version string
	Region  string
}

func (*EKSCluster) BuildResource added in v0.9.17

func (r *EKSCluster) BuildResource() *schema.Resource

func (*EKSCluster) CoreType added in v0.10.35

func (r *EKSCluster) CoreType() string

func (*EKSCluster) PopulateUsage added in v0.9.17

func (r *EKSCluster) PopulateUsage(u *schema.UsageData)

func (*EKSCluster) UsageSchema added in v0.10.35

func (r *EKSCluster) UsageSchema() []*schema.UsageItem

type EKSFargateProfile added in v0.9.17

type EKSFargateProfile struct {
	Address string
	Region  string
}

func (*EKSFargateProfile) BuildResource added in v0.9.17

func (r *EKSFargateProfile) BuildResource() *schema.Resource

func (*EKSFargateProfile) CoreType added in v0.10.35

func (r *EKSFargateProfile) CoreType() string

func (*EKSFargateProfile) PopulateUsage added in v0.9.17

func (r *EKSFargateProfile) PopulateUsage(u *schema.UsageData)

func (*EKSFargateProfile) UsageSchema added in v0.10.35

func (r *EKSFargateProfile) UsageSchema() []*schema.UsageItem

type EKSNodeGroup added in v0.9.9

type EKSNodeGroup struct {
	// "required" args that can't really be missing.
	Address     string
	Region      string
	Name        string
	ClusterName string

	InstanceType   string
	PurchaseOption string
	DiskSize       float64

	// "optional" args, that may be empty depending on the resource config
	RootBlockDevice *EBSVolume
	LaunchTemplate  *LaunchTemplate

	// "usage" args
	InstanceCount                 *int64  `infracost_usage:"instances"`
	OperatingSystem               *string `infracost_usage:"operating_system"`
	ReservedInstanceType          *string `infracost_usage:"reserved_instance_type"`
	ReservedInstanceTerm          *string `infracost_usage:"reserved_instance_term"`
	ReservedInstancePaymentOption *string `infracost_usage:"reserved_instance_payment_option"`
	MonthlyCPUCreditHours         *int64  `infracost_usage:"monthly_cpu_credit_hrs"`
	VCPUCount                     *int64  `infracost_usage:"vcpu_count"`
}

func (*EKSNodeGroup) BuildResource added in v0.9.9

func (a *EKSNodeGroup) BuildResource() *schema.Resource

func (*EKSNodeGroup) CoreType added in v0.10.14

func (a *EKSNodeGroup) CoreType() string

func (*EKSNodeGroup) PopulateUsage added in v0.9.9

func (a *EKSNodeGroup) PopulateUsage(u *schema.UsageData)

func (*EKSNodeGroup) UsageSchema added in v0.10.14

func (a *EKSNodeGroup) UsageSchema() []*schema.UsageItem

type ELB added in v0.9.17

type ELB struct {
	Address                string
	Region                 string
	MonthlyDataProcessedGB *float64 `infracost_usage:"monthly_data_processed_gb"`
}

func (*ELB) BuildResource added in v0.9.17

func (r *ELB) BuildResource() *schema.Resource

func (*ELB) CoreType added in v0.10.35

func (r *ELB) CoreType() string

func (*ELB) PopulateUsage added in v0.9.17

func (r *ELB) PopulateUsage(u *schema.UsageData)

func (*ELB) UsageSchema added in v0.10.35

func (r *ELB) UsageSchema() []*schema.UsageItem

type Ec2TransitGatewayVpcAttachment added in v0.9.17

type Ec2TransitGatewayVpcAttachment struct {
	Address                string
	Region                 string
	VPCRegion              string
	TransitGatewayRegion   string
	MonthlyDataProcessedGB *float64 `infracost_usage:"monthly_data_processed_gb"`
}

func (*Ec2TransitGatewayVpcAttachment) BuildResource added in v0.9.17

func (r *Ec2TransitGatewayVpcAttachment) BuildResource() *schema.Resource

func (*Ec2TransitGatewayVpcAttachment) CoreType added in v0.10.35

func (r *Ec2TransitGatewayVpcAttachment) CoreType() string

func (*Ec2TransitGatewayVpcAttachment) PopulateUsage added in v0.9.17

func (r *Ec2TransitGatewayVpcAttachment) PopulateUsage(u *schema.UsageData)

func (*Ec2TransitGatewayVpcAttachment) UsageSchema added in v0.10.35

func (r *Ec2TransitGatewayVpcAttachment) UsageSchema() []*schema.UsageItem

type ElastiCacheCluster added in v0.9.17

type ElastiCacheCluster struct {
	Address                       string
	Region                        string
	HasReplicationGroup           bool
	NodeType                      string
	Engine                        string
	CacheNodes                    int64
	SnapshotRetentionLimit        int64
	SnapshotStorageSizeGB         *float64 `infracost_usage:"snapshot_storage_size_gb"`
	ReservedInstanceTerm          *string  `infracost_usage:"reserved_instance_term"`
	ReservedInstancePaymentOption *string  `infracost_usage:"reserved_instance_payment_option"`
}

func (*ElastiCacheCluster) BuildResource added in v0.9.17

func (r *ElastiCacheCluster) BuildResource() *schema.Resource

func (*ElastiCacheCluster) CoreType added in v0.10.35

func (r *ElastiCacheCluster) CoreType() string

func (*ElastiCacheCluster) PopulateUsage added in v0.9.17

func (r *ElastiCacheCluster) PopulateUsage(u *schema.UsageData)

func (*ElastiCacheCluster) UsageSchema added in v0.10.35

func (r *ElastiCacheCluster) UsageSchema() []*schema.UsageItem

type ElastiCacheReplicationGroup added in v0.9.17

type ElastiCacheReplicationGroup struct {
	Address                       string
	Region                        string
	NodeType                      string
	Engine                        string
	CacheClusters                 int64
	ClusterNodeGroups             int64
	ClusterReplicasPerNodeGroup   int64
	SnapshotRetentionLimit        int64
	SnapshotStorageSizeGB         *float64 `infracost_usage:"snapshot_storage_size_gb"`
	ReservedInstanceTerm          *string  `infracost_usage:"reserved_instance_term"`
	ReservedInstancePaymentOption *string  `infracost_usage:"reserved_instance_payment_option"`

	AppAutoscalingTarget []*AppAutoscalingTarget
}

func (*ElastiCacheReplicationGroup) BuildResource added in v0.9.17

func (r *ElastiCacheReplicationGroup) BuildResource() *schema.Resource

func (*ElastiCacheReplicationGroup) CoreType added in v0.10.35

func (r *ElastiCacheReplicationGroup) CoreType() string

func (*ElastiCacheReplicationGroup) PopulateUsage added in v0.9.17

func (r *ElastiCacheReplicationGroup) PopulateUsage(u *schema.UsageData)

func (*ElastiCacheReplicationGroup) UsageSchema added in v0.10.35

func (r *ElastiCacheReplicationGroup) UsageSchema() []*schema.UsageItem

type ElasticBeanstalkEnvironment added in v0.9.20

type ElasticBeanstalkEnvironment struct {
	Address string
	Region  string
	Name    string

	LoadBalancerType string

	RootBlockDevice     *EBSVolume
	CloudwatchLogGroup  *CloudwatchLogGroup
	LoadBalancer        *LB
	ElasticLoadBalancer *ELB
	DBInstance          *DBInstance
	LaunchConfiguration *LaunchConfiguration
}

ElasticBeanstalkEnvironment struct represents AWS Elastic Beanstalk environments.

Resource information: https://aws.amazon.com/elasticbeanstalk/ Pricing information: https://aws.amazon.com/elasticbeanstalk/pricing/

func (*ElasticBeanstalkEnvironment) BuildResource added in v0.9.20

func (r *ElasticBeanstalkEnvironment) BuildResource() *schema.Resource

BuildResource builds a schema.Resource from a valid ElasticBeanstalkEnvironment struct. This method is called after the resource is initialised by an IaC provider. See providers folder for more information.

func (*ElasticBeanstalkEnvironment) CoreType added in v0.10.35

func (r *ElasticBeanstalkEnvironment) CoreType() string

func (*ElasticBeanstalkEnvironment) PopulateUsage added in v0.9.20

func (r *ElasticBeanstalkEnvironment) PopulateUsage(u *schema.UsageData)

PopulateUsage parses the u schema.UsageData into the ElasticBeanstalkEnvironment. It uses the `infracost_usage` struct tags to populate data into the ElasticBeanstalkEnvironment.

func (*ElasticBeanstalkEnvironment) UsageSchema added in v0.10.35

func (r *ElasticBeanstalkEnvironment) UsageSchema() []*schema.UsageItem

UsageSchema defines a list which represents the usage schema of ElasticBeanstalkEnvironment. Usage costs for Elastic Beanstalk come from sub resources as it is a wrapper for other AWS services.

type ExtendedSupport added in v0.10.35

type ExtendedSupport struct {
	Engine   string
	Versions map[string]ExtendedSupportDates
}

ExtendedSupport contains the extended support dates for a specific RDS engine.

func (ExtendedSupport) CostComponent added in v0.10.35

func (s ExtendedSupport) CostComponent(version string, region string, d time.Time, quantity decimal.Decimal) *schema.CostComponent

CostComponent returns the cost component for the extended support for the given version and date. If the version is not found then it will return nil.

type ExtendedSupportDates added in v0.10.35

type ExtendedSupportDates struct {
	Year1 time.Time
	Year3 time.Time
}

ExtendedSupportDates contains the extended support dates for a specific RDS engine version Year1 is the date when the extended support starts, Year 3 is the date when the extended increases price.

type FSxOpenZFSFileSystem added in v0.10.14

type FSxOpenZFSFileSystem struct {
	Address                   string
	StorageType               string
	ThroughputCapacity        int64
	ProvisionedIOPS           int64
	ProvisionedIOPSMode       string
	StorageCapacityGB         int64
	Region                    string
	DeploymentType            string
	DataCompression           string
	CompressionSavingsPercent *float64 `infracost_usage:"compression_savings_percent"`
	BackupStorageGB           *float64 `infracost_usage:"backup_storage_gb"`
}

func (*FSxOpenZFSFileSystem) BuildResource added in v0.10.14

func (r *FSxOpenZFSFileSystem) BuildResource() *schema.Resource

func (*FSxOpenZFSFileSystem) CoreType added in v0.10.35

func (r *FSxOpenZFSFileSystem) CoreType() string

func (*FSxOpenZFSFileSystem) PopulateUsage added in v0.10.14

func (r *FSxOpenZFSFileSystem) PopulateUsage(u *schema.UsageData)

func (*FSxOpenZFSFileSystem) UsageSchema added in v0.10.35

func (r *FSxOpenZFSFileSystem) UsageSchema() []*schema.UsageItem

type FSxWindowsFileSystem added in v0.9.17

type FSxWindowsFileSystem struct {
	Address            string
	StorageType        string
	ThroughputCapacity int64
	StorageCapacityGB  int64
	Region             string
	DeploymentType     string
	BackupStorageGB    *float64 `infracost_usage:"backup_storage_gb"`
}

func (*FSxWindowsFileSystem) BuildResource added in v0.9.17

func (r *FSxWindowsFileSystem) BuildResource() *schema.Resource

func (*FSxWindowsFileSystem) CoreType added in v0.10.35

func (r *FSxWindowsFileSystem) CoreType() string

func (*FSxWindowsFileSystem) PopulateUsage added in v0.9.17

func (r *FSxWindowsFileSystem) PopulateUsage(u *schema.UsageData)

func (*FSxWindowsFileSystem) UsageSchema added in v0.10.35

func (r *FSxWindowsFileSystem) UsageSchema() []*schema.UsageItem

type GlobalAccelerator added in v0.10.4

type GlobalAccelerator struct {
	Address string
}

GlobalAccelerator struct represents AWS Global Accelerator service

Resource information: https://aws.amazon.com/global-accelerator Pricing information: https://aws.amazon.com/global-accelerator/pricing/

func (*GlobalAccelerator) BuildResource added in v0.10.4

func (r *GlobalAccelerator) BuildResource() *schema.Resource

func (*GlobalAccelerator) CoreType added in v0.10.35

func (r *GlobalAccelerator) CoreType() string

func (*GlobalAccelerator) PopulateUsage added in v0.10.35

func (r *GlobalAccelerator) PopulateUsage(u *schema.UsageData)

func (*GlobalAccelerator) UsageSchema added in v0.10.35

func (r *GlobalAccelerator) UsageSchema() []*schema.UsageItem

type GlobalacceleratorEndpointGroup added in v0.10.4

type GlobalacceleratorEndpointGroup struct {
	Address string
	Region  string

	MonthlyInboundDataTransferGB  *globalAcceleratorRegionDataTransferUsage `infracost_usage:"monthly_inbound_data_transfer_gb"`
	MonthlyOutboundDataTransferGB *globalAcceleratorRegionDataTransferUsage `infracost_usage:"monthly_outbound_data_transfer_gb"`
}

GlobalacceleratorEndpointGroup struct represents a Global Accelerator endpoint group

Resource information: https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups.html Pricing information: https://aws.amazon.com/it/global-accelerator/pricing/

func (*GlobalacceleratorEndpointGroup) BuildResource added in v0.10.4

func (r *GlobalacceleratorEndpointGroup) BuildResource() *schema.Resource

func (*GlobalacceleratorEndpointGroup) CoreType added in v0.10.35

func (r *GlobalacceleratorEndpointGroup) CoreType() string

func (*GlobalacceleratorEndpointGroup) PopulateUsage added in v0.10.4

func (r *GlobalacceleratorEndpointGroup) PopulateUsage(u *schema.UsageData)

func (*GlobalacceleratorEndpointGroup) UsageSchema added in v0.10.35

func (r *GlobalacceleratorEndpointGroup) UsageSchema() []*schema.UsageItem

type GlueCatalogDatabase added in v0.9.21

type GlueCatalogDatabase struct {
	Address string
	Region  string

	MonthlyObjects  *float64 `infracost_usage:"monthly_objects"`
	MonthlyRequests *float64 `infracost_usage:"monthly_requests"`
}

GlueCatalogDatabase struct represents a serverless AWS Glue catalog. A Glue catalog is a database designed to store raw data fetched from Glue crawlers before the data is cleaned and transformed by a Glue job.

GlueCatalogDatabase is just one resource of the wider AWS Glue service, which provides a number of different serverless services to build a robust data analytics pipeline.

Resource information: https://aws.amazon.com/glue/ Pricing information: https://aws.amazon.com/glue/pricing/

func (*GlueCatalogDatabase) BuildResource added in v0.9.21

func (r *GlueCatalogDatabase) BuildResource() *schema.Resource

BuildResource builds a schema.Resource from a valid GlueCatalogDatabase struct. GlueCatalogDatabase has the following schema.CostComponents associated with it:

  1. Storage - charged for every 100,000 objects stored above 1M, per month.
  2. MonthlyAdditionalRequests - charged per million requests above 1M in a month.

This method is called after the resource is initialised by an IaC provider. See providers folder for more information.

func (*GlueCatalogDatabase) CoreType added in v0.10.35

func (r *GlueCatalogDatabase) CoreType() string

func (*GlueCatalogDatabase) PopulateUsage added in v0.9.21

func (r *GlueCatalogDatabase) PopulateUsage(u *schema.UsageData)

PopulateUsage parses the u schema.UsageData into the GlueCatalogDatabase. It uses the `infracost_usage` struct tags to populate data into the GlueCatalogDatabase.

func (*GlueCatalogDatabase) UsageSchema added in v0.10.35

func (r *GlueCatalogDatabase) UsageSchema() []*schema.UsageItem

type GlueCrawler added in v0.9.21

type GlueCrawler struct {
	Address string
	Region  string

	MonthlyHours *float64 `infracost_usage:"monthly_hours"`
}

GlueCrawler struct represents a serverless AWS Glue crawler. A Glue crawler crawls defined data sources and sends them into a Glue data catalog, ready for a Glue job to transform and merge into a main dataset/lake.

GlueCrawler is just one resource of the wider AWS Glue service, which provides a number of different serverless services to build a robust data analytics pipeline.

Resource information: https://aws.amazon.com/glue/ Pricing information: https://aws.amazon.com/glue/pricing/

func (*GlueCrawler) BuildResource added in v0.9.21

func (r *GlueCrawler) BuildResource() *schema.Resource

BuildResource builds a schema.Resource from a valid GlueCrawler struct. GlueCrawler has just one schema.CostComponent associated with it:

  1. Hours - GlueCrawler is charged per hour that the crawler is run.

This method is called after the resource is initialised by an IaC provider. See providers folder for more information.

func (*GlueCrawler) CoreType added in v0.10.35

func (r *GlueCrawler) CoreType() string

func (*GlueCrawler) PopulateUsage added in v0.9.21

func (r *GlueCrawler) PopulateUsage(u *schema.UsageData)

PopulateUsage parses the u schema.UsageData into the GlueCrawler. It uses the `infracost_usage` struct tags to populate data into the GlueCrawler.

func (*GlueCrawler) UsageSchema added in v0.10.35

func (r *GlueCrawler) UsageSchema() []*schema.UsageItem

type GlueJob added in v0.9.21

type GlueJob struct {
	Address string
	Region  string
	DPUs    float64

	MonthlyHours *float64 `infracost_usage:"monthly_hours"`
}

GlueJob struct represents a serverless AWS Glue job. A Glue job is designed to clean, transform and merge data into a data lake so that it is easy to analyze.

GlueJob is just one resource of the wider AWS Glue service, which provides a number of different serverless services to build a robust data analytics pipeline.

Resource information: https://aws.amazon.com/glue/ Pricing information: https://aws.amazon.com/glue/pricing/

func (*GlueJob) BuildResource added in v0.9.21

func (r *GlueJob) BuildResource() *schema.Resource

BuildResource builds a schema.Resource from a valid GlueJob struct. GlueJob has just one schema.CostComponent associated with it:

  1. DPU hours - GlueJob is charged per hour that the job is run. Users are charged based on the number of DPU units they use in that time.

This method is called after the resource is initialised by an IaC provider. See providers folder for more information.

func (*GlueJob) CoreType added in v0.10.35

func (r *GlueJob) CoreType() string

func (*GlueJob) PopulateUsage added in v0.9.21

func (r *GlueJob) PopulateUsage(u *schema.UsageData)

PopulateUsage parses the u schema.UsageData into the GlueJob. It uses the `infracost_usage` struct tags to populate data into the GlueJob.

func (*GlueJob) UsageSchema added in v0.10.35

func (r *GlueJob) UsageSchema() []*schema.UsageItem

type Instance added in v0.9.9

type Instance struct {
	// "required" args that can't really be missing.
	Address          string
	Region           string
	Tenancy          string
	PurchaseOption   string
	AMI              string
	InstanceType     string
	EBSOptimized     bool
	EnableMonitoring bool
	CPUCredits       string
	HasHost          bool

	// "optional" args, that may be empty depending on the resource config
	ElasticInferenceAcceleratorType *string
	RootBlockDevice                 *EBSVolume
	EBSBlockDevices                 []*EBSVolume

	// "usage" args
	OperatingSystem               *string  `infracost_usage:"operating_system"`
	ReservedInstanceType          *string  `infracost_usage:"reserved_instance_type"`
	ReservedInstanceTerm          *string  `infracost_usage:"reserved_instance_term"`
	ReservedInstancePaymentOption *string  `infracost_usage:"reserved_instance_payment_option"`
	MonthlyCPUCreditHours         *int64   `infracost_usage:"monthly_cpu_credit_hrs"`
	VCPUCount                     *int64   `infracost_usage:"vcpu_count"`
	MonthlyHours                  *float64 `infracost_usage:"monthly_hrs"`
}

func (*Instance) BuildResource added in v0.9.9

func (a *Instance) BuildResource() *schema.Resource

func (*Instance) CoreType added in v0.10.14

func (a *Instance) CoreType() string

func (*Instance) PopulateUsage added in v0.9.9

func (a *Instance) PopulateUsage(u *schema.UsageData)

func (*Instance) UsageSchema added in v0.10.14

func (a *Instance) UsageSchema() []*schema.UsageItem

type KMSExternalKey added in v0.9.17

type KMSExternalKey struct {
	Address string
	Region  string
}

func (*KMSExternalKey) BuildResource added in v0.9.17

func (r *KMSExternalKey) BuildResource() *schema.Resource

func (*KMSExternalKey) CoreType added in v0.10.35

func (r *KMSExternalKey) CoreType() string

func (*KMSExternalKey) PopulateUsage added in v0.9.17

func (r *KMSExternalKey) PopulateUsage(u *schema.UsageData)

func (*KMSExternalKey) UsageSchema added in v0.10.35

func (r *KMSExternalKey) UsageSchema() []*schema.UsageItem

type KMSKey added in v0.9.17

type KMSKey struct {
	Address               string
	Region                string
	CustomerMasterKeySpec string
}

func (*KMSKey) BuildResource added in v0.9.17

func (r *KMSKey) BuildResource() *schema.Resource

func (*KMSKey) CoreType added in v0.10.35

func (r *KMSKey) CoreType() string

func (*KMSKey) PopulateUsage added in v0.9.17

func (r *KMSKey) PopulateUsage(u *schema.UsageData)

func (*KMSKey) UsageSchema added in v0.10.35

func (r *KMSKey) UsageSchema() []*schema.UsageItem

type KinesisAnalyticsApplication added in v0.9.17

type KinesisAnalyticsApplication struct {
	Address                string
	Region                 string
	KinesisProcessingUnits *int64 `infracost_usage:"kinesis_processing_units"`
}

func (*KinesisAnalyticsApplication) BuildResource added in v0.9.17

func (r *KinesisAnalyticsApplication) BuildResource() *schema.Resource

func (*KinesisAnalyticsApplication) CoreType added in v0.10.35

func (r *KinesisAnalyticsApplication) CoreType() string

func (*KinesisAnalyticsApplication) PopulateUsage added in v0.9.17

func (r *KinesisAnalyticsApplication) PopulateUsage(u *schema.UsageData)

func (*KinesisAnalyticsApplication) UsageSchema added in v0.10.35

func (r *KinesisAnalyticsApplication) UsageSchema() []*schema.UsageItem

type KinesisAnalyticsV2Application added in v0.9.17

type KinesisAnalyticsV2Application struct {
	Address                    string
	Region                     string
	RuntimeEnvironment         string
	KinesisProcessingUnits     *int64   `infracost_usage:"kinesis_processing_units"`
	DurableApplicationBackupGB *float64 `infracost_usage:"durable_application_backup_gb"`
}

func (*KinesisAnalyticsV2Application) BuildResource added in v0.9.17

func (r *KinesisAnalyticsV2Application) BuildResource() *schema.Resource

func (*KinesisAnalyticsV2Application) CoreType added in v0.10.35

func (r *KinesisAnalyticsV2Application) CoreType() string

func (*KinesisAnalyticsV2Application) PopulateUsage added in v0.9.17

func (r *KinesisAnalyticsV2Application) PopulateUsage(u *schema.UsageData)

func (*KinesisAnalyticsV2Application) UsageSchema added in v0.10.35

func (r *KinesisAnalyticsV2Application) UsageSchema() []*schema.UsageItem

type KinesisAnalyticsV2ApplicationSnapshot added in v0.9.17

type KinesisAnalyticsV2ApplicationSnapshot struct {
	Address                    string
	Region                     string
	DurableApplicationBackupGB *float64 `infracost_usage:"durable_application_backup_gb"`
}

func (*KinesisAnalyticsV2ApplicationSnapshot) BuildResource added in v0.9.17

func (*KinesisAnalyticsV2ApplicationSnapshot) CoreType added in v0.10.35

func (*KinesisAnalyticsV2ApplicationSnapshot) PopulateUsage added in v0.9.17

func (*KinesisAnalyticsV2ApplicationSnapshot) UsageSchema added in v0.10.35

type KinesisFirehoseDeliveryStream added in v0.9.17

type KinesisFirehoseDeliveryStream struct {
	Address                     string
	Region                      string
	DataFormatConversionEnabled bool
	VPCDeliveryEnabled          bool
	VPCDeliveryAZs              int64
	MonthlyDataIngestedGB       *float64 `infracost_usage:"monthly_data_ingested_gb"`
}

func (*KinesisFirehoseDeliveryStream) BuildResource added in v0.9.17

func (r *KinesisFirehoseDeliveryStream) BuildResource() *schema.Resource

func (*KinesisFirehoseDeliveryStream) CoreType added in v0.10.35

func (r *KinesisFirehoseDeliveryStream) CoreType() string

func (*KinesisFirehoseDeliveryStream) PopulateUsage added in v0.9.17

func (r *KinesisFirehoseDeliveryStream) PopulateUsage(u *schema.UsageData)

func (*KinesisFirehoseDeliveryStream) UsageSchema added in v0.10.35

func (r *KinesisFirehoseDeliveryStream) UsageSchema() []*schema.UsageItem

type KinesisStream added in v0.10.30

type KinesisStream struct {
	Address    string
	Region     string
	StreamMode string
	ShardCount int64

	// Usage fields
	// On demand
	MonthlyOnDemandDataIngestedGB      *float64 `infracost_usage:"monthly_on_demand_data_in_gb"`
	MonthlyOnDemandDataRetrievalGB     *float64 `infracost_usage:"monthly_on_demand_data_out_gb"`
	MonthlyOnDemandEFODataRetrievalGB  *float64 `infracost_usage:"monthly_on_demand_efo_data_out_gb"`
	MonthlyOnDemandExtendedRetentionGb *float64 `infracost_usage:"monthly_on_demand_extended_retention_gb"`
	MonthlyOnDemandLongTermRetentionGb *float64 `infracost_usage:"monthly_on_demand_long_term_retention_gb"`
	// Provisioned
	MonthlyProvisionedPutUnits            *float64 `infracost_usage:"monthly_provisioned_put_units"`
	MonthlyProvisionedExtendedRetentionGb *float64 `infracost_usage:"monthly_provisioned_extended_retention_gb"`
	MonthlyProvisionedLongTermRetentionGb *float64 `infracost_usage:"monthly_provisioned_long_term_retention_gb"`
	MonthlyProvisionedLongTermRetrievalGb *float64 `infracost_usage:"monthly_provisioned_long_term_retrieval_gb"`
	MonthlyProvisionedEFODataRetrievalGB  *float64 `infracost_usage:"monthly_provisioned_efo_data_out_gb"`
	MonthlyProvisionedEFOConsumerHours    *float64 `infracost_usage:"monthly_provisioned_efo_consumer_hours"`
}

KinesisStream struct represents Kinesis Data Streams a fully managed, serverless streaming data service

Resource information: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kinesis_stream Pricing information: https://aws.amazon.com/kinesis/data-streams/pricing/

func (*KinesisStream) BuildResource added in v0.10.30

func (r *KinesisStream) BuildResource() *schema.Resource

BuildResource builds a schema.Resource from a valid KinesisStream struct. This method is called after the resource is initialized by an IaC provider. See providers folder for more information.

func (*KinesisStream) CoreType added in v0.10.30

func (r *KinesisStream) CoreType() string

CoreType returns the name of this resource type

func (*KinesisStream) PopulateUsage added in v0.10.30

func (r *KinesisStream) PopulateUsage(u *schema.UsageData)

PopulateUsage parses the u schema.UsageData into the KinesisStream. It uses the `infracost_usage` struct tags to populate data into the KinesisStream.

func (*KinesisStream) UsageSchema added in v0.10.30

func (r *KinesisStream) UsageSchema() []*schema.UsageItem

UsageSchema defines a list which represents the usage schema of KinesisStream.

type LB added in v0.9.17

type LB struct {
	Address           string
	LoadBalancerType  string
	Region            string
	RuleEvaluations   *int64   `infracost_usage:"rule_evaluations"`
	NewConnections    *int64   `infracost_usage:"new_connections"`
	ActiveConnections *int64   `infracost_usage:"active_connections"`
	ProcessedBytesGB  *float64 `infracost_usage:"processed_bytes_gb"`
}

func (*LB) BuildResource added in v0.9.17

func (r *LB) BuildResource() *schema.Resource

func (*LB) CoreType added in v0.10.35

func (r *LB) CoreType() string

func (*LB) PopulateUsage added in v0.9.17

func (r *LB) PopulateUsage(u *schema.UsageData)

func (*LB) UsageSchema added in v0.10.35

func (r *LB) UsageSchema() []*schema.UsageItem

type LambdaFunction added in v0.9.8

type LambdaFunction struct {
	Address      string
	Region       string
	Name         string
	MemorySize   int64
	Architecture string
	StorageSize  int64

	RequestDurationMS *int64 `infracost_usage:"request_duration_ms"`
	MonthlyRequests   *int64 `infracost_usage:"monthly_requests"`
}

func (*LambdaFunction) BuildResource added in v0.9.8

func (a *LambdaFunction) BuildResource() *schema.Resource

func (*LambdaFunction) CoreType added in v0.10.13

func (a *LambdaFunction) CoreType() string

func (*LambdaFunction) PopulateUsage added in v0.9.8

func (a *LambdaFunction) PopulateUsage(u *schema.UsageData)

func (*LambdaFunction) UsageEstimationParams added in v0.10.13

func (a *LambdaFunction) UsageEstimationParams() []schema.UsageParam

func (*LambdaFunction) UsageSchema added in v0.10.13

func (a *LambdaFunction) UsageSchema() []*schema.UsageItem

type LambdaProvisionedConcurrencyConfig added in v0.10.18

type LambdaProvisionedConcurrencyConfig struct {
	Address                         string
	Region                          string
	Name                            string
	ProvisionedConcurrentExecutions int64

	MonthlyDurationHours *int64  `infracost_usage:"monthly_duration_hrs"`
	MonthlyRequests      *int64  `infracost_usage:"monthly_requests"`
	RequestDurationMS    *int64  `infracost_usage:"request_duration_ms"`
	Architecture         *string `infracost_usage:"architecture"`
	MemoryMB             *int64  `infracost_usage:"memory_mb"`
}

LambdaProvisionedConcurrencyConfig initializes a requested number of execution environments so that they are prepared to respond immediately to your functions invocations. Configuring provisioned concurrency incurs charges to your AWS Account.

Resource information: https://docs.aws.amazon.com/lambda/latest/dg/lambda-concurrency.html Pricing information: https://aws.amazon.com/lambda/pricing/#Provisioned_Concurrency_Pricing

func (*LambdaProvisionedConcurrencyConfig) BuildResource added in v0.10.18

func (*LambdaProvisionedConcurrencyConfig) CoreType added in v0.10.35

func (*LambdaProvisionedConcurrencyConfig) PopulateUsage added in v0.10.18

func (*LambdaProvisionedConcurrencyConfig) UsageSchema added in v0.10.35

type LaunchConfiguration added in v0.9.9

type LaunchConfiguration struct {
	// "required" args that can't really be missing.
	Address          string
	Region           string
	Tenancy          string
	PurchaseOption   string
	AMI              string
	InstanceType     string
	EBSOptimized     bool
	EnableMonitoring bool
	CPUCredits       string

	// "optional" args, that may be empty depending on the resource config
	ElasticInferenceAcceleratorType *string
	RootBlockDevice                 *EBSVolume
	EBSBlockDevices                 []*EBSVolume

	// "usage" args
	// These are populated from the Autoscaling Group resource
	InstanceCount                 *int64  `infracost_usage:"instances"`
	OperatingSystem               *string `infracost_usage:"operating_system"`
	ReservedInstanceType          *string `infracost_usage:"reserved_instance_type"`
	ReservedInstanceTerm          *string `infracost_usage:"reserved_instance_term"`
	ReservedInstancePaymentOption *string `infracost_usage:"reserved_instance_payment_option"`
	MonthlyCPUCreditHours         *int64  `infracost_usage:"monthly_cpu_credit_hrs"`
	VCPUCount                     *int64  `infracost_usage:"vcpu_count"`
}

func (*LaunchConfiguration) BuildResource added in v0.9.9

func (a *LaunchConfiguration) BuildResource() *schema.Resource

func (*LaunchConfiguration) CoreType added in v0.10.35

func (r *LaunchConfiguration) CoreType() string

func (*LaunchConfiguration) PopulateUsage added in v0.9.9

func (a *LaunchConfiguration) PopulateUsage(u *schema.UsageData)

func (*LaunchConfiguration) UsageSchema added in v0.10.35

func (r *LaunchConfiguration) UsageSchema() []*schema.UsageItem

type LaunchTemplate added in v0.9.9

type LaunchTemplate struct {
	// "required" args that can't really be missing.
	Address                          string
	Region                           string
	AMI                              string
	OnDemandBaseCount                int64
	OnDemandPercentageAboveBaseCount int64
	Tenancy                          string
	InstanceType                     string
	EBSOptimized                     bool
	EnableMonitoring                 bool
	CPUCredits                       string

	// "optional" args, that may be empty depending on the resource config
	ElasticInferenceAcceleratorType *string
	RootBlockDevice                 *EBSVolume
	EBSBlockDevices                 []*EBSVolume

	// "usage" args
	// These are populated from the Autoscaling Group/EKS Node Group resource
	InstanceCount                 *int64  `infracost_usage:"instances"`
	OperatingSystem               *string `infracost_usage:"operating_system"`
	ReservedInstanceType          *string `infracost_usage:"reserved_instance_type"`
	ReservedInstanceTerm          *string `infracost_usage:"reserved_instance_term"`
	ReservedInstancePaymentOption *string `infracost_usage:"reserved_instance_payment_option"`
	MonthlyCPUCreditHours         *int64  `infracost_usage:"monthly_cpu_credit_hrs"`
	VCPUCount                     *int64  `infracost_usage:"vcpu_count"`
}

func (*LaunchTemplate) BuildResource added in v0.9.9

func (a *LaunchTemplate) BuildResource() *schema.Resource

func (*LaunchTemplate) CoreType added in v0.10.35

func (r *LaunchTemplate) CoreType() string

func (*LaunchTemplate) PopulateUsage added in v0.9.9

func (a *LaunchTemplate) PopulateUsage(u *schema.UsageData)

func (*LaunchTemplate) UsageSchema added in v0.10.35

func (r *LaunchTemplate) UsageSchema() []*schema.UsageItem

type LightsailInstance added in v0.9.17

type LightsailInstance struct {
	Address  string
	Region   string
	BundleID string
}

func (*LightsailInstance) BuildResource added in v0.9.17

func (r *LightsailInstance) BuildResource() *schema.Resource

func (*LightsailInstance) CoreType added in v0.10.35

func (r *LightsailInstance) CoreType() string

func (*LightsailInstance) PopulateUsage added in v0.9.17

func (r *LightsailInstance) PopulateUsage(u *schema.UsageData)

func (*LightsailInstance) UsageSchema added in v0.10.35

func (r *LightsailInstance) UsageSchema() []*schema.UsageItem

type MQBroker added in v0.9.17

type MQBroker struct {
	Address          string
	StorageType      string
	DeploymentMode   string
	Region           string
	EngineType       string
	HostInstanceType string
	StorageSizeGb    *float64 `infracost_usage:"storage_size_gb"`
}

func (*MQBroker) BuildResource added in v0.9.17

func (r *MQBroker) BuildResource() *schema.Resource

func (*MQBroker) CoreType added in v0.10.35

func (r *MQBroker) CoreType() string

func (*MQBroker) PopulateUsage added in v0.9.17

func (r *MQBroker) PopulateUsage(u *schema.UsageData)

func (*MQBroker) UsageSchema added in v0.10.35

func (r *MQBroker) UsageSchema() []*schema.UsageItem

type MSKCluster added in v0.9.17

type MSKCluster struct {
	Address                 string
	Region                  string
	BrokerNodes             int64
	BrokerNodeInstanceType  string
	BrokerNodeEBSVolumeSize int64

	// "optional" args, that may be empty depending on the resource config
	AppAutoscalingTarget []*AppAutoscalingTarget
}

func (*MSKCluster) BuildResource added in v0.9.17

func (r *MSKCluster) BuildResource() *schema.Resource

func (*MSKCluster) CoreType added in v0.10.35

func (r *MSKCluster) CoreType() string

func (*MSKCluster) PopulateUsage added in v0.9.17

func (r *MSKCluster) PopulateUsage(u *schema.UsageData)

func (*MSKCluster) UsageSchema added in v0.10.35

func (r *MSKCluster) UsageSchema() []*schema.UsageItem

type MWAAEnvironment added in v0.9.10

type MWAAEnvironment struct {
	// These fields are required since they are pulled directly from the IAC configuration (e.g. the terraform plan)
	Address string
	Region  string
	Size    string // Should be Small, Medium, or Large

	// If there is a parameter than needs to be read from infracost-usage.yml you define it like this:
	AdditionalWorkers    *float64 `infracost_usage:"additional_workers"`
	AdditionalSchedulers *float64 `infracost_usage:"additional_schedulers"`
	MetaDatabaseGB       *float64 `infracost_usage:"meta_database_gb"`
}

func (*MWAAEnvironment) BuildResource added in v0.9.10

func (a *MWAAEnvironment) BuildResource() *schema.Resource

func (*MWAAEnvironment) CoreType added in v0.10.35

func (a *MWAAEnvironment) CoreType() string

If the resource requires a usage parameter

func (*MWAAEnvironment) PopulateUsage added in v0.9.10

func (a *MWAAEnvironment) PopulateUsage(u *schema.UsageData)

If the resource requires a usage parameter

func (*MWAAEnvironment) UsageSchema added in v0.10.35

func (a *MWAAEnvironment) UsageSchema() []*schema.UsageItem

type NATGateway added in v0.9.8

type NATGateway struct {
	Address string
	Region  string

	MonthlyDataProcessedGB *float64 `infracost_usage:"monthly_data_processed_gb"`
}

func (*NATGateway) BuildResource added in v0.9.8

func (a *NATGateway) BuildResource() *schema.Resource

func (*NATGateway) CoreType added in v0.10.35

func (a *NATGateway) CoreType() string

func (*NATGateway) PopulateUsage added in v0.9.8

func (a *NATGateway) PopulateUsage(u *schema.UsageData)

func (*NATGateway) UsageSchema added in v0.10.35

func (a *NATGateway) UsageSchema() []*schema.UsageItem

type NeptuneCluster added in v0.9.17

type NeptuneCluster struct {
	Address               string
	Region                string
	BackupRetentionPeriod int64
	StorageGB             *float64 `infracost_usage:"storage_gb"`
	MonthlyIORequests     *int64   `infracost_usage:"monthly_io_requests"`
	BackupStorageGB       *float64 `infracost_usage:"backup_storage_gb"`
}

func (*NeptuneCluster) BuildResource added in v0.9.17

func (r *NeptuneCluster) BuildResource() *schema.Resource

func (*NeptuneCluster) CoreType added in v0.10.35

func (r *NeptuneCluster) CoreType() string

func (*NeptuneCluster) PopulateUsage added in v0.9.17

func (r *NeptuneCluster) PopulateUsage(u *schema.UsageData)

func (*NeptuneCluster) UsageSchema added in v0.10.35

func (r *NeptuneCluster) UsageSchema() []*schema.UsageItem

type NeptuneClusterInstance added in v0.9.17

type NeptuneClusterInstance struct {
	Address             string
	Region              string
	InstanceClass       string
	IOOptimized         bool
	Count               *int64
	MonthlyCPUCreditHrs *int64 `infracost_usage:"monthly_cpu_credit_hrs"`
}

func (*NeptuneClusterInstance) BuildResource added in v0.9.17

func (r *NeptuneClusterInstance) BuildResource() *schema.Resource

func (*NeptuneClusterInstance) CoreType added in v0.10.35

func (r *NeptuneClusterInstance) CoreType() string

func (*NeptuneClusterInstance) PopulateUsage added in v0.9.17

func (r *NeptuneClusterInstance) PopulateUsage(u *schema.UsageData)

func (*NeptuneClusterInstance) UsageSchema added in v0.10.35

func (r *NeptuneClusterInstance) UsageSchema() []*schema.UsageItem

type NeptuneClusterSnapshot added in v0.9.17

type NeptuneClusterSnapshot struct {
	Address               string
	Region                string
	BackupRetentionPeriod *int64   // This can be unknown since it's retrieved from the Neptune cluster
	BackupStorageGB       *float64 `infracost_usage:"backup_storage_gb"`
}

func (*NeptuneClusterSnapshot) BuildResource added in v0.9.17

func (r *NeptuneClusterSnapshot) BuildResource() *schema.Resource

func (*NeptuneClusterSnapshot) CoreType added in v0.10.35

func (r *NeptuneClusterSnapshot) CoreType() string

func (*NeptuneClusterSnapshot) PopulateUsage added in v0.9.17

func (r *NeptuneClusterSnapshot) PopulateUsage(u *schema.UsageData)

func (*NeptuneClusterSnapshot) UsageSchema added in v0.10.35

func (r *NeptuneClusterSnapshot) UsageSchema() []*schema.UsageItem

type NetworkfirewallFirewall added in v0.9.21

type NetworkfirewallFirewall struct {
	Address string
	Region  string

	MonthlyDataProcessedGB *float64 `infracost_usage:"monthly_data_processed_gb"`
}

NetworkfirewallFirewall struct represents an AWS Network Firewall Firewall resource.

Resource information: https://aws.amazon.com/network-firewall/ Pricing information: https://aws.amazon.com/network-firewall/pricing/

func (*NetworkfirewallFirewall) BuildResource added in v0.9.21

func (r *NetworkfirewallFirewall) BuildResource() *schema.Resource

BuildResource builds a schema.Resource from a valid NetworkfirewallFirewall struct. This method is called after the resource is initialised by an IaC provider. See providers folder for more information.

func (*NetworkfirewallFirewall) CoreType added in v0.10.35

func (r *NetworkfirewallFirewall) CoreType() string

NetworkfirewallFirewallUsageSchema defines a list which represents the usage schema of NetworkfirewallFirewall.

func (*NetworkfirewallFirewall) PopulateUsage added in v0.9.21

func (r *NetworkfirewallFirewall) PopulateUsage(u *schema.UsageData)

PopulateUsage parses the u schema.UsageData into the NetworkfirewallFirewall. It uses the `infracost_usage` struct tags to populate data into the NetworkfirewallFirewall.

func (*NetworkfirewallFirewall) UsageSchema added in v0.10.35

func (r *NetworkfirewallFirewall) UsageSchema() []*schema.UsageItem

type RDSCluster added in v0.9.17

type RDSCluster struct {
	Address                   string
	Region                    string
	EngineMode                string
	Engine                    string
	BackupRetentionPeriod     int64
	WriteRequestsPerSec       *int64   `infracost_usage:"write_requests_per_sec"`
	ReadRequestsPerSec        *int64   `infracost_usage:"read_requests_per_sec"`
	ChangeRecordsPerStatement *float64 `infracost_usage:"change_records_per_statement"`
	StorageGB                 *float64 `infracost_usage:"storage_gb"`
	AverageStatementsPerHr    *int64   `infracost_usage:"average_statements_per_hr"`
	BacktrackWindowHrs        *int64   `infracost_usage:"backtrack_window_hrs"`
	SnapshotExportSizeGB      *float64 `infracost_usage:"snapshot_export_size_gb"`
	CapacityUnitsPerHr        *int64   `infracost_usage:"capacity_units_per_hr"`
	BackupSnapshotSizeGB      *float64 `infracost_usage:"backup_snapshot_size_gb"`
}

func (*RDSCluster) BuildResource added in v0.9.17

func (r *RDSCluster) BuildResource() *schema.Resource

func (*RDSCluster) CoreType added in v0.10.35

func (r *RDSCluster) CoreType() string

func (*RDSCluster) PopulateUsage added in v0.9.17

func (r *RDSCluster) PopulateUsage(u *schema.UsageData)

func (*RDSCluster) UsageSchema added in v0.10.35

func (r *RDSCluster) UsageSchema() []*schema.UsageItem

type RDSClusterInstance added in v0.9.17

type RDSClusterInstance struct {
	Address                                      string
	Region                                       string
	InstanceClass                                string
	Engine                                       string
	Version                                      string
	IOOptimized                                  bool
	PerformanceInsightsEnabled                   bool
	PerformanceInsightsLongTermRetention         bool
	MonthlyCPUCreditHrs                          *int64  `infracost_usage:"monthly_cpu_credit_hrs"`
	VCPUCount                                    *int64  `infracost_usage:"vcpu_count"`
	MonthlyAdditionalPerformanceInsightsRequests *int64  `infracost_usage:"monthly_additional_performance_insights_requests"`
	ReservedInstanceTerm                         *string `infracost_usage:"reserved_instance_term"`
	ReservedInstancePaymentOption                *string `infracost_usage:"reserved_instance_payment_option"`
}

func (*RDSClusterInstance) BuildResource added in v0.9.17

func (r *RDSClusterInstance) BuildResource() *schema.Resource

func (*RDSClusterInstance) CoreType added in v0.10.35

func (r *RDSClusterInstance) CoreType() string

func (*RDSClusterInstance) PopulateUsage added in v0.9.17

func (r *RDSClusterInstance) PopulateUsage(u *schema.UsageData)

func (*RDSClusterInstance) UsageSchema added in v0.10.35

func (r *RDSClusterInstance) UsageSchema() []*schema.UsageItem

type RedshiftCluster added in v0.9.17

type RedshiftCluster struct {
	Address                      string
	Region                       string
	NodeType                     string
	Nodes                        *int64
	ManagedStorageGB             *float64 `infracost_usage:"managed_storage_gb"`
	ExcessConcurrencyScalingSecs *int64   `infracost_usage:"excess_concurrency_scaling_secs"`
	SpectrumDataScannedTB        *float64 `infracost_usage:"spectrum_data_scanned_tb"`
	BackupStorageGB              *float64 `infracost_usage:"backup_storage_gb"`
}

func (*RedshiftCluster) BuildResource added in v0.9.17

func (r *RedshiftCluster) BuildResource() *schema.Resource

func (*RedshiftCluster) CoreType added in v0.10.35

func (r *RedshiftCluster) CoreType() string

func (*RedshiftCluster) PopulateUsage added in v0.9.17

func (r *RedshiftCluster) PopulateUsage(u *schema.UsageData)

func (*RedshiftCluster) UsageSchema added in v0.10.35

func (r *RedshiftCluster) UsageSchema() []*schema.UsageItem

type RegionUsage added in v0.9.12

type RegionUsage struct {
	Key   string
	Value float64
}

RegionUsage defines a hard definition in the regions map.

type RegionsUsage added in v0.9.12

type RegionsUsage struct {
	USGovWest1   *float64 `infracost_usage:"us_gov_west_1"`
	USGovEast1   *float64 `infracost_usage:"us_gov_east_1"`
	USEast1      *float64 `infracost_usage:"us_east_1"`
	USEast2      *float64 `infracost_usage:"us_east_2"`
	USWest1      *float64 `infracost_usage:"us_west_1"`
	USWest2      *float64 `infracost_usage:"us_west_2"`
	USWest2Lax1  *float64 `infracost_usage:"us_west_2_lax_1"`
	CACentral1   *float64 `infracost_usage:"ca_central_1"`
	CAWest1      *float64 `infracost_usage:"ca_west_1"`
	CNNorth1     *float64 `infracost_usage:"cn_north_1"`
	CNNorthwest1 *float64 `infracost_usage:"cn_northwest_1"`
	EUCentral1   *float64 `infracost_usage:"eu_central_1"`
	EUWest1      *float64 `infracost_usage:"eu_west_1"`
	EUWest2      *float64 `infracost_usage:"eu_west_2"`
	EUSouth1     *float64 `infracost_usage:"eu_south_1"`
	EUWest3      *float64 `infracost_usage:"eu_west_3"`
	EUNorth1     *float64 `infracost_usage:"eu_north_1"`
	APEast1      *float64 `infracost_usage:"ap_east_1"`
	APNortheast1 *float64 `infracost_usage:"ap_northeast_1"`
	APNortheast2 *float64 `infracost_usage:"ap_northeast_2"`
	APNortheast3 *float64 `infracost_usage:"ap_northeast_3"`
	APSoutheast1 *float64 `infracost_usage:"ap_southeast_1"`
	APSoutheast2 *float64 `infracost_usage:"ap_southeast_2"`
	APSoutheast3 *float64 `infracost_usage:"ap_southeast_3"`
	APSoutheast4 *float64 `infracost_usage:"ap_southeast_4"`
	APSouth1     *float64 `infracost_usage:"ap_south_1"`
	MESouth1     *float64 `infracost_usage:"me_south_1"`
	SAEast1      *float64 `infracost_usage:"sa_east_1"`
	AFSouth1     *float64 `infracost_usage:"af_south_1"`
}

RegionsUsage is a reusable type that represents a usage cost map. This can be used in resources that define a usage parameter that's changed on a per-region basis. e.g.

monthly_data_processed_gb:

us_gov_west_1: 188
us_east_1: 78

can be handled by adding a usage cost property to your resource like so:

type MyResource struct {
   ...
   MonthlyDataProcessedGB *RegionsUsage `infracost_usage:"monthly_processed_gb"`
}

func (RegionsUsage) Values added in v0.9.12

func (r RegionsUsage) Values() []RegionUsage

Values returns RegionUsage as a slice which can be iterated over to create cost components. The keys of the regions returned have their underscores replaced with hypens so they can be used in product filters and cost lookups.

type Route53HealthCheck added in v0.9.17

type Route53HealthCheck struct {
	Address         string
	RequestInterval string
	MeasureLatency  bool
	Type            string
	EndpointType    *string `infracost_usage:"endpoint_type"`
}

func (*Route53HealthCheck) BuildResource added in v0.9.17

func (r *Route53HealthCheck) BuildResource() *schema.Resource

func (*Route53HealthCheck) CoreType added in v0.10.35

func (r *Route53HealthCheck) CoreType() string

func (*Route53HealthCheck) PopulateUsage added in v0.9.17

func (r *Route53HealthCheck) PopulateUsage(u *schema.UsageData)

func (*Route53HealthCheck) UsageSchema added in v0.10.35

func (r *Route53HealthCheck) UsageSchema() []*schema.UsageItem

type Route53Record added in v0.9.17

type Route53Record struct {
	Address                    string
	IsAlias                    bool
	MonthlyLatencyBasedQueries *int64 `infracost_usage:"monthly_latency_based_queries"`
	MonthlyGeoQueries          *int64 `infracost_usage:"monthly_geo_queries"`
	MonthlyStandardQueries     *int64 `infracost_usage:"monthly_standard_queries"`
}

func (*Route53Record) BuildResource added in v0.9.17

func (r *Route53Record) BuildResource() *schema.Resource

func (*Route53Record) CoreType added in v0.10.35

func (r *Route53Record) CoreType() string

func (*Route53Record) PopulateUsage added in v0.9.17

func (r *Route53Record) PopulateUsage(u *schema.UsageData)

func (*Route53Record) UsageSchema added in v0.10.35

func (r *Route53Record) UsageSchema() []*schema.UsageItem

type Route53ResolverEndpoint added in v0.9.17

type Route53ResolverEndpoint struct {
	Address           string
	Region            string
	ResolverEndpoints int64
	MonthlyQueries    *int64 `infracost_usage:"monthly_queries"`
}

func (*Route53ResolverEndpoint) BuildResource added in v0.9.17

func (r *Route53ResolverEndpoint) BuildResource() *schema.Resource

func (*Route53ResolverEndpoint) CoreType added in v0.10.35

func (r *Route53ResolverEndpoint) CoreType() string

func (*Route53ResolverEndpoint) PopulateUsage added in v0.9.17

func (r *Route53ResolverEndpoint) PopulateUsage(u *schema.UsageData)

func (*Route53ResolverEndpoint) UsageSchema added in v0.10.35

func (r *Route53ResolverEndpoint) UsageSchema() []*schema.UsageItem

type Route53Zone added in v0.9.17

type Route53Zone struct {
	Address string
}

func (*Route53Zone) BuildResource added in v0.9.17

func (r *Route53Zone) BuildResource() *schema.Resource

func (*Route53Zone) CoreType added in v0.10.35

func (r *Route53Zone) CoreType() string

func (*Route53Zone) PopulateUsage added in v0.9.17

func (r *Route53Zone) PopulateUsage(u *schema.UsageData)

func (*Route53Zone) UsageSchema added in v0.10.35

func (r *Route53Zone) UsageSchema() []*schema.UsageItem

type S3Bucket added in v0.9.11

type S3Bucket struct {
	// "required" args that can't really be missing.
	Address           string
	Region            string
	Name              string
	ObjectTagsEnabled bool

	// "optional" args, that may be empty depending on the resource config
	LifecycleStorageClasses []string

	// "usage" args
	ObjectTags *int64 `infracost_usage:"object_tags"`
	// contains filtered or unexported fields
}

func (*S3Bucket) AllStorageClasses added in v0.9.11

func (a *S3Bucket) AllStorageClasses() []S3StorageClass

func (*S3Bucket) BuildResource added in v0.9.11

func (a *S3Bucket) BuildResource() *schema.Resource

func (*S3Bucket) CoreType added in v0.10.13

func (a *S3Bucket) CoreType() string

func (*S3Bucket) PopulateUsage added in v0.9.11

func (a *S3Bucket) PopulateUsage(u *schema.UsageData)

func (*S3Bucket) UsageSchema added in v0.10.13

func (a *S3Bucket) UsageSchema() []*schema.UsageItem

type S3BucketAnalyticsConfiguration added in v0.9.17

type S3BucketAnalyticsConfiguration struct {
	Address                 string
	Region                  string
	MonthlyMonitoredObjects *int64 `infracost_usage:"monthly_monitored_objects"`
}

func (*S3BucketAnalyticsConfiguration) BuildResource added in v0.9.17

func (r *S3BucketAnalyticsConfiguration) BuildResource() *schema.Resource

func (*S3BucketAnalyticsConfiguration) CoreType added in v0.10.35

func (r *S3BucketAnalyticsConfiguration) CoreType() string

func (*S3BucketAnalyticsConfiguration) PopulateUsage added in v0.9.17

func (r *S3BucketAnalyticsConfiguration) PopulateUsage(u *schema.UsageData)

func (*S3BucketAnalyticsConfiguration) UsageSchema added in v0.10.35

func (r *S3BucketAnalyticsConfiguration) UsageSchema() []*schema.UsageItem

type S3BucketInventory added in v0.9.17

type S3BucketInventory struct {
	Address              string
	Region               string
	MonthlyListedObjects *int64 `infracost_usage:"monthly_listed_objects"`
}

func (*S3BucketInventory) BuildResource added in v0.9.17

func (r *S3BucketInventory) BuildResource() *schema.Resource

func (*S3BucketInventory) CoreType added in v0.10.35

func (r *S3BucketInventory) CoreType() string

func (*S3BucketInventory) PopulateUsage added in v0.9.17

func (r *S3BucketInventory) PopulateUsage(u *schema.UsageData)

func (*S3BucketInventory) UsageSchema added in v0.10.35

func (r *S3BucketInventory) UsageSchema() []*schema.UsageItem

type S3BucketLifecycleConfiguration added in v0.9.18

type S3BucketLifecycleConfiguration struct {
	// "required" args that can't really be missing.
	Address           string
	Region            string
	Name              string
	ObjectTagsEnabled bool

	// "optional" args, that may be empty depending on the resource config
	LifecycleStorageClasses []string

	// "usage" args
	ObjectTags *int64 `infracost_usage:"object_tags"`
	// contains filtered or unexported fields
}

func (*S3BucketLifecycleConfiguration) AllStorageClasses added in v0.9.18

func (r *S3BucketLifecycleConfiguration) AllStorageClasses() []S3StorageClass

func (*S3BucketLifecycleConfiguration) BuildResource added in v0.9.18

func (r *S3BucketLifecycleConfiguration) BuildResource() *schema.Resource

func (*S3BucketLifecycleConfiguration) CoreType added in v0.10.35

func (r *S3BucketLifecycleConfiguration) CoreType() string

func (*S3BucketLifecycleConfiguration) PopulateUsage added in v0.9.18

func (r *S3BucketLifecycleConfiguration) PopulateUsage(u *schema.UsageData)

func (*S3BucketLifecycleConfiguration) UsageSchema added in v0.10.35

func (r *S3BucketLifecycleConfiguration) UsageSchema() []*schema.UsageItem

type S3GlacierDeepArchiveStorageClass added in v0.9.11

type S3GlacierDeepArchiveStorageClass struct {
	// "required" args that can't really be missing.
	Region string

	// "usage" args
	StorageGB                            *float64 `infracost_usage:"storage_gb"`
	MonthlyTier1Requests                 *int64   `infracost_usage:"monthly_tier_1_requests"`
	MonthlyTier2Requests                 *int64   `infracost_usage:"monthly_tier_2_requests"`
	MonthlyLifecycleTransitionRequests   *int64   `infracost_usage:"monthly_lifecycle_transition_requests"`
	MonthlyStandardDataRetrievalRequests *int64   `infracost_usage:"monthly_standard_data_retrieval_requests"`
	MonthlyStandardDataRetrievalGB       *float64 `infracost_usage:"monthly_standard_data_retrieval_gb"`
	MonthlyBulkDataRetrievalRequests     *int64   `infracost_usage:"monthly_bulk_data_retrieval_requests"`
	MonthlyBulkDataRetrievalGB           *float64 `infracost_usage:"monthly_bulk_data_retrieval_gb"`
	EarlyDeleteGB                        *float64 `infracost_usage:"early_delete_gb"`
}

func (*S3GlacierDeepArchiveStorageClass) BuildResource added in v0.9.11

func (a *S3GlacierDeepArchiveStorageClass) BuildResource() *schema.Resource

func (*S3GlacierDeepArchiveStorageClass) CoreType added in v0.10.35

func (*S3GlacierDeepArchiveStorageClass) PopulateUsage added in v0.9.11

func (a *S3GlacierDeepArchiveStorageClass) PopulateUsage(u *schema.UsageData)

func (*S3GlacierDeepArchiveStorageClass) UsageKey added in v0.9.11

func (*S3GlacierDeepArchiveStorageClass) UsageSchema added in v0.10.35

type S3GlacierFlexibleRetrievalStorageClass added in v0.9.15

type S3GlacierFlexibleRetrievalStorageClass struct {
	// "required" args that can't really be missing.
	Region string

	// "usage" args
	StorageGB                             *float64 `infracost_usage:"storage_gb"`
	MonthlyTier1Requests                  *int64   `infracost_usage:"monthly_tier_1_requests"`
	MonthlyTier2Requests                  *int64   `infracost_usage:"monthly_tier_2_requests"`
	MonthlyLifecycleTransitionRequests    *int64   `infracost_usage:"monthly_lifecycle_transition_requests"`
	MonthlyStandardDataRetrievalRequests  *int64   `infracost_usage:"monthly_standard_data_retrieval_requests"`
	MonthlyStandardDataRetrievalGB        *float64 `infracost_usage:"monthly_standard_data_retrieval_gb"`
	MonthlyStandardSelectDataScannedGB    *float64 `infracost_usage:"monthly_standard_select_data_scanned_gb"`
	MonthlyStandardSelectDataReturnedGB   *float64 `infracost_usage:"monthly_standard_select_data_returned_gb"`
	MonthlyExpeditedDataRetrievalRequests *int64   `infracost_usage:"monthly_expedited_data_retrieval_requests"`
	MonthlyExpeditedDataRetrievalGB       *float64 `infracost_usage:"monthly_expedited_data_retrieval_gb"`
	MonthlyExpeditedSelectDataScannedGB   *float64 `infracost_usage:"monthly_expedited_select_data_scanned_gb"`
	MonthlyExpeditedSelectDataReturnedGB  *float64 `infracost_usage:"monthly_expedited_select_data_returned_gb"`
	MonthlyBulkSelectDataScannedGB        *float64 `infracost_usage:"monthly_bulk_select_data_scanned_gb"`
	MonthlyBulkSelectDataReturnedGB       *float64 `infracost_usage:"monthly_bulk_select_data_returned_gb"`
	EarlyDeleteGB                         *float64 `infracost_usage:"early_delete_gb"`
}

func (*S3GlacierFlexibleRetrievalStorageClass) BuildResource added in v0.9.15

func (*S3GlacierFlexibleRetrievalStorageClass) CoreType added in v0.10.35

func (*S3GlacierFlexibleRetrievalStorageClass) PopulateUsage added in v0.9.15

func (*S3GlacierFlexibleRetrievalStorageClass) UsageKey added in v0.9.15

func (*S3GlacierFlexibleRetrievalStorageClass) UsageSchema added in v0.10.35

type S3IntelligentTieringStorageClass added in v0.9.11

type S3IntelligentTieringStorageClass struct {
	// "required" args that can't really be missing.
	Region string

	// "usage" args
	FrequentAccessStorageGB            *float64 `infracost_usage:"frequent_access_storage_gb"`
	InfrequentAccessStorageGB          *float64 `infracost_usage:"infrequent_access_storage_gb"`
	ArchiveAccessStorageGB             *float64 `infracost_usage:"archive_access_storage_gb"`
	DeepArchiveAccessStorageGB         *float64 `infracost_usage:"deep_archive_access_storage_gb"`
	MonitoredObjects                   *int64   `infracost_usage:"monitored_objects"`
	MonthlyTier1Requests               *int64   `infracost_usage:"monthly_tier_1_requests"`
	MonthlyTier2Requests               *int64   `infracost_usage:"monthly_tier_2_requests"`
	MonthlyLifecycleTransitionRequests *int64   `infracost_usage:"monthly_lifecycle_transition_requests"`
	MonthlySelectDataScannedGB         *float64 `infracost_usage:"monthly_select_data_scanned_gb"`
	MonthlySelectDataReturnedGB        *float64 `infracost_usage:"monthly_select_data_returned_gb"`
	EarlyDeleteGB                      *float64 `infracost_usage:"early_delete_gb"`
}

func (*S3IntelligentTieringStorageClass) BuildResource added in v0.9.11

func (a *S3IntelligentTieringStorageClass) BuildResource() *schema.Resource

func (*S3IntelligentTieringStorageClass) CoreType added in v0.10.35

func (*S3IntelligentTieringStorageClass) PopulateUsage added in v0.9.11

func (a *S3IntelligentTieringStorageClass) PopulateUsage(u *schema.UsageData)

func (*S3IntelligentTieringStorageClass) UsageKey added in v0.9.11

func (*S3IntelligentTieringStorageClass) UsageSchema added in v0.10.35

type S3OneZoneInfrequentAccessStorageClass added in v0.9.11

type S3OneZoneInfrequentAccessStorageClass struct {
	// "required" args that can't really be missing.
	Region string

	// "usage" args
	StorageGB                          *float64 `infracost_usage:"storage_gb"`
	MonthlyTier1Requests               *int64   `infracost_usage:"monthly_tier_1_requests"`
	MonthlyTier2Requests               *int64   `infracost_usage:"monthly_tier_2_requests"`
	MonthlyLifecycleTransitionRequests *int64   `infracost_usage:"monthly_lifecycle_transition_requests"`
	MonthlyDataRetrievalGB             *float64 `infracost_usage:"monthly_data_retrieval_gb"`
	MonthlySelectDataScannedGB         *float64 `infracost_usage:"monthly_select_data_scanned_gb"`
	MonthlySelectDataReturnedGB        *float64 `infracost_usage:"monthly_select_data_returned_gb"`
}

func (*S3OneZoneInfrequentAccessStorageClass) BuildResource added in v0.9.11

func (*S3OneZoneInfrequentAccessStorageClass) CoreType added in v0.10.35

func (*S3OneZoneInfrequentAccessStorageClass) PopulateUsage added in v0.9.11

func (*S3OneZoneInfrequentAccessStorageClass) UsageKey added in v0.9.11

func (*S3OneZoneInfrequentAccessStorageClass) UsageSchema added in v0.10.35

type S3StandardInfrequentAccessStorageClass added in v0.9.11

type S3StandardInfrequentAccessStorageClass struct {
	// "required" args that can't really be missing.
	Region string

	// "usage" args
	StorageGB                          *float64 `infracost_usage:"storage_gb"`
	MonthlyTier1Requests               *int64   `infracost_usage:"monthly_tier_1_requests"`
	MonthlyTier2Requests               *int64   `infracost_usage:"monthly_tier_2_requests"`
	MonthlyLifecycleTransitionRequests *int64   `infracost_usage:"monthly_lifecycle_transition_requests"`
	MonthlyDataRetrievalGB             *float64 `infracost_usage:"monthly_data_retrieval_gb"`
	MonthlySelectDataScannedGB         *float64 `infracost_usage:"monthly_select_data_scanned_gb"`
	MonthlySelectDataReturnedGB        *float64 `infracost_usage:"monthly_select_data_returned_gb"`
}

func (*S3StandardInfrequentAccessStorageClass) BuildResource added in v0.9.11

func (*S3StandardInfrequentAccessStorageClass) CoreType added in v0.10.35

func (*S3StandardInfrequentAccessStorageClass) PopulateUsage added in v0.9.11

func (*S3StandardInfrequentAccessStorageClass) UsageKey added in v0.9.11

func (*S3StandardInfrequentAccessStorageClass) UsageSchema added in v0.10.35

type S3StandardStorageClass added in v0.9.11

type S3StandardStorageClass struct {
	// "required" args that can't really be missing.
	Region string

	// "usage" args
	StorageGB                   *float64 `infracost_usage:"storage_gb"`
	MonthlyTier1Requests        *int64   `infracost_usage:"monthly_tier_1_requests"`
	MonthlyTier2Requests        *int64   `infracost_usage:"monthly_tier_2_requests"`
	MonthlySelectDataScannedGB  *float64 `infracost_usage:"monthly_select_data_scanned_gb"`
	MonthlySelectDataReturnedGB *float64 `infracost_usage:"monthly_select_data_returned_gb"`
}

func (*S3StandardStorageClass) BuildResource added in v0.9.11

func (a *S3StandardStorageClass) BuildResource() *schema.Resource

func (*S3StandardStorageClass) CoreType added in v0.10.35

func (a *S3StandardStorageClass) CoreType() string

func (*S3StandardStorageClass) PopulateUsage added in v0.9.11

func (a *S3StandardStorageClass) PopulateUsage(u *schema.UsageData)

func (*S3StandardStorageClass) UsageKey added in v0.9.11

func (a *S3StandardStorageClass) UsageKey() string

func (*S3StandardStorageClass) UsageSchema added in v0.10.35

func (a *S3StandardStorageClass) UsageSchema() []*schema.UsageItem

type S3StorageClass added in v0.9.11

type S3StorageClass interface {
	UsageKey() string
	PopulateUsage(u *schema.UsageData)
	BuildResource() *schema.Resource
}

type SFnStateMachine added in v0.9.17

type SFnStateMachine struct {
	Address            string
	Region             string
	Type               string
	MonthlyRequests    *int64 `infracost_usage:"monthly_requests"`
	WorkflowDurationMs *int64 `infracost_usage:"workflow_duration_ms"`
	MemoryMB           *int64 `infracost_usage:"memory_mb"`
	MonthlyTransitions *int64 `infracost_usage:"monthly_transitions"`
}

func (*SFnStateMachine) BuildResource added in v0.9.17

func (r *SFnStateMachine) BuildResource() *schema.Resource

func (*SFnStateMachine) CoreType added in v0.10.35

func (r *SFnStateMachine) CoreType() string

func (*SFnStateMachine) PopulateUsage added in v0.9.17

func (r *SFnStateMachine) PopulateUsage(u *schema.UsageData)

func (*SFnStateMachine) UsageSchema added in v0.10.35

func (r *SFnStateMachine) UsageSchema() []*schema.UsageItem

type SNSFIFOTopic added in v0.9.22

type SNSFIFOTopic struct {
	Address         string
	Region          string
	Subscriptions   int64
	RequestSizeKB   *float64 `infracost_usage:"request_size_kb"`
	MonthlyRequests *int64   `infracost_usage:"monthly_requests"`
}

SNSFIFOTopic struct represents an AWS SNS Topic operating in "FIFO" mode.

Resource information: https://docs.aws.amazon.com/sns/latest/dg/fifo-example-use-case.html Pricing information: https://aws.amazon.com/sns/pricing/#FIFO_topics

func (*SNSFIFOTopic) BuildResource added in v0.9.22

func (r *SNSFIFOTopic) BuildResource() *schema.Resource

BuildResource builds a schema.Resource from a valid SNSFIFOTopic struct. This method is called after the resource is initialised by an IaC provider. See providers folder for more information.

func (*SNSFIFOTopic) CoreType added in v0.10.35

func (r *SNSFIFOTopic) CoreType() string

func (*SNSFIFOTopic) PopulateUsage added in v0.9.22

func (r *SNSFIFOTopic) PopulateUsage(u *schema.UsageData)

PopulateUsage parses the u schema.UsageData into the SNSFIFOTopic. It uses the `infracost_usage` struct tags to populate data into the SNSFIFOTopic.

func (*SNSFIFOTopic) UsageSchema added in v0.10.35

func (r *SNSFIFOTopic) UsageSchema() []*schema.UsageItem

type SNSTopic added in v0.9.17

type SNSTopic struct {
	Address                 string
	Region                  string
	RequestSizeKB           *float64 `infracost_usage:"request_size_kb"`
	MonthlyRequests         *int64   `infracost_usage:"monthly_requests"`
	HTTPSubscriptions       *int64   `infracost_usage:"http_subscriptions"`
	EmailSubscriptions      *int64   `infracost_usage:"email_subscriptions"`
	KinesisSubscriptions    *int64   `infracost_usage:"kinesis_subscriptions"`
	MobilePushSubscriptions *int64   `infracost_usage:"mobile_push_subscriptions"`
	MacOSSubscriptions      *int64   `infracost_usage:"macos_subscriptions"`
	SMSSubscriptions        *int64   `infracost_usage:"sms_subscriptions"`
	SMSNotificationPrice    *float64 `infracost_usage:"sms_notification_price"`
}

SNSTopic struct represents an AWS SNS Topic operating in "Standard" mode.

Resource information: https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html Pricing information: https://aws.amazon.com/sns/pricing/#Standard_topics

func (*SNSTopic) BuildResource added in v0.9.17

func (r *SNSTopic) BuildResource() *schema.Resource

BuildResource builds a schema.Resource from a valid SNSTopic struct. This method is called after the resource is initialised by an IaC provider. See providers folder for more information.

func (*SNSTopic) CoreType added in v0.10.35

func (r *SNSTopic) CoreType() string

func (*SNSTopic) PopulateUsage added in v0.9.17

func (r *SNSTopic) PopulateUsage(u *schema.UsageData)

PopulateUsage parses the u schema.UsageData into the SNSTopic. It uses the `infracost_usage` struct tags to populate data into the SNSTopic.

func (*SNSTopic) UsageSchema added in v0.10.35

func (r *SNSTopic) UsageSchema() []*schema.UsageItem

type SNSTopicSubscription added in v0.9.17

type SNSTopicSubscription struct {
	Address         string
	Protocol        string
	Region          string
	RequestSizeKB   *float64 `infracost_usage:"request_size_kb"`
	MonthlyRequests *int64   `infracost_usage:"monthly_requests"`
}

func (*SNSTopicSubscription) BuildResource added in v0.9.17

func (r *SNSTopicSubscription) BuildResource() *schema.Resource

func (*SNSTopicSubscription) CoreType added in v0.10.35

func (r *SNSTopicSubscription) CoreType() string

func (*SNSTopicSubscription) PopulateUsage added in v0.9.17

func (r *SNSTopicSubscription) PopulateUsage(u *schema.UsageData)

func (*SNSTopicSubscription) UsageSchema added in v0.10.35

func (r *SNSTopicSubscription) UsageSchema() []*schema.UsageItem

type SQSQueue added in v0.9.17

type SQSQueue struct {
	Address         string
	Region          string
	FifoQueue       bool
	MonthlyRequests *float64 `infracost_usage:"monthly_requests"`
	RequestSizeKB   *int64   `infracost_usage:"request_size_kb"`
}

func (*SQSQueue) BuildResource added in v0.9.17

func (r *SQSQueue) BuildResource() *schema.Resource

func (*SQSQueue) CoreType added in v0.10.35

func (r *SQSQueue) CoreType() string

func (*SQSQueue) PopulateUsage added in v0.9.17

func (r *SQSQueue) PopulateUsage(u *schema.UsageData)

func (*SQSQueue) UsageSchema added in v0.10.35

func (r *SQSQueue) UsageSchema() []*schema.UsageItem

type SSMActivation added in v0.9.17

type SSMActivation struct {
	Address           string
	Region            string
	RegistrationLimit int64
	InstanceTier      *string `infracost_usage:"instance_tier"`
	Instances         *int64  `infracost_usage:"instances"`
}

func (*SSMActivation) BuildResource added in v0.9.17

func (r *SSMActivation) BuildResource() *schema.Resource

func (*SSMActivation) CoreType added in v0.10.35

func (r *SSMActivation) CoreType() string

func (*SSMActivation) PopulateUsage added in v0.9.17

func (r *SSMActivation) PopulateUsage(u *schema.UsageData)

func (*SSMActivation) UsageSchema added in v0.10.35

func (r *SSMActivation) UsageSchema() []*schema.UsageItem

type SSMParameter added in v0.9.17

type SSMParameter struct {
	Address                string
	Tier                   string
	Region                 string
	ParameterStorageHrs    *int64  `infracost_usage:"parameter_storage_hrs"`
	APIThroughputLimit     *string `infracost_usage:"api_throughput_limit"`
	MonthlyAPIInteractions *int64  `infracost_usage:"monthly_api_interactions"`
}

func (*SSMParameter) BuildResource added in v0.9.17

func (r *SSMParameter) BuildResource() *schema.Resource

func (*SSMParameter) CoreType added in v0.10.35

func (r *SSMParameter) CoreType() string

func (*SSMParameter) PopulateUsage added in v0.9.17

func (r *SSMParameter) PopulateUsage(u *schema.UsageData)

func (*SSMParameter) UsageSchema added in v0.10.35

func (r *SSMParameter) UsageSchema() []*schema.UsageItem

type SearchDomain added in v0.10.21

type SearchDomain struct {
	Address              string
	Region               string
	ClusterInstanceType  string
	ClusterInstanceCount *int64 // If this is nil it will default to 1

	EBSEnabled    bool
	EBSVolumeType string
	EBSVolumeSize *float64 // if this is nil it will default to 8
	EBSIOPS       *float64 // if this is nil it will default to 1
	EBSThroughput *float64 // if this is nil it will default to 0

	ClusterDedicatedMasterEnabled bool
	ClusterDedicatedMasterType    string
	ClusterDedicatedMasterCount   *int64 // if this is nil it will default to 3

	ClusterWarmEnabled bool
	ClusterWarmType    string
	ClusterWarmCount   *int64
}

SearchDomain struct represents a managed search domain for both Amazon OpenSearch Service (formerly known as Amazon Elasticsearch Service) and AWS Elasticsearch Domain. These services provide fully managed search and analytics engines based on Elasticsearch and OpenSearch, respectively, allowing you to easily deploy, secure, and scale search solutions.

Amazon OpenSearch Service and AWS Elasticsearch Domain offer a variety of instance types and configurations to accommodate different workloads, including dedicated master nodes, warm nodes, and EBS storage options. The pricing depends on the chosen instance types, instance counts, storage options, and additional features.

For more information about Amazon OpenSearch Service and AWS Elasticsearch Domain functionality and pricing, refer to the following links:

Amazon OpenSearch Service: Resource information: https://aws.amazon.com/opensearch-service/ Pricing information: https://aws.amazon.com/opensearch-service/pricing/

AWS Elasticsearch Domain: Resource information: https://aws.amazon.com/elasticsearch-service/ Pricing information: https://aws.amazon.com/elasticsearch-service/pricing/

func (*SearchDomain) BuildResource added in v0.10.21

func (r *SearchDomain) BuildResource() *schema.Resource

func (*SearchDomain) CoreType added in v0.10.35

func (r *SearchDomain) CoreType() string

func (*SearchDomain) PopulateUsage added in v0.10.21

func (r *SearchDomain) PopulateUsage(u *schema.UsageData)

func (*SearchDomain) UsageSchema added in v0.10.35

func (r *SearchDomain) UsageSchema() []*schema.UsageItem

type SecretsManagerSecret added in v0.9.17

type SecretsManagerSecret struct {
	Address         string
	Region          string
	MonthlyRequests *int64 `infracost_usage:"monthly_requests"`
}

func (*SecretsManagerSecret) BuildResource added in v0.9.17

func (r *SecretsManagerSecret) BuildResource() *schema.Resource

func (*SecretsManagerSecret) CoreType added in v0.10.35

func (r *SecretsManagerSecret) CoreType() string

func (*SecretsManagerSecret) PopulateUsage added in v0.9.17

func (r *SecretsManagerSecret) PopulateUsage(u *schema.UsageData)

func (*SecretsManagerSecret) UsageSchema added in v0.10.35

func (r *SecretsManagerSecret) UsageSchema() []*schema.UsageItem

type TransferServer added in v0.9.13

type TransferServer struct {
	Address   string
	Region    string
	Protocols []string

	// "usage" args
	MonthlyDataDownloadedGB *float64 `infracost_usage:"monthly_data_downloaded_gb"`
	MonthlyDataUploadedGB   *float64 `infracost_usage:"monthly_data_uploaded_gb"`
}

TransferServer defines a AWS Transfer Server resource from Transfer Family service. It supports multiple transfer protocols like FTP/FTPS/SFTP and each is billed hourly when enabled. It also bills the amount of data being downloaded/uploaded over those protocols.

See more resource information here: https://aws.amazon.com/aws-transfer-family/.

See the pricing information here: https://aws.amazon.com/aws-transfer-family/pricing/.

func (*TransferServer) BuildResource added in v0.9.13

func (r *TransferServer) BuildResource() *schema.Resource

BuildResource builds a schema.Resource from a valid TransferServer struct. This method is called after the resource is initialised by an IaC provider.

func (*TransferServer) CoreType added in v0.10.35

func (r *TransferServer) CoreType() string

TransferServerUsageSchema defines a list of usage items for TransferServer.

func (*TransferServer) PopulateUsage added in v0.9.13

func (r *TransferServer) PopulateUsage(u *schema.UsageData)

PopulateUsage parses the u schema.UsageData into the TransferServer. It uses the `infracost_usage` struct tags to populate data into the TransferServer.

func (*TransferServer) UsageSchema added in v0.10.35

func (r *TransferServer) UsageSchema() []*schema.UsageItem

type VPCEndpoint added in v0.9.17

type VPCEndpoint struct {
	Address                string
	Region                 string
	Type                   string
	Interfaces             *int64
	MonthlyDataProcessedGb *float64 `infracost_usage:"monthly_data_processed_gb"`
}

func (*VPCEndpoint) BuildResource added in v0.9.17

func (r *VPCEndpoint) BuildResource() *schema.Resource

func (*VPCEndpoint) CoreType added in v0.10.35

func (r *VPCEndpoint) CoreType() string

func (*VPCEndpoint) PopulateUsage added in v0.9.17

func (r *VPCEndpoint) PopulateUsage(u *schema.UsageData)

func (*VPCEndpoint) UsageSchema added in v0.10.35

func (r *VPCEndpoint) UsageSchema() []*schema.UsageItem

type VPNConnection added in v0.9.17

type VPNConnection struct {
	Address                string
	Region                 string
	TransitGatewayID       string
	MonthlyDataProcessedGB *float64 `infracost_usage:"monthly_data_processed_gb"`
}

func (*VPNConnection) BuildResource added in v0.9.17

func (r *VPNConnection) BuildResource() *schema.Resource

func (*VPNConnection) CoreType added in v0.10.35

func (r *VPNConnection) CoreType() string

func (*VPNConnection) PopulateUsage added in v0.9.17

func (r *VPNConnection) PopulateUsage(u *schema.UsageData)

func (*VPNConnection) UsageSchema added in v0.10.35

func (r *VPNConnection) UsageSchema() []*schema.UsageItem

type WAFWebACL added in v0.9.17

type WAFWebACL struct {
	Address         string
	Region          string
	Rules           int64
	RuleGroups      int64
	RuleGroupRules  *int64 `infracost_usage:"rule_group_rules"`
	MonthlyRequests *int64 `infracost_usage:"monthly_requests"`
}

func (*WAFWebACL) BuildResource added in v0.9.17

func (r *WAFWebACL) BuildResource() *schema.Resource

func (*WAFWebACL) CoreType added in v0.10.35

func (r *WAFWebACL) CoreType() string

func (*WAFWebACL) PopulateUsage added in v0.9.17

func (r *WAFWebACL) PopulateUsage(u *schema.UsageData)

func (*WAFWebACL) UsageSchema added in v0.10.35

func (r *WAFWebACL) UsageSchema() []*schema.UsageItem

type WAFv2WebACL added in v0.9.17

type WAFv2WebACL struct {
	Address               string
	Region                string
	Rules                 int64
	RuleGroups            int64
	ManagedRuleGroups     int64
	RuleGroupRules        *int64 `infracost_usage:"rule_group_rules"`
	ManagedRuleGroupRules *int64 `infracost_usage:"managed_rule_group_rules"`
	MonthlyRequests       *int64 `infracost_usage:"monthly_requests"`
}

func (*WAFv2WebACL) BuildResource added in v0.9.17

func (r *WAFv2WebACL) BuildResource() *schema.Resource

func (*WAFv2WebACL) CoreType added in v0.10.35

func (r *WAFv2WebACL) CoreType() string

func (*WAFv2WebACL) PopulateUsage added in v0.9.17

func (r *WAFv2WebACL) PopulateUsage(u *schema.UsageData)

func (*WAFv2WebACL) UsageSchema added in v0.10.35

func (r *WAFv2WebACL) UsageSchema() []*schema.UsageItem

Source Files

Jump to

Keyboard shortcuts

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