// Copyright 2023 Google LLC. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated file. DO NOT EDIT. // 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. package cloudbilling // import "google.golang.org/api/cloudbilling/v1beta" import ( "bytes" "context" "encoding/json" "errors" "fmt" "io" "net/http" "net/url" "strconv" "strings" googleapi "google.golang.org/api/googleapi" internal "google.golang.org/api/internal" gensupport "google.golang.org/api/internal/gensupport" option "google.golang.org/api/option" internaloption "google.golang.org/api/option/internaloption" htransport "google.golang.org/api/transport/http" ) // Always reference these packages, just in case the auto-generated code // below doesn't. var _ = bytes.NewBuffer var _ = strconv.Itoa var _ = fmt.Sprintf var _ = json.NewDecoder var _ = io.Copy var _ = url.Parse var _ = gensupport.MarshalJSON var _ = googleapi.Version var _ = errors.New var _ = strings.Replace var _ = context.Canceled var _ = internaloption.WithDefaultEndpoint const apiId = "cloudbilling:v1beta" const apiName = "cloudbilling" const apiVersion = "v1beta" const basePath = "https://cloudbilling.googleapis.com/" const mtlsBasePath = "https://cloudbilling.mtls.googleapis.com/" // OAuth2 scopes used by this API. 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" ) // NewService creates a new Service. func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { scopesOption := internaloption.WithDefaultScopes( "https://www.googleapis.com/auth/cloud-billing", "https://www.googleapis.com/auth/cloud-billing.readonly", "https://www.googleapis.com/auth/cloud-platform", ) // NOTE: prepend, so we don't override user-specified scopes. opts = append([]option.ClientOption{scopesOption}, opts...) opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) client, endpoint, err := htransport.NewClient(ctx, opts...) if err != nil { return nil, err } s, err := New(client) if err != nil { return nil, err } if endpoint != "" { s.BasePath = endpoint } return s, nil } // 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 New(client *http.Client) (*Service, error) { if client == nil { return nil, errors.New("client is nil") } s := &Service{client: client, BasePath: basePath} s.BillingAccounts = NewBillingAccountsService(s) s.V1beta = NewV1betaService(s) return s, nil } type Service struct { client *http.Client BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment BillingAccounts *BillingAccountsService V1beta *V1betaService } func (s *Service) userAgent() string { if s.UserAgent == "" { return googleapi.UserAgent } return googleapi.UserAgent + " " + s.UserAgent } func NewBillingAccountsService(s *Service) *BillingAccountsService { rs := &BillingAccountsService{s: s} return rs } type BillingAccountsService struct { s *Service } func NewV1betaService(s *Service) *V1betaService { rs := &V1betaService{s: s} return rs } type V1betaService struct { s *Service } // CacheFillRegions: Specifies the regions for Cache Fill. 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:"-"` } func (s *CacheFillRegions) MarshalJSON() ([]byte, error) { type NoMethod CacheFillRegions raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CloudCdnEgressWorkload: Specifies usage for Cloud CDN egress. 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:"-"` } func (s *CloudCdnEgressWorkload) MarshalJSON() ([]byte, error) { type NoMethod CloudCdnEgressWorkload raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CloudCdnWorkload: Specifies usage for Cloud CDN resources. 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:"-"` } func (s *CloudCdnWorkload) MarshalJSON() ([]byte, error) { type NoMethod CloudCdnWorkload raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CloudInterconnectEgressWorkload: The interconnect egress only // includes the Interconnect Egress. Please use the standard egress // traffic interface to specify your standard egress usage. 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:"-"` } func (s *CloudInterconnectEgressWorkload) MarshalJSON() ([]byte, error) { type NoMethod CloudInterconnectEgressWorkload raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CloudInterconnectWorkload: Specifies usage for Cloud Interconnect // resources. 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:"-"` } func (s *CloudInterconnectWorkload) MarshalJSON() ([]byte, error) { type NoMethod CloudInterconnectWorkload raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // 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. 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:"-"` } func (s *CloudStorageEgressWorkload) MarshalJSON() ([]byte, error) { type NoMethod CloudStorageEgressWorkload raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CloudStorageWorkload: Specifies usage of Cloud Storage resources. 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" or "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:"-"` } func (s *CloudStorageWorkload) MarshalJSON() ([]byte, error) { type NoMethod CloudStorageWorkload raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // 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. 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:"-"` } func (s *Commitment) MarshalJSON() ([]byte, error) { type NoMethod Commitment raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CommitmentCostEstimate: Estimated cost for a commitment. 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:"-"` } func (s *CommitmentCostEstimate) MarshalJSON() ([]byte, error) { type NoMethod CommitmentCostEstimate raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ComputeVmWorkload: Specificies usage of a set of identical compute VM // instances. 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:"-"` } func (s *ComputeVmWorkload) MarshalJSON() ([]byte, error) { type NoMethod ComputeVmWorkload raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CostEstimate: An estimated cost. 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:"-"` } func (s *CostEstimate) MarshalJSON() ([]byte, error) { type NoMethod CostEstimate raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CostEstimationResult: The result of a estimating the costs of a // `CostScenario`. 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:"-"` } func (s *CostEstimationResult) MarshalJSON() ([]byte, error) { type NoMethod CostEstimationResult raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // 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. 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:"-"` } func (s *CostScenario) MarshalJSON() ([]byte, error) { type NoMethod CostScenario raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CreditEstimate: An estimated credit applied to the costs on a SKU. 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:"-"` } func (s *CreditEstimate) MarshalJSON() ([]byte, error) { type NoMethod CreditEstimate raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CustomMachineType: Specification of a custom machine type. 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:"-"` } func (s *CustomMachineType) MarshalJSON() ([]byte, error) { type NoMethod CustomMachineType raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } func (s *CustomMachineType) UnmarshalJSON(data []byte) error { type NoMethod CustomMachineType var s1 struct { MemorySizeGb gensupport.JSONFloat64 `json:"memorySizeGb"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.MemorySizeGb = float64(s1.MemorySizeGb) return nil } // DualRegional: Area contains dual locations. 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:"-"` } func (s *DualRegional) MarshalJSON() ([]byte, error) { type NoMethod DualRegional raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // EstimateCostScenarioForBillingAccountRequest: Request for // EstimateCostScenarioForBillingAccount. 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:"-"` } func (s *EstimateCostScenarioForBillingAccountRequest) MarshalJSON() ([]byte, error) { type NoMethod EstimateCostScenarioForBillingAccountRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // EstimateCostScenarioForBillingAccountResponse: Response for // EstimateCostScenarioForBillingAccount 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:"-"` } func (s *EstimateCostScenarioForBillingAccountResponse) MarshalJSON() ([]byte, error) { type NoMethod EstimateCostScenarioForBillingAccountResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // EstimateCostScenarioWithListPriceRequest: Request for // EstimateCostScenarioWithListPrice. 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:"-"` } func (s *EstimateCostScenarioWithListPriceRequest) MarshalJSON() ([]byte, error) { type NoMethod EstimateCostScenarioWithListPriceRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // EstimateCostScenarioWithListPriceResponse: Response for // EstimateCostScenarioWithListPrice 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:"-"` } func (s *EstimateCostScenarioWithListPriceResponse) MarshalJSON() ([]byte, error) { type NoMethod EstimateCostScenarioWithListPriceResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // EstimationTimePoint: Represents a point in time. 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:"-"` } func (s *EstimationTimePoint) MarshalJSON() ([]byte, error) { type NoMethod EstimationTimePoint raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GuestAccelerator: Specification of a set of guest accelerators // attached to a machine. 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:"-"` } func (s *GuestAccelerator) MarshalJSON() ([]byte, error) { type NoMethod GuestAccelerator raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // MachineType: Specification of machine series, memory, and number of // vCPUs. 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:"-"` } func (s *MachineType) MarshalJSON() ([]byte, error) { type NoMethod MachineType raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Money: Represents an amount of money with its currency type. 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:"-"` } func (s *Money) MarshalJSON() ([]byte, error) { type NoMethod Money raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // MultiRegional: Area contains multiple locations. 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:"-"` } func (s *MultiRegional) MarshalJSON() ([]byte, error) { type NoMethod MultiRegional raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // PersistentDisk: Specification of a persistent disk attached to a VM. 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:"-"` } func (s *PersistentDisk) MarshalJSON() ([]byte, error) { type NoMethod PersistentDisk raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // PredefinedMachineType: Specification of a predefined machine type. 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:"-"` } func (s *PredefinedMachineType) MarshalJSON() ([]byte, error) { type NoMethod PredefinedMachineType raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // PremiumTierEgressWorkload: Specify Premium Tier Internet egress // networking. 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:"-"` } func (s *PremiumTierEgressWorkload) MarshalJSON() ([]byte, error) { type NoMethod PremiumTierEgressWorkload raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Price: The price of a SKU at a point int time. 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:"-"` } func (s *Price) MarshalJSON() ([]byte, error) { type NoMethod Price raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Rate: A SKU price consisting of tiered rates. 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:"-"` } func (s *Rate) MarshalJSON() ([]byte, error) { type NoMethod Rate raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } func (s *Rate) UnmarshalJSON(data []byte) error { type NoMethod Rate var s1 struct { UnitCount gensupport.JSONFloat64 `json:"unitCount"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.UnitCount = float64(s1.UnitCount) return nil } // RateTier: Pricing details for a service tier. 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:"-"` } func (s *RateTier) MarshalJSON() ([]byte, error) { type NoMethod RateTier raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } func (s *RateTier) UnmarshalJSON(data []byte) error { type NoMethod RateTier var s1 struct { StartAmount gensupport.JSONFloat64 `json:"startAmount"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.StartAmount = float64(s1.StartAmount) return nil } // Regional: Area contains only one location. 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:"-"` } func (s *Regional) MarshalJSON() ([]byte, error) { type NoMethod Regional raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ScenarioConfig: Configuration for a CostScenario. Specifies how costs // are calculated. 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:"-"` } func (s *ScenarioConfig) MarshalJSON() ([]byte, error) { type NoMethod ScenarioConfig raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // SegmentCostEstimate: Workload cost estimates for a single time // segment. 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:"-"` } func (s *SegmentCostEstimate) MarshalJSON() ([]byte, error) { type NoMethod SegmentCostEstimate raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Sku: Information about SKUs appearing in the cost estimate. 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:"-"` } func (s *Sku) MarshalJSON() ([]byte, error) { type NoMethod Sku raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // SkuCostEstimate: Estimated cost for usage on a SKU. 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:"-"` } func (s *SkuCostEstimate) MarshalJSON() ([]byte, error) { type NoMethod SkuCostEstimate raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } func (s *SkuCostEstimate) UnmarshalJSON(data []byte) error { type NoMethod SkuCostEstimate var s1 struct { UsageAmount gensupport.JSONFloat64 `json:"usageAmount"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.UsageAmount = float64(s1.UsageAmount) return nil } // StandardTierEgressWorkload: Specify Standard Tier Internet egress // networking. 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:"-"` } func (s *StandardTierEgressWorkload) MarshalJSON() ([]byte, error) { type NoMethod StandardTierEgressWorkload raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Usage: An amount of usage over a time frame. 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:"-"` } func (s *Usage) MarshalJSON() ([]byte, error) { type NoMethod Usage raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // 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. 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:"-"` } func (s *UsageRateTimeline) MarshalJSON() ([]byte, error) { type NoMethod UsageRateTimeline raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // UsageRateTimelineEntry: A usage rate timeline entry. Each entry // specifies a constant usage rate during a time interval. 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:"-"` } func (s *UsageRateTimelineEntry) MarshalJSON() ([]byte, error) { type NoMethod UsageRateTimelineEntry raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } func (s *UsageRateTimelineEntry) UnmarshalJSON(data []byte) error { type NoMethod UsageRateTimelineEntry var s1 struct { UsageRate gensupport.JSONFloat64 `json:"usageRate"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.UsageRate = float64(s1.UsageRate) return nil } // VlanAttachment: VLAN attachment for cloud interconnect. 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:"-"` } func (s *VlanAttachment) MarshalJSON() ([]byte, error) { type NoMethod VlanAttachment raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // VmResourceBasedCud: Specifies a resource-based committed use discount // (CUD). 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:"-"` } func (s *VmResourceBasedCud) MarshalJSON() ([]byte, error) { type NoMethod VmResourceBasedCud raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } func (s *VmResourceBasedCud) UnmarshalJSON(data []byte) error { type NoMethod VmResourceBasedCud var s1 struct { MemorySizeGb gensupport.JSONFloat64 `json:"memorySizeGb"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.MemorySizeGb = float64(s1.MemorySizeGb) return nil } // 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. 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"` // 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:"-"` } func (s *Workload) MarshalJSON() ([]byte, error) { type NoMethod Workload raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // WorkloadCostEstimate: Estimated cost for a workload. 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:"-"` } func (s *WorkloadCostEstimate) MarshalJSON() ([]byte, error) { type NoMethod WorkloadCostEstimate raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // method id "cloudbilling.billingAccounts.estimateCostScenario": type BillingAccountsEstimateCostScenarioCall struct { s *Service billingAccount string estimatecostscenarioforbillingaccountrequest *EstimateCostScenarioForBillingAccountRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // 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_acount_id}`. For example, // `billingAccounts/012345-567890-ABCDEF` is the resource name for // billing account `012345-567890-ABCDEF`. Must be specified. func (r *BillingAccountsService) EstimateCostScenario(billingAccount string, estimatecostscenarioforbillingaccountrequest *EstimateCostScenarioForBillingAccountRequest) *BillingAccountsEstimateCostScenarioCall { c := &BillingAccountsEstimateCostScenarioCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.billingAccount = billingAccount c.estimatecostscenarioforbillingaccountrequest = estimatecostscenarioforbillingaccountrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *BillingAccountsEstimateCostScenarioCall) Fields(s ...googleapi.Field) *BillingAccountsEstimateCostScenarioCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // 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 (c *BillingAccountsEstimateCostScenarioCall) Context(ctx context.Context) *BillingAccountsEstimateCostScenarioCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *BillingAccountsEstimateCostScenarioCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *BillingAccountsEstimateCostScenarioCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.estimatecostscenarioforbillingaccountrequest) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+billingAccount}:estimateCostScenario") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "billingAccount": c.billingAccount, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // 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 (c *BillingAccountsEstimateCostScenarioCall) Do(opts ...googleapi.CallOption) (*EstimateCostScenarioForBillingAccountResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &EstimateCostScenarioForBillingAccountResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Use custom pricing in the estimate, using a `CostScenario` with a defined `billingAccount`.", // "flatPath": "v1beta/billingAccounts/{billingAccountsId}:estimateCostScenario", // "httpMethod": "POST", // "id": "cloudbilling.billingAccounts.estimateCostScenario", // "parameterOrder": [ // "billingAccount" // ], // "parameters": { // "billingAccount": { // "description": "Resource name of the billing account for the cost estimate. The resource name has the form `billingAccounts/{billing_acount_id}`. For example, `billingAccounts/012345-567890-ABCDEF` is the resource name for billing account `012345-567890-ABCDEF`. Must be specified.", // "location": "path", // "pattern": "^billingAccounts/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1beta/{+billingAccount}:estimateCostScenario", // "request": { // "$ref": "EstimateCostScenarioForBillingAccountRequest" // }, // "response": { // "$ref": "EstimateCostScenarioForBillingAccountResponse" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-billing", // "https://www.googleapis.com/auth/cloud-billing.readonly", // "https://www.googleapis.com/auth/cloud-platform" // ] // } } // method id "cloudbilling.estimateCostScenario": type V1betaEstimateCostScenarioCall struct { s *Service estimatecostscenariowithlistpricerequest *EstimateCostScenarioWithListPriceRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // EstimateCostScenario: Estimate list prices using a `CostScenario` // without a defined `billingAccount`. func (r *V1betaService) EstimateCostScenario(estimatecostscenariowithlistpricerequest *EstimateCostScenarioWithListPriceRequest) *V1betaEstimateCostScenarioCall { c := &V1betaEstimateCostScenarioCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.estimatecostscenariowithlistpricerequest = estimatecostscenariowithlistpricerequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *V1betaEstimateCostScenarioCall) Fields(s ...googleapi.Field) *V1betaEstimateCostScenarioCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // 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 (c *V1betaEstimateCostScenarioCall) Context(ctx context.Context) *V1betaEstimateCostScenarioCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *V1betaEstimateCostScenarioCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *V1betaEstimateCostScenarioCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.estimatecostscenariowithlistpricerequest) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta:estimateCostScenario") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders return gensupport.SendRequest(c.ctx_, c.s.client, req) } // 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 (c *V1betaEstimateCostScenarioCall) Do(opts ...googleapi.CallOption) (*EstimateCostScenarioWithListPriceResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &EstimateCostScenarioWithListPriceResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Estimate list prices using a `CostScenario` without a defined `billingAccount`.", // "flatPath": "v1beta:estimateCostScenario", // "httpMethod": "POST", // "id": "cloudbilling.estimateCostScenario", // "parameterOrder": [], // "parameters": {}, // "path": "v1beta:estimateCostScenario", // "request": { // "$ref": "EstimateCostScenarioWithListPriceRequest" // }, // "response": { // "$ref": "EstimateCostScenarioWithListPriceResponse" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-billing", // "https://www.googleapis.com/auth/cloud-billing.readonly", // "https://www.googleapis.com/auth/cloud-platform" // ] // } }