cloudbilling

package
v0.126.0 Latest Latest
Warning

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

Go to latest
Published: Jun 8, 2023 License: BSD-3-Clause Imports: 16 Imported by: 3

Documentation

Overview

Package cloudbilling provides access to the Cloud Billing API.

For product documentation, see: https://cloud.google.com/billing/

Creating a client

Usage example:

import "google.golang.org/api/cloudbilling/v1beta"
...
ctx := context.Background()
cloudbillingService, err := cloudbilling.NewService(ctx)

In this example, Google Application Default Credentials are used for authentication.

For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.

Other authentication options

By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:

cloudbillingService, err := cloudbilling.NewService(ctx, option.WithScopes(cloudbilling.CloudPlatformScope))

To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:

cloudbillingService, err := cloudbilling.NewService(ctx, option.WithAPIKey("AIza..."))

To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:

config := &oauth2.Config{...}
// ...
token, err := config.Exchange(ctx, ...)
cloudbillingService, err := cloudbilling.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))

See https://godoc.org/google.golang.org/api/option/ for details on options.

Index

Constants

View Source
const (
	// View and manage your Google Cloud Platform billing accounts
	CloudBillingScope = "https://www.googleapis.com/auth/cloud-billing"

	// View your Google Cloud Platform billing accounts
	CloudBillingReadonlyScope = "https://www.googleapis.com/auth/cloud-billing.readonly"

	// See, edit, configure, and delete your Google Cloud data and see the
	// email address for your Google Account.
	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
)

OAuth2 scopes used by this API.

Variables

This section is empty.

Functions

This section is empty.

Types

type BillingAccountsEstimateCostScenarioCall

type BillingAccountsEstimateCostScenarioCall struct {
	// contains filtered or unexported fields
}

func (*BillingAccountsEstimateCostScenarioCall) Context

Context sets the context to be used in this call's Do method. Any pending HTTP request will be aborted if the provided context is canceled.

func (*BillingAccountsEstimateCostScenarioCall) Do

Do executes the "cloudbilling.billingAccounts.estimateCostScenario" call. Exactly one of *EstimateCostScenarioForBillingAccountResponse or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *EstimateCostScenarioForBillingAccountResponse.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.

func (*BillingAccountsEstimateCostScenarioCall) Fields

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*BillingAccountsEstimateCostScenarioCall) Header

Header returns an http.Header that can be modified by the caller to add HTTP headers to the request.

type BillingAccountsService

type BillingAccountsService struct {
	// contains filtered or unexported fields
}

func NewBillingAccountsService

func NewBillingAccountsService(s *Service) *BillingAccountsService

func (*BillingAccountsService) EstimateCostScenario

func (r *BillingAccountsService) EstimateCostScenario(billingAccount string, estimatecostscenarioforbillingaccountrequest *EstimateCostScenarioForBillingAccountRequest) *BillingAccountsEstimateCostScenarioCall

EstimateCostScenario: Use custom pricing in the estimate, using a `CostScenario` with a defined `billingAccount`.

  • billingAccount: Resource name of the billing account for the cost estimate. The resource name has the form `billingAccounts/{billing_account_id}`. For example, `billingAccounts/012345-567890-ABCDEF` is the resource name for billing account `012345-567890-ABCDEF`. Must be specified.

type CacheFillRegions added in v0.106.0

type CacheFillRegions struct {
	// DestinationRegion: The destination region for cache fill.
	//
	// Possible values:
	//   "CACHE_FILL_DESTINATION_REGION_UNSPECIFIED" - Not specified.
	//   "CACHE_FILL_DESTINATION_REGION_ASIA_PACIFIC" - Asia Pacific.
	//   "CACHE_FILL_DESTINATION_REGION_EUROPE" - Europe
	//   "CACHE_FILL_DESTINATION_REGION_NORTH_AMERICA" - North America.
	//   "CACHE_FILL_DESTINATION_REGION_OCEANIA" - Oceania.
	//   "CACHE_FILL_DESTINATION_REGION_SOUTH_AMERICA" - South America.
	//   "CACHE_FILL_DESTINATION_REGION_CHINA" - China.
	//   "CACHE_FILL_DESTINATION_REGION_OTHERS" - Others.
	DestinationRegion string `json:"destinationRegion,omitempty"`

	// SourceRegion: The source region for cache fill.
	//
	// Possible values:
	//   "CACHE_FILL_SOURCE_REGION_UNSPECIFIED" - Not specified.
	//   "CACHE_FILL_REGION_ASIA_PACIFIC" - Asia Pacific.
	//   "CACHE_FILL_SOURCE_REGION_EUROPE" - Europe
	//   "CACHE_FILL_SOURCE_REGION_NORTH_AMERICA" - North America.
	//   "CACHE_FILL_SOURCE_REGION_OCEANIA" - Oceania.
	//   "CACHE_FILL_SOURCE_REGION_SOUTH_AMERICA" - South America.
	SourceRegion string `json:"sourceRegion,omitempty"`

	// ForceSendFields is a list of field names (e.g. "DestinationRegion")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DestinationRegion") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

CacheFillRegions: Specifies the regions for Cache Fill.

func (*CacheFillRegions) MarshalJSON added in v0.106.0

func (s *CacheFillRegions) MarshalJSON() ([]byte, error)

type CloudCdnEgressWorkload added in v0.106.0

type CloudCdnEgressWorkload struct {
	// CacheEgressDestination: The destination for the cache egress charges.
	//
	// Possible values:
	//   "CACHE_EGRESS_DESTINATION_UNSPECIFIED" - Unspecified.
	//   "CACHE_EGRESS_DESTINATION_ASIA_PACIFIC" - Asia Pacific.
	//   "CACHE_EGRESS_DESTINATION_CHINA" - China.
	//   "CACHE_EGRESS_DESTINATION_EUROPE" - Europe.
	//   "CACHE_EGRESS_DESTINATION_NORTH_AMERICA" - North America.
	//   "CACHE_EGRESS_DESTINATION_OCEANIA" - Oceania including Australia,
	// New Zealand, and surrounding Pacific Ocean islands such as Papua New
	// Guinea and Fiji. This region excludes Hawaii.
	//   "CACHE_EGRESS_DESTINATION_LATIN_AMERICA" - Latin America (Including
	// the Caribbean, South America and Central America.)
	//   "CACHE_EGRESS_DESTINATION_OTHER_DESTINATIONS" - All other
	// destinations (including Africa and Antarctica)
	CacheEgressDestination string `json:"cacheEgressDestination,omitempty"`

	// CacheEgressRate: Cache egress usage. The rate of data cache egressed
	// in the destination. For example : units such as "GiBy/s" or "TBy/mo".
	CacheEgressRate *Usage `json:"cacheEgressRate,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "CacheEgressDestination") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CacheEgressDestination")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

CloudCdnEgressWorkload: Specifies usage for Cloud CDN egress.

func (*CloudCdnEgressWorkload) MarshalJSON added in v0.106.0

func (s *CloudCdnEgressWorkload) MarshalJSON() ([]byte, error)

type CloudCdnWorkload added in v0.106.0

type CloudCdnWorkload struct {
	// CacheFillOriginService: The source service for the cache fill.
	//
	// Possible values:
	//   "CACHE_FILL_ORIGIN_SERVICE_UNSPECIFIED" - Not specified.
	//   "CACHE_FILL_ORIGIN_SERVICE_GOOGLE_CLOUD_STORAGE_BUCKET" - Origin
	// service is Google Cloud Storage.
	//   "CACHE_FILL_ORIGIN_SERVICE_BACKEND_SERVICE" - Origin service is
	// backend service, such as Compute VMs, external backend, etc.
	CacheFillOriginService string `json:"cacheFillOriginService,omitempty"`

	// CacheFillRate: Cache fill usage. The rate of data transferred between
	// cache fill regions. For example: units such as "GiBy/s" or "TBy/mo".
	CacheFillRate *Usage `json:"cacheFillRate,omitempty"`

	// CacheFillRegions: The regions where data is transferred from Google
	// data locations into Google global cache servers. The SKU prices for
	// cache fill across services are the same.
	CacheFillRegions *CacheFillRegions `json:"cacheFillRegions,omitempty"`

	// CacheLookUpRate: Cache look up requests. This is specified to
	// indicate the number of requests. For example: units such as "1/s".
	CacheLookUpRate *Usage `json:"cacheLookUpRate,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "CacheFillOriginService") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CacheFillOriginService")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

CloudCdnWorkload: Specifies usage for Cloud CDN resources.

func (*CloudCdnWorkload) MarshalJSON added in v0.106.0

func (s *CloudCdnWorkload) MarshalJSON() ([]byte, error)

type CloudInterconnectEgressWorkload added in v0.106.0

type CloudInterconnectEgressWorkload struct {
	// EgressRate: Data egress usage. This usage applies when you move or
	// copy data from one Google Cloud service to another service. Expected
	// units such as "GiBy/s, By/s, etc."
	EgressRate *Usage `json:"egressRate,omitempty"`

	// InterconnectConnectionLocation: Locations in the Interconnect
	// connection location table
	// (https://cloud.google.com/vpc/network-pricing#interconnect-pricing).
	// This is the interconnect egress charges.
	//
	// Possible values:
	//   "INTERCONNECT_CONNECTION_LOCATION_UNSPECIFIED" - Unspecified.
	//   "INTERCONNECT_CONNECTION_LOCATION_ASIA" - Asia.
	//   "INTERCONNECT_CONNECTION_LOCATION_EUROPE" - Europe.
	//   "INTERCONNECT_CONNECTION_LOCATION_NORTH_AMERICA" - North America.
	//   "INTERCONNECT_CONNECTION_LOCATION_SOUTH_AMERICA" - South America.
	//   "INTERCONNECT_CONNECTION_LOCATION_AUSTRALIA" - Australia.
	InterconnectConnectionLocation string `json:"interconnectConnectionLocation,omitempty"`

	// ForceSendFields is a list of field names (e.g. "EgressRate") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "EgressRate") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

CloudInterconnectEgressWorkload: The interconnect egress only includes the Interconnect Egress. Please use the standard egress traffic interface to specify your standard egress usage.

func (*CloudInterconnectEgressWorkload) MarshalJSON added in v0.106.0

func (s *CloudInterconnectEgressWorkload) MarshalJSON() ([]byte, error)

type CloudInterconnectWorkload added in v0.106.0

type CloudInterconnectWorkload struct {
	// InterconnectAttachments: VLAN attachment used for interconnect.
	InterconnectAttachments []*VlanAttachment `json:"interconnectAttachments,omitempty"`

	// InterconnectType: Vlan attachment type.
	//
	// Possible values:
	//   "INTERCONNECT_TYPE_UNSPECIFIED" - Unspecified.
	//   "INTERCONNECT_TYPE_DEDICATED" - Type is dedicated.
	//   "INTERCONNECT_TYPE_PARTNER" - Type is partner.
	InterconnectType string `json:"interconnectType,omitempty"`

	// LinkType: Interconnect circuit link type.
	//
	// Possible values:
	//   "LINK_TYPE_UNSPECIFIED" - Unspecified.
	//   "LINK_TYPE_ETHERNET_10G_LR" - Link type is 10 gbps.
	//   "LINK_TYPE_ETHERNET_100G_LR" - Link type is 100 gbps.
	LinkType string `json:"linkType,omitempty"`

	// ProvisionedLinkCount: Interconnect usage. This is specified as a
	// unitless quantity which indicates the number of circuit provisioned
	// in interconnect.
	ProvisionedLinkCount *Usage `json:"provisionedLinkCount,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "InterconnectAttachments") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "InterconnectAttachments")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

CloudInterconnectWorkload: Specifies usage for Cloud Interconnect resources.

func (*CloudInterconnectWorkload) MarshalJSON added in v0.106.0

func (s *CloudInterconnectWorkload) MarshalJSON() ([]byte, error)

type CloudStorageEgressWorkload added in v0.106.0

type CloudStorageEgressWorkload struct {
	// DestinationContinent: Where the data is sent to.
	//
	// Possible values:
	//   "DESTINATION_CONTINENT_UNSPECIFIED" - Not specified.
	//   "DESTINATION_CONTINENT_ASIA_PACIFIC" - Asia Pacific.
	//   "DESTINATION_CONTINENT_AUTRALIA" - Australia.
	//   "DESTINATION_CONTINENT_EUROPE" - Europe.
	//   "DESTINATION_CONTINENT_NORTH_AMERICA" - North America.
	//   "DESTINATION_CONTINENT_SOUTH_AMERICA" - South America
	DestinationContinent string `json:"destinationContinent,omitempty"`

	// EgressRate: Egress usage rate. This usage applies when you move or
	// copy data from one Cloud Storage bucket to another or when another
	// Google Cloud service accesses data in your Cloud Storage bucket.
	// Expected units such as "GiBy/s, By/s, ..."
	EgressRate *Usage `json:"egressRate,omitempty"`

	// SourceContinent: Where the data comes from.
	//
	// Possible values:
	//   "SOURCE_CONTINENT_UNSPECIFIED" - Not specified.
	//   "SOURCE_CONTINENT_ASIA_PACIFIC" - Asia Pacific.
	//   "SOURCE_CONTINENT_AUSTRALIA" - Australia.
	//   "SOURCE_CONTINENT_EUROPE" - Europe.
	//   "SOURCE_CONTINENT_NORTH_AMERICA" - North America.
	//   "SOURCE_CONTINENT_SOUTH_AMERICA" - South America.
	SourceContinent string `json:"sourceContinent,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "DestinationContinent") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DestinationContinent") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

CloudStorageEgressWorkload: Specification of a network type. Network egress within Google Cloud applies when you move or copy data from one Cloud Storage bucket to another or when another Google Cloud service accesses data in your Cloud Storage bucket.This includes the network egress within Google Cloud and the general network usage.

func (*CloudStorageEgressWorkload) MarshalJSON added in v0.106.0

func (s *CloudStorageEgressWorkload) MarshalJSON() ([]byte, error)

type CloudStorageWorkload

type CloudStorageWorkload struct {
	// DataRetrieval: Data retrieval usage. A retrieval cost applies when
	// data or metadata is read, copied, or rewritten . For example: units
	// such as "GiBy/s" or "By/s".
	DataRetrieval *Usage `json:"dataRetrieval,omitempty"`

	// DataStored: Data storage usage. The amount of data stored in buckets.
	// For example: units such as "GiBy/s" or "TBy/mo".
	DataStored *Usage `json:"dataStored,omitempty"`

	// DualRegion: Specify dual regions.
	DualRegion *DualRegional `json:"dualRegion,omitempty"`

	// MultiRegion: Specify multi regions.
	MultiRegion *MultiRegional `json:"multiRegion,omitempty"`

	// OperationA: Class A operation usage in Cloud Storage, such as listing
	// the objects in buckets. See the operations pricing
	// (https://cloud.google.com/storage/pricing#operations-pricing) tables
	// for a list of which operations fall into each class. For example:
	// units such as "1/s".
	OperationA *Usage `json:"operationA,omitempty"`

	// OperationB: Class B operation usage in Cloud Storage, such as
	// `getIamPolicy`. See the operations pricing
	// (https://cloud.google.com/storage/pricing#operations-pricing) tables
	// for a list of which operations fall into each class. For example:
	// units such as "1/s".
	OperationB *Usage `json:"operationB,omitempty"`

	// Region: Specify a single region.
	Region *Regional `json:"region,omitempty"`

	// StorageClass: The storage class
	// (https://cloud.google.com/storage/docs/storage-classes#classes) of
	// the data and operation. For example: "standard" and "nearline".
	StorageClass string `json:"storageClass,omitempty"`

	// ForceSendFields is a list of field names (e.g. "DataRetrieval") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DataRetrieval") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

CloudStorageWorkload: Specifies usage of Cloud Storage resources.

func (*CloudStorageWorkload) MarshalJSON

func (s *CloudStorageWorkload) MarshalJSON() ([]byte, error)

type Commitment

type Commitment struct {
	// Name: Required. A name for this commitment. All commitments in a
	// CostScenario must have unique names. Each name may be at most 128
	// characters long.
	Name string `json:"name,omitempty"`

	// VmResourceBasedCud: A resource-based committed use discount (CUD).
	VmResourceBasedCud *VmResourceBasedCud `json:"vmResourceBasedCud,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Name") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Name") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

Commitment: Commitments give you the ability to pay a recurring fee in exchange for a benefit, such as a discount for your use. For example, this object might contain details of a spend-based committed use discount (CUD) (https://cloud.google.com/docs/cuds#spend_based_commitments). Within a CostScenario, adding a commitment includes the cost of the commitment and any discounts.

func (*Commitment) MarshalJSON

func (s *Commitment) MarshalJSON() ([]byte, error)

type CommitmentCostEstimate

type CommitmentCostEstimate struct {
	// CommitmentTotalCostEstimate: Total estimated costs for the
	// commitment.
	CommitmentTotalCostEstimate *CostEstimate `json:"commitmentTotalCostEstimate,omitempty"`

	// Name: The name of the commitment, as specified in the `CostScenario`.
	Name string `json:"name,omitempty"`

	// SkuCostEstimates: Estimated costs for each SKU in the commitment.
	SkuCostEstimates []*SkuCostEstimate `json:"skuCostEstimates,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "CommitmentTotalCostEstimate") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g.
	// "CommitmentTotalCostEstimate") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted
	// from API requests. However, any field with an empty value appearing
	// in NullFields will be sent to the server as null. It is an error if a
	// field in this list has a non-empty value. This may be used to include
	// null fields in Patch requests.
	NullFields []string `json:"-"`
}

CommitmentCostEstimate: Estimated cost for a commitment.

func (*CommitmentCostEstimate) MarshalJSON

func (s *CommitmentCostEstimate) MarshalJSON() ([]byte, error)

type ComputeVmWorkload

type ComputeVmWorkload struct {
	// EnableConfidentialCompute: Defines whether each instance has
	// confidential compute enabled.
	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`

	// GuestAccelerator: Guest accelerators attached to each machine.
	GuestAccelerator *GuestAccelerator `json:"guestAccelerator,omitempty"`

	// InstancesRunning: VM usage. This is specified as a unitless quantity
	// which indicates the number of instances running.
	InstancesRunning *Usage `json:"instancesRunning,omitempty"`

	// Licenses: Premium image licenses used by each instance.
	Licenses []string `json:"licenses,omitempty"`

	// MachineType: The machine type.
	MachineType *MachineType `json:"machineType,omitempty"`

	// PersistentDisks: Persistent disks attached to each instance. Must
	// include a boot disk.
	PersistentDisks []*PersistentDisk `json:"persistentDisks,omitempty"`

	// Preemptible: Defines whether each instance is preemptible.
	Preemptible bool `json:"preemptible,omitempty"`

	// Region: The region
	// (https://cloud.google.com/compute/docs/regions-zones) where the VMs
	// run. For example: "us-central1".
	Region string `json:"region,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "EnableConfidentialCompute") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g.
	// "EnableConfidentialCompute") to include in API requests with the JSON
	// null value. By default, fields with empty values are omitted from API
	// requests. However, any field with an empty value appearing in
	// NullFields will be sent to the server as null. It is an error if a
	// field in this list has a non-empty value. This may be used to include
	// null fields in Patch requests.
	NullFields []string `json:"-"`
}

ComputeVmWorkload: Specificies usage of a set of identical compute VM instances.

func (*ComputeVmWorkload) MarshalJSON

func (s *ComputeVmWorkload) MarshalJSON() ([]byte, error)

type CostEstimate

type CostEstimate struct {
	// CreditEstimates: The estimated credits applied.
	CreditEstimates []*CreditEstimate `json:"creditEstimates,omitempty"`

	// NetCostEstimate: The estimated net cost after applying credits.
	NetCostEstimate *Money `json:"netCostEstimate,omitempty"`

	// PreCreditCostEstimate: The estimated cost prior to applying credits.
	PreCreditCostEstimate *Money `json:"preCreditCostEstimate,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CreditEstimates") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CreditEstimates") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

CostEstimate: An estimated cost.

func (*CostEstimate) MarshalJSON

func (s *CostEstimate) MarshalJSON() ([]byte, error)

type CostEstimationResult

type CostEstimationResult struct {
	// CurrencyCode: Required. The ISO 4217 currency code for the cost
	// estimate.
	CurrencyCode string `json:"currencyCode,omitempty"`

	// SegmentCostEstimates: Required. Estimated costs for each idealized
	// month of a `CostScenario`.
	SegmentCostEstimates []*SegmentCostEstimate `json:"segmentCostEstimates,omitempty"`

	// Skus: Required. Information about SKUs used in the estimate.
	Skus []*Sku `json:"skus,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CurrencyCode") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

CostEstimationResult: The result of a estimating the costs of a `CostScenario`.

func (*CostEstimationResult) MarshalJSON

func (s *CostEstimationResult) MarshalJSON() ([]byte, error)

type CostScenario

type CostScenario struct {
	// Commitments: New commitments to estimate the costs for. The cost of
	// the commitments will be included in the estimate result and discounts
	// the commitment entitles will be included in the workload cost
	// estimates. A maximum of 100 workloads can be provided.
	Commitments []*Commitment `json:"commitments,omitempty"`

	// ScenarioConfig: Configuration for the scenario.
	ScenarioConfig *ScenarioConfig `json:"scenarioConfig,omitempty"`

	// Workloads: The Google Cloud usage whose costs are estimated. A
	// maximum of 100 workloads can be provided.
	Workloads []*Workload `json:"workloads,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Commitments") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Commitments") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

CostScenario: Encapsulates all the information needed to perform a cost estimate. It includes a specification of the Google Cloud usage whose costs are estimated, and configuration options.

func (*CostScenario) MarshalJSON

func (s *CostScenario) MarshalJSON() ([]byte, error)

type CreditEstimate

type CreditEstimate struct {
	// CreditAmount: The estimated credit amount.
	CreditAmount *Money `json:"creditAmount,omitempty"`

	// CreditDescription: The credit description.
	CreditDescription string `json:"creditDescription,omitempty"`

	// CreditType: The credit type.
	CreditType string `json:"creditType,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CreditAmount") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CreditAmount") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

CreditEstimate: An estimated credit applied to the costs on a SKU.

func (*CreditEstimate) MarshalJSON

func (s *CreditEstimate) MarshalJSON() ([]byte, error)

type CustomMachineType

type CustomMachineType struct {
	// MachineSeries: Required. The machine series. Only certain machine
	// series
	// (https://cloud.google.com/compute/docs/general-purpose-machines#custom_machine_types)
	// support custom configurations. For example: "n1".
	MachineSeries string `json:"machineSeries,omitempty"`

	// MemorySizeGb: Required. Memory size of the VM in GB (2^30 bytes).
	// Must be an increment of 0.25 (256 MB). Each machine series
	// (https://cloud.google.com/compute/docs/machine-types#machine_type_comparison)
	// has limitations on allowed values for the ratio of memory-to-vCPU
	// count.
	MemorySizeGb float64 `json:"memorySizeGb,omitempty"`

	// VirtualCpuCount: Required. The number of vCPUs. The allowed values
	// depend on the machine series
	// (https://cloud.google.com/compute/docs/machine-types#machine_type_comparison).
	VirtualCpuCount int64 `json:"virtualCpuCount,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "MachineSeries") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "MachineSeries") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

CustomMachineType: Specification of a custom machine type.

func (*CustomMachineType) MarshalJSON

func (s *CustomMachineType) MarshalJSON() ([]byte, error)

func (*CustomMachineType) UnmarshalJSON

func (s *CustomMachineType) UnmarshalJSON(data []byte) error

type DualRegional

type DualRegional struct {
	// Name: The location name
	// (https://cloud.google.com/storage/docs/locations#available-locations)
	// where the data is stored. For example: "asia1" for dual region.
	Name string `json:"name,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Name") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Name") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

DualRegional: Area contains dual locations.

func (*DualRegional) MarshalJSON

func (s *DualRegional) MarshalJSON() ([]byte, error)

type EstimateCostScenarioForBillingAccountRequest

type EstimateCostScenarioForBillingAccountRequest struct {
	// CostScenario: The scenario to estimate costs for.
	CostScenario *CostScenario `json:"costScenario,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CostScenario") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CostScenario") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

EstimateCostScenarioForBillingAccountRequest: Request for EstimateCostScenarioForBillingAccount.

func (*EstimateCostScenarioForBillingAccountRequest) MarshalJSON

type EstimateCostScenarioForBillingAccountResponse

type EstimateCostScenarioForBillingAccountResponse struct {
	// CostEstimationResult: The result of the cost estimation.
	CostEstimationResult *CostEstimationResult `json:"costEstimationResult,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g.
	// "CostEstimationResult") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CostEstimationResult") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

EstimateCostScenarioForBillingAccountResponse: Response for EstimateCostScenarioForBillingAccount

func (*EstimateCostScenarioForBillingAccountResponse) MarshalJSON

type EstimateCostScenarioWithListPriceRequest

type EstimateCostScenarioWithListPriceRequest struct {
	// CostScenario: The scenario to estimate costs for.
	CostScenario *CostScenario `json:"costScenario,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CostScenario") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CostScenario") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

EstimateCostScenarioWithListPriceRequest: Request for EstimateCostScenarioWithListPrice.

func (*EstimateCostScenarioWithListPriceRequest) MarshalJSON

func (s *EstimateCostScenarioWithListPriceRequest) MarshalJSON() ([]byte, error)

type EstimateCostScenarioWithListPriceResponse

type EstimateCostScenarioWithListPriceResponse struct {
	// CostEstimationResult: The result of the cost estimation.
	CostEstimationResult *CostEstimationResult `json:"costEstimationResult,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g.
	// "CostEstimationResult") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CostEstimationResult") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

EstimateCostScenarioWithListPriceResponse: Response for EstimateCostScenarioWithListPrice

func (*EstimateCostScenarioWithListPriceResponse) MarshalJSON

type EstimationTimePoint

type EstimationTimePoint struct {
	// EstimationTimeFrameOffset: The point in time, relative to the start
	// of the time frame covered by the cost estimate.
	EstimationTimeFrameOffset string `json:"estimationTimeFrameOffset,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "EstimationTimeFrameOffset") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g.
	// "EstimationTimeFrameOffset") to include in API requests with the JSON
	// null value. By default, fields with empty values are omitted from API
	// requests. However, any field with an empty value appearing in
	// NullFields will be sent to the server as null. It is an error if a
	// field in this list has a non-empty value. This may be used to include
	// null fields in Patch requests.
	NullFields []string `json:"-"`
}

EstimationTimePoint: Represents a point in time.

func (*EstimationTimePoint) MarshalJSON

func (s *EstimationTimePoint) MarshalJSON() ([]byte, error)

type GuestAccelerator

type GuestAccelerator struct {
	// AcceleratorCount: The number of the guest accelerator cards exposed
	// to each instance.
	AcceleratorCount int64 `json:"acceleratorCount,omitempty,string"`

	// AcceleratorType: The type of the guest accelerator cards. For
	// example: "nvidia-tesla-t4".
	AcceleratorType string `json:"acceleratorType,omitempty"`

	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "AcceleratorCount") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

GuestAccelerator: Specification of a set of guest accelerators attached to a machine.

func (*GuestAccelerator) MarshalJSON

func (s *GuestAccelerator) MarshalJSON() ([]byte, error)

type InterRegionEgress added in v0.110.0

type InterRegionEgress struct {
	// DestinationRegion: Which region
	// (https://cloud.google.com/compute/docs/regions-zones) the egress data
	// goes to.
	DestinationRegion string `json:"destinationRegion,omitempty"`

	// EgressRate: VM to VM egress usage. Expected units such as "GiBy/s,
	// By/s, etc."
	EgressRate *Usage `json:"egressRate,omitempty"`

	// SourceRegion: Which region
	// (https://cloud.google.com/compute/docs/regions-zones) the egress data
	// comes from.
	SourceRegion string `json:"sourceRegion,omitempty"`

	// ForceSendFields is a list of field names (e.g. "DestinationRegion")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DestinationRegion") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

InterRegionEgress: Egress traffic between two regions.

func (*InterRegionEgress) MarshalJSON added in v0.110.0

func (s *InterRegionEgress) MarshalJSON() ([]byte, error)

type IntraRegionEgress added in v0.110.0

type IntraRegionEgress struct {
	// EgressRate: VM to VM egress usage. Expected units such as "GiBy/s,
	// By/s, etc."
	EgressRate *Usage `json:"egressRate,omitempty"`

	// ForceSendFields is a list of field names (e.g. "EgressRate") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "EgressRate") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

IntraRegionEgress: Egress traffic within the same region. When source region and destination region are in the same zone, using the internal IP addresses, there isn't any egress charge.

func (*IntraRegionEgress) MarshalJSON added in v0.110.0

func (s *IntraRegionEgress) MarshalJSON() ([]byte, error)

type MachineType

type MachineType struct {
	CustomMachineType *CustomMachineType `json:"customMachineType,omitempty"`

	PredefinedMachineType *PredefinedMachineType `json:"predefinedMachineType,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CustomMachineType")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CustomMachineType") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

MachineType: Specification of machine series, memory, and number of vCPUs.

func (*MachineType) MarshalJSON

func (s *MachineType) MarshalJSON() ([]byte, error)

type Money

type Money struct {
	// CurrencyCode: The three-letter currency code defined in ISO 4217.
	CurrencyCode string `json:"currencyCode,omitempty"`

	// Nanos: Number of nano (10^-9) units of the amount. The value must be
	// between -999,999,999 and +999,999,999 inclusive. If `units` is
	// positive, `nanos` must be positive or zero. If `units` is zero,
	// `nanos` can be positive, zero, or negative. If `units` is negative,
	// `nanos` must be negative or zero. For example $-1.75 is represented
	// as `units`=-1 and `nanos`=-750,000,000.
	Nanos int64 `json:"nanos,omitempty"`

	// Units: The whole units of the amount. For example if `currencyCode`
	// is "USD", then 1 unit is one US dollar.
	Units int64 `json:"units,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CurrencyCode") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

Money: Represents an amount of money with its currency type.

func (*Money) MarshalJSON

func (s *Money) MarshalJSON() ([]byte, error)

type MultiRegional

type MultiRegional struct {
	// Name: The location name
	// (https://cloud.google.com/storage/docs/locations#available-locations)
	// where the data is stored. For example: "us" for multi-region.
	Name string `json:"name,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Name") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Name") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

MultiRegional: Area contains multiple locations.

func (*MultiRegional) MarshalJSON

func (s *MultiRegional) MarshalJSON() ([]byte, error)

type PersistentDisk

type PersistentDisk struct {
	// DiskSize: Specifies the size of disk. Must be at least 10 GB.
	DiskSize *Usage `json:"diskSize,omitempty"`

	// DiskType: The disk type
	// (https://cloud.google.com/compute/docs/disks#disk-types). For
	// example: "pd-standard".
	DiskType string `json:"diskType,omitempty"`

	// ProvisionedIops: Indicates how many IOPS to provision for the disk
	// for extreme persistent disks. This sets the number of I/O operations
	// per second that the disk can handle. Values must be between 10,000
	// and 120,000.
	ProvisionedIops *Usage `json:"provisionedIops,omitempty"`

	// Scope: The geographic scope of the disk. Defaults to `SCOPE_ZONAL` if
	// not specified.
	//
	// Possible values:
	//   "SCOPE_UNSPECIFIED" - Unspecified.
	//   "SCOPE_ZONAL" - The disk exists in a single zone.
	//   "SCOPE_REGIONAL" - The disk is replicated in a secondary zone
	// within the same region.
	Scope string `json:"scope,omitempty"`

	// ForceSendFields is a list of field names (e.g. "DiskSize") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DiskSize") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

PersistentDisk: Specification of a persistent disk attached to a VM.

func (*PersistentDisk) MarshalJSON

func (s *PersistentDisk) MarshalJSON() ([]byte, error)

type PredefinedMachineType

type PredefinedMachineType struct {
	// MachineType: The machine type
	// (https://cloud.google.com/compute/docs/machine-types). For example:
	// "n1-standard1".
	MachineType string `json:"machineType,omitempty"`

	// ForceSendFields is a list of field names (e.g. "MachineType") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "MachineType") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

PredefinedMachineType: Specification of a predefined machine type.

func (*PredefinedMachineType) MarshalJSON

func (s *PredefinedMachineType) MarshalJSON() ([]byte, error)

type PremiumTierEgressWorkload added in v0.106.0

type PremiumTierEgressWorkload struct {
	// DestinationContinent: Where the data is sent to.
	//
	// Possible values:
	//   "DESTINATION_CONTINENT_UNSPECIFIED" - Not specified.
	//   "DESTINATION_CONTINENT_ASIA_PACIFIC" - Asia Pacific.
	//   "DESTINATION_CONTINENT_AFRICA" - Africa.
	//   "DESTINATION_CONTINENT_NORTH_AMERICA" - North America.
	//   "DESTINATION_CONTINENT_AUTRALIA" - Australia.
	//   "DESTINATION_CONTINENT_CENTRAL_AMERICA" - Central America.
	//   "DESTINATION_CONTINENT_CHINA" - China.
	//   "DESTINATION_CONTINENT_EASTERN_EUROPE" - Eastern Europe.
	//   "DESTINATION_CONTINENT_WESTERN_EUROPE" - Western Europe.
	//   "DESTINATION_CONTINENT_EMEA" - Other regions in Europe, Middle East
	// and Africa.
	//   "DESTINATION_CONTINENT_INDIA" - India
	//   "DESTINATION_CONTINENT_MIDDLE_EAST" - Middle East.
	//   "DESTINATION_CONTINENT_SOUTH_AMERICA" - South America.
	DestinationContinent string `json:"destinationContinent,omitempty"`

	// EgressRate: Premium Tier egress usage. Expected units such as
	// "GiBy/s, By/s, etc."
	EgressRate *Usage `json:"egressRate,omitempty"`

	// SourceRegion: Which region
	// (https://cloud.google.com/compute/docs/regions-zones) the egress data
	// comes from.
	SourceRegion string `json:"sourceRegion,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "DestinationContinent") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DestinationContinent") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

PremiumTierEgressWorkload: Specify Premium Tier Internet egress networking.

func (*PremiumTierEgressWorkload) MarshalJSON added in v0.106.0

func (s *PremiumTierEgressWorkload) MarshalJSON() ([]byte, error)

type Price

type Price struct {
	// EffectiveTime: The timestamp within the estimation time frame when
	// the price was set.
	EffectiveTime *EstimationTimePoint `json:"effectiveTime,omitempty"`

	// PriceType: The type of price. Possible values: "RATE"
	PriceType string `json:"priceType,omitempty"`

	// Rate: A set of tiered rates.
	Rate *Rate `json:"rate,omitempty"`

	// ForceSendFields is a list of field names (e.g. "EffectiveTime") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "EffectiveTime") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

Price: The price of a SKU at a point int time.

func (*Price) MarshalJSON

func (s *Price) MarshalJSON() ([]byte, error)

type Rate

type Rate struct {
	// Tiers: The service tiers.
	Tiers []*RateTier `json:"tiers,omitempty"`

	// Unit: The SKU's pricing unit. For example, if the tier price is $1
	// per 1000000 Bytes, then this field will show 'By'. The `start_amount`
	// field in each tier will be in this unit.
	Unit string `json:"unit,omitempty"`

	// UnitCount: The SKU's count for the pricing unit. For example, if the
	// tier price is $1 per 1000000 Bytes, then this column will show
	// 1000000.
	UnitCount float64 `json:"unitCount,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Tiers") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Tiers") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

Rate: A SKU price consisting of tiered rates.

func (*Rate) MarshalJSON

func (s *Rate) MarshalJSON() ([]byte, error)

func (*Rate) UnmarshalJSON

func (s *Rate) UnmarshalJSON(data []byte) error

type RateTier

type RateTier struct {
	// Price: The price for this tier.
	Price *Money `json:"price,omitempty"`

	// StartAmount: The magnitude of usage in which the tier interval
	// begins. Example: "From 100 GiBi the price is $1 per byte" implies
	// `start_amount` = 100
	StartAmount float64 `json:"startAmount,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Price") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Price") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

RateTier: Pricing details for a service tier.

func (*RateTier) MarshalJSON

func (s *RateTier) MarshalJSON() ([]byte, error)

func (*RateTier) UnmarshalJSON

func (s *RateTier) UnmarshalJSON(data []byte) error

type Regional

type Regional struct {
	// Name: The location name
	// (https://cloud.google.com/storage/docs/locations#available-locations).
	// For example: "us-central1" for region.
	Name string `json:"name,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Name") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Name") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

Regional: Area contains only one location.

func (*Regional) MarshalJSON

func (s *Regional) MarshalJSON() ([]byte, error)

type ScenarioConfig

type ScenarioConfig struct {
	// EstimateDuration: Time frame for the estimate. Workloads must specify
	// usage for this duration. Duration must be at least 1 hour (3,600
	// seconds) and at most 10 years (315,360,000 seconds). The calculations
	// for years and months are based on a 730-hour (2,628,000-second)
	// month. For durations longer than one month (2,628,000 seconds), the
	// duration is rounded up to the next month, so the estimate shows you
	// the costs for full months. For example, a duration of 3,232,800
	// seconds (roughly 5 weeks) is rounded up to 2 months.
	EstimateDuration string `json:"estimateDuration,omitempty"`

	// ForceSendFields is a list of field names (e.g. "EstimateDuration") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "EstimateDuration") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

ScenarioConfig: Configuration for a CostScenario. Specifies how costs are calculated.

func (*ScenarioConfig) MarshalJSON

func (s *ScenarioConfig) MarshalJSON() ([]byte, error)

type SegmentCostEstimate

type SegmentCostEstimate struct {
	// CommitmentCostEstimates: Estimated costs for each commitment.
	CommitmentCostEstimates []*CommitmentCostEstimate `json:"commitmentCostEstimates,omitempty"`

	// SegmentStartTime: Timestamp for the start of the segment.
	SegmentStartTime *EstimationTimePoint `json:"segmentStartTime,omitempty"`

	// SegmentTotalCostEstimate: Total estimated costs for the time segment.
	SegmentTotalCostEstimate *CostEstimate `json:"segmentTotalCostEstimate,omitempty"`

	// WorkloadCostEstimates: Estimated costs for each workload.
	WorkloadCostEstimates []*WorkloadCostEstimate `json:"workloadCostEstimates,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "CommitmentCostEstimates") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted
	// from API requests. However, any non-pointer, non-interface field
	// appearing in ForceSendFields will be sent to the server regardless of
	// whether the field is empty or not. This may be used to include empty
	// fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CommitmentCostEstimates")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

SegmentCostEstimate: Workload cost estimates for a single time segment.

func (*SegmentCostEstimate) MarshalJSON

func (s *SegmentCostEstimate) MarshalJSON() ([]byte, error)

type Service

type Service struct {
	BasePath  string // API endpoint base URL
	UserAgent string // optional additional User-Agent fragment

	BillingAccounts *BillingAccountsService

	V1beta *V1betaService
	// contains filtered or unexported fields
}

func New deprecated

func New(client *http.Client) (*Service, error)

New creates a new Service. It uses the provided http.Client for requests.

Deprecated: please use NewService instead. To provide a custom HTTP client, use option.WithHTTPClient. If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.

func NewService

func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error)

NewService creates a new Service.

type Sku

type Sku struct {
	// DisplayName: The display name for the SKU. Example: A2 Instance Core
	// running in Americas
	DisplayName string `json:"displayName,omitempty"`

	// Prices: A timeline of prices for a SKU in chronological order. Note:
	// The API currently only supports using a constant price for the entire
	// estimation time frame so this list will contain a single value.
	Prices []*Price `json:"prices,omitempty"`

	// Sku: The resource name for the SKU. Example:
	// "services/DA34-426B-A397/skus/AA95-CD31-42FE"
	Sku string `json:"sku,omitempty"`

	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "DisplayName") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

Sku: Information about SKUs appearing in the cost estimate.

func (*Sku) MarshalJSON

func (s *Sku) MarshalJSON() ([]byte, error)

type SkuCostEstimate

type SkuCostEstimate struct {
	// CostEstimate: The estimated cost for the usage on this SKU.
	CostEstimate *CostEstimate `json:"costEstimate,omitempty"`

	// Sku: The resource name for the SKU. Example:
	// "services/DA34-426B-A397/skus/AA95-CD31-42FE" More information about
	// the SKU can be found in the `skus` field of the
	// `CostEstimationResult`.
	Sku string `json:"sku,omitempty"`

	// UsageAmount: The amount of usage on this SKU.
	UsageAmount float64 `json:"usageAmount,omitempty"`

	// UsageUnit: The unit for the usage on this SKU.
	UsageUnit string `json:"usageUnit,omitempty"`

	// ForceSendFields is a list of field names (e.g. "CostEstimate") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CostEstimate") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

SkuCostEstimate: Estimated cost for usage on a SKU.

func (*SkuCostEstimate) MarshalJSON

func (s *SkuCostEstimate) MarshalJSON() ([]byte, error)

func (*SkuCostEstimate) UnmarshalJSON

func (s *SkuCostEstimate) UnmarshalJSON(data []byte) error

type StandardTierEgressWorkload added in v0.106.0

type StandardTierEgressWorkload struct {
	// EgressRate: Standard tier egress usage. Expected units such as
	// "GiBy/s, By/s, etc."
	EgressRate *Usage `json:"egressRate,omitempty"`

	// SourceRegion: Which region
	// (https://cloud.google.com/compute/docs/regions-zones) the egress data
	// comes from.
	SourceRegion string `json:"sourceRegion,omitempty"`

	// ForceSendFields is a list of field names (e.g. "EgressRate") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "EgressRate") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

StandardTierEgressWorkload: Specify Standard Tier Internet egress networking.

func (*StandardTierEgressWorkload) MarshalJSON added in v0.106.0

func (s *StandardTierEgressWorkload) MarshalJSON() ([]byte, error)

type Usage

type Usage struct {
	// UsageRateTimeline: A timeline of usage rates over the estimate
	// interval.
	UsageRateTimeline *UsageRateTimeline `json:"usageRateTimeline,omitempty"`

	// ForceSendFields is a list of field names (e.g. "UsageRateTimeline")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "UsageRateTimeline") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

Usage: An amount of usage over a time frame.

func (*Usage) MarshalJSON

func (s *Usage) MarshalJSON() ([]byte, error)

type UsageRateTimeline

type UsageRateTimeline struct {
	// Unit: The unit for the usage rate in each timeline entry. If you
	// provide an incorrect unit for an instance, the correct unit is
	// provided in the error message. The supported units are a subset of
	// The Unified Code for Units of Measure (https://ucum.org/ucum.html)
	// standard: * **Time units (TIME-UNIT)** * `s` second * `min` minute *
	// `h` hour * `d` day * `wk` week * `mo` month * `yr` year * `ms`
	// millisecond * `us` microsecond * `ns` nanosecond * **Basic storage
	// units (BASIC-STORAGE-UNIT)** * `bit` bit * `By` byte * **Count units
	// (COUNT-UNIT)** * `count` count * **Prefixes (PREFIX)** * `k` kilo
	// (10^3) * `M` mega (10^6) * `G` giga (10^9) * `T` tera (10^12) * `P`
	// peta (10^15) * `Ki` kibi (2^10) * `Mi` mebi (2^20) * `Gi` gibi (2^30)
	// * `Ti` tebi (2^40) * `Pi` pebi (2^50) **Grammar** The grammar also
	// includes these connectors: * `/` division or ratio (as an infix
	// operator). For example: `kBy/{email}` or `MiBy/10ms`. * `.`
	// multiplication or composition (as an infix operator). For example:
	// `GBy.d` or `k{watt}.h`. The grammar for a unit is as follows: “`
	// Expression = Component { "." Component } { "/" Component } ;
	// Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ] | Annotation |
	// "1" ; UNIT = TIME-UNIT | STORAGE-UNIT | DATA-UNIT | COUNT-UNIT
	// Annotation = "{" NAME "}" ; “` Examples: * Request per second: `1/s`
	// or `{requests}/s` * GibiBytes: `GiBy` * GibiBytes * seconds: `GiBy.s`
	Unit string `json:"unit,omitempty"`

	// UsageRateTimelineEntries: The timeline entries. Each entry has a
	// start time and usage rate. The start time specifies the effective
	// time of the usage rate. The entries must be sorted by start time in
	// an increasing order.
	UsageRateTimelineEntries []*UsageRateTimelineEntry `json:"usageRateTimelineEntries,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Unit") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Unit") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

UsageRateTimeline: A timeline of usage rates. Consists of a series of entries, each of which specifies a constant rate of usage during a time interval. Each entry contains an effective time. The usage rate is in effect from that time until the effective time of the subsequent entry, or, for the last entry, for the remaining portion of estimation time frame. Effective times are specified as an offset into the estimation time frame. Usage is considered to be zero until the `effective_time` of the first entry. All subsequent entries must have an effective time greater than the previous entry and less than the estimate time frame. The effective time on all entries must be an integer number of hours.

func (*UsageRateTimeline) MarshalJSON

func (s *UsageRateTimeline) MarshalJSON() ([]byte, error)

type UsageRateTimelineEntry

type UsageRateTimelineEntry struct {
	// EffectiveTime: The effective time for this entry. The usage rate is
	// in effect starting at this time until the effective time of the
	// subsequent entry in the timeline. The last entry defines the usage
	// rate until the end of the `Usage` time frame. Must correspond to an
	// integer number of hours.
	EffectiveTime *EstimationTimePoint `json:"effectiveTime,omitempty"`

	// UsageRate: The usage rate.
	UsageRate float64 `json:"usageRate,omitempty"`

	// ForceSendFields is a list of field names (e.g. "EffectiveTime") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "EffectiveTime") to include
	// in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. However, any field with
	// an empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

UsageRateTimelineEntry: A usage rate timeline entry. Each entry specifies a constant usage rate during a time interval.

func (*UsageRateTimelineEntry) MarshalJSON

func (s *UsageRateTimelineEntry) MarshalJSON() ([]byte, error)

func (*UsageRateTimelineEntry) UnmarshalJSON

func (s *UsageRateTimelineEntry) UnmarshalJSON(data []byte) error

type V1betaEstimateCostScenarioCall

type V1betaEstimateCostScenarioCall struct {
	// contains filtered or unexported fields
}

func (*V1betaEstimateCostScenarioCall) Context

Context sets the context to be used in this call's Do method. Any pending HTTP request will be aborted if the provided context is canceled.

func (*V1betaEstimateCostScenarioCall) Do

Do executes the "cloudbilling.estimateCostScenario" call. Exactly one of *EstimateCostScenarioWithListPriceResponse or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *EstimateCostScenarioWithListPriceResponse.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.

func (*V1betaEstimateCostScenarioCall) Fields

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*V1betaEstimateCostScenarioCall) Header

Header returns an http.Header that can be modified by the caller to add HTTP headers to the request.

type V1betaService

type V1betaService struct {
	// contains filtered or unexported fields
}

func NewV1betaService

func NewV1betaService(s *Service) *V1betaService

func (*V1betaService) EstimateCostScenario

func (r *V1betaService) EstimateCostScenario(estimatecostscenariowithlistpricerequest *EstimateCostScenarioWithListPriceRequest) *V1betaEstimateCostScenarioCall

EstimateCostScenario: Estimate list prices using a `CostScenario` without a defined `billingAccount`.

type VlanAttachment added in v0.106.0

type VlanAttachment struct {
	// Bandwidth: Capacities in the pricing table
	// (https://cloud.google.com/vpc/network-pricing#interconnect-pricing)
	// Examples of capacity are: 50/100/200/300/400/500-Mbps,
	// 1/2/5/10/20/50-Gbps.
	//
	// Possible values:
	//   "BANDWIDTH_UNSPECIFIED" - Unspecified.
	//   "BANDWIDTH_BPS_50M" - 50 Mbit/s
	//   "BANDWIDTH_BPS_100M" - 100 Mbit/s
	//   "BANDWIDTH_BPS_200M" - 200 Mbit/s
	//   "BANDWIDTH_BPS_300M" - 300 Mbit/s
	//   "BANDWIDTH_BPS_400M" - 400 Mbit/s
	//   "BANDWIDTH_BPS_500M" - 500 Mbit/s
	//   "BANDWIDTH_BPS_1G" - 1 Gbit/s
	//   "BANDWIDTH_BPS_2G" - 2 Gbit/s
	//   "BANDWIDTH_BPS_5G" - 5 Gbit/s
	//   "BANDWIDTH_BPS_10G" - 10 Gbit/s
	//   "BANDWIDTH_BPS_20G" - 20 Gbit/s
	//   "BANDWIDTH_BPS_50G" - 50 Gbit/s
	Bandwidth string `json:"bandwidth,omitempty"`

	// VlanCount: VLAN usage. This is specified as a unitless quantity which
	// indicates the number of VLAN attachment used in interconnect.
	VlanCount *Usage `json:"vlanCount,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Bandwidth") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Bandwidth") to include in
	// API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

VlanAttachment: VLAN attachment for cloud interconnect.

func (*VlanAttachment) MarshalJSON added in v0.106.0

func (s *VlanAttachment) MarshalJSON() ([]byte, error)

type VmResourceBasedCud

type VmResourceBasedCud struct {
	// GuestAccelerator: Guest accelerator, known as GPU.
	GuestAccelerator *GuestAccelerator `json:"guestAccelerator,omitempty"`

	// MachineSeries: The machine series for CUD. For example: "n1" for
	// general purpose N1 machine type commitments. "n2" for general purpose
	// N2 machine type commitments. "e2" for general purpose E2 machine type
	// commitments. "n2d" for general purpose N2D machine type commitments.
	// "t2d" for general purpose T2D machine type commitments. "c2"/"c2d"
	// for compute-optimized commitments. "m1"/"m2" for the memory-optimized
	// commitments. "a2' for the accelerator-optimized commitments.
	MachineSeries string `json:"machineSeries,omitempty"`

	// MemorySizeGb: Memory size of the VM in GB (2^30 bytes). Must be an
	// increment of 0.25 (256 MB).
	MemorySizeGb float64 `json:"memorySizeGb,omitempty"`

	// Plan: Commitment usage plan.
	//
	// Possible values:
	//   "COMMITMENT_PLAN_UNSPECIFIED" - Not specified commitment plan.
	//   "TWELVE_MONTH" - 1 year commitment.
	//   "THIRTY_SIX_MONTH" - 3 years commitment.
	Plan string `json:"plan,omitempty"`

	// Region: The region where the VM runs. For example: "us-central1"
	Region string `json:"region,omitempty"`

	// VirtualCpuCount: The number of vCPUs. The number of vCPUs must be an
	// integer of 0 or more and can be even or odd.
	VirtualCpuCount int64 `json:"virtualCpuCount,omitempty,string"`

	// ForceSendFields is a list of field names (e.g. "GuestAccelerator") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "GuestAccelerator") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

VmResourceBasedCud: Specifies a resource-based committed use discount (CUD).

func (*VmResourceBasedCud) MarshalJSON

func (s *VmResourceBasedCud) MarshalJSON() ([]byte, error)

func (*VmResourceBasedCud) UnmarshalJSON

func (s *VmResourceBasedCud) UnmarshalJSON(data []byte) error

type VmToVmEgressWorkload added in v0.110.0

type VmToVmEgressWorkload struct {
	InterRegionEgress *InterRegionEgress `json:"interRegionEgress,omitempty"`

	IntraRegionEgress *IntraRegionEgress `json:"intraRegionEgress,omitempty"`

	// ForceSendFields is a list of field names (e.g. "InterRegionEgress")
	// to unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "InterRegionEgress") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

VmToVmEgressWorkload: Specify VM to VM egress.

func (*VmToVmEgressWorkload) MarshalJSON added in v0.110.0

func (s *VmToVmEgressWorkload) MarshalJSON() ([]byte, error)

type Workload

type Workload struct {
	// CloudCdnEgressWorkload: Usage on Google Cloud CDN Egress.
	CloudCdnEgressWorkload *CloudCdnEgressWorkload `json:"cloudCdnEgressWorkload,omitempty"`

	// CloudCdnWorkload: Usage on Google Cloud CDN.
	CloudCdnWorkload *CloudCdnWorkload `json:"cloudCdnWorkload,omitempty"`

	// CloudInterconnectEgressWorkload: Usage on Google Cloud Interconnect
	// Egress.
	CloudInterconnectEgressWorkload *CloudInterconnectEgressWorkload `json:"cloudInterconnectEgressWorkload,omitempty"`

	// CloudInterconnectWorkload: Usage on Google Cloud Interconnect.
	CloudInterconnectWorkload *CloudInterconnectWorkload `json:"cloudInterconnectWorkload,omitempty"`

	// CloudStorageEgressWorkload: Usage on a cloud storage egress.
	CloudStorageEgressWorkload *CloudStorageEgressWorkload `json:"cloudStorageEgressWorkload,omitempty"`

	// CloudStorageWorkload: Usage on Google Cloud Storage.
	CloudStorageWorkload *CloudStorageWorkload `json:"cloudStorageWorkload,omitempty"`

	// ComputeVmWorkload: Usage of a Google Compute Engine Virtual Machine.
	ComputeVmWorkload *ComputeVmWorkload `json:"computeVmWorkload,omitempty"`

	// Name: Required. A name for this workload. All workloads in a
	// `CostScenario` must have a unique `name`. Each `name` may be at most
	// 128 characters long.
	Name string `json:"name,omitempty"`

	// PremiumTierEgressWorkload: Usage on Premium Tier Internet Egress.
	PremiumTierEgressWorkload *PremiumTierEgressWorkload `json:"premiumTierEgressWorkload,omitempty"`

	// StandardTierEgressWorkload: Usage on Standard Tier Internet Egress.
	StandardTierEgressWorkload *StandardTierEgressWorkload `json:"standardTierEgressWorkload,omitempty"`

	// VmToVmEgressWorkload: Usage on Vm to Vm Egress.
	VmToVmEgressWorkload *VmToVmEgressWorkload `json:"vmToVmEgressWorkload,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "CloudCdnEgressWorkload") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. However, any non-pointer, non-interface field appearing in
	// ForceSendFields will be sent to the server regardless of whether the
	// field is empty or not. This may be used to include empty fields in
	// Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "CloudCdnEgressWorkload")
	// to include in API requests with the JSON null value. By default,
	// fields with empty values are omitted from API requests. However, any
	// field with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

Workload: Specifies usage on a single Google Cloud product over a time frame. Each Google Cloud product has its own message, containing specific product configuration parameters of the product usage amounts along each dimension in which the product is billed.

func (*Workload) MarshalJSON

func (s *Workload) MarshalJSON() ([]byte, error)

type WorkloadCostEstimate

type WorkloadCostEstimate struct {
	// Name: The name of the workload, as specified in the `CostScenario`.
	Name string `json:"name,omitempty"`

	// SkuCostEstimates: Estimated costs for each SKU in the workload.
	SkuCostEstimates []*SkuCostEstimate `json:"skuCostEstimates,omitempty"`

	// WorkloadTotalCostEstimate: Total estimated costs for the workload.
	WorkloadTotalCostEstimate *CostEstimate `json:"workloadTotalCostEstimate,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Name") to
	// unconditionally include in API requests. By default, fields with
	// empty or default values are omitted from API requests. However, any
	// non-pointer, non-interface field appearing in ForceSendFields will be
	// sent to the server regardless of whether the field is empty or not.
	// This may be used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "Name") to include in API
	// requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. However, any field with an
	// empty value appearing in NullFields will be sent to the server as
	// null. It is an error if a field in this list has a non-empty value.
	// This may be used to include null fields in Patch requests.
	NullFields []string `json:"-"`
}

WorkloadCostEstimate: Estimated cost for a workload.

func (*WorkloadCostEstimate) MarshalJSON

func (s *WorkloadCostEstimate) MarshalJSON() ([]byte, error)

Jump to

Keyboard shortcuts

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