aws

package
v0.10.1 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2022 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ACMCertificateUsageSchema = []*schema.UsageItem{}
View Source
var ACMPCACertificateAuthorityUsageSchema = []*schema.UsageItem{
	{Key: "monthly_requests", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var APIGatewayRestAPIUsageSchema = []*schema.UsageItem{
	{Key: "monthly_requests", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var APIGatewayStageUsageSchema = []*schema.UsageItem{}
View Source
var APIGatewayV2APIUsageSchema = []*schema.UsageItem{
	{Key: "message_size_kb", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_connection_mins", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_requests", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "request_size_kb", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_messages", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var AppAutoscalingTargetUsageSchema = []*schema.UsageItem{
	{Key: "capacity", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var AutoscalingGroupUsageSchema = append([]*schema.UsageItem{
	{Key: "instances", DefaultValue: 0, ValueType: schema.Int64},
}, InstanceUsageSchema...)
View Source
var BackupVaultUsageSchema = []*schema.UsageItem{{Key: "monthly_efs_warm_backup_gb", ValueType: schema.Float64, DefaultValue: 0}, {Key: "monthly_efs_cold_restore_gb", ValueType: schema.Float64, DefaultValue: 0}, {Key: "monthly_rds_snapshot_gb", ValueType: schema.Float64, DefaultValue: 0}, {Key: "monthly_aurora_snapshot_gb", ValueType: schema.Float64, DefaultValue: 0}, {Key: "monthly_dynamodb_backup_gb", ValueType: schema.Float64, DefaultValue: 0}, {Key: "monthly_dynamodb_restore_gb", ValueType: schema.Float64, DefaultValue: 0}, {Key: "monthly_fsx_windows_backup_gb", ValueType: schema.Float64, DefaultValue: 0}, {Key: "monthly_fsx_lustre_backup_gb", ValueType: schema.Float64, DefaultValue: 0}, {Key: "monthly_efs_cold_backup_gb", ValueType: schema.Float64, DefaultValue: 0}, {Key: "monthly_efs_warm_restore_gb", ValueType: schema.Float64, DefaultValue: 0}, {Key: "monthly_efs_item_restore_requests", ValueType: schema.Int64, DefaultValue: 0}, {Key: "monthly_ebs_snapshot_gb", ValueType: schema.Float64, DefaultValue: 0}}
View Source
var CloudFormationStackSetUsageSchema = []*schema.UsageItem{
	{Key: "monthly_handler_operations", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_duration_secs", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var CloudFormationStackUsageSchema = []*schema.UsageItem{
	{Key: "monthly_handler_operations", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_duration_secs", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var CloudfrontDistributionUsageSchema = []*schema.UsageItem{
	{
		Key:          "monthly_http_requests",
		DefaultValue: &usage.ResourceUsage{Name: "monthly_http_requests", Items: cloudfrontDistributionRegionRequestsSchema},
		ValueType:    schema.SubResourceUsage,
	},
	{
		Key:          "monthly_https_requests",
		DefaultValue: &usage.ResourceUsage{Name: "monthly_https_requests", Items: cloudfrontDistributionRegionRequestsSchema},
		ValueType:    schema.SubResourceUsage,
	},
	{
		Key:          "monthly_shield_requests",
		DefaultValue: &usage.ResourceUsage{Name: "monthly_shield_requests", Items: cloudfrontDistributionShieldRequestsSchema},
		ValueType:    schema.SubResourceUsage,
	},
	{Key: "monthly_invalidation_requests", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_encryption_requests", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_log_lines", ValueType: schema.Int64, DefaultValue: 0},
	{
		Key:          "monthly_data_transfer_to_internet_gb",
		DefaultValue: &usage.ResourceUsage{Name: "monthly_data_transfer_to_internet_gb", Items: cloudfrontDistributionRegionDataTransferSchema},
		ValueType:    schema.SubResourceUsage,
	},
	{
		Key:          "monthly_data_transfer_to_origin_gb",
		DefaultValue: &usage.ResourceUsage{Name: "monthly_data_transfer_to_origin_gb", Items: cloudfrontDistributionRegionDataTransferSchema},
		ValueType:    schema.SubResourceUsage,
	},
	{Key: "custom_ssl_certificates", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var CloudwatchDashboardUsageSchema = []*schema.UsageItem{}
View Source
var CloudwatchEventBusUsageSchema = []*schema.UsageItem{
	{Key: "monthly_schema_discovery_events", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_custom_events", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_third_party_events", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_archive_processing_gb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "archive_storage_gb", ValueType: schema.Float64, DefaultValue: 0},
}
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 CloudwatchMetricAlarmUsageSchema = []*schema.UsageItem{}
View Source
var CodeBuildProjectUsageSchema = []*schema.UsageItem{
	{Key: "monthly_build_mins", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var ConfigConfigRuleUsageSchema = []*schema.UsageItem{
	{Key: "monthly_rule_evaluations", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var ConfigConfigurationRecorderUsageSchema = []*schema.UsageItem{
	{Key: "monthly_config_items", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_custom_config_items", ValueType: schema.Int64, 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 DMSReplicationInstanceUsageSchema = []*schema.UsageItem{}
View Source
var DXConnectionUsageSchema = []*schema.UsageItem{
	{
		Key:          "monthly_outbound_from_region_to_dx_connection_location",
		ValueType:    schema.SubResourceUsage,
		DefaultValue: &usage.ResourceUsage{Name: "monthly_outbound_from_region_to_dx_connection_location", Items: RegionUsageSchema},
	},
	{Key: "monthly_outbound_region_to_dx_location_gb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "dx_virtual_interface_type", ValueType: schema.String, DefaultValue: "private"},
	{Key: "dx_connection_type", ValueType: schema.String, DefaultValue: "dedicated"},
}
View Source
var DXGatewayAssociationUsageSchema = []*schema.UsageItem{{Key: "monthly_data_processed_gb", ValueType: schema.Float64, DefaultValue: 0}}
View Source
var DataTransferUsageSchema = []*schema.UsageItem{
	{Key: "monthly_intra_region_gb", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "monthly_outbound_internet_gb", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "monthly_outbound_us_east_to_us_east_gb", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "monthly_outbound_other_regions_gb", DefaultValue: 0, ValueType: schema.Float64},
}

DataTransferUsageSchema defines a list which represents the usage schema of DataTransfer.

View Source
var DocDBClusterInstanceUsageSchema = []*schema.UsageItem{
	{Key: "data_storage_gb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "monthly_io_requests", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_cpu_credit_hrs", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var DocDBClusterSnapshotUsageSchema = []*schema.UsageItem{
	{Key: "backup_storage_gb", ValueType: schema.Float64, DefaultValue: 0},
}
View Source
var DocDBClusterUsageSchema = []*schema.UsageItem{
	{Key: "backup_storage_gb", ValueType: schema.Float64, DefaultValue: 0},
}
View Source
var DynamoDBTableUsageSchema = []*schema.UsageItem{
	{Key: "monthly_write_request_units", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_read_request_units", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "storage_gb", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "pitr_backup_storage_gb", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "on_demand_backup_storage_gb", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_data_restored_gb", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_streams_read_request_units", DefaultValue: 0, ValueType: schema.Int64},
}
View Source
var EBSSnapshotCopyUsageSchema = []*schema.UsageItem{}
View Source
var EBSSnapshotUsageSchema = []*schema.UsageItem{{Key: "monthly_list_block_requests", ValueType: schema.Int64, DefaultValue: 0}, {Key: "monthly_get_block_requests", ValueType: schema.Int64, DefaultValue: 0}, {Key: "monthly_put_block_requests", ValueType: schema.Int64, DefaultValue: 0}, {Key: "fast_snapshot_restore_hours", ValueType: schema.Int64, DefaultValue: 0}}
View Source
var EBSVolumeSchema = []*schema.UsageItem{
	{Key: "monthly_standard_io_requests", DefaultValue: 0, ValueType: schema.Int64},
}
View Source
var EC2ClientVPNEndpointUsageSchema = []*schema.UsageItem{}
View Source
var EC2ClientVPNNetworkAssociationUsageSchema = []*schema.UsageItem{}
View Source
var EC2TrafficMirrorSessionUsageSchema = []*schema.UsageItem{}
View Source
var EC2TransitGatewayPeeringAttachmentUsageSchema = []*schema.UsageItem{}
View Source
var ECRRepositoryUsageSchema = []*schema.UsageItem{
	{Key: "storage_gb", ValueType: schema.Float64, DefaultValue: 0},
}
View Source
var ECSServiceUsageSchema = []*schema.UsageItem{}
View Source
var EFSFileSystemUsageSchema = []*schema.UsageItem{
	{Key: "infrequent_access_storage_gb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "storage_gb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "monthly_infrequent_access_read_gb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "monthly_infrequent_access_write_gb", ValueType: schema.Float64, DefaultValue: 0},
}
View Source
var EIPUsageSchema = []*schema.UsageItem{}
View Source
var EKSClusterUsageSchema = []*schema.UsageItem{}
View Source
var EKSFargateProfileUsageSchema = []*schema.UsageItem{}
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 Ec2TransitGatewayVpcAttachmentUsageSchema = []*schema.UsageItem{{Key: "monthly_data_processed_gb", ValueType: schema.Float64, DefaultValue: 0}}
View Source
var ElastiCacheClusterUsageSchema = []*schema.UsageItem{
	{Key: "snapshot_storage_size_gb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "reserved_instance_term", DefaultValue: "", ValueType: schema.String},
	{Key: "reserved_instance_payment_option", DefaultValue: "", ValueType: schema.String},
}
View Source
var ElastiCacheReplicationGroupUsageSchema = []*schema.UsageItem{
	{Key: "snapshot_storage_size_gb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "reserved_instance_term", DefaultValue: "", ValueType: schema.String},
	{Key: "reserved_instance_payment_option", DefaultValue: "", ValueType: schema.String},
}
View Source
var ElasticBeanstalkEnvironmentUsageSchema = []*schema.UsageItem{
	{
		Key:          "cloudwatch",
		DefaultValue: &usage.ResourceUsage{Name: "cloudwatch", Items: CloudwatchLogGroupUsageSchema},
		ValueType:    schema.SubResourceUsage,
	},
	{
		Key:          "lb",
		DefaultValue: &usage.ResourceUsage{Name: "lb", Items: LBUsageSchema},
		ValueType:    schema.SubResourceUsage,
	},
	{
		Key:          "elb",
		DefaultValue: &usage.ResourceUsage{Name: "elb", Items: ELBUsageSchema},
		ValueType:    schema.SubResourceUsage,
	},
	{
		Key:          "db",
		DefaultValue: &usage.ResourceUsage{Name: "db", Items: DBInstanceUsageSchema},
		ValueType:    schema.SubResourceUsage,
	},
	{
		Key:          "ec2",
		DefaultValue: &usage.ResourceUsage{Name: "ec2", Items: LaunchConfigurationUsageSchema},
		ValueType:    schema.SubResourceUsage,
	},
}

ElasticBeanstalkEnvironmentUsageSchema 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.

View Source
var ElasticsearchDomainUsageSchema = []*schema.UsageItem{}
View Source
var FSxWindowsFileSystemUsageSchema = []*schema.UsageItem{
	{Key: "backup_storage_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},
}
View Source
var KMSExternalKeyUsageSchema = []*schema.UsageItem{}
View Source
var KMSKeyUsageSchema = []*schema.UsageItem{}
View Source
var KinesisAnalyticsApplicationUsageSchema = []*schema.UsageItem{
	{Key: "kinesis_processing_units", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var KinesisAnalyticsV2ApplicationSnapshotUsageSchema = []*schema.UsageItem{
	{Key: "durable_application_backup_gb", ValueType: schema.Float64, DefaultValue: 0},
}
View Source
var KinesisAnalyticsV2ApplicationUsageSchema = []*schema.UsageItem{
	{Key: "kinesis_processing_units", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "durable_application_backup_gb", ValueType: schema.Float64, DefaultValue: 0},
}
View Source
var KinesisFirehoseDeliveryStreamUsageSchema = []*schema.UsageItem{
	{Key: "monthly_data_ingested_gb", ValueType: schema.Float64, DefaultValue: 0},
}
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 LambdaFunctionUsageSchema = []*schema.UsageItem{
	{Key: "request_duration_ms", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "monthly_requests", DefaultValue: 0, ValueType: schema.Int64},
}
View Source
var LaunchConfigurationUsageSchema = InstanceUsageSchema
View Source
var LaunchTemplateUsageSchema = InstanceUsageSchema
View Source
var LightsailInstanceUsageSchema = []*schema.UsageItem{}
View Source
var MQBrokerUsageSchema = []*schema.UsageItem{{Key: "storage_size_gb", ValueType: schema.Float64, DefaultValue: 0}}
View Source
var MSKClusterUsageSchema = []*schema.UsageItem{}
View Source
var MWAAEnvironmentUsageSchema = []*schema.UsageItem{
	{Key: "additional_workers", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "additional_schedulers", DefaultValue: 0.0, ValueType: schema.Float64},
	{Key: "meta_database_gb", DefaultValue: 0.0, ValueType: schema.Float64},
}

If the resource requires a usage parameter

View Source
var NATGatewayUsageSchema = []*schema.UsageItem{
	{Key: "monthly_data_processed_gb", DefaultValue: 0.0, ValueType: schema.Float64},
}
View Source
var NeptuneClusterInstanceUsageSchema = []*schema.UsageItem{
	{Key: "monthly_cpu_credit_hrs", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var NeptuneClusterSnapshotUsageSchema = []*schema.UsageItem{
	{Key: "backup_storage_gb", ValueType: schema.Float64, DefaultValue: 0},
}
View Source
var NeptuneClusterUsageSchema = []*schema.UsageItem{
	{Key: "storage_gb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "monthly_io_requests", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "backup_storage_gb", ValueType: schema.Float64, DefaultValue: 0},
}
View Source
var NetworkfirewallFirewallUsageSchema = []*schema.UsageItem{
	{Key: "monthly_data_processed_gb", DefaultValue: 0, ValueType: schema.Float64},
}

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

View Source
var RDSClusterInstanceUsageSchema = []*schema.UsageItem{
	{Key: "monthly_cpu_credit_hrs", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "vcpu_count", ValueType: schema.Int64, 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 RDSClusterUsageSchema = []*schema.UsageItem{
	{Key: "write_requests_per_sec", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "read_requests_per_sec", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "change_records_per_statement", ValueType: schema.Float64, DefaultValue: 0.0},
	{Key: "storage_gb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "average_statements_per_hr", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "backtrack_window_hrs", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "snapshot_export_size_gb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "capacity_units_per_hr", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "backup_snapshot_size_gb", ValueType: schema.Float64, DefaultValue: 0},
}
View Source
var RedshiftClusterUsageSchema = []*schema.UsageItem{
	{Key: "managed_storage_gb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "excess_concurrency_scaling_secs", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "spectrum_data_scanned_tb", ValueType: schema.Float64, DefaultValue: 0.0},
	{Key: "backup_storage_gb", ValueType: schema.Float64, DefaultValue: 0},
}
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)",
	"cn-north-1":      "China (Beijing)",
	"cn-northwest-1":  "China (Ningxia)",
	"eu-central-1":    "EU (Frankfurt)",
	"eu-west-1":       "EU (Ireland)",
	"eu-west-2":       "EU (London)",
	"eu-south-1":      "EU (Milan)",
	"eu-west-3":       "EU (Paris)",
	"eu-north-1":      "EU (Stockholm)",
	"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-south-1":      "Asia Pacific (Mumbai)",
	"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 Route53HealthCheckUsageSchema = []*schema.UsageItem{
	{Key: "endpoint_type", ValueType: schema.String, DefaultValue: "aws"},
}
View Source
var Route53RecordUsageSchema = []*schema.UsageItem{
	{Key: "monthly_latency_based_queries", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_geo_queries", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_standard_queries", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var Route53ResolverEndpointUsageSchema = []*schema.UsageItem{
	{Key: "monthly_queries", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var Route53ZoneUsageSchema = []*schema.UsageItem{}
View Source
var S3BucketAnalyticsConfigurationUsageSchema = []*schema.UsageItem{
	{Key: "monthly_monitored_objects", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var S3BucketInventoryUsageSchema = []*schema.UsageItem{{Key: "monthly_listed_objects", ValueType: schema.Int64, DefaultValue: 0}}
View Source
var S3BucketLifecycleConfigurationUsageSchema = []*schema.UsageItem{
	{Key: "object_tags", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "standard", DefaultValue: &usage.ResourceUsage{Name: "standard", Items: S3StandardStorageClassUsageSchema}, ValueType: schema.SubResourceUsage},
	{Key: "intelligent_tiering", DefaultValue: &usage.ResourceUsage{Name: "intelligent_tiering", Items: S3IntelligentTieringStorageClassUsageSchema}, ValueType: schema.SubResourceUsage},
	{Key: "standard_infrequent_access", DefaultValue: &usage.ResourceUsage{Name: "standard_infrequent_access", Items: S3StandardInfrequentAccessStorageClassUsageSchema}, ValueType: schema.SubResourceUsage},
	{Key: "one_zone_infrequent_access", DefaultValue: &usage.ResourceUsage{Name: "one_zone_infrequent_access", Items: S3OneZoneInfrequentAccessStorageClassUsageSchema}, ValueType: schema.SubResourceUsage},
	{Key: "glacier_flexible_retrieval", DefaultValue: &usage.ResourceUsage{Name: "glacier_flexible_retrieval", Items: S3GlacierFlexibleRetrievalStorageClassUsageSchema}, ValueType: schema.SubResourceUsage},
	{Key: "glacier_deep_archive", DefaultValue: &usage.ResourceUsage{Name: "glacier_deep_archive", Items: S3GlacierDeepArchiveStorageClassUsageSchema}, ValueType: schema.SubResourceUsage},
}
View Source
var S3BucketUsageSchema = []*schema.UsageItem{
	{Key: "object_tags", DefaultValue: 0, ValueType: schema.Int64},
	{Key: "standard", DefaultValue: &usage.ResourceUsage{Name: "standard", Items: S3StandardStorageClassUsageSchema}, ValueType: schema.SubResourceUsage},
	{Key: "intelligent_tiering", DefaultValue: &usage.ResourceUsage{Name: "intelligent_tiering", Items: S3IntelligentTieringStorageClassUsageSchema}, ValueType: schema.SubResourceUsage},
	{Key: "standard_infrequent_access", DefaultValue: &usage.ResourceUsage{Name: "standard_infrequent_access", Items: S3StandardInfrequentAccessStorageClassUsageSchema}, ValueType: schema.SubResourceUsage},
	{Key: "one_zone_infrequent_access", DefaultValue: &usage.ResourceUsage{Name: "one_zone_infrequent_access", Items: S3OneZoneInfrequentAccessStorageClassUsageSchema}, ValueType: schema.SubResourceUsage},
	{Key: "glacier_flexible_retrieval", DefaultValue: &usage.ResourceUsage{Name: "glacier_flexible_retrieval", Items: S3GlacierFlexibleRetrievalStorageClassUsageSchema}, ValueType: schema.SubResourceUsage},
	{Key: "glacier_deep_archive", DefaultValue: &usage.ResourceUsage{Name: "glacier_deep_archive", Items: S3GlacierDeepArchiveStorageClassUsageSchema}, ValueType: schema.SubResourceUsage},
}
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 SFnStateMachineUsageSchema = []*schema.UsageItem{
	{Key: "monthly_requests", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "workflow_duration_ms", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "memory_mb", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_transitions", ValueType: schema.Int64, DefaultValue: 0},
}
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 SNSTopicSubscriptionUsageSchema = []*schema.UsageItem{
	{Key: "request_size_kb", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "monthly_requests", ValueType: schema.Int64, DefaultValue: 0},
}
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.

View Source
var SQSQueueUsageSchema = []*schema.UsageItem{
	{Key: "monthly_requests", ValueType: schema.Float64, DefaultValue: 0},
	{Key: "request_size_kb", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var SSMActivationUsageSchema = []*schema.UsageItem{
	{Key: "instance_tier", ValueType: schema.String, DefaultValue: "standard"},
	{Key: "instances", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var SSMParameterUsageSchema = []*schema.UsageItem{
	{Key: "parameter_storage_hrs", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "api_throughput_limit", ValueType: schema.String, DefaultValue: "standard"},
	{Key: "monthly_api_interactions", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var SecretsManagerSecretUsageSchema = []*schema.UsageItem{
	{Key: "monthly_requests", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var TransferServerUsageSchema = []*schema.UsageItem{
	{Key: "monthly_data_downloaded_gb", DefaultValue: 0, ValueType: schema.Float64},
	{Key: "monthly_data_uploaded_gb", DefaultValue: 0, ValueType: schema.Float64},
}

TransferServerUsageSchema defines a list of usage items for TransferServer.

View Source
var VPCEndpointUsageSchema = []*schema.UsageItem{
	{Key: "monthly_data_processed_gb", ValueType: schema.Float64, DefaultValue: 0},
}
View Source
var VPNConnectionUsageSchema = []*schema.UsageItem{{Key: "monthly_data_processed_gb", ValueType: schema.Float64, DefaultValue: 0}}
View Source
var WAFWebACLUsageSchema = []*schema.UsageItem{
	{Key: "rule_group_rules", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_requests", ValueType: schema.Int64, DefaultValue: 0},
}
View Source
var WAFv2WebACLUsageSchema = []*schema.UsageItem{
	{Key: "managed_rule_group_rules", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "monthly_requests", ValueType: schema.Int64, DefaultValue: 0},
	{Key: "rule_group_rules", ValueType: schema.Int64, DefaultValue: 0},
}

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) PopulateUsage added in v0.9.17

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

type ACMPCACertificateAuthority added in v0.9.17

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

func (*ACMPCACertificateAuthority) BuildResource added in v0.9.17

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

func (*ACMPCACertificateAuthority) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.19

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

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) PopulateUsage added in v0.9.9

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

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) PopulateUsage added in v0.9.18

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.18

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

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) 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.

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.18

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

type DBInstance added in v0.9.17

type DBInstance struct {
	Address                                      string
	Region                                       string
	LicenseModel                                 string
	StorageType                                  string
	BackupRetentionPeriod                        int64
	PerformanceInsightsEnabled                   bool
	PerformanceInsightsLongTermRetention         bool
	MultiAZ                                      bool
	InstanceClass                                string
	Engine                                       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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.18

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

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) PopulateUsage added in v0.9.17

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

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) 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.

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) 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.

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.8

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.9

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

type EKSCluster added in v0.9.17

type EKSCluster struct {
	Address string
	Region  string
}

func (*EKSCluster) BuildResource added in v0.9.17

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

func (*EKSCluster) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.9

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) 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.

type ElasticsearchDomain added in v0.9.17

type ElasticsearchDomain 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

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

	ClusterWarmEnabled bool
	ClusterWarmType    string
	ClusterWarmCount   *int64
}

func (*ElasticsearchDomain) BuildResource added in v0.9.17

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

func (*ElasticsearchDomain) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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. Requests - 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) 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.

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) 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.

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) 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.

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

	// "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"`
}

func (*Instance) BuildResource added in v0.9.9

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

func (*Instance) PopulateUsage added in v0.9.9

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

type LambdaFunction added in v0.9.8

type LambdaFunction struct {
	Address    string
	Region     string
	Name       string
	MemorySize 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) PopulateUsage added in v0.9.8

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

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) PopulateUsage added in v0.9.9

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

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) PopulateUsage added in v0.9.9

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.10

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

If the resource requires a usage parameter

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) PopulateUsage added in v0.9.8

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

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) PopulateUsage added in v0.9.17

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

type NeptuneClusterInstance added in v0.9.17

type NeptuneClusterInstance struct {
	Address             string
	Region              string
	InstanceClass       string
	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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) 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.

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) PopulateUsage added in v0.9.17

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

type RDSClusterInstance added in v0.9.17

type RDSClusterInstance struct {
	Address                                      string
	Region                                       string
	InstanceClass                                string
	Engine                                       string
	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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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"`
	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"`
	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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.11

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.18

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

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) PopulateUsage added in v0.9.11

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

func (*S3GlacierDeepArchiveStorageClass) UsageKey added in v0.9.11

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) PopulateUsage added in v0.9.15

func (*S3GlacierFlexibleRetrievalStorageClass) UsageKey added in v0.9.15

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) PopulateUsage added in v0.9.11

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

func (*S3IntelligentTieringStorageClass) UsageKey added in v0.9.11

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) PopulateUsage added in v0.9.11

func (*S3OneZoneInfrequentAccessStorageClass) UsageKey added in v0.9.11

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) PopulateUsage added in v0.9.11

func (*S3StandardInfrequentAccessStorageClass) UsageKey added in v0.9.11

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) 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

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) PopulateUsage added in v0.9.17

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

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) 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.

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) 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.

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) 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.

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

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) PopulateUsage added in v0.9.17

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

Source Files

Jump to

Keyboard shortcuts

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