google

package
v0.10.35 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ComputeExternalVPNGatewayNetworkEgressUsageSchema = []*schema.UsageItem{
	{ValueType: schema.Float64, DefaultValue: 0, Key: "asia"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "worldwide"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "china"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "australia"},
}
View Source
var ComputeVPNGatewayNetworkEgressUsageSchema = []*schema.UsageItem{
	{ValueType: schema.Float64, DefaultValue: 0, Key: "same_region"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "us_or_canada"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "europe"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "asia"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "south_america"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "oceania"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "worldwide"},
}
View Source
var ContainerRegistryNetworkEgressUsageSchema = []*schema.UsageItem{
	{ValueType: schema.Float64, DefaultValue: 0, Key: "same_continent"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "asia"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "worldwide"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "china"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "australia"},
}
View Source
var RegionUsageSchema = []*schema.UsageItem{
	{ValueType: schema.Float64, DefaultValue: 0, Key: "asia_east1"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "asia_east2"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "asia_northeast1"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "asia_northeast2"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "asia_northeast3"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "asia_south1"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "asia_south2"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "asia_southeast1"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "asia_southeast2"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "australia_southeast1"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "australia_southeast2"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "europe_central2"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "europe_north1"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "europe_west1"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "europe_west2"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "europe_west3"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "europe_west4"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "europe_west6"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "northamerica_northeast1"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "northamerica_northeast2"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "southamerica_east1"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "southamerica_west1"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "us_central1"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "us_east1"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "us_east4"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "us_west1"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "us_west2"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "us_west3"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "us_west4"},
}

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 resources that vary on a per region basis.

View Source
var StorageBucketNetworkEgressUsageSchema = []*schema.UsageItem{
	{ValueType: schema.Float64, DefaultValue: 0, Key: "same_continent"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "asia"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "worldwide"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "china"},
	{ValueType: schema.Float64, DefaultValue: 0, Key: "australia"},
}

Functions

func GetFloatFieldValueByUsageTag added in v0.9.20

func GetFloatFieldValueByUsageTag(tagValue string, s interface{}) float64

Types

type ArtifactRegistryRepository added in v0.9.16

type ArtifactRegistryRepository struct {
	Address   string
	Region    string
	Continent string

	// StorageGB represents a usage cost that defines the amount of gb the artifact registry uses on a per monthly basis.
	StorageGB *float64 `infracost_usage:"storage_gb"`
	// MonthlyEgressDataTransferGB represents a complex usage cost that defines data transfer to different regions in the
	// google cloud infra. This does not include outbound internet egress (e.g. downloading artifact data to a local machine).
	MonthlyEgressDataTransferGB *RegionsUsage `infracost_usage:"monthly_egress_data_transfer_gb"`
}

ArtifactRegistryRepository struct represents a GCP artifact Registry. Artifact registry is essentially a next generation version of google's container registry. It allows users to store container images and language packages in the GCP.

Pricing for Artifact Registry is based on storage amounts and data transfer.

Resource information: https://cloud.google.com/artifact-registry Pricing information: https://cloud.google.com/artifact-registry/pricing

func (*ArtifactRegistryRepository) BuildResource added in v0.9.16

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

BuildResource builds a schema.Resource from a valid ArtifactRegistryRepository struct. It returns ArtifactRegistryRepository as a schema.Resource with two main cost components: storage costs & egress costs.

Storage costs:

priced at $0.10 a month after artifact registry usage is > 0.5 GB. We ignore the free tier as there
is no way to currently tell if other artifact registry resources have gone beyond this free usage tier.

Network costs:

  1. free within the same region
  2. free from multi-region to a region within the same continent, e.g. europe -> europe-west1
  3. $0.01 when between different regions in North America continent
  4. $0.02 when between different regions in Europe continent
  5. $0.05 when between different regions in AsiaPacific continent
  6. $0.15 when between any region and Oceania continent
  7. $0.08 for all other intercontinental data transfer

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

func (*ArtifactRegistryRepository) CoreType added in v0.10.35

func (r *ArtifactRegistryRepository) CoreType() string

artifactRegistryRepositoryUsageSchema defines a list which represents the usage schema of ArtifactRegistryRepository.

func (*ArtifactRegistryRepository) PopulateUsage added in v0.9.16

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

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

func (*ArtifactRegistryRepository) UsageSchema added in v0.10.35

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

type BigQueryDataset added in v0.9.17

type BigQueryDataset struct {
	Address          string
	Region           string
	MonthlyQueriesTB *float64 `infracost_usage:"monthly_queries_tb"`
}

func (*BigQueryDataset) BuildResource added in v0.9.17

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

func (*BigQueryDataset) CoreType added in v0.10.35

func (r *BigQueryDataset) CoreType() string

func (*BigQueryDataset) PopulateUsage added in v0.9.17

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

func (*BigQueryDataset) UsageSchema added in v0.10.35

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

type BigQueryTable added in v0.9.17

type BigQueryTable struct {
	Address                   string
	Region                    string
	MonthlyStreamingInsertsMB *float64 `infracost_usage:"monthly_streaming_inserts_mb"`
	MonthlyStorageWriteAPIGB  *float64 `infracost_usage:"monthly_storage_write_api_gb"`
	MonthlyStorageReadAPITB   *float64 `infracost_usage:"monthly_storage_read_api_tb"`
	MonthlyActiveStorageGB    *float64 `infracost_usage:"monthly_active_storage_gb"`
	MonthlyLongTermStorageGB  *float64 `infracost_usage:"monthly_long_term_storage_gb"`
}

func (*BigQueryTable) BuildResource added in v0.9.17

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

func (*BigQueryTable) CoreType added in v0.10.35

func (r *BigQueryTable) CoreType() string

func (*BigQueryTable) PopulateUsage added in v0.9.17

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

func (*BigQueryTable) UsageSchema added in v0.10.35

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

type CloudFunctionsFunction added in v0.9.17

type CloudFunctionsFunction struct {
	Address                    string
	Region                     string
	AvailableMemoryMB          *int64
	RequestDurationMs          *int64   `infracost_usage:"request_duration_ms"`
	MonthlyFunctionInvocations *int64   `infracost_usage:"monthly_function_invocations"`
	MonthlyOutboundDataGB      *float64 `infracost_usage:"monthly_outbound_data_gb"`
}

func (*CloudFunctionsFunction) BuildResource added in v0.9.17

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

func (*CloudFunctionsFunction) CoreType added in v0.10.35

func (r *CloudFunctionsFunction) CoreType() string

func (*CloudFunctionsFunction) PopulateUsage added in v0.9.17

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

func (*CloudFunctionsFunction) UsageSchema added in v0.10.35

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

type ComputeAddress added in v0.9.18

type ComputeAddress struct {
	Address                string
	Region                 string
	AddressType            string
	Purpose                string
	InstancePurchaseOption string
}

func (*ComputeAddress) BuildResource added in v0.9.18

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

func (*ComputeAddress) CoreType added in v0.10.35

func (r *ComputeAddress) CoreType() string

func (*ComputeAddress) PopulateUsage added in v0.9.18

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

func (*ComputeAddress) UsageSchema added in v0.10.35

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

type ComputeDisk added in v0.9.20

type ComputeDisk struct {
	Address string
	Region  string
	Type    string
	Size    float64

	// applicable for pd-extreme and hyperdisk-extreme
	IOPS int64
}

ComputeDisk struct represents Compute Disk resource.

func (*ComputeDisk) BuildResource added in v0.9.21

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

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

func (*ComputeDisk) CoreType added in v0.10.35

func (r *ComputeDisk) CoreType() string

func (*ComputeDisk) PopulateUsage added in v0.9.21

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

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

func (*ComputeDisk) UsageSchema added in v0.10.35

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

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

type ComputeExternalVPNGateway added in v0.9.20

type ComputeExternalVPNGateway struct {
	Address string
	Region  string

	MonthlyEgressDataTransferGB *ComputeExternalVPNGatewayNetworkEgressUsage `infracost_usage:"monthly_egress_data_transfer_gb"`
}

func (*ComputeExternalVPNGateway) BuildResource added in v0.9.20

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

func (*ComputeExternalVPNGateway) CoreType added in v0.10.35

func (r *ComputeExternalVPNGateway) CoreType() string

func (*ComputeExternalVPNGateway) PopulateUsage added in v0.9.20

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

func (*ComputeExternalVPNGateway) UsageSchema added in v0.10.35

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

type ComputeExternalVPNGatewayNetworkEgressUsage added in v0.9.20

type ComputeExternalVPNGatewayNetworkEgressUsage struct {
	Asia      *float64 `infracost_usage:"asia"`
	Worldwide *float64 `infracost_usage:"worldwide"`
	China     *float64 `infracost_usage:"china"`
	Australia *float64 `infracost_usage:"australia"`

	NetworkEgressUsage
}

func (*ComputeExternalVPNGatewayNetworkEgressUsage) BuildResource added in v0.9.20

func (*ComputeExternalVPNGatewayNetworkEgressUsage) CoreType added in v0.10.35

func (*ComputeExternalVPNGatewayNetworkEgressUsage) UsageSchema added in v0.10.35

type ComputeForwardingRule added in v0.9.18

type ComputeForwardingRule struct {
	Address              string
	Region               string
	MonthlyIngressDataGB *float64 `infracost_usage:"monthly_ingress_data_gb"`
}

func (*ComputeForwardingRule) BuildResource added in v0.9.18

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

func (*ComputeForwardingRule) CoreType added in v0.10.35

func (r *ComputeForwardingRule) CoreType() string

func (*ComputeForwardingRule) PopulateUsage added in v0.9.18

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

func (*ComputeForwardingRule) UsageSchema added in v0.10.35

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

type ComputeGuestAccelerator added in v0.9.20

type ComputeGuestAccelerator struct {
	Type  string
	Count int64
}

ComputeGuestAccelerator defines Guest Accelerator setup for Compute resources.

type ComputeImage added in v0.9.21

type ComputeImage struct {
	Address     string
	Region      string
	StorageSize float64

	// "usage" args
	StorageGB *float64 `infracost_usage:"storage_gb"`
}

ComputeImage struct represents Compute Image resource.

func (*ComputeImage) BuildResource added in v0.9.21

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

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

func (*ComputeImage) CoreType added in v0.10.35

func (r *ComputeImage) CoreType() string

func (*ComputeImage) PopulateUsage added in v0.9.21

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

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

func (*ComputeImage) UsageSchema added in v0.10.35

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

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

type ComputeInstance added in v0.9.20

type ComputeInstance struct {
	Address string
	Region  string

	MachineType       string
	PurchaseOption    string
	Size              int64
	HasBootDisk       bool
	BootDiskSize      float64
	BootDiskType      string
	ScratchDisks      int
	GuestAccelerators []*ComputeGuestAccelerator

	MonthlyHours *float64 `infracost_usage:"monthly_hrs"`
}

ComputeInstance struct represents Compute Instance resource.

func (*ComputeInstance) BuildResource added in v0.9.20

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

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

func (*ComputeInstance) CoreType added in v0.10.35

func (r *ComputeInstance) CoreType() string

func (*ComputeInstance) PopulateUsage added in v0.9.20

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

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

func (*ComputeInstance) UsageSchema added in v0.10.35

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

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

type ComputeInstanceGroupManager added in v0.9.20

type ComputeInstanceGroupManager struct {
	Address string
	Region  string

	MachineType       string
	PurchaseOption    string
	TargetSize        int64
	Disks             []*ComputeDisk
	ScratchDisks      int
	GuestAccelerators []*ComputeGuestAccelerator
}

ComputeInstanceGroupManager struct represents Compute Instance Group Manager resource.

func (*ComputeInstanceGroupManager) BuildResource added in v0.9.20

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

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

func (*ComputeInstanceGroupManager) CoreType added in v0.10.35

func (r *ComputeInstanceGroupManager) CoreType() string

func (*ComputeInstanceGroupManager) PopulateUsage added in v0.9.20

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

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

func (*ComputeInstanceGroupManager) UsageSchema added in v0.10.35

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

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

type ComputeMachineImage added in v0.9.21

type ComputeMachineImage struct {
	Address string
	Region  string

	// "usage" args
	StorageGB *float64 `infracost_usage:"storage_gb"`
}

ComputeMachineImage struct represents Compute Machine Image resource.

func (*ComputeMachineImage) BuildResource added in v0.9.21

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

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

func (*ComputeMachineImage) CoreType added in v0.10.35

func (r *ComputeMachineImage) CoreType() string

func (*ComputeMachineImage) PopulateUsage added in v0.9.21

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

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

func (*ComputeMachineImage) UsageSchema added in v0.10.35

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

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

type ComputeRegionInstanceGroupManager added in v0.9.20

type ComputeRegionInstanceGroupManager struct {
	Address string
	Region  string

	MachineType       string
	PurchaseOption    string
	TargetSize        int64
	ScratchDisks      int
	Disks             []*ComputeDisk
	GuestAccelerators []*ComputeGuestAccelerator
}

ComputeRegionInstanceGroupManager struct represents Compute Region Instance Group Manager resource.

func (*ComputeRegionInstanceGroupManager) BuildResource added in v0.9.20

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

func (*ComputeRegionInstanceGroupManager) CoreType added in v0.10.35

func (*ComputeRegionInstanceGroupManager) PopulateUsage added in v0.9.20

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

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

func (*ComputeRegionInstanceGroupManager) UsageSchema added in v0.10.35

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

type ComputeRouterNAT added in v0.9.17

type ComputeRouterNAT struct {
	Address                string
	Region                 string
	AssignedVMs            *int64   `infracost_usage:"assigned_vms"`
	MonthlyDataProcessedGB *float64 `infracost_usage:"monthly_data_processed_gb"`
}

func (*ComputeRouterNAT) BuildResource added in v0.9.17

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

func (*ComputeRouterNAT) CoreType added in v0.10.35

func (r *ComputeRouterNAT) CoreType() string

func (*ComputeRouterNAT) PopulateUsage added in v0.9.17

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

func (*ComputeRouterNAT) UsageSchema added in v0.10.35

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

type ComputeSnapshot added in v0.9.21

type ComputeSnapshot struct {
	Address  string
	Region   string
	DiskSize float64

	// "usage" args
	StorageGB *float64 `infracost_usage:"storage_gb"`
}

ComputeSnapshot struct represents Compute Snapshot resource.

func (*ComputeSnapshot) BuildResource added in v0.9.21

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

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

func (*ComputeSnapshot) CoreType added in v0.10.35

func (r *ComputeSnapshot) CoreType() string

func (*ComputeSnapshot) PopulateUsage added in v0.9.21

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

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

func (*ComputeSnapshot) UsageSchema added in v0.10.35

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

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

type ComputeTargetGRPCProxy added in v0.9.18

type ComputeTargetGRPCProxy struct {
	Address                string
	Region                 string
	MonthlyProxyInstances  *float64 `infracost_usage:"monthly_proxy_instances"`
	MonthlyDataProcessedGB *float64 `infracost_usage:"monthly_data_processed_gb"`
}

func (*ComputeTargetGRPCProxy) BuildResource added in v0.9.18

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

func (*ComputeTargetGRPCProxy) CoreType added in v0.10.35

func (r *ComputeTargetGRPCProxy) CoreType() string

func (*ComputeTargetGRPCProxy) PopulateUsage added in v0.9.18

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

func (*ComputeTargetGRPCProxy) UsageSchema added in v0.10.35

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

type ComputeVPNGateway added in v0.9.22

type ComputeVPNGateway struct {
	Address string
	Region  string

	MonthlyEgressDataTransferGB *ComputeVPNGatewayNetworkEgressUsage `infracost_usage:"monthly_egress_data_transfer_gb"`
}

func (*ComputeVPNGateway) BuildResource added in v0.9.22

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

func (*ComputeVPNGateway) CoreType added in v0.10.35

func (r *ComputeVPNGateway) CoreType() string

func (*ComputeVPNGateway) PopulateUsage added in v0.9.22

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

func (*ComputeVPNGateway) UsageSchema added in v0.10.35

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

type ComputeVPNGatewayNetworkEgressUsage added in v0.9.20

type ComputeVPNGatewayNetworkEgressUsage struct {
	SameRegion   *float64 `infracost_usage:"same_region"`
	USOrCanada   *float64 `infracost_usage:"us_or_canada"`
	Europe       *float64 `infracost_usage:"europe"`
	Asia         *float64 `infracost_usage:"asia"`
	SouthAmerica *float64 `infracost_usage:"south_america"`
	Oceania      *float64 `infracost_usage:"oceania"`
	Worldwide    *float64 `infracost_usage:"worldwide"`

	NetworkEgressUsage
}

func (*ComputeVPNGatewayNetworkEgressUsage) BuildResource added in v0.9.20

func (*ComputeVPNGatewayNetworkEgressUsage) CoreType added in v0.10.35

func (*ComputeVPNGatewayNetworkEgressUsage) UsageSchema added in v0.10.35

type ComputeVPNTunnel added in v0.9.17

type ComputeVPNTunnel struct {
	Address string
	Region  string
}

func (*ComputeVPNTunnel) BuildResource added in v0.9.17

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

func (*ComputeVPNTunnel) CoreType added in v0.10.35

func (r *ComputeVPNTunnel) CoreType() string

func (*ComputeVPNTunnel) PopulateUsage added in v0.9.17

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

func (*ComputeVPNTunnel) UsageSchema added in v0.10.35

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

type ContainerCluster added in v0.9.20

type ContainerCluster struct {
	Address string
	Region  string

	AutopilotEnabled bool

	IsZone          bool
	DefaultNodePool *ContainerNodePool
	NodePools       []*ContainerNodePool

	// "usage" args
	DefaultNodePoolNodes        *int64   `infracost_usage:"nodes"`
	AutopilotVCPUCount          *float64 `infracost_usage:"autopilot_vcpu_count"`
	AutopilotMemoryGB           *float64 `infracost_usage:"autopilot_memory_gb"`
	AutopilotEphemeralStorageGB *float64 `infracost_usage:"autopilot_ephemeral_storage_gb"`
}

ContainerCluster struct represents Container Cluster resource.

func (*ContainerCluster) BuildResource added in v0.9.20

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

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

func (*ContainerCluster) CoreType added in v0.10.35

func (r *ContainerCluster) CoreType() string

func (*ContainerCluster) PopulateUsage added in v0.9.20

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

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

func (*ContainerCluster) UsageSchema added in v0.10.35

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

type ContainerNodeConfig added in v0.9.20

type ContainerNodeConfig struct {
	MachineType       string
	PurchaseOption    string
	DiskType          string
	DiskSize          float64
	LocalSSDCount     int64
	GuestAccelerators []*ComputeGuestAccelerator
}

ContainerNodeConfig defines Node configuration for Container resources.

type ContainerNodePool added in v0.9.20

type ContainerNodePool struct {
	Address string
	Region  string

	Zones        int64
	CountPerZone int64
	NodeConfig   *ContainerNodeConfig

	// "usage" args
	Nodes *int64 `infracost_usage:"nodes"`
}

ContainerNodePool struct represents Container Cluster's Node Pool resource.

func (*ContainerNodePool) BuildResource added in v0.9.20

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

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

func (*ContainerNodePool) CoreType added in v0.10.35

func (r *ContainerNodePool) CoreType() string

func (*ContainerNodePool) PopulateUsage added in v0.9.20

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

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

func (*ContainerNodePool) UsageSchema added in v0.10.35

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

type ContainerRegistry added in v0.9.22

type ContainerRegistry struct {
	Address                     string
	Region                      string
	Location                    string
	StorageClass                string
	StorageGB                   *float64                             `infracost_usage:"storage_gb"`
	MonthlyClassAOperations     *int64                               `infracost_usage:"monthly_class_a_operations"`
	MonthlyClassBOperations     *int64                               `infracost_usage:"monthly_class_b_operations"`
	MonthlyEgressDataTransferGB *ContainerRegistryNetworkEgressUsage `infracost_usage:"monthly_egress_data_transfer_gb"`
}

func (*ContainerRegistry) BuildResource added in v0.9.22

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

func (*ContainerRegistry) CoreType added in v0.10.35

func (r *ContainerRegistry) CoreType() string

func (*ContainerRegistry) PopulateUsage added in v0.9.22

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

func (*ContainerRegistry) UsageSchema added in v0.10.35

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

type ContainerRegistryNetworkEgressUsage added in v0.9.20

type ContainerRegistryNetworkEgressUsage struct {
	SameContinent *float64 `infracost_usage:"same_continent"`
	Asia          *float64 `infracost_usage:"asia"`
	Worldwide     *float64 `infracost_usage:"worldwide"`
	China         *float64 `infracost_usage:"china"`
	Australia     *float64 `infracost_usage:"australia"`

	NetworkEgressUsage
}

func (*ContainerRegistryNetworkEgressUsage) BuildResource added in v0.9.20

func (*ContainerRegistryNetworkEgressUsage) CoreType added in v0.10.35

func (*ContainerRegistryNetworkEgressUsage) UsageSchema added in v0.10.35

type DNSManagedZone added in v0.9.17

type DNSManagedZone struct {
	Address string
}

func (*DNSManagedZone) BuildResource added in v0.9.17

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

func (*DNSManagedZone) CoreType added in v0.10.35

func (r *DNSManagedZone) CoreType() string

func (*DNSManagedZone) PopulateUsage added in v0.9.17

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

func (*DNSManagedZone) UsageSchema added in v0.10.35

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

type DNSRecordSet added in v0.9.17

type DNSRecordSet struct {
	Address        string
	MonthlyQueries *int64 `infracost_usage:"monthly_queries"`
}

func (*DNSRecordSet) BuildResource added in v0.9.17

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

func (*DNSRecordSet) CoreType added in v0.10.35

func (r *DNSRecordSet) CoreType() string

func (*DNSRecordSet) PopulateUsage added in v0.9.17

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

func (*DNSRecordSet) UsageSchema added in v0.10.35

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

type KMSCryptoKey added in v0.9.18

type KMSCryptoKey struct {
	Address              string
	Region               string
	VersionTemplate      string
	Algorithm            string
	ProtectionLevel      string
	RotationPeriod       string
	KeyVersions          *int64 `infracost_usage:"key_versions"`
	MonthlyKeyOperations *int64 `infracost_usage:"monthly_key_operations"`
}

func (*KMSCryptoKey) BuildResource added in v0.9.18

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

func (*KMSCryptoKey) CoreType added in v0.10.35

func (r *KMSCryptoKey) CoreType() string

func (*KMSCryptoKey) PopulateUsage added in v0.9.18

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

func (*KMSCryptoKey) UsageSchema added in v0.10.35

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

type Logging added in v0.9.17

type Logging struct {
	Address              string
	MonthlyLoggingDataGB *float64 `infracost_usage:"monthly_logging_data_gb"`
}

func (*Logging) BuildResource added in v0.9.17

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

func (*Logging) CoreType added in v0.10.35

func (r *Logging) CoreType() string

func (*Logging) PopulateUsage added in v0.9.17

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

func (*Logging) UsageSchema added in v0.10.35

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

type MonitoringMetricDescriptor added in v0.9.17

type MonitoringMetricDescriptor struct {
	Address                 string
	MonthlyMonitoringDataMB *int64 `infracost_usage:"monthly_monitoring_data_mb"`
	MonthlyAPICalls         *int64 `infracost_usage:"monthly_api_calls"`
}

func (*MonitoringMetricDescriptor) BuildResource added in v0.9.17

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

func (*MonitoringMetricDescriptor) CoreType added in v0.10.35

func (r *MonitoringMetricDescriptor) CoreType() string

func (*MonitoringMetricDescriptor) PopulateUsage added in v0.9.17

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

func (*MonitoringMetricDescriptor) UsageSchema added in v0.10.35

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

type NetworkEgressUsage added in v0.9.20

type NetworkEgressUsage struct {
	Address    string
	Region     string
	PrefixName string
}

type PubSubSubscription added in v0.9.17

type PubSubSubscription struct {
	Address              string
	MonthlyMessageDataTB *float64 `infracost_usage:"monthly_message_data_tb"`
	StorageGB            *float64 `infracost_usage:"storage_gb"`
	SnapshotStorageGB    *float64 `infracost_usage:"snapshot_storage_gb"`
}

func (*PubSubSubscription) BuildResource added in v0.9.17

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

func (*PubSubSubscription) CoreType added in v0.10.35

func (r *PubSubSubscription) CoreType() string

func (*PubSubSubscription) PopulateUsage added in v0.9.17

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

func (*PubSubSubscription) UsageSchema added in v0.10.35

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

type PubSubTopic added in v0.9.17

type PubSubTopic struct {
	Address              string
	MonthlyMessageDataTB *float64 `infracost_usage:"monthly_message_data_tb"`
}

func (*PubSubTopic) BuildResource added in v0.9.17

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

func (*PubSubTopic) CoreType added in v0.10.35

func (r *PubSubTopic) CoreType() string

func (*PubSubTopic) PopulateUsage added in v0.9.17

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

func (*PubSubTopic) UsageSchema added in v0.10.35

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

type RedisInstance added in v0.9.17

type RedisInstance struct {
	Address      string
	Region       string
	Tier         string
	MemorySizeGB float64
}

func (*RedisInstance) BuildResource added in v0.9.17

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

func (*RedisInstance) CoreType added in v0.10.35

func (r *RedisInstance) CoreType() string

func (*RedisInstance) PopulateUsage added in v0.9.17

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

func (*RedisInstance) UsageSchema added in v0.10.35

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

type RegionUsage added in v0.9.16

type RegionUsage struct {
	Key   string
	Value float64
}

RegionUsage defines a hard definition in the regions map.

type RegionsUsage added in v0.9.16

type RegionsUsage struct {
	AsiaEast1              *float64 `infracost_usage:"asia_east1"`
	AsiaEast2              *float64 `infracost_usage:"asia_east2"`
	AsiaNortheast1         *float64 `infracost_usage:"asia_northeast1"`
	AsiaNortheast2         *float64 `infracost_usage:"asia_northeast2"`
	AsiaNortheast3         *float64 `infracost_usage:"asia_northeast3"`
	AsiaSouth1             *float64 `infracost_usage:"asia_south1"`
	AsiaSouth2             *float64 `infracost_usage:"asia_south2"`
	AsiaSoutheast1         *float64 `infracost_usage:"asia_southeast1"`
	AsiaSoutheast2         *float64 `infracost_usage:"asia_southeast2"`
	AustraliaSoutheast1    *float64 `infracost_usage:"australia_southeast1"`
	AustraliaSoutheast2    *float64 `infracost_usage:"australia_southeast2"`
	EuropeCentral2         *float64 `infracost_usage:"europe_central2"`
	EuropeNorth1           *float64 `infracost_usage:"europe_north1"`
	EuropeWest1            *float64 `infracost_usage:"europe_west1"`
	EuropeWest2            *float64 `infracost_usage:"europe_west2"`
	EuropeWest3            *float64 `infracost_usage:"europe_west3"`
	EuropeWest4            *float64 `infracost_usage:"europe_west4"`
	EuropeWest6            *float64 `infracost_usage:"europe_west6"`
	NorthAmericaNortheast1 *float64 `infracost_usage:"northamerica_northeast1"`
	NorthAmericaNortheast2 *float64 `infracost_usage:"northamerica_northeast2"`
	SouthAmericaEast1      *float64 `infracost_usage:"southamerica_east1"`
	SouthAmericaWest1      *float64 `infracost_usage:"southamerica_west1"`
	USCentral1             *float64 `infracost_usage:"us_central1"`
	USEast1                *float64 `infracost_usage:"us_east1"`
	USEast4                *float64 `infracost_usage:"us_east4"`
	USWest1                *float64 `infracost_usage:"us_west1"`
	USWest2                *float64 `infracost_usage:"us_west2"`
	USWest3                *float64 `infracost_usage:"us_west3"`
	USWest4                *float64 `infracost_usage:"us_west4"`
}

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:

asia_northeast1: 188
asia_east2: 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.16

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 SQLDatabaseInstance added in v0.10.0

type SQLDatabaseInstance struct {
	Address              string
	DiskSize             int64
	UseIPV4              bool
	ReplicaConfiguration string
	Tier                 string
	Edition              string
	AvailabilityType     string
	Region               string
	DatabaseVersion      string
	DiskType             string
	BackupStorageGB      *float64 `infracost_usage:"backup_storage_gb"`
}

func (*SQLDatabaseInstance) BuildResource added in v0.10.0

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

func (*SQLDatabaseInstance) CoreType added in v0.10.35

func (r *SQLDatabaseInstance) CoreType() string

func (*SQLDatabaseInstance) IsCustom added in v0.10.32

func (r *SQLDatabaseInstance) IsCustom() bool

func (*SQLDatabaseInstance) IsHighMem added in v0.10.32

func (r *SQLDatabaseInstance) IsHighMem() bool

func (*SQLDatabaseInstance) IsLegacy added in v0.10.32

func (r *SQLDatabaseInstance) IsLegacy() bool

func (*SQLDatabaseInstance) IsShared added in v0.10.32

func (r *SQLDatabaseInstance) IsShared() bool

func (*SQLDatabaseInstance) IsStandard added in v0.10.32

func (r *SQLDatabaseInstance) IsStandard() bool

func (*SQLDatabaseInstance) PopulateUsage added in v0.10.0

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

func (*SQLDatabaseInstance) UsageSchema added in v0.10.35

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

type SQLInstanceDBType added in v0.10.0

type SQLInstanceDBType int
const (
	MySQL SQLInstanceDBType = iota
	PostgreSQL
	SQLServer
)

type SecretManagerSecret

type SecretManagerSecret struct {
	Address              string
	Region               string
	ReplicationLocations int64

	// "usage" args
	ActiveSecretVersions         *int64 `infracost_usage:"active_secret_versions"`
	MonthlyAccessOperations      *int64 `infracost_usage:"monthly_access_operations"`
	MonthlyRotationNotifications *int64 `infracost_usage:"monthly_rotation_notifications"`
}

SecretManagerSecret represents Google Secret Manager's Secret resource.

The cost of active secret versions depends on the number of replication locations. If it's more than one then the price is multiplied by the locations' quantity. Pricing API includes Free Tier, but it's not used.

More resource information here: https://cloud.google.com/secret-manager Pricing information here: https://cloud.google.com/secret-manager/pricing

func (*SecretManagerSecret) BuildResource

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

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

func (*SecretManagerSecret) CoreType added in v0.10.35

func (r *SecretManagerSecret) CoreType() string

func (*SecretManagerSecret) PopulateUsage

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

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

func (*SecretManagerSecret) UsageSchema added in v0.10.35

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

type SecretManagerSecretVersion

type SecretManagerSecretVersion struct {
	Address              string
	Region               string
	ReplicationLocations int64

	// "usage" args
	MonthlyAccessOperations *int64 `infracost_usage:"monthly_access_operations"`
}

SecretManagerSecretVersion represents one Google Secret Manager Secret's Version resource.

The cost of active secret version depends on the number of replication locations specified by its parent secret. If it's more than one then the price is multiplied by the locations' quantity. Pricing API includes Free Tier, but it's not used.

More resource information here: https://cloud.google.com/secret-manager Pricing information here: https://cloud.google.com/secret-manager/pricing

func (*SecretManagerSecretVersion) BuildResource

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

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

func (*SecretManagerSecretVersion) CoreType added in v0.10.35

func (r *SecretManagerSecretVersion) CoreType() string

func (*SecretManagerSecretVersion) PopulateUsage

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

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

func (*SecretManagerSecretVersion) UsageSchema added in v0.10.35

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

type StorageBucket added in v0.9.22

type StorageBucket struct {
	Address                     string
	Region                      string
	Location                    string
	StorageClass                string
	StorageGB                   *float64                         `infracost_usage:"storage_gb"`
	MonthlyClassAOperations     *int64                           `infracost_usage:"monthly_class_a_operations"`
	MonthlyClassBOperations     *int64                           `infracost_usage:"monthly_class_b_operations"`
	MonthlyDataRetrievalGB      *float64                         `infracost_usage:"monthly_data_retrieval_gb"`
	MonthlyEgressDataTransferGB *StorageBucketNetworkEgressUsage `infracost_usage:"monthly_egress_data_transfer_gb"`
}

func (*StorageBucket) BuildResource added in v0.9.22

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

func (*StorageBucket) CoreType added in v0.10.35

func (r *StorageBucket) CoreType() string

func (*StorageBucket) PopulateUsage added in v0.9.22

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

func (*StorageBucket) UsageSchema added in v0.10.35

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

type StorageBucketNetworkEgressUsage added in v0.9.20

type StorageBucketNetworkEgressUsage struct {
	SameContinent *float64 `infracost_usage:"same_continent"`
	Asia          *float64 `infracost_usage:"asia"`
	Worldwide     *float64 `infracost_usage:"worldwide"`
	China         *float64 `infracost_usage:"china"`
	Australia     *float64 `infracost_usage:"australia"`

	NetworkEgressUsage
}

func (*StorageBucketNetworkEgressUsage) BuildResource added in v0.9.20

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

func (*StorageBucketNetworkEgressUsage) CoreType added in v0.10.35

func (*StorageBucketNetworkEgressUsage) UsageSchema added in v0.10.35

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

Jump to

Keyboard shortcuts

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