...

Source file src/google.golang.org/api/cloudbilling/v1beta/cloudbilling-gen.go

Documentation: google.golang.org/api/cloudbilling/v1beta

     1  // Copyright 2024 Google LLC.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Code generated file. DO NOT EDIT.
     6  
     7  // Package cloudbilling provides access to the Cloud Billing API.
     8  //
     9  // For product documentation, see: https://cloud.google.com/billing/docs/apis
    10  //
    11  // # Library status
    12  //
    13  // These client libraries are officially supported by Google. However, this
    14  // library is considered complete and is in maintenance mode. This means
    15  // that we will address critical bugs and security issues but will not add
    16  // any new features.
    17  //
    18  // When possible, we recommend using our newer
    19  // [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)
    20  // that are still actively being worked and iterated on.
    21  //
    22  // # Creating a client
    23  //
    24  // Usage example:
    25  //
    26  //	import "google.golang.org/api/cloudbilling/v1beta"
    27  //	...
    28  //	ctx := context.Background()
    29  //	cloudbillingService, err := cloudbilling.NewService(ctx)
    30  //
    31  // In this example, Google Application Default Credentials are used for
    32  // authentication. For information on how to create and obtain Application
    33  // Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
    34  //
    35  // # Other authentication options
    36  //
    37  // By default, all available scopes (see "Constants") are used to authenticate.
    38  // To restrict scopes, use [google.golang.org/api/option.WithScopes]:
    39  //
    40  //	cloudbillingService, err := cloudbilling.NewService(ctx, option.WithScopes(cloudbilling.CloudPlatformScope))
    41  //
    42  // To use an API key for authentication (note: some APIs do not support API
    43  // keys), use [google.golang.org/api/option.WithAPIKey]:
    44  //
    45  //	cloudbillingService, err := cloudbilling.NewService(ctx, option.WithAPIKey("AIza..."))
    46  //
    47  // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth
    48  // flow, use [google.golang.org/api/option.WithTokenSource]:
    49  //
    50  //	config := &oauth2.Config{...}
    51  //	// ...
    52  //	token, err := config.Exchange(ctx, ...)
    53  //	cloudbillingService, err := cloudbilling.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
    54  //
    55  // See [google.golang.org/api/option.ClientOption] for details on options.
    56  package cloudbilling // import "google.golang.org/api/cloudbilling/v1beta"
    57  
    58  import (
    59  	"bytes"
    60  	"context"
    61  	"encoding/json"
    62  	"errors"
    63  	"fmt"
    64  	"io"
    65  	"net/http"
    66  	"net/url"
    67  	"strconv"
    68  	"strings"
    69  
    70  	googleapi "google.golang.org/api/googleapi"
    71  	internal "google.golang.org/api/internal"
    72  	gensupport "google.golang.org/api/internal/gensupport"
    73  	option "google.golang.org/api/option"
    74  	internaloption "google.golang.org/api/option/internaloption"
    75  	htransport "google.golang.org/api/transport/http"
    76  )
    77  
    78  // Always reference these packages, just in case the auto-generated code
    79  // below doesn't.
    80  var _ = bytes.NewBuffer
    81  var _ = strconv.Itoa
    82  var _ = fmt.Sprintf
    83  var _ = json.NewDecoder
    84  var _ = io.Copy
    85  var _ = url.Parse
    86  var _ = gensupport.MarshalJSON
    87  var _ = googleapi.Version
    88  var _ = errors.New
    89  var _ = strings.Replace
    90  var _ = context.Canceled
    91  var _ = internaloption.WithDefaultEndpoint
    92  var _ = internal.Version
    93  
    94  const apiId = "cloudbilling:v1beta"
    95  const apiName = "cloudbilling"
    96  const apiVersion = "v1beta"
    97  const basePath = "https://cloudbilling.googleapis.com/"
    98  const basePathTemplate = "https://cloudbilling.UNIVERSE_DOMAIN/"
    99  const mtlsBasePath = "https://cloudbilling.mtls.googleapis.com/"
   100  
   101  // OAuth2 scopes used by this API.
   102  const (
   103  	// View and manage your Google Cloud Platform billing accounts
   104  	CloudBillingScope = "https://www.googleapis.com/auth/cloud-billing"
   105  
   106  	// View your Google Cloud Platform billing accounts
   107  	CloudBillingReadonlyScope = "https://www.googleapis.com/auth/cloud-billing.readonly"
   108  
   109  	// See, edit, configure, and delete your Google Cloud data and see the email
   110  	// address for your Google Account.
   111  	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
   112  )
   113  
   114  // NewService creates a new Service.
   115  func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
   116  	scopesOption := internaloption.WithDefaultScopes(
   117  		"https://www.googleapis.com/auth/cloud-billing",
   118  		"https://www.googleapis.com/auth/cloud-billing.readonly",
   119  		"https://www.googleapis.com/auth/cloud-platform",
   120  	)
   121  	// NOTE: prepend, so we don't override user-specified scopes.
   122  	opts = append([]option.ClientOption{scopesOption}, opts...)
   123  	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
   124  	opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
   125  	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
   126  	opts = append(opts, internaloption.EnableNewAuthLibrary())
   127  	client, endpoint, err := htransport.NewClient(ctx, opts...)
   128  	if err != nil {
   129  		return nil, err
   130  	}
   131  	s, err := New(client)
   132  	if err != nil {
   133  		return nil, err
   134  	}
   135  	if endpoint != "" {
   136  		s.BasePath = endpoint
   137  	}
   138  	return s, nil
   139  }
   140  
   141  // New creates a new Service. It uses the provided http.Client for requests.
   142  //
   143  // Deprecated: please use NewService instead.
   144  // To provide a custom HTTP client, use option.WithHTTPClient.
   145  // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
   146  func New(client *http.Client) (*Service, error) {
   147  	if client == nil {
   148  		return nil, errors.New("client is nil")
   149  	}
   150  	s := &Service{client: client, BasePath: basePath}
   151  	s.BillingAccounts = NewBillingAccountsService(s)
   152  	s.SkuGroups = NewSkuGroupsService(s)
   153  	s.Skus = NewSkusService(s)
   154  	s.V1beta = NewV1betaService(s)
   155  	return s, nil
   156  }
   157  
   158  type Service struct {
   159  	client    *http.Client
   160  	BasePath  string // API endpoint base URL
   161  	UserAgent string // optional additional User-Agent fragment
   162  
   163  	BillingAccounts *BillingAccountsService
   164  
   165  	SkuGroups *SkuGroupsService
   166  
   167  	Skus *SkusService
   168  
   169  	V1beta *V1betaService
   170  }
   171  
   172  func (s *Service) userAgent() string {
   173  	if s.UserAgent == "" {
   174  		return googleapi.UserAgent
   175  	}
   176  	return googleapi.UserAgent + " " + s.UserAgent
   177  }
   178  
   179  func NewBillingAccountsService(s *Service) *BillingAccountsService {
   180  	rs := &BillingAccountsService{s: s}
   181  	rs.Services = NewBillingAccountsServicesService(s)
   182  	rs.SkuGroups = NewBillingAccountsSkuGroupsService(s)
   183  	rs.Skus = NewBillingAccountsSkusService(s)
   184  	return rs
   185  }
   186  
   187  type BillingAccountsService struct {
   188  	s *Service
   189  
   190  	Services *BillingAccountsServicesService
   191  
   192  	SkuGroups *BillingAccountsSkuGroupsService
   193  
   194  	Skus *BillingAccountsSkusService
   195  }
   196  
   197  func NewBillingAccountsServicesService(s *Service) *BillingAccountsServicesService {
   198  	rs := &BillingAccountsServicesService{s: s}
   199  	return rs
   200  }
   201  
   202  type BillingAccountsServicesService struct {
   203  	s *Service
   204  }
   205  
   206  func NewBillingAccountsSkuGroupsService(s *Service) *BillingAccountsSkuGroupsService {
   207  	rs := &BillingAccountsSkuGroupsService{s: s}
   208  	rs.Skus = NewBillingAccountsSkuGroupsSkusService(s)
   209  	return rs
   210  }
   211  
   212  type BillingAccountsSkuGroupsService struct {
   213  	s *Service
   214  
   215  	Skus *BillingAccountsSkuGroupsSkusService
   216  }
   217  
   218  func NewBillingAccountsSkuGroupsSkusService(s *Service) *BillingAccountsSkuGroupsSkusService {
   219  	rs := &BillingAccountsSkuGroupsSkusService{s: s}
   220  	return rs
   221  }
   222  
   223  type BillingAccountsSkuGroupsSkusService struct {
   224  	s *Service
   225  }
   226  
   227  func NewBillingAccountsSkusService(s *Service) *BillingAccountsSkusService {
   228  	rs := &BillingAccountsSkusService{s: s}
   229  	rs.Price = NewBillingAccountsSkusPriceService(s)
   230  	rs.Prices = NewBillingAccountsSkusPricesService(s)
   231  	return rs
   232  }
   233  
   234  type BillingAccountsSkusService struct {
   235  	s *Service
   236  
   237  	Price *BillingAccountsSkusPriceService
   238  
   239  	Prices *BillingAccountsSkusPricesService
   240  }
   241  
   242  func NewBillingAccountsSkusPriceService(s *Service) *BillingAccountsSkusPriceService {
   243  	rs := &BillingAccountsSkusPriceService{s: s}
   244  	return rs
   245  }
   246  
   247  type BillingAccountsSkusPriceService struct {
   248  	s *Service
   249  }
   250  
   251  func NewBillingAccountsSkusPricesService(s *Service) *BillingAccountsSkusPricesService {
   252  	rs := &BillingAccountsSkusPricesService{s: s}
   253  	return rs
   254  }
   255  
   256  type BillingAccountsSkusPricesService struct {
   257  	s *Service
   258  }
   259  
   260  func NewSkuGroupsService(s *Service) *SkuGroupsService {
   261  	rs := &SkuGroupsService{s: s}
   262  	rs.Skus = NewSkuGroupsSkusService(s)
   263  	return rs
   264  }
   265  
   266  type SkuGroupsService struct {
   267  	s *Service
   268  
   269  	Skus *SkuGroupsSkusService
   270  }
   271  
   272  func NewSkuGroupsSkusService(s *Service) *SkuGroupsSkusService {
   273  	rs := &SkuGroupsSkusService{s: s}
   274  	return rs
   275  }
   276  
   277  type SkuGroupsSkusService struct {
   278  	s *Service
   279  }
   280  
   281  func NewSkusService(s *Service) *SkusService {
   282  	rs := &SkusService{s: s}
   283  	rs.Price = NewSkusPriceService(s)
   284  	rs.Prices = NewSkusPricesService(s)
   285  	return rs
   286  }
   287  
   288  type SkusService struct {
   289  	s *Service
   290  
   291  	Price *SkusPriceService
   292  
   293  	Prices *SkusPricesService
   294  }
   295  
   296  func NewSkusPriceService(s *Service) *SkusPriceService {
   297  	rs := &SkusPriceService{s: s}
   298  	return rs
   299  }
   300  
   301  type SkusPriceService struct {
   302  	s *Service
   303  }
   304  
   305  func NewSkusPricesService(s *Service) *SkusPricesService {
   306  	rs := &SkusPricesService{s: s}
   307  	return rs
   308  }
   309  
   310  type SkusPricesService struct {
   311  	s *Service
   312  }
   313  
   314  func NewV1betaService(s *Service) *V1betaService {
   315  	rs := &V1betaService{s: s}
   316  	return rs
   317  }
   318  
   319  type V1betaService struct {
   320  	s *Service
   321  }
   322  
   323  // CacheFillRegions: Specifies the regions for Cache Fill.
   324  type CacheFillRegions struct {
   325  	// DestinationRegion: The destination region for cache fill.
   326  	//
   327  	// Possible values:
   328  	//   "CACHE_FILL_DESTINATION_REGION_UNSPECIFIED" - Not specified
   329  	//   "CACHE_FILL_DESTINATION_REGION_ASIA_PACIFIC" - Asia Pacific
   330  	//   "CACHE_FILL_DESTINATION_REGION_EUROPE" - Europe
   331  	//   "CACHE_FILL_DESTINATION_REGION_NORTH_AMERICA" - North America
   332  	//   "CACHE_FILL_DESTINATION_REGION_OCEANIA" - Oceania
   333  	//   "CACHE_FILL_DESTINATION_REGION_SOUTH_AMERICA" - South America
   334  	//   "CACHE_FILL_DESTINATION_REGION_CHINA" - China
   335  	//   "CACHE_FILL_DESTINATION_REGION_OTHERS" - Others
   336  	DestinationRegion string `json:"destinationRegion,omitempty"`
   337  	// SourceRegion: The source region for cache fill.
   338  	//
   339  	// Possible values:
   340  	//   "CACHE_FILL_SOURCE_REGION_UNSPECIFIED" - Not specified
   341  	//   "CACHE_FILL_REGION_ASIA_PACIFIC" - Asia Pacific
   342  	//   "CACHE_FILL_SOURCE_REGION_EUROPE" - Europe
   343  	//   "CACHE_FILL_SOURCE_REGION_NORTH_AMERICA" - North America
   344  	//   "CACHE_FILL_SOURCE_REGION_OCEANIA" - Oceania
   345  	//   "CACHE_FILL_SOURCE_REGION_SOUTH_AMERICA" - South America
   346  	SourceRegion string `json:"sourceRegion,omitempty"`
   347  	// ForceSendFields is a list of field names (e.g. "DestinationRegion") to
   348  	// unconditionally include in API requests. By default, fields with empty or
   349  	// default values are omitted from API requests. See
   350  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   351  	// details.
   352  	ForceSendFields []string `json:"-"`
   353  	// NullFields is a list of field names (e.g. "DestinationRegion") to include in
   354  	// API requests with the JSON null value. By default, fields with empty values
   355  	// are omitted from API requests. See
   356  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   357  	NullFields []string `json:"-"`
   358  }
   359  
   360  func (s *CacheFillRegions) MarshalJSON() ([]byte, error) {
   361  	type NoMethod CacheFillRegions
   362  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   363  }
   364  
   365  // CloudCdnEgressWorkload: Specifies usage for Cloud CDN Data Transfer.
   366  type CloudCdnEgressWorkload struct {
   367  	// CacheEgressDestination: The destination for the cache data transfer.
   368  	//
   369  	// Possible values:
   370  	//   "CACHE_EGRESS_DESTINATION_UNSPECIFIED" - Unspecified.
   371  	//   "CACHE_EGRESS_DESTINATION_ASIA_PACIFIC" - Asia Pacific.
   372  	//   "CACHE_EGRESS_DESTINATION_CHINA" - China.
   373  	//   "CACHE_EGRESS_DESTINATION_EUROPE" - Europe.
   374  	//   "CACHE_EGRESS_DESTINATION_NORTH_AMERICA" - North America.
   375  	//   "CACHE_EGRESS_DESTINATION_OCEANIA" - Oceania including Australia, New
   376  	// Zealand, and surrounding Pacific Ocean islands such as Papua New Guinea and
   377  	// Fiji. This region excludes Hawaii.
   378  	//   "CACHE_EGRESS_DESTINATION_LATIN_AMERICA" - Latin America (Including the
   379  	// Caribbean, South America and Central America.)
   380  	//   "CACHE_EGRESS_DESTINATION_OTHER_DESTINATIONS" - All other destinations
   381  	// (including Africa and Antarctica)
   382  	CacheEgressDestination string `json:"cacheEgressDestination,omitempty"`
   383  	// CacheEgressRate: Cache data transfer usage. The rate of data cache
   384  	// transferred to the destination. Use units such as GiBy/s or TiBy/mo, based
   385  	// on The Unified Code for Units of Measure (https://ucum.org/ucum.html)
   386  	// standard.
   387  	CacheEgressRate *Usage `json:"cacheEgressRate,omitempty"`
   388  	// ForceSendFields is a list of field names (e.g. "CacheEgressDestination") to
   389  	// unconditionally include in API requests. By default, fields with empty or
   390  	// default values are omitted from API requests. See
   391  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   392  	// details.
   393  	ForceSendFields []string `json:"-"`
   394  	// NullFields is a list of field names (e.g. "CacheEgressDestination") to
   395  	// include in API requests with the JSON null value. By default, fields with
   396  	// empty values are omitted from API requests. See
   397  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   398  	NullFields []string `json:"-"`
   399  }
   400  
   401  func (s *CloudCdnEgressWorkload) MarshalJSON() ([]byte, error) {
   402  	type NoMethod CloudCdnEgressWorkload
   403  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   404  }
   405  
   406  // CloudCdnWorkload: Specifies usage for Cloud CDN resources.
   407  type CloudCdnWorkload struct {
   408  	// CacheFillOriginService: The source service for the cache fill.
   409  	//
   410  	// Possible values:
   411  	//   "CACHE_FILL_ORIGIN_SERVICE_UNSPECIFIED" - Not specified.
   412  	//   "CACHE_FILL_ORIGIN_SERVICE_GOOGLE_CLOUD_STORAGE_BUCKET" - Origin service
   413  	// is Google Cloud Storage.
   414  	//   "CACHE_FILL_ORIGIN_SERVICE_BACKEND_SERVICE" - Origin service is backend
   415  	// service, such as Compute VMs, external backend, etc.
   416  	CacheFillOriginService string `json:"cacheFillOriginService,omitempty"`
   417  	// CacheFillRate: Cache fill usage. The rate of data transferred between cache
   418  	// fill regions. For example: units such as "GiBy/s" or "TBy/mo".
   419  	CacheFillRate *Usage `json:"cacheFillRate,omitempty"`
   420  	// CacheFillRegions: The regions where data is transferred from Google data
   421  	// locations into Google global cache servers. The SKU prices for cache fill
   422  	// across services are the same.
   423  	CacheFillRegions *CacheFillRegions `json:"cacheFillRegions,omitempty"`
   424  	// CacheLookUpRate: Cache look up requests. This is specified to indicate the
   425  	// number of requests. For example: units such as "1/s".
   426  	CacheLookUpRate *Usage `json:"cacheLookUpRate,omitempty"`
   427  	// ForceSendFields is a list of field names (e.g. "CacheFillOriginService") to
   428  	// unconditionally include in API requests. By default, fields with empty or
   429  	// default values are omitted from API requests. See
   430  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   431  	// details.
   432  	ForceSendFields []string `json:"-"`
   433  	// NullFields is a list of field names (e.g. "CacheFillOriginService") to
   434  	// include in API requests with the JSON null value. By default, fields with
   435  	// empty values are omitted from API requests. See
   436  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   437  	NullFields []string `json:"-"`
   438  }
   439  
   440  func (s *CloudCdnWorkload) MarshalJSON() ([]byte, error) {
   441  	type NoMethod CloudCdnWorkload
   442  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   443  }
   444  
   445  // CloudInterconnectEgressWorkload: Includes the estimate for Interconnect Data
   446  // Transfer only. To specify usage for data transfer between VMs and internet
   447  // end-points, use the Standard Tier Internet Data Transfer interface.
   448  type CloudInterconnectEgressWorkload struct {
   449  	// EgressRate: Outbound data transfer usage. This usage applies when you move
   450  	// or copy data from one Google Cloud service to another service. The units are
   451  	// GiBy/s, By/s, and so on, based on The Unified Code for Units of Measure
   452  	// (https://ucum.org/ucum.html) standard.
   453  	EgressRate *Usage `json:"egressRate,omitempty"`
   454  	// InterconnectConnectionLocation: Locations in the Interconnect connection
   455  	// location table
   456  	// (https://cloud.google.com/vpc/network-pricing#interconnect-pricing). These
   457  	// are the Interconnect Data Transfer charges.
   458  	//
   459  	// Possible values:
   460  	//   "INTERCONNECT_CONNECTION_LOCATION_UNSPECIFIED" - Unspecified.
   461  	//   "INTERCONNECT_CONNECTION_LOCATION_ASIA" - Asia.
   462  	//   "INTERCONNECT_CONNECTION_LOCATION_EUROPE" - Europe.
   463  	//   "INTERCONNECT_CONNECTION_LOCATION_NORTH_AMERICA" - North America.
   464  	//   "INTERCONNECT_CONNECTION_LOCATION_SOUTH_AMERICA" - South America.
   465  	//   "INTERCONNECT_CONNECTION_LOCATION_AUSTRALIA" - Australia.
   466  	InterconnectConnectionLocation string `json:"interconnectConnectionLocation,omitempty"`
   467  	// ForceSendFields is a list of field names (e.g. "EgressRate") to
   468  	// unconditionally include in API requests. By default, fields with empty or
   469  	// default values are omitted from API requests. See
   470  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   471  	// details.
   472  	ForceSendFields []string `json:"-"`
   473  	// NullFields is a list of field names (e.g. "EgressRate") to include in API
   474  	// requests with the JSON null value. By default, fields with empty values are
   475  	// omitted from API requests. See
   476  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   477  	NullFields []string `json:"-"`
   478  }
   479  
   480  func (s *CloudInterconnectEgressWorkload) MarshalJSON() ([]byte, error) {
   481  	type NoMethod CloudInterconnectEgressWorkload
   482  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   483  }
   484  
   485  // CloudInterconnectWorkload: Specifies usage for Cloud Interconnect resources.
   486  type CloudInterconnectWorkload struct {
   487  	// InterconnectAttachments: VLAN attachment used for interconnect.
   488  	InterconnectAttachments []*VlanAttachment `json:"interconnectAttachments,omitempty"`
   489  	// InterconnectType: VLAN attachment type
   490  	//
   491  	// Possible values:
   492  	//   "INTERCONNECT_TYPE_UNSPECIFIED" - Unspecified
   493  	//   "INTERCONNECT_TYPE_DEDICATED" - Type is dedicated
   494  	//   "INTERCONNECT_TYPE_PARTNER" - Type is partner
   495  	InterconnectType string `json:"interconnectType,omitempty"`
   496  	// LinkType: Interconnect circuit link type.
   497  	//
   498  	// Possible values:
   499  	//   "LINK_TYPE_UNSPECIFIED" - Unspecified
   500  	//   "LINK_TYPE_ETHERNET_10G_LR" - Link type is 10 Gbps.
   501  	//   "LINK_TYPE_ETHERNET_100G_LR" - Link type is 100 Gbps.
   502  	LinkType string `json:"linkType,omitempty"`
   503  	// ProvisionedLinkCount: Interconnect usage. This is specified as a unitless
   504  	// quantity which indicates the number of circuit provisioned in interconnect.
   505  	ProvisionedLinkCount *Usage `json:"provisionedLinkCount,omitempty"`
   506  	// ForceSendFields is a list of field names (e.g. "InterconnectAttachments") to
   507  	// unconditionally include in API requests. By default, fields with empty or
   508  	// default values are omitted from API requests. See
   509  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   510  	// details.
   511  	ForceSendFields []string `json:"-"`
   512  	// NullFields is a list of field names (e.g. "InterconnectAttachments") to
   513  	// include in API requests with the JSON null value. By default, fields with
   514  	// empty values are omitted from API requests. See
   515  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   516  	NullFields []string `json:"-"`
   517  }
   518  
   519  func (s *CloudInterconnectWorkload) MarshalJSON() ([]byte, error) {
   520  	type NoMethod CloudInterconnectWorkload
   521  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   522  }
   523  
   524  // CloudStorageEgressWorkload: Specification of a network type. Network data
   525  // transfer within Google Cloud applies when you move or copy data from one
   526  // Cloud Storage bucket to another or when another Google Cloud service
   527  // accesses data in your Cloud Storage bucket.This includes the network data
   528  // transfer within Google Cloud and the general network usage.
   529  type CloudStorageEgressWorkload struct {
   530  	// DestinationContinent: Where the data is sent to.
   531  	//
   532  	// Possible values:
   533  	//   "DESTINATION_CONTINENT_UNSPECIFIED" - Not specified.
   534  	//   "DESTINATION_CONTINENT_ASIA_PACIFIC" - Asia Pacific.
   535  	//   "DESTINATION_CONTINENT_AUTRALIA" - Australia.
   536  	//   "DESTINATION_CONTINENT_EUROPE" - Europe.
   537  	//   "DESTINATION_CONTINENT_NORTH_AMERICA" - North America.
   538  	//   "DESTINATION_CONTINENT_SOUTH_AMERICA" - South America
   539  	DestinationContinent string `json:"destinationContinent,omitempty"`
   540  	// EgressRate: Data transfer usage rate. This usage applies when you move or
   541  	// copy data from one Cloud Storage bucket to another or when another Google
   542  	// Cloud service accesses data in your Cloud Storage bucket. The expected units
   543  	// are GiBy/s, By/s, and so on, based on The Unified Code for Units of Measure
   544  	// (https://ucum.org/ucum.html) standard.
   545  	EgressRate *Usage `json:"egressRate,omitempty"`
   546  	// SourceContinent: Where the data comes from.
   547  	//
   548  	// Possible values:
   549  	//   "SOURCE_CONTINENT_UNSPECIFIED" - Not specified.
   550  	//   "SOURCE_CONTINENT_ASIA_PACIFIC" - Asia Pacific.
   551  	//   "SOURCE_CONTINENT_AUSTRALIA" - Australia.
   552  	//   "SOURCE_CONTINENT_EUROPE" - Europe.
   553  	//   "SOURCE_CONTINENT_NORTH_AMERICA" - North America.
   554  	//   "SOURCE_CONTINENT_SOUTH_AMERICA" - South America.
   555  	SourceContinent string `json:"sourceContinent,omitempty"`
   556  	// ForceSendFields is a list of field names (e.g. "DestinationContinent") to
   557  	// unconditionally include in API requests. By default, fields with empty or
   558  	// default values are omitted from API requests. See
   559  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   560  	// details.
   561  	ForceSendFields []string `json:"-"`
   562  	// NullFields is a list of field names (e.g. "DestinationContinent") to include
   563  	// in API requests with the JSON null value. By default, fields with empty
   564  	// values are omitted from API requests. See
   565  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   566  	NullFields []string `json:"-"`
   567  }
   568  
   569  func (s *CloudStorageEgressWorkload) MarshalJSON() ([]byte, error) {
   570  	type NoMethod CloudStorageEgressWorkload
   571  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   572  }
   573  
   574  // CloudStorageWorkload: Specifies usage of Cloud Storage resources.
   575  type CloudStorageWorkload struct {
   576  	// DataRetrieval: Data retrieval usage. A retrieval cost applies when data or
   577  	// metadata is read, copied, or rewritten . For example: units such as "GiB/s"
   578  	// or "B/s".
   579  	DataRetrieval *Usage `json:"dataRetrieval,omitempty"`
   580  	// DataStored: Data storage usage. The amount of data stored in buckets. For
   581  	// example: units such as GiBy/s or TiBy/mo, based on The Unified Code for
   582  	// Units of Measure (https://ucum.org/ucum.html) standard.
   583  	DataStored *Usage `json:"dataStored,omitempty"`
   584  	// DualRegion: Specify dual regions.
   585  	DualRegion *DualRegional `json:"dualRegion,omitempty"`
   586  	// MultiRegion: Specify multi regions.
   587  	MultiRegion *MultiRegional `json:"multiRegion,omitempty"`
   588  	// OperationA: Class A operation usage in Cloud Storage, such as listing the
   589  	// objects in buckets. See the operations pricing
   590  	// (https://cloud.google.com/storage/pricing#operations-pricing) tables for a
   591  	// list of which operations fall into each class. For example: units such as
   592  	// "1/s".
   593  	OperationA *Usage `json:"operationA,omitempty"`
   594  	// OperationB: Class B operation usage in Cloud Storage, such as
   595  	// `getIamPolicy`. See the operations pricing
   596  	// (https://cloud.google.com/storage/pricing#operations-pricing) tables for a
   597  	// list of which operations fall into each class. For example: units such as
   598  	// "1/s".
   599  	OperationB *Usage `json:"operationB,omitempty"`
   600  	// Region: Specify a single region.
   601  	Region *Regional `json:"region,omitempty"`
   602  	// StorageClass: The storage class
   603  	// (https://cloud.google.com/storage/docs/storage-classes#classes) of the data
   604  	// and operation. For example: "standard" and "nearline".
   605  	StorageClass string `json:"storageClass,omitempty"`
   606  	// ForceSendFields is a list of field names (e.g. "DataRetrieval") to
   607  	// unconditionally include in API requests. By default, fields with empty or
   608  	// default values are omitted from API requests. See
   609  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   610  	// details.
   611  	ForceSendFields []string `json:"-"`
   612  	// NullFields is a list of field names (e.g. "DataRetrieval") to include in API
   613  	// requests with the JSON null value. By default, fields with empty values are
   614  	// omitted from API requests. See
   615  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   616  	NullFields []string `json:"-"`
   617  }
   618  
   619  func (s *CloudStorageWorkload) MarshalJSON() ([]byte, error) {
   620  	type NoMethod CloudStorageWorkload
   621  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   622  }
   623  
   624  // Commitment: Commitments give you the ability to pay a recurring fee in
   625  // exchange for a benefit, such as a discount for your use. For example, this
   626  // object might contain details of a spend-based committed use discount (CUD)
   627  // (https://cloud.google.com/docs/cuds#spend_based_commitments). Within a
   628  // CostScenario, adding a commitment includes the cost of the commitment and
   629  // any discounts.
   630  type Commitment struct {
   631  	// Name: Required. A name for this commitment. All commitments in a
   632  	// CostScenario must have unique names. Each name may be at most 128 characters
   633  	// long.
   634  	Name string `json:"name,omitempty"`
   635  	// VmResourceBasedCud: A resource-based committed use discount (CUD).
   636  	VmResourceBasedCud *VmResourceBasedCud `json:"vmResourceBasedCud,omitempty"`
   637  	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
   638  	// include in API requests. By default, fields with empty or default values are
   639  	// omitted from API requests. See
   640  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   641  	// details.
   642  	ForceSendFields []string `json:"-"`
   643  	// NullFields is a list of field names (e.g. "Name") to include in API requests
   644  	// with the JSON null value. By default, fields with empty values are omitted
   645  	// from API requests. See
   646  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   647  	NullFields []string `json:"-"`
   648  }
   649  
   650  func (s *Commitment) MarshalJSON() ([]byte, error) {
   651  	type NoMethod Commitment
   652  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   653  }
   654  
   655  // CommitmentCostEstimate: Estimated cost for a commitment.
   656  type CommitmentCostEstimate struct {
   657  	// CommitmentTotalCostEstimate: Total estimated costs for the commitment.
   658  	CommitmentTotalCostEstimate *CostEstimate `json:"commitmentTotalCostEstimate,omitempty"`
   659  	// Name: The name of the commitment, as specified in the `CostScenario`.
   660  	Name string `json:"name,omitempty"`
   661  	// SkuCostEstimates: Estimated costs for each SKU in the commitment.
   662  	SkuCostEstimates []*SkuCostEstimate `json:"skuCostEstimates,omitempty"`
   663  	// ForceSendFields is a list of field names (e.g.
   664  	// "CommitmentTotalCostEstimate") to unconditionally include in API requests.
   665  	// By default, fields with empty or default values are omitted from API
   666  	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
   667  	// for more details.
   668  	ForceSendFields []string `json:"-"`
   669  	// NullFields is a list of field names (e.g. "CommitmentTotalCostEstimate") to
   670  	// include in API requests with the JSON null value. By default, fields with
   671  	// empty values are omitted from API requests. See
   672  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   673  	NullFields []string `json:"-"`
   674  }
   675  
   676  func (s *CommitmentCostEstimate) MarshalJSON() ([]byte, error) {
   677  	type NoMethod CommitmentCostEstimate
   678  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   679  }
   680  
   681  // ComputeVmWorkload: Specificies usage of a set of identical compute VM
   682  // instances.
   683  type ComputeVmWorkload struct {
   684  	// EnableConfidentialCompute: Defines whether each instance has confidential
   685  	// compute enabled.
   686  	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`
   687  	// GuestAccelerator: Guest accelerators attached to each machine.
   688  	GuestAccelerator *GuestAccelerator `json:"guestAccelerator,omitempty"`
   689  	// InstancesRunning: VM usage. This is specified as a unitless quantity which
   690  	// indicates the number of instances running.
   691  	InstancesRunning *Usage `json:"instancesRunning,omitempty"`
   692  	// Licenses: Premium image licenses used by each instance.
   693  	Licenses []string `json:"licenses,omitempty"`
   694  	// MachineType: The machine type.
   695  	MachineType *MachineType `json:"machineType,omitempty"`
   696  	// PersistentDisks: Persistent disks attached to each instance. Must include a
   697  	// boot disk.
   698  	PersistentDisks []*PersistentDisk `json:"persistentDisks,omitempty"`
   699  	// Preemptible: Defines whether each instance is preemptible.
   700  	Preemptible bool `json:"preemptible,omitempty"`
   701  	// Region: The region (https://cloud.google.com/compute/docs/regions-zones)
   702  	// where the VMs run. For example: "us-central1".
   703  	Region string `json:"region,omitempty"`
   704  	// ForceSendFields is a list of field names (e.g. "EnableConfidentialCompute")
   705  	// to unconditionally include in API requests. By default, fields with empty or
   706  	// default values are omitted from API requests. See
   707  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   708  	// details.
   709  	ForceSendFields []string `json:"-"`
   710  	// NullFields is a list of field names (e.g. "EnableConfidentialCompute") to
   711  	// include in API requests with the JSON null value. By default, fields with
   712  	// empty values are omitted from API requests. See
   713  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   714  	NullFields []string `json:"-"`
   715  }
   716  
   717  func (s *ComputeVmWorkload) MarshalJSON() ([]byte, error) {
   718  	type NoMethod ComputeVmWorkload
   719  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   720  }
   721  
   722  // CostEstimate: An estimated cost.
   723  type CostEstimate struct {
   724  	// CreditEstimates: The estimated credits applied.
   725  	CreditEstimates []*CreditEstimate `json:"creditEstimates,omitempty"`
   726  	// NetCostEstimate: The estimated net cost after applying credits.
   727  	NetCostEstimate *Money `json:"netCostEstimate,omitempty"`
   728  	// PreCreditCostEstimate: The estimated cost prior to applying credits.
   729  	PreCreditCostEstimate *Money `json:"preCreditCostEstimate,omitempty"`
   730  	// ForceSendFields is a list of field names (e.g. "CreditEstimates") to
   731  	// unconditionally include in API requests. By default, fields with empty or
   732  	// default values are omitted from API requests. See
   733  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   734  	// details.
   735  	ForceSendFields []string `json:"-"`
   736  	// NullFields is a list of field names (e.g. "CreditEstimates") to include in
   737  	// API requests with the JSON null value. By default, fields with empty values
   738  	// are omitted from API requests. See
   739  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   740  	NullFields []string `json:"-"`
   741  }
   742  
   743  func (s *CostEstimate) MarshalJSON() ([]byte, error) {
   744  	type NoMethod CostEstimate
   745  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   746  }
   747  
   748  // CostEstimationResult: The result of a estimating the costs of a
   749  // `CostScenario`.
   750  type CostEstimationResult struct {
   751  	// CurrencyCode: Required. The ISO 4217 currency code for the cost estimate.
   752  	CurrencyCode string `json:"currencyCode,omitempty"`
   753  	// SegmentCostEstimates: Required. Estimated costs for each idealized month of
   754  	// a `CostScenario`.
   755  	SegmentCostEstimates []*SegmentCostEstimate `json:"segmentCostEstimates,omitempty"`
   756  	// Skus: Required. Information about SKUs used in the estimate.
   757  	Skus []*Sku `json:"skus,omitempty"`
   758  	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
   759  	// unconditionally include in API requests. By default, fields with empty or
   760  	// default values are omitted from API requests. See
   761  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   762  	// details.
   763  	ForceSendFields []string `json:"-"`
   764  	// NullFields is a list of field names (e.g. "CurrencyCode") to include in API
   765  	// requests with the JSON null value. By default, fields with empty values are
   766  	// omitted from API requests. See
   767  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   768  	NullFields []string `json:"-"`
   769  }
   770  
   771  func (s *CostEstimationResult) MarshalJSON() ([]byte, error) {
   772  	type NoMethod CostEstimationResult
   773  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   774  }
   775  
   776  // CostScenario: Encapsulates all the information needed to perform a cost
   777  // estimate. It includes a specification of the Google Cloud usage whose costs
   778  // are estimated, and configuration options.
   779  type CostScenario struct {
   780  	// Commitments: New commitments to estimate the costs for. The cost of the
   781  	// commitments will be included in the estimate result and discounts the
   782  	// commitment entitles will be included in the workload cost estimates. A
   783  	// maximum of 100 workloads can be provided.
   784  	Commitments []*Commitment `json:"commitments,omitempty"`
   785  	// ScenarioConfig: Configuration for the scenario.
   786  	ScenarioConfig *ScenarioConfig `json:"scenarioConfig,omitempty"`
   787  	// Workloads: The Google Cloud usage whose costs are estimated. A maximum of
   788  	// 100 workloads can be provided.
   789  	Workloads []*Workload `json:"workloads,omitempty"`
   790  	// ForceSendFields is a list of field names (e.g. "Commitments") to
   791  	// unconditionally include in API requests. By default, fields with empty or
   792  	// default values are omitted from API requests. See
   793  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   794  	// details.
   795  	ForceSendFields []string `json:"-"`
   796  	// NullFields is a list of field names (e.g. "Commitments") to include in API
   797  	// requests with the JSON null value. By default, fields with empty values are
   798  	// omitted from API requests. See
   799  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   800  	NullFields []string `json:"-"`
   801  }
   802  
   803  func (s *CostScenario) MarshalJSON() ([]byte, error) {
   804  	type NoMethod CostScenario
   805  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   806  }
   807  
   808  // CreditEstimate: An estimated credit applied to the costs on a SKU.
   809  type CreditEstimate struct {
   810  	// CreditAmount: The estimated credit amount.
   811  	CreditAmount *Money `json:"creditAmount,omitempty"`
   812  	// CreditDescription: The credit description.
   813  	CreditDescription string `json:"creditDescription,omitempty"`
   814  	// CreditType: The credit type.
   815  	CreditType string `json:"creditType,omitempty"`
   816  	// ForceSendFields is a list of field names (e.g. "CreditAmount") to
   817  	// unconditionally include in API requests. By default, fields with empty or
   818  	// default values are omitted from API requests. See
   819  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   820  	// details.
   821  	ForceSendFields []string `json:"-"`
   822  	// NullFields is a list of field names (e.g. "CreditAmount") to include in API
   823  	// requests with the JSON null value. By default, fields with empty values are
   824  	// omitted from API requests. See
   825  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   826  	NullFields []string `json:"-"`
   827  }
   828  
   829  func (s *CreditEstimate) MarshalJSON() ([]byte, error) {
   830  	type NoMethod CreditEstimate
   831  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   832  }
   833  
   834  // CustomMachineType: Specification of a custom machine type.
   835  type CustomMachineType struct {
   836  	// MachineSeries: Required. The machine series. Only certain machine series
   837  	// (https://cloud.google.com/compute/docs/general-purpose-machines#custom_machine_types)
   838  	// support custom configurations. For example: "n1".
   839  	MachineSeries string `json:"machineSeries,omitempty"`
   840  	// MemorySizeGb: Required. Memory size of the VM in GB (2^30 bytes). Must be an
   841  	// increment of 0.25 (256 MB). Each machine series
   842  	// (https://cloud.google.com/compute/docs/machine-types#machine_type_comparison)
   843  	// has limitations on allowed values for the ratio of memory-to-vCPU count.
   844  	MemorySizeGb float64 `json:"memorySizeGb,omitempty"`
   845  	// VirtualCpuCount: Required. The number of vCPUs. The allowed values depend on
   846  	// the machine series
   847  	// (https://cloud.google.com/compute/docs/machine-types#machine_type_comparison).
   848  	VirtualCpuCount int64 `json:"virtualCpuCount,omitempty,string"`
   849  	// ForceSendFields is a list of field names (e.g. "MachineSeries") to
   850  	// unconditionally include in API requests. By default, fields with empty or
   851  	// default values are omitted from API requests. See
   852  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   853  	// details.
   854  	ForceSendFields []string `json:"-"`
   855  	// NullFields is a list of field names (e.g. "MachineSeries") to include in API
   856  	// requests with the JSON null value. By default, fields with empty values are
   857  	// omitted from API requests. See
   858  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   859  	NullFields []string `json:"-"`
   860  }
   861  
   862  func (s *CustomMachineType) MarshalJSON() ([]byte, error) {
   863  	type NoMethod CustomMachineType
   864  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   865  }
   866  
   867  func (s *CustomMachineType) UnmarshalJSON(data []byte) error {
   868  	type NoMethod CustomMachineType
   869  	var s1 struct {
   870  		MemorySizeGb gensupport.JSONFloat64 `json:"memorySizeGb"`
   871  		*NoMethod
   872  	}
   873  	s1.NoMethod = (*NoMethod)(s)
   874  	if err := json.Unmarshal(data, &s1); err != nil {
   875  		return err
   876  	}
   877  	s.MemorySizeGb = float64(s1.MemorySizeGb)
   878  	return nil
   879  }
   880  
   881  // Decimal: A representation of a decimal value, such as 2.5. Clients may
   882  // convert values into language-native decimal formats, such as Java's
   883  // BigDecimal or Python's decimal.Decimal. [BigDecimal]:
   884  // https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html
   885  // [decimal.Decimal]: https://docs.python.org/3/library/decimal.html
   886  type Decimal struct {
   887  	// Value: The decimal value, as a string. The string representation consists of
   888  	// an optional sign, `+` (`U+002B`) or `-` (`U+002D`), followed by a sequence
   889  	// of zero or more decimal digits ("the integer"), optionally followed by a
   890  	// fraction, optionally followed by an exponent. An empty string **should** be
   891  	// interpreted as `0`. The fraction consists of a decimal point followed by
   892  	// zero or more decimal digits. The string must contain at least one digit in
   893  	// either the integer or the fraction. The number formed by the sign, the
   894  	// integer and the fraction is referred to as the significand. The exponent
   895  	// consists of the character `e` (`U+0065`) or `E` (`U+0045`) followed by one
   896  	// or more decimal digits. Services **should** normalize decimal values before
   897  	// storing them by: - Removing an explicitly-provided `+` sign (`+2.5` ->
   898  	// `2.5`). - Replacing a zero-length integer value with `0` (`.5` -> `0.5`). -
   899  	// Coercing the exponent character to upper-case, with explicit sign (`2.5e8`
   900  	// -> `2.5E+8`). - Removing an explicitly-provided zero exponent (`2.5E0` ->
   901  	// `2.5`). Services **may** perform additional normalization based on its own
   902  	// needs and the internal decimal implementation selected, such as shifting the
   903  	// decimal point and exponent value together (example: `2.5E-1` <-> `0.25`).
   904  	// Additionally, services **may** preserve trailing zeroes in the fraction to
   905  	// indicate increased precision, but are not required to do so. Note that only
   906  	// the `.` character is supported to divide the integer and the fraction; `,`
   907  	// **should not** be supported regardless of locale. Additionally, thousand
   908  	// separators **should not** be supported. If a service does support them,
   909  	// values **must** be normalized. The ENBF grammar is: DecimalString = '' |
   910  	// [Sign] Significand [Exponent]; Sign = '+' | '-'; Significand = Digits '.' |
   911  	// [Digits] '.' Digits; Exponent = ('e' | 'E') [Sign] Digits; Digits = { '0' |
   912  	// '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' }; Services **should**
   913  	// clearly document the range of supported values, the maximum supported
   914  	// precision (total number of digits), and, if applicable, the scale (number of
   915  	// digits after the decimal point), as well as how it behaves when receiving
   916  	// out-of-bounds values. Services **may** choose to accept values passed as
   917  	// input even when the value has a higher precision or scale than the service
   918  	// supports, and **should** round the value to fit the supported scale.
   919  	// Alternatively, the service **may** error with `400 Bad Request`
   920  	// (`INVALID_ARGUMENT` in gRPC) if precision would be lost. Services **should**
   921  	// error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) if the service
   922  	// receives a value outside of the supported range.
   923  	Value string `json:"value,omitempty"`
   924  	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
   925  	// include in API requests. By default, fields with empty or default values are
   926  	// omitted from API requests. See
   927  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   928  	// details.
   929  	ForceSendFields []string `json:"-"`
   930  	// NullFields is a list of field names (e.g. "Value") to include in API
   931  	// requests with the JSON null value. By default, fields with empty values are
   932  	// omitted from API requests. See
   933  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   934  	NullFields []string `json:"-"`
   935  }
   936  
   937  func (s *Decimal) MarshalJSON() ([]byte, error) {
   938  	type NoMethod Decimal
   939  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   940  }
   941  
   942  // DualRegional: Area contains dual locations.
   943  type DualRegional struct {
   944  	// Name: The location name
   945  	// (https://cloud.google.com/storage/docs/locations#available-locations) where
   946  	// the data is stored. For example: "asia1" for dual region.
   947  	Name string `json:"name,omitempty"`
   948  	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
   949  	// include in API requests. By default, fields with empty or default values are
   950  	// omitted from API requests. See
   951  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   952  	// details.
   953  	ForceSendFields []string `json:"-"`
   954  	// NullFields is a list of field names (e.g. "Name") to include in API requests
   955  	// with the JSON null value. By default, fields with empty values are omitted
   956  	// from API requests. See
   957  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   958  	NullFields []string `json:"-"`
   959  }
   960  
   961  func (s *DualRegional) MarshalJSON() ([]byte, error) {
   962  	type NoMethod DualRegional
   963  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   964  }
   965  
   966  // EstimateCostScenarioForBillingAccountRequest: Request for
   967  // EstimateCostScenarioForBillingAccount.
   968  type EstimateCostScenarioForBillingAccountRequest struct {
   969  	// CostScenario: The scenario to estimate costs for.
   970  	CostScenario *CostScenario `json:"costScenario,omitempty"`
   971  	// ForceSendFields is a list of field names (e.g. "CostScenario") to
   972  	// unconditionally include in API requests. By default, fields with empty or
   973  	// default values are omitted from API requests. See
   974  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   975  	// details.
   976  	ForceSendFields []string `json:"-"`
   977  	// NullFields is a list of field names (e.g. "CostScenario") to include in API
   978  	// requests with the JSON null value. By default, fields with empty values are
   979  	// omitted from API requests. See
   980  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   981  	NullFields []string `json:"-"`
   982  }
   983  
   984  func (s *EstimateCostScenarioForBillingAccountRequest) MarshalJSON() ([]byte, error) {
   985  	type NoMethod EstimateCostScenarioForBillingAccountRequest
   986  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   987  }
   988  
   989  // EstimateCostScenarioForBillingAccountResponse: Response for
   990  // EstimateCostScenarioForBillingAccount
   991  type EstimateCostScenarioForBillingAccountResponse struct {
   992  	// CostEstimationResult: The result of the cost estimation.
   993  	CostEstimationResult *CostEstimationResult `json:"costEstimationResult,omitempty"`
   994  
   995  	// ServerResponse contains the HTTP response code and headers from the server.
   996  	googleapi.ServerResponse `json:"-"`
   997  	// ForceSendFields is a list of field names (e.g. "CostEstimationResult") to
   998  	// unconditionally include in API requests. By default, fields with empty or
   999  	// default values are omitted from API requests. See
  1000  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1001  	// details.
  1002  	ForceSendFields []string `json:"-"`
  1003  	// NullFields is a list of field names (e.g. "CostEstimationResult") to include
  1004  	// in API requests with the JSON null value. By default, fields with empty
  1005  	// values are omitted from API requests. See
  1006  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1007  	NullFields []string `json:"-"`
  1008  }
  1009  
  1010  func (s *EstimateCostScenarioForBillingAccountResponse) MarshalJSON() ([]byte, error) {
  1011  	type NoMethod EstimateCostScenarioForBillingAccountResponse
  1012  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1013  }
  1014  
  1015  // EstimateCostScenarioWithListPriceRequest: Request for
  1016  // EstimateCostScenarioWithListPrice.
  1017  type EstimateCostScenarioWithListPriceRequest struct {
  1018  	// CostScenario: The scenario to estimate costs for.
  1019  	CostScenario *CostScenario `json:"costScenario,omitempty"`
  1020  	// ForceSendFields is a list of field names (e.g. "CostScenario") to
  1021  	// unconditionally include in API requests. By default, fields with empty or
  1022  	// default values are omitted from API requests. See
  1023  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1024  	// details.
  1025  	ForceSendFields []string `json:"-"`
  1026  	// NullFields is a list of field names (e.g. "CostScenario") to include in API
  1027  	// requests with the JSON null value. By default, fields with empty values are
  1028  	// omitted from API requests. See
  1029  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1030  	NullFields []string `json:"-"`
  1031  }
  1032  
  1033  func (s *EstimateCostScenarioWithListPriceRequest) MarshalJSON() ([]byte, error) {
  1034  	type NoMethod EstimateCostScenarioWithListPriceRequest
  1035  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1036  }
  1037  
  1038  // EstimateCostScenarioWithListPriceResponse: Response for
  1039  // EstimateCostScenarioWithListPrice
  1040  type EstimateCostScenarioWithListPriceResponse struct {
  1041  	// CostEstimationResult: The result of the cost estimation.
  1042  	CostEstimationResult *CostEstimationResult `json:"costEstimationResult,omitempty"`
  1043  
  1044  	// ServerResponse contains the HTTP response code and headers from the server.
  1045  	googleapi.ServerResponse `json:"-"`
  1046  	// ForceSendFields is a list of field names (e.g. "CostEstimationResult") to
  1047  	// unconditionally include in API requests. By default, fields with empty or
  1048  	// default values are omitted from API requests. See
  1049  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1050  	// details.
  1051  	ForceSendFields []string `json:"-"`
  1052  	// NullFields is a list of field names (e.g. "CostEstimationResult") to include
  1053  	// in API requests with the JSON null value. By default, fields with empty
  1054  	// values are omitted from API requests. See
  1055  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1056  	NullFields []string `json:"-"`
  1057  }
  1058  
  1059  func (s *EstimateCostScenarioWithListPriceResponse) MarshalJSON() ([]byte, error) {
  1060  	type NoMethod EstimateCostScenarioWithListPriceResponse
  1061  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1062  }
  1063  
  1064  // EstimationTimePoint: Represents a point in time.
  1065  type EstimationTimePoint struct {
  1066  	// EstimationTimeFrameOffset: The point in time, relative to the start of the
  1067  	// time frame covered by the cost estimate.
  1068  	EstimationTimeFrameOffset string `json:"estimationTimeFrameOffset,omitempty"`
  1069  	// ForceSendFields is a list of field names (e.g. "EstimationTimeFrameOffset")
  1070  	// to unconditionally include in API requests. By default, fields with empty or
  1071  	// default values are omitted from API requests. See
  1072  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1073  	// details.
  1074  	ForceSendFields []string `json:"-"`
  1075  	// NullFields is a list of field names (e.g. "EstimationTimeFrameOffset") to
  1076  	// include in API requests with the JSON null value. By default, fields with
  1077  	// empty values are omitted from API requests. See
  1078  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1079  	NullFields []string `json:"-"`
  1080  }
  1081  
  1082  func (s *EstimationTimePoint) MarshalJSON() ([]byte, error) {
  1083  	type NoMethod EstimationTimePoint
  1084  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1085  }
  1086  
  1087  // GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo: Encapsulates
  1088  // the aggregation information such as aggregation level and interval for a
  1089  // billing account price.
  1090  type GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo struct {
  1091  	// Interval: Interval at which usage is aggregated to compute cost. Example:
  1092  	// "MONTHLY" interval indicates that usage is aggregated every month.
  1093  	//
  1094  	// Possible values:
  1095  	//   "INTERVAL_UNSPECIFIED" - Default unspecified value.
  1096  	//   "INTERVAL_MONTHLY" - Usage is aggregated every month.
  1097  	//   "INTERVAL_DAILY" - Usage is aggregated every day.
  1098  	Interval string `json:"interval,omitempty"`
  1099  	// Level: Level at which usage is aggregated to compute cost. Example:
  1100  	// "ACCOUNT" level indicates that usage is aggregated across all projects in a
  1101  	// single account.
  1102  	//
  1103  	// Possible values:
  1104  	//   "LEVEL_UNSPECIFIED" - Default unspecified value.
  1105  	//   "LEVEL_ACCOUNT" - Usage is aggregated at an account level.
  1106  	//   "LEVEL_PROJECT" - Usage is aggregated at a project level.
  1107  	Level string `json:"level,omitempty"`
  1108  	// ForceSendFields is a list of field names (e.g. "Interval") to
  1109  	// unconditionally include in API requests. By default, fields with empty or
  1110  	// default values are omitted from API requests. See
  1111  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1112  	// details.
  1113  	ForceSendFields []string `json:"-"`
  1114  	// NullFields is a list of field names (e.g. "Interval") to include in API
  1115  	// requests with the JSON null value. By default, fields with empty values are
  1116  	// omitted from API requests. See
  1117  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1118  	NullFields []string `json:"-"`
  1119  }
  1120  
  1121  func (s *GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo) MarshalJSON() ([]byte, error) {
  1122  	type NoMethod GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo
  1123  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1124  }
  1125  
  1126  // GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice:
  1127  // Encapsulates the latest price for a billing account SKU.
  1128  type GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice struct {
  1129  	// CurrencyCode: ISO-4217 currency code for the price.
  1130  	CurrencyCode string `json:"currencyCode,omitempty"`
  1131  	// Name: Resource name for the latest billing account price.
  1132  	Name string `json:"name,omitempty"`
  1133  	// PriceReason: Background information on the origin of the price.
  1134  	PriceReason *GoogleCloudBillingBillingaccountpricesV1betaPriceReason `json:"priceReason,omitempty"`
  1135  	// Rate: Rate price metadata. Billing account SKUs with `Rate` price are
  1136  	// offered by pricing tiers. The price can have 1 or more rate pricing tiers.
  1137  	Rate *GoogleCloudBillingBillingaccountpricesV1betaRate `json:"rate,omitempty"`
  1138  	// ValueType: Type of the price. The possible values are: ["unspecified",
  1139  	// "rate"].
  1140  	ValueType string `json:"valueType,omitempty"`
  1141  
  1142  	// ServerResponse contains the HTTP response code and headers from the server.
  1143  	googleapi.ServerResponse `json:"-"`
  1144  	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
  1145  	// unconditionally include in API requests. By default, fields with empty or
  1146  	// default values are omitted from API requests. See
  1147  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1148  	// details.
  1149  	ForceSendFields []string `json:"-"`
  1150  	// NullFields is a list of field names (e.g. "CurrencyCode") to include in API
  1151  	// requests with the JSON null value. By default, fields with empty values are
  1152  	// omitted from API requests. See
  1153  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1154  	NullFields []string `json:"-"`
  1155  }
  1156  
  1157  func (s *GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice) MarshalJSON() ([]byte, error) {
  1158  	type NoMethod GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice
  1159  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1160  }
  1161  
  1162  // GoogleCloudBillingBillingaccountpricesV1betaDefaultPrice: Encapsulates a
  1163  // default price which is the current list price.
  1164  type GoogleCloudBillingBillingaccountpricesV1betaDefaultPrice struct {
  1165  }
  1166  
  1167  // GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount: Encapsulates a
  1168  // discount off the list price, anchored to the list price as of a fixed time.
  1169  type GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount struct {
  1170  	// DiscountPercent: Percentage of the fixed discount.
  1171  	DiscountPercent *Decimal `json:"discountPercent,omitempty"`
  1172  	// DiscountScopeType: Type of the fixed discount scope which indicates the
  1173  	// source of the discount. It can have values such as 'unspecified' and
  1174  	// 'sku-group'.
  1175  	DiscountScopeType string `json:"discountScopeType,omitempty"`
  1176  	// FixTime: Time that the fixed discount is anchored to.
  1177  	FixTime string `json:"fixTime,omitempty"`
  1178  	// SkuGroup: SKU group where the fixed discount comes from.
  1179  	SkuGroup string `json:"skuGroup,omitempty"`
  1180  	// ForceSendFields is a list of field names (e.g. "DiscountPercent") to
  1181  	// unconditionally include in API requests. By default, fields with empty or
  1182  	// default values are omitted from API requests. See
  1183  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1184  	// details.
  1185  	ForceSendFields []string `json:"-"`
  1186  	// NullFields is a list of field names (e.g. "DiscountPercent") to include in
  1187  	// API requests with the JSON null value. By default, fields with empty values
  1188  	// are omitted from API requests. See
  1189  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1190  	NullFields []string `json:"-"`
  1191  }
  1192  
  1193  func (s *GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount) MarshalJSON() ([]byte, error) {
  1194  	type NoMethod GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount
  1195  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1196  }
  1197  
  1198  // GoogleCloudBillingBillingaccountpricesV1betaFixedPrice: Encapsulates a set
  1199  // fixed price applicable during the terms of a contract agreement.
  1200  type GoogleCloudBillingBillingaccountpricesV1betaFixedPrice struct {
  1201  }
  1202  
  1203  // GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount: Encapsulates a
  1204  // discount off the current list price, not anchored to any list price as of a
  1205  // fixed time.
  1206  type GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount struct {
  1207  	// DiscountPercent: Percentage of the floating discount.
  1208  	DiscountPercent *Decimal `json:"discountPercent,omitempty"`
  1209  	// DiscountScopeType: Type of the floating discount scope which indicates the
  1210  	// source of the discount. It can have values such as 'unspecified' and
  1211  	// 'sku-group'.
  1212  	DiscountScopeType string `json:"discountScopeType,omitempty"`
  1213  	// SkuGroup: SKU group where the floating discount comes from.
  1214  	SkuGroup string `json:"skuGroup,omitempty"`
  1215  	// ForceSendFields is a list of field names (e.g. "DiscountPercent") to
  1216  	// unconditionally include in API requests. By default, fields with empty or
  1217  	// default values are omitted from API requests. See
  1218  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1219  	// details.
  1220  	ForceSendFields []string `json:"-"`
  1221  	// NullFields is a list of field names (e.g. "DiscountPercent") to include in
  1222  	// API requests with the JSON null value. By default, fields with empty values
  1223  	// are omitted from API requests. See
  1224  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1225  	NullFields []string `json:"-"`
  1226  }
  1227  
  1228  func (s *GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount) MarshalJSON() ([]byte, error) {
  1229  	type NoMethod GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount
  1230  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1231  }
  1232  
  1233  // GoogleCloudBillingBillingaccountpricesV1betaListBillingAccountPricesResponse:
  1234  //
  1235  //	Response message for ListBillingAccountPrices.
  1236  type GoogleCloudBillingBillingaccountpricesV1betaListBillingAccountPricesResponse struct {
  1237  	// BillingAccountPrices: The returned billing account prices.
  1238  	BillingAccountPrices []*GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice `json:"billingAccountPrices,omitempty"`
  1239  	// NextPageToken: Token that can be sent as `page_token` in the subsequent
  1240  	// request to retrieve the next page. If this field is empty, there are no
  1241  	// subsequent pages.
  1242  	NextPageToken string `json:"nextPageToken,omitempty"`
  1243  
  1244  	// ServerResponse contains the HTTP response code and headers from the server.
  1245  	googleapi.ServerResponse `json:"-"`
  1246  	// ForceSendFields is a list of field names (e.g. "BillingAccountPrices") to
  1247  	// unconditionally include in API requests. By default, fields with empty or
  1248  	// default values are omitted from API requests. See
  1249  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1250  	// details.
  1251  	ForceSendFields []string `json:"-"`
  1252  	// NullFields is a list of field names (e.g. "BillingAccountPrices") to include
  1253  	// in API requests with the JSON null value. By default, fields with empty
  1254  	// values are omitted from API requests. See
  1255  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1256  	NullFields []string `json:"-"`
  1257  }
  1258  
  1259  func (s *GoogleCloudBillingBillingaccountpricesV1betaListBillingAccountPricesResponse) MarshalJSON() ([]byte, error) {
  1260  	type NoMethod GoogleCloudBillingBillingaccountpricesV1betaListBillingAccountPricesResponse
  1261  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1262  }
  1263  
  1264  // GoogleCloudBillingBillingaccountpricesV1betaListPriceAsCeiling: Encapsulates
  1265  // a contract feature that the list price (DefaultPrice) will be used for the
  1266  // price if the current list price drops lower than the custom fixed price.
  1267  // Available to new contracts after March 21, 2022. Applies to all fixed price
  1268  // SKUs in the contract, including FixedPrice, FixedDiscount, MigratedPrice,
  1269  // and MergedPrice.
  1270  type GoogleCloudBillingBillingaccountpricesV1betaListPriceAsCeiling struct {
  1271  }
  1272  
  1273  // GoogleCloudBillingBillingaccountpricesV1betaMergedPrice: Encapsulates a
  1274  // price after merging from multiple sources. With merged tiers, each
  1275  // individual tier can be from a different source with different discount
  1276  // types.
  1277  type GoogleCloudBillingBillingaccountpricesV1betaMergedPrice struct {
  1278  }
  1279  
  1280  // GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice: Encapsulates a
  1281  // price migrated from other SKUs.
  1282  type GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice struct {
  1283  	// SourceSku: Source SKU where the discount is migrated from. Format:
  1284  	// billingAccounts/{billing_account}/skus/{sku}
  1285  	SourceSku string `json:"sourceSku,omitempty"`
  1286  	// ForceSendFields is a list of field names (e.g. "SourceSku") to
  1287  	// unconditionally include in API requests. By default, fields with empty or
  1288  	// default values are omitted from API requests. See
  1289  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1290  	// details.
  1291  	ForceSendFields []string `json:"-"`
  1292  	// NullFields is a list of field names (e.g. "SourceSku") to include in API
  1293  	// requests with the JSON null value. By default, fields with empty values are
  1294  	// omitted from API requests. See
  1295  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1296  	NullFields []string `json:"-"`
  1297  }
  1298  
  1299  func (s *GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice) MarshalJSON() ([]byte, error) {
  1300  	type NoMethod GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice
  1301  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1302  }
  1303  
  1304  // GoogleCloudBillingBillingaccountpricesV1betaPriceReason: Encapsulates a
  1305  // price reason which contains background information about the origin of the
  1306  // price.
  1307  type GoogleCloudBillingBillingaccountpricesV1betaPriceReason struct {
  1308  	// DefaultPrice: Default price which is the current list price.
  1309  	DefaultPrice *GoogleCloudBillingBillingaccountpricesV1betaDefaultPrice `json:"defaultPrice,omitempty"`
  1310  	// FixedDiscount: Discount off the list price, anchored to the list price as of
  1311  	// a fixed time.
  1312  	FixedDiscount *GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount `json:"fixedDiscount,omitempty"`
  1313  	// FixedPrice: Fixed price applicable during the terms of a contract agreement.
  1314  	FixedPrice *GoogleCloudBillingBillingaccountpricesV1betaFixedPrice `json:"fixedPrice,omitempty"`
  1315  	// FloatingDiscount: Discount off the current list price, not anchored to any
  1316  	// list price as of a fixed time.
  1317  	FloatingDiscount *GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount `json:"floatingDiscount,omitempty"`
  1318  	// ListPriceAsCeiling: Contract feature that the list price (DefaultPrice) will
  1319  	// be used for the price if the current list price drops lower than the custom
  1320  	// fixed price. Available to new contracts after March 21, 2022. Applies to all
  1321  	// fixed price SKUs in the contract, including FixedPrice, FixedDiscount,
  1322  	// MigratedPrice, and MergedPrice.
  1323  	ListPriceAsCeiling *GoogleCloudBillingBillingaccountpricesV1betaListPriceAsCeiling `json:"listPriceAsCeiling,omitempty"`
  1324  	// MergedPrice: Price after merging from multiple sources.
  1325  	MergedPrice *GoogleCloudBillingBillingaccountpricesV1betaMergedPrice `json:"mergedPrice,omitempty"`
  1326  	// MigratedPrice: Price migrated from other SKUs.
  1327  	MigratedPrice *GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice `json:"migratedPrice,omitempty"`
  1328  	// Type: Type of the price reason. It can have values such as 'unspecified',
  1329  	// 'default-price', 'fixed-price', 'fixed-discount', 'floating-discount',
  1330  	// 'migrated-price', 'merged-price', 'list-price-as-ceiling'.
  1331  	Type string `json:"type,omitempty"`
  1332  	// ForceSendFields is a list of field names (e.g. "DefaultPrice") to
  1333  	// unconditionally include in API requests. By default, fields with empty or
  1334  	// default values are omitted from API requests. See
  1335  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1336  	// details.
  1337  	ForceSendFields []string `json:"-"`
  1338  	// NullFields is a list of field names (e.g. "DefaultPrice") to include in API
  1339  	// requests with the JSON null value. By default, fields with empty values are
  1340  	// omitted from API requests. See
  1341  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1342  	NullFields []string `json:"-"`
  1343  }
  1344  
  1345  func (s *GoogleCloudBillingBillingaccountpricesV1betaPriceReason) MarshalJSON() ([]byte, error) {
  1346  	type NoMethod GoogleCloudBillingBillingaccountpricesV1betaPriceReason
  1347  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1348  }
  1349  
  1350  // GoogleCloudBillingBillingaccountpricesV1betaRate: Encapsulates a `Rate`
  1351  // price. Billing account SKUs with `Rate` price are offered by pricing tiers.
  1352  // The price have 1 or more rate pricing tiers.
  1353  type GoogleCloudBillingBillingaccountpricesV1betaRate struct {
  1354  	// AggregationInfo: Aggregation info for tiers such as aggregation level and
  1355  	// interval.
  1356  	AggregationInfo *GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo `json:"aggregationInfo,omitempty"`
  1357  	// Tiers: All tiers associated with the `Rate` price.
  1358  	Tiers []*GoogleCloudBillingBillingaccountpricesV1betaRateTier `json:"tiers,omitempty"`
  1359  	// UnitInfo: Unit info such as name and quantity.
  1360  	UnitInfo *GoogleCloudBillingBillingaccountpricesV1betaUnitInfo `json:"unitInfo,omitempty"`
  1361  	// ForceSendFields is a list of field names (e.g. "AggregationInfo") to
  1362  	// unconditionally include in API requests. By default, fields with empty or
  1363  	// default values are omitted from API requests. See
  1364  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1365  	// details.
  1366  	ForceSendFields []string `json:"-"`
  1367  	// NullFields is a list of field names (e.g. "AggregationInfo") to include in
  1368  	// API requests with the JSON null value. By default, fields with empty values
  1369  	// are omitted from API requests. See
  1370  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1371  	NullFields []string `json:"-"`
  1372  }
  1373  
  1374  func (s *GoogleCloudBillingBillingaccountpricesV1betaRate) MarshalJSON() ([]byte, error) {
  1375  	type NoMethod GoogleCloudBillingBillingaccountpricesV1betaRate
  1376  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1377  }
  1378  
  1379  // GoogleCloudBillingBillingaccountpricesV1betaRateTier: Encapsulates a rate
  1380  // price tier.
  1381  type GoogleCloudBillingBillingaccountpricesV1betaRateTier struct {
  1382  	// ContractPrice: Negotiated contract price specific for a billing account.
  1383  	ContractPrice *Money `json:"contractPrice,omitempty"`
  1384  	// EffectiveDiscountPercent: Percentage of effective discount calculated using
  1385  	// the current list price per pricing tier. Formula used:
  1386  	// effective_discount_percent = (list_price - contract_price) / list_price ×
  1387  	// 100 If list_price and contract_price are zero, this field is the same as
  1388  	// `discount_percent` of FixedDiscount and FloatingDiscount. If your contract
  1389  	// does NOT have the feature LIST_PRICE_AS_CEILING enabled, the
  1390  	// effective_discount_percent can be negative if the SKU has a FixedDiscount
  1391  	// and the current list price is lower than the list price on the date of the
  1392  	// contract agreement. See the `FixedDiscount.fix_time` on when the discount
  1393  	// was set. If you have questions regarding pricing per SKU, contact your
  1394  	// Account team for more details.
  1395  	EffectiveDiscountPercent *Decimal `json:"effectiveDiscountPercent,omitempty"`
  1396  	// ListPrice: List price of one tier.
  1397  	ListPrice *Money `json:"listPrice,omitempty"`
  1398  	// StartAmount: Lower bound amount for a tier. Tiers 0-100, 100-200 will be
  1399  	// represented with two tiers with `start_amount` 0 and 100.
  1400  	StartAmount *Decimal `json:"startAmount,omitempty"`
  1401  	// ForceSendFields is a list of field names (e.g. "ContractPrice") to
  1402  	// unconditionally include in API requests. By default, fields with empty or
  1403  	// default values are omitted from API requests. See
  1404  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1405  	// details.
  1406  	ForceSendFields []string `json:"-"`
  1407  	// NullFields is a list of field names (e.g. "ContractPrice") to include in API
  1408  	// requests with the JSON null value. By default, fields with empty values are
  1409  	// omitted from API requests. See
  1410  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1411  	NullFields []string `json:"-"`
  1412  }
  1413  
  1414  func (s *GoogleCloudBillingBillingaccountpricesV1betaRateTier) MarshalJSON() ([]byte, error) {
  1415  	type NoMethod GoogleCloudBillingBillingaccountpricesV1betaRateTier
  1416  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1417  }
  1418  
  1419  // GoogleCloudBillingBillingaccountpricesV1betaUnitInfo: Encapsulates the unit
  1420  // information for a Rate
  1421  type GoogleCloudBillingBillingaccountpricesV1betaUnitInfo struct {
  1422  	// Unit: Shorthand for the unit. Example: GiBy.mo.
  1423  	Unit string `json:"unit,omitempty"`
  1424  	// UnitDescription: Human-readable description of the unit. Example: gibibyte
  1425  	// month.
  1426  	UnitDescription string `json:"unitDescription,omitempty"`
  1427  	// UnitQuantity: Unit quantity for the tier. Example: if the RateTier price is
  1428  	// $1 per 1000000 Bytes, then `unit_quantity` is set to 1000000.
  1429  	UnitQuantity *Decimal `json:"unitQuantity,omitempty"`
  1430  	// ForceSendFields is a list of field names (e.g. "Unit") to unconditionally
  1431  	// include in API requests. By default, fields with empty or default values are
  1432  	// omitted from API requests. See
  1433  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1434  	// details.
  1435  	ForceSendFields []string `json:"-"`
  1436  	// NullFields is a list of field names (e.g. "Unit") to include in API requests
  1437  	// with the JSON null value. By default, fields with empty values are omitted
  1438  	// from API requests. See
  1439  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1440  	NullFields []string `json:"-"`
  1441  }
  1442  
  1443  func (s *GoogleCloudBillingBillingaccountpricesV1betaUnitInfo) MarshalJSON() ([]byte, error) {
  1444  	type NoMethod GoogleCloudBillingBillingaccountpricesV1betaUnitInfo
  1445  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1446  }
  1447  
  1448  // GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService:
  1449  // Encapsulates a Google Cloud service visible to a billing account.
  1450  type GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService struct {
  1451  	// DisplayName: Description of the BillingAccountService. Example: "BigQuery",
  1452  	// "Compute Engine".
  1453  	DisplayName string `json:"displayName,omitempty"`
  1454  	// Name: Resource name for the BillingAccountService. Example:
  1455  	// "billingAccounts/012345-567890-ABCDEF/services/DA34-426B-A397".
  1456  	Name string `json:"name,omitempty"`
  1457  	// ServiceId: Identifier for the service. It is the string after the collection
  1458  	// identifier "services/". Example: "DA34-426B-A397".
  1459  	ServiceId string `json:"serviceId,omitempty"`
  1460  
  1461  	// ServerResponse contains the HTTP response code and headers from the server.
  1462  	googleapi.ServerResponse `json:"-"`
  1463  	// ForceSendFields is a list of field names (e.g. "DisplayName") to
  1464  	// unconditionally include in API requests. By default, fields with empty or
  1465  	// default values are omitted from API requests. See
  1466  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1467  	// details.
  1468  	ForceSendFields []string `json:"-"`
  1469  	// NullFields is a list of field names (e.g. "DisplayName") to include in API
  1470  	// requests with the JSON null value. By default, fields with empty values are
  1471  	// omitted from API requests. See
  1472  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1473  	NullFields []string `json:"-"`
  1474  }
  1475  
  1476  func (s *GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService) MarshalJSON() ([]byte, error) {
  1477  	type NoMethod GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService
  1478  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1479  }
  1480  
  1481  // GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesRespo
  1482  // nse: Response message for ListBillingAccountServices.
  1483  type GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse struct {
  1484  	// BillingAccountServices: The returned billing account services.
  1485  	BillingAccountServices []*GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService `json:"billingAccountServices,omitempty"`
  1486  	// NextPageToken: Token that can be sent as `page_token` in the subsequent
  1487  	// request to retrieve the next page. If this field is empty, there are no
  1488  	// subsequent pages.
  1489  	NextPageToken string `json:"nextPageToken,omitempty"`
  1490  
  1491  	// ServerResponse contains the HTTP response code and headers from the server.
  1492  	googleapi.ServerResponse `json:"-"`
  1493  	// ForceSendFields is a list of field names (e.g. "BillingAccountServices") to
  1494  	// unconditionally include in API requests. By default, fields with empty or
  1495  	// default values are omitted from API requests. See
  1496  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1497  	// details.
  1498  	ForceSendFields []string `json:"-"`
  1499  	// NullFields is a list of field names (e.g. "BillingAccountServices") to
  1500  	// include in API requests with the JSON null value. By default, fields with
  1501  	// empty values are omitted from API requests. See
  1502  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1503  	NullFields []string `json:"-"`
  1504  }
  1505  
  1506  func (s *GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse) MarshalJSON() ([]byte, error) {
  1507  	type NoMethod GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse
  1508  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1509  }
  1510  
  1511  // GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup:
  1512  // Encapsulates a stock keeping (SKU) group visible to a billing account. A SKU
  1513  // group represents a collection of SKUs that are related to each other. For
  1514  // example, the `AI Platform APIs` SKU group includes SKUs from the Cloud
  1515  // Dialogflow API, the Cloud Text-to-Speech API, and additional related APIs.
  1516  type GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup struct {
  1517  	// DisplayName: Description of the BillingAccountSkuGroup. Example: "A2 VMs (1
  1518  	// Year CUD)".
  1519  	DisplayName string `json:"displayName,omitempty"`
  1520  	// Name: Resource name for the BillingAccountSkuGroup. Example:
  1521  	// "billingAccounts/012345-567890-ABCDEF/skuGroups/0e6403d1-4694-44d2-a696-7a78b
  1522  	// 1a69301".
  1523  	Name string `json:"name,omitempty"`
  1524  
  1525  	// ServerResponse contains the HTTP response code and headers from the server.
  1526  	googleapi.ServerResponse `json:"-"`
  1527  	// ForceSendFields is a list of field names (e.g. "DisplayName") to
  1528  	// unconditionally include in API requests. By default, fields with empty or
  1529  	// default values are omitted from API requests. See
  1530  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1531  	// details.
  1532  	ForceSendFields []string `json:"-"`
  1533  	// NullFields is a list of field names (e.g. "DisplayName") to include in API
  1534  	// requests with the JSON null value. By default, fields with empty values are
  1535  	// omitted from API requests. See
  1536  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1537  	NullFields []string `json:"-"`
  1538  }
  1539  
  1540  func (s *GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup) MarshalJSON() ([]byte, error) {
  1541  	type NoMethod GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup
  1542  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1543  }
  1544  
  1545  // GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsRes
  1546  // ponse: Response message for ListBillingAccountSkuGroups.
  1547  type GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse struct {
  1548  	// BillingAccountSkuGroups: The returned publicly listed billing account SKU
  1549  	// groups.
  1550  	BillingAccountSkuGroups []*GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup `json:"billingAccountSkuGroups,omitempty"`
  1551  	// NextPageToken: Token that can be sent as `page_token` in the subsequent
  1552  	// request to retrieve the next page. If this field is empty, there are no
  1553  	// subsequent pages.
  1554  	NextPageToken string `json:"nextPageToken,omitempty"`
  1555  
  1556  	// ServerResponse contains the HTTP response code and headers from the server.
  1557  	googleapi.ServerResponse `json:"-"`
  1558  	// ForceSendFields is a list of field names (e.g. "BillingAccountSkuGroups") to
  1559  	// unconditionally include in API requests. By default, fields with empty or
  1560  	// default values are omitted from API requests. See
  1561  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1562  	// details.
  1563  	ForceSendFields []string `json:"-"`
  1564  	// NullFields is a list of field names (e.g. "BillingAccountSkuGroups") to
  1565  	// include in API requests with the JSON null value. By default, fields with
  1566  	// empty values are omitted from API requests. See
  1567  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1568  	NullFields []string `json:"-"`
  1569  }
  1570  
  1571  func (s *GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse) MarshalJSON() ([]byte, error) {
  1572  	type NoMethod GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse
  1573  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1574  }
  1575  
  1576  // GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku:
  1577  // Encapsulates a SKU that is part of a billing account SKU group.
  1578  type GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku struct {
  1579  	// BillingAccountService: BillingAccountService that the
  1580  	// BillingAccountSkuGroupSku belongs to.
  1581  	BillingAccountService string `json:"billingAccountService,omitempty"`
  1582  	// DisplayName: Description of the BillingAccountSkuGroupSku. Example: "A2
  1583  	// Instance Core running in Hong Kong".
  1584  	DisplayName string `json:"displayName,omitempty"`
  1585  	// GeoTaxonomy: Geographic metadata that applies to the
  1586  	// BillingAccountSkuGroupSku.
  1587  	GeoTaxonomy *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy `json:"geoTaxonomy,omitempty"`
  1588  	// Name: Resource name for the BillingAccountSkuGroupSku. Example:
  1589  	// "billingAccounts/012345-567890-ABCDEF/skuGroups/0e6403d1-4694-44d2-a696-7a78b
  1590  	// 1a69301/skus/AA95-CD31-42FE".
  1591  	Name string `json:"name,omitempty"`
  1592  	// ProductTaxonomy: List of product categories that apply to the
  1593  	// BillingAccountSkuGroupSku.
  1594  	ProductTaxonomy *GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy `json:"productTaxonomy,omitempty"`
  1595  	// SkuId: Unique identifier for the SKU. It is the string after the collection
  1596  	// identifier "skus/" Example: "AA95-CD31-42FE".
  1597  	SkuId string `json:"skuId,omitempty"`
  1598  
  1599  	// ServerResponse contains the HTTP response code and headers from the server.
  1600  	googleapi.ServerResponse `json:"-"`
  1601  	// ForceSendFields is a list of field names (e.g. "BillingAccountService") to
  1602  	// unconditionally include in API requests. By default, fields with empty or
  1603  	// default values are omitted from API requests. See
  1604  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1605  	// details.
  1606  	ForceSendFields []string `json:"-"`
  1607  	// NullFields is a list of field names (e.g. "BillingAccountService") to
  1608  	// include in API requests with the JSON null value. By default, fields with
  1609  	// empty values are omitted from API requests. See
  1610  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1611  	NullFields []string `json:"-"`
  1612  }
  1613  
  1614  func (s *GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku) MarshalJSON() ([]byte, error) {
  1615  	type NoMethod GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku
  1616  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1617  }
  1618  
  1619  // GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy: Encapsulates
  1620  // geographic metadata, such as regions and multi-regions like `us-east4` or
  1621  // `European Union`.
  1622  type GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy struct {
  1623  	// GlobalMetadata: Global geographic metadata with no regions.
  1624  	GlobalMetadata *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyGlobal `json:"globalMetadata,omitempty"`
  1625  	// MultiRegionalMetadata: Multi-regional geographic metadata with 2 or more
  1626  	// regions.
  1627  	MultiRegionalMetadata *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional `json:"multiRegionalMetadata,omitempty"`
  1628  	// RegionalMetadata: Regional geographic metadata with 1 region.
  1629  	RegionalMetadata *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional `json:"regionalMetadata,omitempty"`
  1630  	// Type: Type of geographic taxonomy associated with the billing account SKU
  1631  	// group SKU.
  1632  	//
  1633  	// Possible values:
  1634  	//   "TYPE_UNSPECIFIED" - Default value. Unspecified type.
  1635  	//   "TYPE_GLOBAL" - Global geographic taxonomy with no regions.
  1636  	//   "TYPE_REGIONAL" - Regional geographic taxonomy with 1 region.
  1637  	//   "TYPE_MULTI_REGIONAL" - Multi-regional geographic taxonomy with 2 or more
  1638  	// regions.
  1639  	Type string `json:"type,omitempty"`
  1640  	// ForceSendFields is a list of field names (e.g. "GlobalMetadata") to
  1641  	// unconditionally include in API requests. By default, fields with empty or
  1642  	// default values are omitted from API requests. See
  1643  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1644  	// details.
  1645  	ForceSendFields []string `json:"-"`
  1646  	// NullFields is a list of field names (e.g. "GlobalMetadata") to include in
  1647  	// API requests with the JSON null value. By default, fields with empty values
  1648  	// are omitted from API requests. See
  1649  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1650  	NullFields []string `json:"-"`
  1651  }
  1652  
  1653  func (s *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy) MarshalJSON() ([]byte, error) {
  1654  	type NoMethod GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy
  1655  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1656  }
  1657  
  1658  // GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyGlobal:
  1659  // Encapsulates a global geographic taxonomy.
  1660  type GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyGlobal struct {
  1661  }
  1662  
  1663  // GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional:
  1664  // Encapsulates a multi-regional geographic taxonomy.
  1665  type GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional struct {
  1666  	// Regions: Google Cloud regions associated with the multi-regional geographic
  1667  	// taxonomy.
  1668  	Regions []*GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion `json:"regions,omitempty"`
  1669  	// ForceSendFields is a list of field names (e.g. "Regions") to unconditionally
  1670  	// include in API requests. By default, fields with empty or default values are
  1671  	// omitted from API requests. See
  1672  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1673  	// details.
  1674  	ForceSendFields []string `json:"-"`
  1675  	// NullFields is a list of field names (e.g. "Regions") to include in API
  1676  	// requests with the JSON null value. By default, fields with empty values are
  1677  	// omitted from API requests. See
  1678  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1679  	NullFields []string `json:"-"`
  1680  }
  1681  
  1682  func (s *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional) MarshalJSON() ([]byte, error) {
  1683  	type NoMethod GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional
  1684  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1685  }
  1686  
  1687  // GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion:
  1688  // Encapsulates a Google Cloud region.
  1689  type GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion struct {
  1690  	// Region: Description of a Google Cloud region. Example: "us-west2".
  1691  	Region string `json:"region,omitempty"`
  1692  	// ForceSendFields is a list of field names (e.g. "Region") to unconditionally
  1693  	// include in API requests. By default, fields with empty or default values are
  1694  	// omitted from API requests. See
  1695  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1696  	// details.
  1697  	ForceSendFields []string `json:"-"`
  1698  	// NullFields is a list of field names (e.g. "Region") to include in API
  1699  	// requests with the JSON null value. By default, fields with empty values are
  1700  	// omitted from API requests. See
  1701  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1702  	NullFields []string `json:"-"`
  1703  }
  1704  
  1705  func (s *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion) MarshalJSON() ([]byte, error) {
  1706  	type NoMethod GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion
  1707  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1708  }
  1709  
  1710  // GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional:
  1711  // Encapsulates a regional geographic taxonomy.
  1712  type GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional struct {
  1713  	// Region: Google Cloud region associated with the regional geographic
  1714  	// taxonomy.
  1715  	Region *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion `json:"region,omitempty"`
  1716  	// ForceSendFields is a list of field names (e.g. "Region") to unconditionally
  1717  	// include in API requests. By default, fields with empty or default values are
  1718  	// omitted from API requests. See
  1719  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1720  	// details.
  1721  	ForceSendFields []string `json:"-"`
  1722  	// NullFields is a list of field names (e.g. "Region") to include in API
  1723  	// requests with the JSON null value. By default, fields with empty values are
  1724  	// omitted from API requests. See
  1725  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1726  	NullFields []string `json:"-"`
  1727  }
  1728  
  1729  func (s *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional) MarshalJSON() ([]byte, error) {
  1730  	type NoMethod GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional
  1731  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1732  }
  1733  
  1734  // GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupS
  1735  // kusResponse: Response message for ListBillingAccountSkuGroupSkus.
  1736  type GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse struct {
  1737  	// BillingAccountSkuGroupSkus: The returned billing account SKU group SKUs.
  1738  	BillingAccountSkuGroupSkus []*GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku `json:"billingAccountSkuGroupSkus,omitempty"`
  1739  	// NextPageToken: Token that can be sent as `page_token` in the subsequent
  1740  	// request to retrieve the next page. If this field is empty, there are no
  1741  	// subsequent pages.
  1742  	NextPageToken string `json:"nextPageToken,omitempty"`
  1743  
  1744  	// ServerResponse contains the HTTP response code and headers from the server.
  1745  	googleapi.ServerResponse `json:"-"`
  1746  	// ForceSendFields is a list of field names (e.g. "BillingAccountSkuGroupSkus")
  1747  	// to unconditionally include in API requests. By default, fields with empty or
  1748  	// default values are omitted from API requests. See
  1749  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1750  	// details.
  1751  	ForceSendFields []string `json:"-"`
  1752  	// NullFields is a list of field names (e.g. "BillingAccountSkuGroupSkus") to
  1753  	// include in API requests with the JSON null value. By default, fields with
  1754  	// empty values are omitted from API requests. See
  1755  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1756  	NullFields []string `json:"-"`
  1757  }
  1758  
  1759  func (s *GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse) MarshalJSON() ([]byte, error) {
  1760  	type NoMethod GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse
  1761  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1762  }
  1763  
  1764  // GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy:
  1765  // Encapsulates product categories, such as `Serverless`, `Cloud Run`,
  1766  // `TaskQueue`, and others.
  1767  type GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy struct {
  1768  	// TaxonomyCategories: All product categories that the billing account SKU
  1769  	// group SKU belong to.
  1770  	TaxonomyCategories []*GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory `json:"taxonomyCategories,omitempty"`
  1771  	// ForceSendFields is a list of field names (e.g. "TaxonomyCategories") to
  1772  	// unconditionally include in API requests. By default, fields with empty or
  1773  	// default values are omitted from API requests. See
  1774  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1775  	// details.
  1776  	ForceSendFields []string `json:"-"`
  1777  	// NullFields is a list of field names (e.g. "TaxonomyCategories") to include
  1778  	// in API requests with the JSON null value. By default, fields with empty
  1779  	// values are omitted from API requests. See
  1780  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1781  	NullFields []string `json:"-"`
  1782  }
  1783  
  1784  func (s *GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy) MarshalJSON() ([]byte, error) {
  1785  	type NoMethod GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy
  1786  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1787  }
  1788  
  1789  // GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory:
  1790  // Encapsulates a product category.
  1791  type GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory struct {
  1792  	// Category: Name of the product category.
  1793  	Category string `json:"category,omitempty"`
  1794  	// ForceSendFields is a list of field names (e.g. "Category") to
  1795  	// unconditionally include in API requests. By default, fields with empty or
  1796  	// default values are omitted from API requests. See
  1797  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1798  	// details.
  1799  	ForceSendFields []string `json:"-"`
  1800  	// NullFields is a list of field names (e.g. "Category") to include in API
  1801  	// requests with the JSON null value. By default, fields with empty values are
  1802  	// omitted from API requests. See
  1803  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1804  	NullFields []string `json:"-"`
  1805  }
  1806  
  1807  func (s *GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory) MarshalJSON() ([]byte, error) {
  1808  	type NoMethod GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory
  1809  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1810  }
  1811  
  1812  // GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku: Encapsulates a
  1813  // stock keeping unit (SKU) visible to a billing account. A SKU distinctly
  1814  // identifies a resource that you can purchase. For a list of available SKUs,
  1815  // see SKUs (https://cloud.google.com/skus).
  1816  type GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku struct {
  1817  	// BillingAccountService: BillingAccountService that the BillingAccountSku
  1818  	// belongs to.
  1819  	BillingAccountService string `json:"billingAccountService,omitempty"`
  1820  	// DisplayName: Description of the BillingAccountSku. Example: "A2 Instance
  1821  	// Core running in Hong Kong".
  1822  	DisplayName string `json:"displayName,omitempty"`
  1823  	// GeoTaxonomy: Geographic metadata that applies to the BillingAccountSku.
  1824  	GeoTaxonomy *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy `json:"geoTaxonomy,omitempty"`
  1825  	// Name: Resource name for the BillingAccountSku. Example:
  1826  	// "billingAccounts/012345-567890-ABCDEF/skus/AA95-CD31-42FE".
  1827  	Name string `json:"name,omitempty"`
  1828  	// ProductTaxonomy: List of product categories that apply to the
  1829  	// BillingAccountSku.
  1830  	ProductTaxonomy *GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy `json:"productTaxonomy,omitempty"`
  1831  	// SkuId: Unique identifier for the SKU. It is the string after the collection
  1832  	// identifier "skus/" Example: "AA95-CD31-42FE".
  1833  	SkuId string `json:"skuId,omitempty"`
  1834  
  1835  	// ServerResponse contains the HTTP response code and headers from the server.
  1836  	googleapi.ServerResponse `json:"-"`
  1837  	// ForceSendFields is a list of field names (e.g. "BillingAccountService") to
  1838  	// unconditionally include in API requests. By default, fields with empty or
  1839  	// default values are omitted from API requests. See
  1840  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1841  	// details.
  1842  	ForceSendFields []string `json:"-"`
  1843  	// NullFields is a list of field names (e.g. "BillingAccountService") to
  1844  	// include in API requests with the JSON null value. By default, fields with
  1845  	// empty values are omitted from API requests. See
  1846  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1847  	NullFields []string `json:"-"`
  1848  }
  1849  
  1850  func (s *GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku) MarshalJSON() ([]byte, error) {
  1851  	type NoMethod GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku
  1852  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1853  }
  1854  
  1855  // GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy: Encapsulates
  1856  // geographic metadata, such as regions and multi-regions like `us-east4` or
  1857  // `European Union`.
  1858  type GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy struct {
  1859  	// GlobalMetadata: Global geographic metadata with no regions.
  1860  	GlobalMetadata *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyGlobal `json:"globalMetadata,omitempty"`
  1861  	// MultiRegionalMetadata: Multi-regional geographic metadata with 2 or more
  1862  	// regions.
  1863  	MultiRegionalMetadata *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional `json:"multiRegionalMetadata,omitempty"`
  1864  	// RegionalMetadata: Regional geographic metadata with 1 region.
  1865  	RegionalMetadata *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional `json:"regionalMetadata,omitempty"`
  1866  	// Type: Type of geographic taxonomy associated with the billing account SKU.
  1867  	//
  1868  	// Possible values:
  1869  	//   "TYPE_UNSPECIFIED" - Default value. Unspecified type.
  1870  	//   "TYPE_GLOBAL" - Global geographic taxonomy with no regions.
  1871  	//   "TYPE_REGIONAL" - Regional geographic taxonomy with 1 region.
  1872  	//   "TYPE_MULTI_REGIONAL" - Multi-regional geographic taxonomy with 2 or more
  1873  	// regions.
  1874  	Type string `json:"type,omitempty"`
  1875  	// ForceSendFields is a list of field names (e.g. "GlobalMetadata") to
  1876  	// unconditionally include in API requests. By default, fields with empty or
  1877  	// default values are omitted from API requests. See
  1878  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1879  	// details.
  1880  	ForceSendFields []string `json:"-"`
  1881  	// NullFields is a list of field names (e.g. "GlobalMetadata") to include in
  1882  	// API requests with the JSON null value. By default, fields with empty values
  1883  	// are omitted from API requests. See
  1884  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1885  	NullFields []string `json:"-"`
  1886  }
  1887  
  1888  func (s *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy) MarshalJSON() ([]byte, error) {
  1889  	type NoMethod GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy
  1890  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1891  }
  1892  
  1893  // GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyGlobal: Encapsulates a
  1894  // global geographic taxonomy.
  1895  type GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyGlobal struct {
  1896  }
  1897  
  1898  // GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional:
  1899  // Encapsulates a multi-regional geographic taxonomy.
  1900  type GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional struct {
  1901  	// Regions: Google Cloud regions associated with the multi-regional geographic
  1902  	// taxonomy.
  1903  	Regions []*GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion `json:"regions,omitempty"`
  1904  	// ForceSendFields is a list of field names (e.g. "Regions") to unconditionally
  1905  	// include in API requests. By default, fields with empty or default values are
  1906  	// omitted from API requests. See
  1907  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1908  	// details.
  1909  	ForceSendFields []string `json:"-"`
  1910  	// NullFields is a list of field names (e.g. "Regions") to include in API
  1911  	// requests with the JSON null value. By default, fields with empty values are
  1912  	// omitted from API requests. See
  1913  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1914  	NullFields []string `json:"-"`
  1915  }
  1916  
  1917  func (s *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional) MarshalJSON() ([]byte, error) {
  1918  	type NoMethod GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional
  1919  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1920  }
  1921  
  1922  // GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion: Encapsulates a
  1923  // Google Cloud region.
  1924  type GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion struct {
  1925  	// Region: Description of a Google Cloud region. Example: "us-west2".
  1926  	Region string `json:"region,omitempty"`
  1927  	// ForceSendFields is a list of field names (e.g. "Region") to unconditionally
  1928  	// include in API requests. By default, fields with empty or default values are
  1929  	// omitted from API requests. See
  1930  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1931  	// details.
  1932  	ForceSendFields []string `json:"-"`
  1933  	// NullFields is a list of field names (e.g. "Region") to include in API
  1934  	// requests with the JSON null value. By default, fields with empty values are
  1935  	// omitted from API requests. See
  1936  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1937  	NullFields []string `json:"-"`
  1938  }
  1939  
  1940  func (s *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion) MarshalJSON() ([]byte, error) {
  1941  	type NoMethod GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion
  1942  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1943  }
  1944  
  1945  // GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional: Encapsulates
  1946  // a regional geographic taxonomy.
  1947  type GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional struct {
  1948  	// Region: Google Cloud region associated with the regional geographic
  1949  	// taxonomy.
  1950  	Region *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion `json:"region,omitempty"`
  1951  	// ForceSendFields is a list of field names (e.g. "Region") to unconditionally
  1952  	// include in API requests. By default, fields with empty or default values are
  1953  	// omitted from API requests. See
  1954  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1955  	// details.
  1956  	ForceSendFields []string `json:"-"`
  1957  	// NullFields is a list of field names (e.g. "Region") to include in API
  1958  	// requests with the JSON null value. By default, fields with empty values are
  1959  	// omitted from API requests. See
  1960  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1961  	NullFields []string `json:"-"`
  1962  }
  1963  
  1964  func (s *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional) MarshalJSON() ([]byte, error) {
  1965  	type NoMethod GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional
  1966  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1967  }
  1968  
  1969  // GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse:
  1970  // Response message for ListBillingAccountSkus.
  1971  type GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse struct {
  1972  	// BillingAccountSkus: The returned billing account SKUs.
  1973  	BillingAccountSkus []*GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku `json:"billingAccountSkus,omitempty"`
  1974  	// NextPageToken: Token that can be sent as `page_token` in the subsequent
  1975  	// request to retrieve the next page. If this field is empty, there are no
  1976  	// subsequent pages.
  1977  	NextPageToken string `json:"nextPageToken,omitempty"`
  1978  
  1979  	// ServerResponse contains the HTTP response code and headers from the server.
  1980  	googleapi.ServerResponse `json:"-"`
  1981  	// ForceSendFields is a list of field names (e.g. "BillingAccountSkus") to
  1982  	// unconditionally include in API requests. By default, fields with empty or
  1983  	// default values are omitted from API requests. See
  1984  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1985  	// details.
  1986  	ForceSendFields []string `json:"-"`
  1987  	// NullFields is a list of field names (e.g. "BillingAccountSkus") to include
  1988  	// in API requests with the JSON null value. By default, fields with empty
  1989  	// values are omitted from API requests. See
  1990  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1991  	NullFields []string `json:"-"`
  1992  }
  1993  
  1994  func (s *GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse) MarshalJSON() ([]byte, error) {
  1995  	type NoMethod GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse
  1996  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1997  }
  1998  
  1999  // GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy: Encapsulates
  2000  // product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`, and
  2001  // others.
  2002  type GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy struct {
  2003  	// TaxonomyCategories: All product categories that the billing account SKU
  2004  	// belong to.
  2005  	TaxonomyCategories []*GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory `json:"taxonomyCategories,omitempty"`
  2006  	// ForceSendFields is a list of field names (e.g. "TaxonomyCategories") to
  2007  	// unconditionally include in API requests. By default, fields with empty or
  2008  	// default values are omitted from API requests. See
  2009  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2010  	// details.
  2011  	ForceSendFields []string `json:"-"`
  2012  	// NullFields is a list of field names (e.g. "TaxonomyCategories") to include
  2013  	// in API requests with the JSON null value. By default, fields with empty
  2014  	// values are omitted from API requests. See
  2015  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2016  	NullFields []string `json:"-"`
  2017  }
  2018  
  2019  func (s *GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy) MarshalJSON() ([]byte, error) {
  2020  	type NoMethod GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy
  2021  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2022  }
  2023  
  2024  // GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory: Encapsulates a
  2025  // product category.
  2026  type GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory struct {
  2027  	// Category: Name of the product category.
  2028  	Category string `json:"category,omitempty"`
  2029  	// ForceSendFields is a list of field names (e.g. "Category") to
  2030  	// unconditionally include in API requests. By default, fields with empty or
  2031  	// default values are omitted from API requests. See
  2032  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2033  	// details.
  2034  	ForceSendFields []string `json:"-"`
  2035  	// NullFields is a list of field names (e.g. "Category") to include in API
  2036  	// requests with the JSON null value. By default, fields with empty values are
  2037  	// omitted from API requests. See
  2038  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2039  	NullFields []string `json:"-"`
  2040  }
  2041  
  2042  func (s *GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory) MarshalJSON() ([]byte, error) {
  2043  	type NoMethod GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory
  2044  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2045  }
  2046  
  2047  // GoogleCloudBillingPricesV1betaAggregationInfo: Encapsulates the aggregation
  2048  // information such as aggregation level and interval for a price.
  2049  type GoogleCloudBillingPricesV1betaAggregationInfo struct {
  2050  	// Interval: Interval at which usage is aggregated to compute cost. Example:
  2051  	// "MONTHLY" interval indicates that usage is aggregated every month.
  2052  	//
  2053  	// Possible values:
  2054  	//   "INTERVAL_UNSPECIFIED" - Default unspecified value.
  2055  	//   "INTERVAL_MONTHLY" - Usage is aggregated every month.
  2056  	//   "INTERVAL_DAILY" - Usage is aggregated every day.
  2057  	Interval string `json:"interval,omitempty"`
  2058  	// Level: Level at which usage is aggregated to compute cost. Example:
  2059  	// "ACCOUNT" level indicates that usage is aggregated across all projects in a
  2060  	// single account.
  2061  	//
  2062  	// Possible values:
  2063  	//   "LEVEL_UNSPECIFIED" - Default unspecified value.
  2064  	//   "LEVEL_ACCOUNT" - Usage is aggregated at an account level.
  2065  	//   "LEVEL_PROJECT" - Usage is aggregated at a project level.
  2066  	Level string `json:"level,omitempty"`
  2067  	// ForceSendFields is a list of field names (e.g. "Interval") to
  2068  	// unconditionally include in API requests. By default, fields with empty or
  2069  	// default values are omitted from API requests. See
  2070  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2071  	// details.
  2072  	ForceSendFields []string `json:"-"`
  2073  	// NullFields is a list of field names (e.g. "Interval") to include in API
  2074  	// requests with the JSON null value. By default, fields with empty values are
  2075  	// omitted from API requests. See
  2076  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2077  	NullFields []string `json:"-"`
  2078  }
  2079  
  2080  func (s *GoogleCloudBillingPricesV1betaAggregationInfo) MarshalJSON() ([]byte, error) {
  2081  	type NoMethod GoogleCloudBillingPricesV1betaAggregationInfo
  2082  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2083  }
  2084  
  2085  // GoogleCloudBillingPricesV1betaListPricesResponse: Response message for
  2086  // ListPrices.
  2087  type GoogleCloudBillingPricesV1betaListPricesResponse struct {
  2088  	// NextPageToken: Token that can be sent as `page_token` in the subsequent
  2089  	// request to retrieve the next page. If this field is empty, there are no
  2090  	// subsequent pages.
  2091  	NextPageToken string `json:"nextPageToken,omitempty"`
  2092  	// Prices: The returned publicly listed prices.
  2093  	Prices []*GoogleCloudBillingPricesV1betaPrice `json:"prices,omitempty"`
  2094  
  2095  	// ServerResponse contains the HTTP response code and headers from the server.
  2096  	googleapi.ServerResponse `json:"-"`
  2097  	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
  2098  	// unconditionally include in API requests. By default, fields with empty or
  2099  	// default values are omitted from API requests. See
  2100  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2101  	// details.
  2102  	ForceSendFields []string `json:"-"`
  2103  	// NullFields is a list of field names (e.g. "NextPageToken") to include in API
  2104  	// requests with the JSON null value. By default, fields with empty values are
  2105  	// omitted from API requests. See
  2106  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2107  	NullFields []string `json:"-"`
  2108  }
  2109  
  2110  func (s *GoogleCloudBillingPricesV1betaListPricesResponse) MarshalJSON() ([]byte, error) {
  2111  	type NoMethod GoogleCloudBillingPricesV1betaListPricesResponse
  2112  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2113  }
  2114  
  2115  // GoogleCloudBillingPricesV1betaPrice: Encapsulates the latest price for a
  2116  // SKU.
  2117  type GoogleCloudBillingPricesV1betaPrice struct {
  2118  	// CurrencyCode: ISO-4217 currency code for the price.
  2119  	CurrencyCode string `json:"currencyCode,omitempty"`
  2120  	// Name: Resource name for the latest price.
  2121  	Name string `json:"name,omitempty"`
  2122  	// Rate: Rate price metadata. SKUs with `Rate` price are offered by pricing
  2123  	// tiers. The price can have 1 or more rate pricing tiers.
  2124  	Rate *GoogleCloudBillingPricesV1betaRate `json:"rate,omitempty"`
  2125  	// ValueType: Type of the price. It can have values: ["unspecified", "rate"].
  2126  	ValueType string `json:"valueType,omitempty"`
  2127  
  2128  	// ServerResponse contains the HTTP response code and headers from the server.
  2129  	googleapi.ServerResponse `json:"-"`
  2130  	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
  2131  	// unconditionally include in API requests. By default, fields with empty or
  2132  	// default values are omitted from API requests. See
  2133  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2134  	// details.
  2135  	ForceSendFields []string `json:"-"`
  2136  	// NullFields is a list of field names (e.g. "CurrencyCode") to include in API
  2137  	// requests with the JSON null value. By default, fields with empty values are
  2138  	// omitted from API requests. See
  2139  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2140  	NullFields []string `json:"-"`
  2141  }
  2142  
  2143  func (s *GoogleCloudBillingPricesV1betaPrice) MarshalJSON() ([]byte, error) {
  2144  	type NoMethod GoogleCloudBillingPricesV1betaPrice
  2145  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2146  }
  2147  
  2148  // GoogleCloudBillingPricesV1betaRate: Encapsulates a `Rate` price. SKUs with
  2149  // `Rate` price are offered by pricing tiers. The price have 1 or more rate
  2150  // pricing tiers.
  2151  type GoogleCloudBillingPricesV1betaRate struct {
  2152  	// AggregationInfo: Aggregation info for tiers such as aggregation level and
  2153  	// interval.
  2154  	AggregationInfo *GoogleCloudBillingPricesV1betaAggregationInfo `json:"aggregationInfo,omitempty"`
  2155  	// Tiers: All tiers associated with the `Rate` price.
  2156  	Tiers []*GoogleCloudBillingPricesV1betaRateTier `json:"tiers,omitempty"`
  2157  	// UnitInfo: Unit info such as name and quantity.
  2158  	UnitInfo *GoogleCloudBillingPricesV1betaUnitInfo `json:"unitInfo,omitempty"`
  2159  	// ForceSendFields is a list of field names (e.g. "AggregationInfo") to
  2160  	// unconditionally include in API requests. By default, fields with empty or
  2161  	// default values are omitted from API requests. See
  2162  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2163  	// details.
  2164  	ForceSendFields []string `json:"-"`
  2165  	// NullFields is a list of field names (e.g. "AggregationInfo") to include in
  2166  	// API requests with the JSON null value. By default, fields with empty values
  2167  	// are omitted from API requests. See
  2168  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2169  	NullFields []string `json:"-"`
  2170  }
  2171  
  2172  func (s *GoogleCloudBillingPricesV1betaRate) MarshalJSON() ([]byte, error) {
  2173  	type NoMethod GoogleCloudBillingPricesV1betaRate
  2174  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2175  }
  2176  
  2177  // GoogleCloudBillingPricesV1betaRateTier: Encapsulates a rate price tier.
  2178  type GoogleCloudBillingPricesV1betaRateTier struct {
  2179  	// ListPrice: List price of one tier.
  2180  	ListPrice *Money `json:"listPrice,omitempty"`
  2181  	// StartAmount: Lower bound amount for a tier. Tiers 0-100, 100-200 will be
  2182  	// represented with two tiers with `start_amount` 0 and 100.
  2183  	StartAmount *Decimal `json:"startAmount,omitempty"`
  2184  	// ForceSendFields is a list of field names (e.g. "ListPrice") to
  2185  	// unconditionally include in API requests. By default, fields with empty or
  2186  	// default values are omitted from API requests. See
  2187  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2188  	// details.
  2189  	ForceSendFields []string `json:"-"`
  2190  	// NullFields is a list of field names (e.g. "ListPrice") to include in API
  2191  	// requests with the JSON null value. By default, fields with empty values are
  2192  	// omitted from API requests. See
  2193  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2194  	NullFields []string `json:"-"`
  2195  }
  2196  
  2197  func (s *GoogleCloudBillingPricesV1betaRateTier) MarshalJSON() ([]byte, error) {
  2198  	type NoMethod GoogleCloudBillingPricesV1betaRateTier
  2199  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2200  }
  2201  
  2202  // GoogleCloudBillingPricesV1betaUnitInfo: Encapsulates the unit information
  2203  // for a Rate
  2204  type GoogleCloudBillingPricesV1betaUnitInfo struct {
  2205  	// Unit: Shorthand for the unit. Example: GiBy.mo.
  2206  	Unit string `json:"unit,omitempty"`
  2207  	// UnitDescription: Human-readable description of the unit. Example: gibibyte
  2208  	// month.
  2209  	UnitDescription string `json:"unitDescription,omitempty"`
  2210  	// UnitQuantity: Unit quantity for the tier. Example: if the RateTier price is
  2211  	// $1 per 1000000 Bytes, then `unit_quantity` is set to 1000000.
  2212  	UnitQuantity *Decimal `json:"unitQuantity,omitempty"`
  2213  	// ForceSendFields is a list of field names (e.g. "Unit") to unconditionally
  2214  	// include in API requests. By default, fields with empty or default values are
  2215  	// omitted from API requests. See
  2216  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2217  	// details.
  2218  	ForceSendFields []string `json:"-"`
  2219  	// NullFields is a list of field names (e.g. "Unit") to include in API requests
  2220  	// with the JSON null value. By default, fields with empty values are omitted
  2221  	// from API requests. See
  2222  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2223  	NullFields []string `json:"-"`
  2224  }
  2225  
  2226  func (s *GoogleCloudBillingPricesV1betaUnitInfo) MarshalJSON() ([]byte, error) {
  2227  	type NoMethod GoogleCloudBillingPricesV1betaUnitInfo
  2228  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2229  }
  2230  
  2231  // GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse: Response message for
  2232  // ListSkuGroups.
  2233  type GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse struct {
  2234  	// NextPageToken: Token that can be sent as `page_token` in the subsequent
  2235  	// request to retrieve the next page. If this field is empty, there are no
  2236  	// subsequent pages.
  2237  	NextPageToken string `json:"nextPageToken,omitempty"`
  2238  	// SkuGroups: The returned publicly listed SKU groups.
  2239  	SkuGroups []*GoogleCloudBillingSkugroupsV1betaSkuGroup `json:"skuGroups,omitempty"`
  2240  
  2241  	// ServerResponse contains the HTTP response code and headers from the server.
  2242  	googleapi.ServerResponse `json:"-"`
  2243  	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
  2244  	// unconditionally include in API requests. By default, fields with empty or
  2245  	// default values are omitted from API requests. See
  2246  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2247  	// details.
  2248  	ForceSendFields []string `json:"-"`
  2249  	// NullFields is a list of field names (e.g. "NextPageToken") to include in API
  2250  	// requests with the JSON null value. By default, fields with empty values are
  2251  	// omitted from API requests. See
  2252  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2253  	NullFields []string `json:"-"`
  2254  }
  2255  
  2256  func (s *GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse) MarshalJSON() ([]byte, error) {
  2257  	type NoMethod GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse
  2258  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2259  }
  2260  
  2261  // GoogleCloudBillingSkugroupsV1betaSkuGroup: Encapsulates a publicly listed
  2262  // stock keeping unit (SKU) group. A SKU group represents a collection of SKUs
  2263  // that are related to each other. For example, the `AI Platform APIs` SKU
  2264  // group includes SKUs from the Cloud Dialogflow API, the Cloud Text-to-Speech
  2265  // API, and additional related APIs.
  2266  type GoogleCloudBillingSkugroupsV1betaSkuGroup struct {
  2267  	// DisplayName: Description of the SKU group. Example: "A2 VMs (1 Year CUD)".
  2268  	DisplayName string `json:"displayName,omitempty"`
  2269  	// Name: Resource name for the SKU group. Example:
  2270  	// "skuGroups/0e6403d1-4694-44d2-a696-7a78b1a69301".
  2271  	Name string `json:"name,omitempty"`
  2272  
  2273  	// ServerResponse contains the HTTP response code and headers from the server.
  2274  	googleapi.ServerResponse `json:"-"`
  2275  	// ForceSendFields is a list of field names (e.g. "DisplayName") to
  2276  	// unconditionally include in API requests. By default, fields with empty or
  2277  	// default values are omitted from API requests. See
  2278  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2279  	// details.
  2280  	ForceSendFields []string `json:"-"`
  2281  	// NullFields is a list of field names (e.g. "DisplayName") to include in API
  2282  	// requests with the JSON null value. By default, fields with empty values are
  2283  	// omitted from API requests. See
  2284  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2285  	NullFields []string `json:"-"`
  2286  }
  2287  
  2288  func (s *GoogleCloudBillingSkugroupsV1betaSkuGroup) MarshalJSON() ([]byte, error) {
  2289  	type NoMethod GoogleCloudBillingSkugroupsV1betaSkuGroup
  2290  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2291  }
  2292  
  2293  // GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy: Encapsulates geographic
  2294  // metadata, such as regions and multi-regions like `us-east4` or `European
  2295  // Union`.
  2296  type GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy struct {
  2297  	// GlobalMetadata: Global geographic metadata with no regions.
  2298  	GlobalMetadata *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyGlobal `json:"globalMetadata,omitempty"`
  2299  	// MultiRegionalMetadata: Multi-regional geographic metadata with 2 or more
  2300  	// regions.
  2301  	MultiRegionalMetadata *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional `json:"multiRegionalMetadata,omitempty"`
  2302  	// RegionalMetadata: Regional geographic metadata with 1 region.
  2303  	RegionalMetadata *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional `json:"regionalMetadata,omitempty"`
  2304  	// Type: Type of geographic taxonomy associated with the SKU group SKU.
  2305  	//
  2306  	// Possible values:
  2307  	//   "TYPE_UNSPECIFIED" - Default value. Unspecified type.
  2308  	//   "TYPE_GLOBAL" - Global geographic taxonomy with no regions.
  2309  	//   "TYPE_REGIONAL" - Regional geographic taxonomy with 1 region.
  2310  	//   "TYPE_MULTI_REGIONAL" - Multi-regional geographic taxonomy with 2 or more
  2311  	// regions.
  2312  	Type string `json:"type,omitempty"`
  2313  	// ForceSendFields is a list of field names (e.g. "GlobalMetadata") to
  2314  	// unconditionally include in API requests. By default, fields with empty or
  2315  	// default values are omitted from API requests. See
  2316  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2317  	// details.
  2318  	ForceSendFields []string `json:"-"`
  2319  	// NullFields is a list of field names (e.g. "GlobalMetadata") to include in
  2320  	// API requests with the JSON null value. By default, fields with empty values
  2321  	// are omitted from API requests. See
  2322  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2323  	NullFields []string `json:"-"`
  2324  }
  2325  
  2326  func (s *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy) MarshalJSON() ([]byte, error) {
  2327  	type NoMethod GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy
  2328  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2329  }
  2330  
  2331  // GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyGlobal: Encapsulates a global
  2332  // geographic taxonomy.
  2333  type GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyGlobal struct {
  2334  }
  2335  
  2336  // GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional: Encapsulates a
  2337  // multi-regional geographic taxonomy.
  2338  type GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional struct {
  2339  	// Regions: Google Cloud regions associated with the multi-regional geographic
  2340  	// taxonomy.
  2341  	Regions []*GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion `json:"regions,omitempty"`
  2342  	// ForceSendFields is a list of field names (e.g. "Regions") to unconditionally
  2343  	// include in API requests. By default, fields with empty or default values are
  2344  	// omitted from API requests. See
  2345  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2346  	// details.
  2347  	ForceSendFields []string `json:"-"`
  2348  	// NullFields is a list of field names (e.g. "Regions") to include in API
  2349  	// requests with the JSON null value. By default, fields with empty values are
  2350  	// omitted from API requests. See
  2351  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2352  	NullFields []string `json:"-"`
  2353  }
  2354  
  2355  func (s *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional) MarshalJSON() ([]byte, error) {
  2356  	type NoMethod GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional
  2357  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2358  }
  2359  
  2360  // GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion: Encapsulates a Google
  2361  // Cloud region.
  2362  type GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion struct {
  2363  	// Region: Description of a Google Cloud region. Example: "us-west2".
  2364  	Region string `json:"region,omitempty"`
  2365  	// ForceSendFields is a list of field names (e.g. "Region") to unconditionally
  2366  	// include in API requests. By default, fields with empty or default values are
  2367  	// omitted from API requests. See
  2368  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2369  	// details.
  2370  	ForceSendFields []string `json:"-"`
  2371  	// NullFields is a list of field names (e.g. "Region") to include in API
  2372  	// requests with the JSON null value. By default, fields with empty values are
  2373  	// omitted from API requests. See
  2374  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2375  	NullFields []string `json:"-"`
  2376  }
  2377  
  2378  func (s *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion) MarshalJSON() ([]byte, error) {
  2379  	type NoMethod GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion
  2380  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2381  }
  2382  
  2383  // GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional: Encapsulates a
  2384  // regional geographic taxonomy.
  2385  type GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional struct {
  2386  	// Region: Google Cloud region associated with the regional geographic
  2387  	// taxonomy.
  2388  	Region *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion `json:"region,omitempty"`
  2389  	// ForceSendFields is a list of field names (e.g. "Region") to unconditionally
  2390  	// include in API requests. By default, fields with empty or default values are
  2391  	// omitted from API requests. See
  2392  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2393  	// details.
  2394  	ForceSendFields []string `json:"-"`
  2395  	// NullFields is a list of field names (e.g. "Region") to include in API
  2396  	// requests with the JSON null value. By default, fields with empty values are
  2397  	// omitted from API requests. See
  2398  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2399  	NullFields []string `json:"-"`
  2400  }
  2401  
  2402  func (s *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional) MarshalJSON() ([]byte, error) {
  2403  	type NoMethod GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional
  2404  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2405  }
  2406  
  2407  // GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse: Response
  2408  // message for ListSkuGroupSkus.
  2409  type GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse struct {
  2410  	// NextPageToken: Token that can be sent as `page_token` in the subsequent
  2411  	// request to retrieve the next page. If this field is empty, there are no
  2412  	// subsequent pages.
  2413  	NextPageToken string `json:"nextPageToken,omitempty"`
  2414  	// SkuGroupSkus: The returned SKU group SKUs.
  2415  	SkuGroupSkus []*GoogleCloudBillingSkugroupskusV1betaSkuGroupSku `json:"skuGroupSkus,omitempty"`
  2416  
  2417  	// ServerResponse contains the HTTP response code and headers from the server.
  2418  	googleapi.ServerResponse `json:"-"`
  2419  	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
  2420  	// unconditionally include in API requests. By default, fields with empty or
  2421  	// default values are omitted from API requests. See
  2422  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2423  	// details.
  2424  	ForceSendFields []string `json:"-"`
  2425  	// NullFields is a list of field names (e.g. "NextPageToken") to include in API
  2426  	// requests with the JSON null value. By default, fields with empty values are
  2427  	// omitted from API requests. See
  2428  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2429  	NullFields []string `json:"-"`
  2430  }
  2431  
  2432  func (s *GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse) MarshalJSON() ([]byte, error) {
  2433  	type NoMethod GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse
  2434  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2435  }
  2436  
  2437  // GoogleCloudBillingSkugroupskusV1betaProductTaxonomy: Encapsulates product
  2438  // categories, such as `Serverless`, `Cloud Run`, `TaskQueue`, and others.
  2439  type GoogleCloudBillingSkugroupskusV1betaProductTaxonomy struct {
  2440  	// TaxonomyCategories: All product categories that the SKU group SKU belongs
  2441  	// to.
  2442  	TaxonomyCategories []*GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory `json:"taxonomyCategories,omitempty"`
  2443  	// ForceSendFields is a list of field names (e.g. "TaxonomyCategories") to
  2444  	// unconditionally include in API requests. By default, fields with empty or
  2445  	// default values are omitted from API requests. See
  2446  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2447  	// details.
  2448  	ForceSendFields []string `json:"-"`
  2449  	// NullFields is a list of field names (e.g. "TaxonomyCategories") to include
  2450  	// in API requests with the JSON null value. By default, fields with empty
  2451  	// values are omitted from API requests. See
  2452  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2453  	NullFields []string `json:"-"`
  2454  }
  2455  
  2456  func (s *GoogleCloudBillingSkugroupskusV1betaProductTaxonomy) MarshalJSON() ([]byte, error) {
  2457  	type NoMethod GoogleCloudBillingSkugroupskusV1betaProductTaxonomy
  2458  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2459  }
  2460  
  2461  // GoogleCloudBillingSkugroupskusV1betaSkuGroupSku: Encapsulates a publicly
  2462  // listed stock keeping unit (SKU) that is part of a publicly listed SKU group.
  2463  // A SKU group represents a collection of SKUs that are related to each other.
  2464  // For example, the `AI Platform APIs` SKU group includes SKUs from the Cloud
  2465  // Dialogflow API, the Cloud Text-to-Speech API, and additional related APIs.
  2466  type GoogleCloudBillingSkugroupskusV1betaSkuGroupSku struct {
  2467  	// DisplayName: Description of the SkuGroupSku. Example: "A2 Instance Core
  2468  	// running in Hong Kong".
  2469  	DisplayName string `json:"displayName,omitempty"`
  2470  	// GeoTaxonomy: Geographic metadata that applies to the SkuGroupSku.
  2471  	GeoTaxonomy *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy `json:"geoTaxonomy,omitempty"`
  2472  	// Name: Resource name for the SkuGroupSku. Example:
  2473  	// "skuGroups/0e6403d1-4694-44d2-a696-7a78b1a69301/skus/AA95-CD31-42FE".
  2474  	Name string `json:"name,omitempty"`
  2475  	// ProductTaxonomy: List of product categories that apply to the SkuGroupSku.
  2476  	ProductTaxonomy *GoogleCloudBillingSkugroupskusV1betaProductTaxonomy `json:"productTaxonomy,omitempty"`
  2477  	// Service: Service that the SkuGroupSku belongs to.
  2478  	Service string `json:"service,omitempty"`
  2479  	// SkuId: Unique identifier for the SKU. It is the string after the collection
  2480  	// identifier "skus/" Example: "AA95-CD31-42FE".
  2481  	SkuId string `json:"skuId,omitempty"`
  2482  
  2483  	// ServerResponse contains the HTTP response code and headers from the server.
  2484  	googleapi.ServerResponse `json:"-"`
  2485  	// ForceSendFields is a list of field names (e.g. "DisplayName") to
  2486  	// unconditionally include in API requests. By default, fields with empty or
  2487  	// default values are omitted from API requests. See
  2488  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2489  	// details.
  2490  	ForceSendFields []string `json:"-"`
  2491  	// NullFields is a list of field names (e.g. "DisplayName") to include in API
  2492  	// requests with the JSON null value. By default, fields with empty values are
  2493  	// omitted from API requests. See
  2494  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2495  	NullFields []string `json:"-"`
  2496  }
  2497  
  2498  func (s *GoogleCloudBillingSkugroupskusV1betaSkuGroupSku) MarshalJSON() ([]byte, error) {
  2499  	type NoMethod GoogleCloudBillingSkugroupskusV1betaSkuGroupSku
  2500  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2501  }
  2502  
  2503  // GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory: Encapsulates a product
  2504  // category.
  2505  type GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory struct {
  2506  	// Category: Name of the product category.
  2507  	Category string `json:"category,omitempty"`
  2508  	// ForceSendFields is a list of field names (e.g. "Category") to
  2509  	// unconditionally include in API requests. By default, fields with empty or
  2510  	// default values are omitted from API requests. See
  2511  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2512  	// details.
  2513  	ForceSendFields []string `json:"-"`
  2514  	// NullFields is a list of field names (e.g. "Category") to include in API
  2515  	// requests with the JSON null value. By default, fields with empty values are
  2516  	// omitted from API requests. See
  2517  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2518  	NullFields []string `json:"-"`
  2519  }
  2520  
  2521  func (s *GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory) MarshalJSON() ([]byte, error) {
  2522  	type NoMethod GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory
  2523  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2524  }
  2525  
  2526  // GuestAccelerator: Specification of a set of guest accelerators attached to a
  2527  // machine.
  2528  type GuestAccelerator struct {
  2529  	// AcceleratorCount: The number of the guest accelerator cards exposed to each
  2530  	// instance.
  2531  	AcceleratorCount int64 `json:"acceleratorCount,omitempty,string"`
  2532  	// AcceleratorType: The type of the guest accelerator cards. For example:
  2533  	// "nvidia-tesla-t4".
  2534  	AcceleratorType string `json:"acceleratorType,omitempty"`
  2535  	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
  2536  	// unconditionally include in API requests. By default, fields with empty or
  2537  	// default values are omitted from API requests. See
  2538  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2539  	// details.
  2540  	ForceSendFields []string `json:"-"`
  2541  	// NullFields is a list of field names (e.g. "AcceleratorCount") to include in
  2542  	// API requests with the JSON null value. By default, fields with empty values
  2543  	// are omitted from API requests. See
  2544  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2545  	NullFields []string `json:"-"`
  2546  }
  2547  
  2548  func (s *GuestAccelerator) MarshalJSON() ([]byte, error) {
  2549  	type NoMethod GuestAccelerator
  2550  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2551  }
  2552  
  2553  // InterRegionEgress: Data transfer between two regions.
  2554  type InterRegionEgress struct {
  2555  	// DestinationRegion: Which region
  2556  	// (https://cloud.google.com/compute/docs/regions-zones) the data is
  2557  	// transferred to.
  2558  	DestinationRegion string `json:"destinationRegion,omitempty"`
  2559  	// EgressRate: VM to VM data transfer usage. The expected units such are
  2560  	// GiBy/s, By/s, and so on.
  2561  	EgressRate *Usage `json:"egressRate,omitempty"`
  2562  	// SourceRegion: Which region
  2563  	// (https://cloud.google.com/compute/docs/regions-zones) the data is
  2564  	// transferred from.
  2565  	SourceRegion string `json:"sourceRegion,omitempty"`
  2566  	// ForceSendFields is a list of field names (e.g. "DestinationRegion") to
  2567  	// unconditionally include in API requests. By default, fields with empty or
  2568  	// default values are omitted from API requests. See
  2569  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2570  	// details.
  2571  	ForceSendFields []string `json:"-"`
  2572  	// NullFields is a list of field names (e.g. "DestinationRegion") to include in
  2573  	// API requests with the JSON null value. By default, fields with empty values
  2574  	// are omitted from API requests. See
  2575  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2576  	NullFields []string `json:"-"`
  2577  }
  2578  
  2579  func (s *InterRegionEgress) MarshalJSON() ([]byte, error) {
  2580  	type NoMethod InterRegionEgress
  2581  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2582  }
  2583  
  2584  // IntraRegionEgress: Data transfer within the same region. When the source
  2585  // region and destination region are in the same zone, using internal IP
  2586  // addresses, there isn't any charge for data transfer.
  2587  type IntraRegionEgress struct {
  2588  	// EgressRate: VM to VM data transfer usage. The expected are GiBy/s, By/s, and
  2589  	// so on.
  2590  	EgressRate *Usage `json:"egressRate,omitempty"`
  2591  	// ForceSendFields is a list of field names (e.g. "EgressRate") to
  2592  	// unconditionally include in API requests. By default, fields with empty or
  2593  	// default values are omitted from API requests. See
  2594  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2595  	// details.
  2596  	ForceSendFields []string `json:"-"`
  2597  	// NullFields is a list of field names (e.g. "EgressRate") to include in API
  2598  	// requests with the JSON null value. By default, fields with empty values are
  2599  	// omitted from API requests. See
  2600  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2601  	NullFields []string `json:"-"`
  2602  }
  2603  
  2604  func (s *IntraRegionEgress) MarshalJSON() ([]byte, error) {
  2605  	type NoMethod IntraRegionEgress
  2606  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2607  }
  2608  
  2609  // MachineType: Specification of machine series, memory, and number of vCPUs.
  2610  type MachineType struct {
  2611  	CustomMachineType     *CustomMachineType     `json:"customMachineType,omitempty"`
  2612  	PredefinedMachineType *PredefinedMachineType `json:"predefinedMachineType,omitempty"`
  2613  	// ForceSendFields is a list of field names (e.g. "CustomMachineType") to
  2614  	// unconditionally include in API requests. By default, fields with empty or
  2615  	// default values are omitted from API requests. See
  2616  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2617  	// details.
  2618  	ForceSendFields []string `json:"-"`
  2619  	// NullFields is a list of field names (e.g. "CustomMachineType") to include in
  2620  	// API requests with the JSON null value. By default, fields with empty values
  2621  	// are omitted from API requests. See
  2622  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2623  	NullFields []string `json:"-"`
  2624  }
  2625  
  2626  func (s *MachineType) MarshalJSON() ([]byte, error) {
  2627  	type NoMethod MachineType
  2628  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2629  }
  2630  
  2631  // Money: Represents an amount of money with its currency type.
  2632  type Money struct {
  2633  	// CurrencyCode: The three-letter currency code defined in ISO 4217.
  2634  	CurrencyCode string `json:"currencyCode,omitempty"`
  2635  	// Nanos: Number of nano (10^-9) units of the amount. The value must be between
  2636  	// -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos`
  2637  	// must be positive or zero. If `units` is zero, `nanos` can be positive, zero,
  2638  	// or negative. If `units` is negative, `nanos` must be negative or zero. For
  2639  	// example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
  2640  	Nanos int64 `json:"nanos,omitempty"`
  2641  	// Units: The whole units of the amount. For example if `currencyCode` is
  2642  	// "USD", then 1 unit is one US dollar.
  2643  	Units int64 `json:"units,omitempty,string"`
  2644  	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
  2645  	// unconditionally include in API requests. By default, fields with empty or
  2646  	// default values are omitted from API requests. See
  2647  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2648  	// details.
  2649  	ForceSendFields []string `json:"-"`
  2650  	// NullFields is a list of field names (e.g. "CurrencyCode") to include in API
  2651  	// requests with the JSON null value. By default, fields with empty values are
  2652  	// omitted from API requests. See
  2653  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2654  	NullFields []string `json:"-"`
  2655  }
  2656  
  2657  func (s *Money) MarshalJSON() ([]byte, error) {
  2658  	type NoMethod Money
  2659  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2660  }
  2661  
  2662  // MultiRegional: Area contains multiple locations.
  2663  type MultiRegional struct {
  2664  	// Name: The location name
  2665  	// (https://cloud.google.com/storage/docs/locations#available-locations) where
  2666  	// the data is stored. For example: "us" for multi-region.
  2667  	Name string `json:"name,omitempty"`
  2668  	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
  2669  	// include in API requests. By default, fields with empty or default values are
  2670  	// omitted from API requests. See
  2671  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2672  	// details.
  2673  	ForceSendFields []string `json:"-"`
  2674  	// NullFields is a list of field names (e.g. "Name") to include in API requests
  2675  	// with the JSON null value. By default, fields with empty values are omitted
  2676  	// from API requests. See
  2677  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2678  	NullFields []string `json:"-"`
  2679  }
  2680  
  2681  func (s *MultiRegional) MarshalJSON() ([]byte, error) {
  2682  	type NoMethod MultiRegional
  2683  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2684  }
  2685  
  2686  // PersistentDisk: Specification of a persistent disk attached to a VM.
  2687  type PersistentDisk struct {
  2688  	// DiskSize: Specifies the size of disk. Must be at least 10 GB.
  2689  	DiskSize *Usage `json:"diskSize,omitempty"`
  2690  	// DiskType: The disk type
  2691  	// (https://cloud.google.com/compute/docs/disks#disk-types). For example:
  2692  	// "pd-standard".
  2693  	DiskType string `json:"diskType,omitempty"`
  2694  	// ProvisionedIops: Indicates how many IOPS to provision for the disk for
  2695  	// extreme persistent disks. This sets the number of I/O operations per second
  2696  	// that the disk can handle. Values must be between 10,000 and 120,000.
  2697  	ProvisionedIops *Usage `json:"provisionedIops,omitempty"`
  2698  	// Scope: The geographic scope of the disk. Defaults to `SCOPE_ZONAL` if not
  2699  	// specified.
  2700  	//
  2701  	// Possible values:
  2702  	//   "SCOPE_UNSPECIFIED" - Unspecified.
  2703  	//   "SCOPE_ZONAL" - The disk exists in a single zone.
  2704  	//   "SCOPE_REGIONAL" - The disk is replicated in a secondary zone within the
  2705  	// same region.
  2706  	Scope string `json:"scope,omitempty"`
  2707  	// ForceSendFields is a list of field names (e.g. "DiskSize") to
  2708  	// unconditionally include in API requests. By default, fields with empty or
  2709  	// default values are omitted from API requests. See
  2710  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2711  	// details.
  2712  	ForceSendFields []string `json:"-"`
  2713  	// NullFields is a list of field names (e.g. "DiskSize") to include in API
  2714  	// requests with the JSON null value. By default, fields with empty values are
  2715  	// omitted from API requests. See
  2716  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2717  	NullFields []string `json:"-"`
  2718  }
  2719  
  2720  func (s *PersistentDisk) MarshalJSON() ([]byte, error) {
  2721  	type NoMethod PersistentDisk
  2722  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2723  }
  2724  
  2725  // PredefinedMachineType: Specification of a predefined machine type.
  2726  type PredefinedMachineType struct {
  2727  	// MachineType: The machine type
  2728  	// (https://cloud.google.com/compute/docs/machine-types). For example:
  2729  	// "n1-standard1".
  2730  	MachineType string `json:"machineType,omitempty"`
  2731  	// ForceSendFields is a list of field names (e.g. "MachineType") to
  2732  	// unconditionally include in API requests. By default, fields with empty or
  2733  	// default values are omitted from API requests. See
  2734  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2735  	// details.
  2736  	ForceSendFields []string `json:"-"`
  2737  	// NullFields is a list of field names (e.g. "MachineType") to include in API
  2738  	// requests with the JSON null value. By default, fields with empty values are
  2739  	// omitted from API requests. See
  2740  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2741  	NullFields []string `json:"-"`
  2742  }
  2743  
  2744  func (s *PredefinedMachineType) MarshalJSON() ([]byte, error) {
  2745  	type NoMethod PredefinedMachineType
  2746  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2747  }
  2748  
  2749  // PremiumTierEgressWorkload: Specify a Premium Tier Internet Data Transfer
  2750  // networking workload.
  2751  type PremiumTierEgressWorkload struct {
  2752  	// DestinationContinent: Where the data is sent to.
  2753  	//
  2754  	// Possible values:
  2755  	//   "DESTINATION_CONTINENT_UNSPECIFIED" - Not specified.
  2756  	//   "DESTINATION_CONTINENT_ASIA_PACIFIC" - Asia Pacific.
  2757  	//   "DESTINATION_CONTINENT_AFRICA" - Africa.
  2758  	//   "DESTINATION_CONTINENT_NORTH_AMERICA" - North America.
  2759  	//   "DESTINATION_CONTINENT_AUTRALIA" - Australia.
  2760  	//   "DESTINATION_CONTINENT_CENTRAL_AMERICA" - Central America.
  2761  	//   "DESTINATION_CONTINENT_CHINA" - China.
  2762  	//   "DESTINATION_CONTINENT_EASTERN_EUROPE" - Eastern Europe.
  2763  	//   "DESTINATION_CONTINENT_WESTERN_EUROPE" - Western Europe.
  2764  	//   "DESTINATION_CONTINENT_EMEA" - Other regions in Europe, Middle East and
  2765  	// Africa.
  2766  	//   "DESTINATION_CONTINENT_INDIA" - India
  2767  	//   "DESTINATION_CONTINENT_MIDDLE_EAST" - Middle East.
  2768  	//   "DESTINATION_CONTINENT_SOUTH_AMERICA" - South America.
  2769  	DestinationContinent string `json:"destinationContinent,omitempty"`
  2770  	// EgressRate: Premium Tier Data Transfer usage. The expected units are GiBy/s,
  2771  	// By/s, and so on, based on The Unified Code for Units of Measure
  2772  	// (https://ucum.org/ucum.html) standard.
  2773  	EgressRate *Usage `json:"egressRate,omitempty"`
  2774  	// SourceRegion: Which region
  2775  	// (https://cloud.google.com/compute/docs/regions-zones) the data comes from.
  2776  	SourceRegion string `json:"sourceRegion,omitempty"`
  2777  	// ForceSendFields is a list of field names (e.g. "DestinationContinent") to
  2778  	// unconditionally include in API requests. By default, fields with empty or
  2779  	// default values are omitted from API requests. See
  2780  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2781  	// details.
  2782  	ForceSendFields []string `json:"-"`
  2783  	// NullFields is a list of field names (e.g. "DestinationContinent") to include
  2784  	// in API requests with the JSON null value. By default, fields with empty
  2785  	// values are omitted from API requests. See
  2786  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2787  	NullFields []string `json:"-"`
  2788  }
  2789  
  2790  func (s *PremiumTierEgressWorkload) MarshalJSON() ([]byte, error) {
  2791  	type NoMethod PremiumTierEgressWorkload
  2792  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2793  }
  2794  
  2795  // Price: The price of a SKU at a point int time.
  2796  type Price struct {
  2797  	// EffectiveTime: The timestamp within the estimation time frame when the price
  2798  	// was set.
  2799  	EffectiveTime *EstimationTimePoint `json:"effectiveTime,omitempty"`
  2800  	// PriceType: The type of price. Possible values: "RATE"
  2801  	PriceType string `json:"priceType,omitempty"`
  2802  	// Rate: A set of tiered rates.
  2803  	Rate *Rate `json:"rate,omitempty"`
  2804  	// ForceSendFields is a list of field names (e.g. "EffectiveTime") to
  2805  	// unconditionally include in API requests. By default, fields with empty or
  2806  	// default values are omitted from API requests. See
  2807  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2808  	// details.
  2809  	ForceSendFields []string `json:"-"`
  2810  	// NullFields is a list of field names (e.g. "EffectiveTime") to include in API
  2811  	// requests with the JSON null value. By default, fields with empty values are
  2812  	// omitted from API requests. See
  2813  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2814  	NullFields []string `json:"-"`
  2815  }
  2816  
  2817  func (s *Price) MarshalJSON() ([]byte, error) {
  2818  	type NoMethod Price
  2819  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2820  }
  2821  
  2822  // Rate: A SKU price consisting of tiered rates.
  2823  type Rate struct {
  2824  	// Tiers: The service tiers.
  2825  	Tiers []*RateTier `json:"tiers,omitempty"`
  2826  	// Unit: The SKU's pricing unit. For example, if the tier price is $1 per
  2827  	// 1000000 Bytes, then this field will show 'By'. The `start_amount` field in
  2828  	// each tier will be in this unit.
  2829  	Unit string `json:"unit,omitempty"`
  2830  	// UnitCount: The SKU's count for the pricing unit. For example, if the tier
  2831  	// price is $1 per 1000000 Bytes, then this column will show 1000000.
  2832  	UnitCount float64 `json:"unitCount,omitempty"`
  2833  	// ForceSendFields is a list of field names (e.g. "Tiers") to unconditionally
  2834  	// include in API requests. By default, fields with empty or default values are
  2835  	// omitted from API requests. See
  2836  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2837  	// details.
  2838  	ForceSendFields []string `json:"-"`
  2839  	// NullFields is a list of field names (e.g. "Tiers") to include in API
  2840  	// requests with the JSON null value. By default, fields with empty values are
  2841  	// omitted from API requests. See
  2842  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2843  	NullFields []string `json:"-"`
  2844  }
  2845  
  2846  func (s *Rate) MarshalJSON() ([]byte, error) {
  2847  	type NoMethod Rate
  2848  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2849  }
  2850  
  2851  func (s *Rate) UnmarshalJSON(data []byte) error {
  2852  	type NoMethod Rate
  2853  	var s1 struct {
  2854  		UnitCount gensupport.JSONFloat64 `json:"unitCount"`
  2855  		*NoMethod
  2856  	}
  2857  	s1.NoMethod = (*NoMethod)(s)
  2858  	if err := json.Unmarshal(data, &s1); err != nil {
  2859  		return err
  2860  	}
  2861  	s.UnitCount = float64(s1.UnitCount)
  2862  	return nil
  2863  }
  2864  
  2865  // RateTier: Pricing details for a service tier.
  2866  type RateTier struct {
  2867  	// Price: The price for this tier.
  2868  	Price *Money `json:"price,omitempty"`
  2869  	// StartAmount: The magnitude of usage in which the tier interval begins.
  2870  	// Example: "From 100 GiBi the price is $1 per byte" implies `start_amount` =
  2871  	// 100
  2872  	StartAmount float64 `json:"startAmount,omitempty"`
  2873  	// ForceSendFields is a list of field names (e.g. "Price") to unconditionally
  2874  	// include in API requests. By default, fields with empty or default values are
  2875  	// omitted from API requests. See
  2876  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2877  	// details.
  2878  	ForceSendFields []string `json:"-"`
  2879  	// NullFields is a list of field names (e.g. "Price") to include in API
  2880  	// requests with the JSON null value. By default, fields with empty values are
  2881  	// omitted from API requests. See
  2882  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2883  	NullFields []string `json:"-"`
  2884  }
  2885  
  2886  func (s *RateTier) MarshalJSON() ([]byte, error) {
  2887  	type NoMethod RateTier
  2888  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2889  }
  2890  
  2891  func (s *RateTier) UnmarshalJSON(data []byte) error {
  2892  	type NoMethod RateTier
  2893  	var s1 struct {
  2894  		StartAmount gensupport.JSONFloat64 `json:"startAmount"`
  2895  		*NoMethod
  2896  	}
  2897  	s1.NoMethod = (*NoMethod)(s)
  2898  	if err := json.Unmarshal(data, &s1); err != nil {
  2899  		return err
  2900  	}
  2901  	s.StartAmount = float64(s1.StartAmount)
  2902  	return nil
  2903  }
  2904  
  2905  // Regional: Area contains only one location.
  2906  type Regional struct {
  2907  	// Name: The location name
  2908  	// (https://cloud.google.com/storage/docs/locations#available-locations). For
  2909  	// example: "us-central1" for region.
  2910  	Name string `json:"name,omitempty"`
  2911  	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
  2912  	// include in API requests. By default, fields with empty or default values are
  2913  	// omitted from API requests. See
  2914  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2915  	// details.
  2916  	ForceSendFields []string `json:"-"`
  2917  	// NullFields is a list of field names (e.g. "Name") to include in API requests
  2918  	// with the JSON null value. By default, fields with empty values are omitted
  2919  	// from API requests. See
  2920  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2921  	NullFields []string `json:"-"`
  2922  }
  2923  
  2924  func (s *Regional) MarshalJSON() ([]byte, error) {
  2925  	type NoMethod Regional
  2926  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2927  }
  2928  
  2929  // ScenarioConfig: Configuration for a CostScenario. Specifies how costs are
  2930  // calculated.
  2931  type ScenarioConfig struct {
  2932  	// EstimateDuration: Time frame for the estimate. Workloads must specify usage
  2933  	// for this duration. Duration must be at least 1 hour (3,600 seconds) and at
  2934  	// most 10 years (315,360,000 seconds). The calculations for years and months
  2935  	// are based on a 730-hour (2,628,000-second) month. For durations longer than
  2936  	// one month (2,628,000 seconds), the duration is rounded up to the next month,
  2937  	// so the estimate shows you the costs for full months. For example, a duration
  2938  	// of 3,232,800 seconds (roughly 5 weeks) is rounded up to 2 months.
  2939  	EstimateDuration string `json:"estimateDuration,omitempty"`
  2940  	// ForceSendFields is a list of field names (e.g. "EstimateDuration") to
  2941  	// unconditionally include in API requests. By default, fields with empty or
  2942  	// default values are omitted from API requests. See
  2943  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2944  	// details.
  2945  	ForceSendFields []string `json:"-"`
  2946  	// NullFields is a list of field names (e.g. "EstimateDuration") to include in
  2947  	// API requests with the JSON null value. By default, fields with empty values
  2948  	// are omitted from API requests. See
  2949  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2950  	NullFields []string `json:"-"`
  2951  }
  2952  
  2953  func (s *ScenarioConfig) MarshalJSON() ([]byte, error) {
  2954  	type NoMethod ScenarioConfig
  2955  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2956  }
  2957  
  2958  // SegmentCostEstimate: Workload cost estimates for a single time segment.
  2959  type SegmentCostEstimate struct {
  2960  	// CommitmentCostEstimates: Estimated costs for each commitment.
  2961  	CommitmentCostEstimates []*CommitmentCostEstimate `json:"commitmentCostEstimates,omitempty"`
  2962  	// SegmentStartTime: Timestamp for the start of the segment.
  2963  	SegmentStartTime *EstimationTimePoint `json:"segmentStartTime,omitempty"`
  2964  	// SegmentTotalCostEstimate: Total estimated costs for the time segment.
  2965  	SegmentTotalCostEstimate *CostEstimate `json:"segmentTotalCostEstimate,omitempty"`
  2966  	// WorkloadCostEstimates: Estimated costs for each workload.
  2967  	WorkloadCostEstimates []*WorkloadCostEstimate `json:"workloadCostEstimates,omitempty"`
  2968  	// ForceSendFields is a list of field names (e.g. "CommitmentCostEstimates") to
  2969  	// unconditionally include in API requests. By default, fields with empty or
  2970  	// default values are omitted from API requests. See
  2971  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2972  	// details.
  2973  	ForceSendFields []string `json:"-"`
  2974  	// NullFields is a list of field names (e.g. "CommitmentCostEstimates") to
  2975  	// include in API requests with the JSON null value. By default, fields with
  2976  	// empty values are omitted from API requests. See
  2977  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2978  	NullFields []string `json:"-"`
  2979  }
  2980  
  2981  func (s *SegmentCostEstimate) MarshalJSON() ([]byte, error) {
  2982  	type NoMethod SegmentCostEstimate
  2983  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2984  }
  2985  
  2986  // Sku: Information about SKUs appearing in the cost estimate.
  2987  type Sku struct {
  2988  	// DisplayName: The display name for the SKU. Example: A2 Instance Core running
  2989  	// in Americas
  2990  	DisplayName string `json:"displayName,omitempty"`
  2991  	// Prices: A timeline of prices for a SKU in chronological order. Note: The API
  2992  	// currently only supports using a constant price for the entire estimation
  2993  	// time frame so this list will contain a single value.
  2994  	Prices []*Price `json:"prices,omitempty"`
  2995  	// Sku: The resource name for the SKU. Example:
  2996  	// "services/DA34-426B-A397/skus/AA95-CD31-42FE"
  2997  	Sku string `json:"sku,omitempty"`
  2998  	// ForceSendFields is a list of field names (e.g. "DisplayName") to
  2999  	// unconditionally include in API requests. By default, fields with empty or
  3000  	// default values are omitted from API requests. See
  3001  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3002  	// details.
  3003  	ForceSendFields []string `json:"-"`
  3004  	// NullFields is a list of field names (e.g. "DisplayName") to include in API
  3005  	// requests with the JSON null value. By default, fields with empty values are
  3006  	// omitted from API requests. See
  3007  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3008  	NullFields []string `json:"-"`
  3009  }
  3010  
  3011  func (s *Sku) MarshalJSON() ([]byte, error) {
  3012  	type NoMethod Sku
  3013  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3014  }
  3015  
  3016  // SkuCostEstimate: Estimated cost for usage on a SKU.
  3017  type SkuCostEstimate struct {
  3018  	// CostEstimate: The estimated cost for the usage on this SKU.
  3019  	CostEstimate *CostEstimate `json:"costEstimate,omitempty"`
  3020  	// Sku: The resource name for the SKU. Example:
  3021  	// "services/DA34-426B-A397/skus/AA95-CD31-42FE" More information about the SKU
  3022  	// can be found in the `skus` field of the `CostEstimationResult`.
  3023  	Sku string `json:"sku,omitempty"`
  3024  	// UsageAmount: The amount of usage on this SKU.
  3025  	UsageAmount float64 `json:"usageAmount,omitempty"`
  3026  	// UsageUnit: The unit for the usage on this SKU.
  3027  	UsageUnit string `json:"usageUnit,omitempty"`
  3028  	// ForceSendFields is a list of field names (e.g. "CostEstimate") to
  3029  	// unconditionally include in API requests. By default, fields with empty or
  3030  	// default values are omitted from API requests. See
  3031  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3032  	// details.
  3033  	ForceSendFields []string `json:"-"`
  3034  	// NullFields is a list of field names (e.g. "CostEstimate") to include in API
  3035  	// requests with the JSON null value. By default, fields with empty values are
  3036  	// omitted from API requests. See
  3037  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3038  	NullFields []string `json:"-"`
  3039  }
  3040  
  3041  func (s *SkuCostEstimate) MarshalJSON() ([]byte, error) {
  3042  	type NoMethod SkuCostEstimate
  3043  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3044  }
  3045  
  3046  func (s *SkuCostEstimate) UnmarshalJSON(data []byte) error {
  3047  	type NoMethod SkuCostEstimate
  3048  	var s1 struct {
  3049  		UsageAmount gensupport.JSONFloat64 `json:"usageAmount"`
  3050  		*NoMethod
  3051  	}
  3052  	s1.NoMethod = (*NoMethod)(s)
  3053  	if err := json.Unmarshal(data, &s1); err != nil {
  3054  		return err
  3055  	}
  3056  	s.UsageAmount = float64(s1.UsageAmount)
  3057  	return nil
  3058  }
  3059  
  3060  // StandardTierEgressWorkload: Specify Standard Tier Internet Data Transfer.
  3061  type StandardTierEgressWorkload struct {
  3062  	// EgressRate: Standard Tier Data Transfer usage. The expected units are
  3063  	// GiBy/s, By/s, and so on, based on the The Unified Code for Units of Measure
  3064  	// (https://ucum.org/ucum.html) standard.
  3065  	EgressRate *Usage `json:"egressRate,omitempty"`
  3066  	// SourceRegion: Which region
  3067  	// (https://cloud.google.com/compute/docs/regions-zones) the data is
  3068  	// transferred from.
  3069  	SourceRegion string `json:"sourceRegion,omitempty"`
  3070  	// ForceSendFields is a list of field names (e.g. "EgressRate") to
  3071  	// unconditionally include in API requests. By default, fields with empty or
  3072  	// default values are omitted from API requests. See
  3073  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3074  	// details.
  3075  	ForceSendFields []string `json:"-"`
  3076  	// NullFields is a list of field names (e.g. "EgressRate") to include in API
  3077  	// requests with the JSON null value. By default, fields with empty values are
  3078  	// omitted from API requests. See
  3079  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3080  	NullFields []string `json:"-"`
  3081  }
  3082  
  3083  func (s *StandardTierEgressWorkload) MarshalJSON() ([]byte, error) {
  3084  	type NoMethod StandardTierEgressWorkload
  3085  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3086  }
  3087  
  3088  // Usage: An amount of usage over a time frame.
  3089  type Usage struct {
  3090  	// UsageRateTimeline: A timeline of usage rates over the estimate interval.
  3091  	UsageRateTimeline *UsageRateTimeline `json:"usageRateTimeline,omitempty"`
  3092  	// ForceSendFields is a list of field names (e.g. "UsageRateTimeline") to
  3093  	// unconditionally include in API requests. By default, fields with empty or
  3094  	// default values are omitted from API requests. See
  3095  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3096  	// details.
  3097  	ForceSendFields []string `json:"-"`
  3098  	// NullFields is a list of field names (e.g. "UsageRateTimeline") to include in
  3099  	// API requests with the JSON null value. By default, fields with empty values
  3100  	// are omitted from API requests. See
  3101  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3102  	NullFields []string `json:"-"`
  3103  }
  3104  
  3105  func (s *Usage) MarshalJSON() ([]byte, error) {
  3106  	type NoMethod Usage
  3107  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3108  }
  3109  
  3110  // UsageRateTimeline: A timeline of usage rates. Consists of a series of
  3111  // entries, each of which specifies a constant rate of usage during a time
  3112  // interval. Each entry contains an effective time. The usage rate is in effect
  3113  // from that time until the effective time of the subsequent entry, or, for the
  3114  // last entry, for the remaining portion of estimation time frame. Effective
  3115  // times are specified as an offset into the estimation time frame. Usage is
  3116  // considered to be zero until the `effective_time` of the first entry. All
  3117  // subsequent entries must have an effective time greater than the previous
  3118  // entry and less than the estimate time frame. The effective time on all
  3119  // entries must be an integer number of hours.
  3120  type UsageRateTimeline struct {
  3121  	// Unit: The unit for the usage rate in each timeline entry. If you provide an
  3122  	// incorrect unit for an instance, the correct unit is provided in the error
  3123  	// message. The supported units are a subset of The Unified Code for Units of
  3124  	// Measure (https://ucum.org/ucum.html) standard: * **Time units (TIME-UNIT)**
  3125  	// * `s` second * `min` minute * `h` hour * `d` day * `wk` week * `mo` month *
  3126  	// `yr` year * `ms` millisecond * `us` microsecond * `ns` nanosecond * **Basic
  3127  	// storage units (BASIC-STORAGE-UNIT)** * `bit` bit * `By` byte * **Count units
  3128  	// (COUNT-UNIT)** * `count` count * **Prefixes (PREFIX)** * `k` kilo (10^3) *
  3129  	// `M` mega (10^6) * `G` giga (10^9) * `T` tera (10^12) * `P` peta (10^15) *
  3130  	// `Ki` kibi (2^10) * `Mi` mebi (2^20) * `Gi` gibi (2^30) * `Ti` tebi (2^40) *
  3131  	// `Pi` pebi (2^50) **Grammar** The grammar also includes these connectors: *
  3132  	// `/` division or ratio (as an infix operator). For example: `kBy/{email}` or
  3133  	// `MiBy/10ms`. * `.` multiplication or composition (as an infix operator). For
  3134  	// example: `GBy.d` or `k{watt}.h`. The grammar for a unit is as follows: ```
  3135  	// Expression = Component { "." Component } { "/" Component } ; Component = ( [
  3136  	// PREFIX ] UNIT | "%" ) [ Annotation ] | Annotation | "1" ; UNIT = TIME-UNIT |
  3137  	// STORAGE-UNIT | DATA-UNIT | COUNT-UNIT Annotation = "{" NAME "}" ; ```
  3138  	// Examples: * Request per second: `1/s` or `{requests}/s` * GibiBytes: `GiBy`
  3139  	// * GibiBytes * seconds: `GiBy.s`
  3140  	Unit string `json:"unit,omitempty"`
  3141  	// UsageRateTimelineEntries: The timeline entries. Each entry has a start time
  3142  	// and usage rate. The start time specifies the effective time of the usage
  3143  	// rate. The entries must be sorted by start time in an increasing order.
  3144  	UsageRateTimelineEntries []*UsageRateTimelineEntry `json:"usageRateTimelineEntries,omitempty"`
  3145  	// ForceSendFields is a list of field names (e.g. "Unit") to unconditionally
  3146  	// include in API requests. By default, fields with empty or default values are
  3147  	// omitted from API requests. See
  3148  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3149  	// details.
  3150  	ForceSendFields []string `json:"-"`
  3151  	// NullFields is a list of field names (e.g. "Unit") to include in API requests
  3152  	// with the JSON null value. By default, fields with empty values are omitted
  3153  	// from API requests. See
  3154  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3155  	NullFields []string `json:"-"`
  3156  }
  3157  
  3158  func (s *UsageRateTimeline) MarshalJSON() ([]byte, error) {
  3159  	type NoMethod UsageRateTimeline
  3160  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3161  }
  3162  
  3163  // UsageRateTimelineEntry: A usage rate timeline entry. Each entry specifies a
  3164  // constant usage rate during a time interval.
  3165  type UsageRateTimelineEntry struct {
  3166  	// EffectiveTime: The effective time for this entry. The usage rate is in
  3167  	// effect starting at this time until the effective time of the subsequent
  3168  	// entry in the timeline. The last entry defines the usage rate until the end
  3169  	// of the `Usage` time frame. Must correspond to an integer number of hours.
  3170  	EffectiveTime *EstimationTimePoint `json:"effectiveTime,omitempty"`
  3171  	// UsageRate: The usage rate.
  3172  	UsageRate float64 `json:"usageRate,omitempty"`
  3173  	// ForceSendFields is a list of field names (e.g. "EffectiveTime") to
  3174  	// unconditionally include in API requests. By default, fields with empty or
  3175  	// default values are omitted from API requests. See
  3176  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3177  	// details.
  3178  	ForceSendFields []string `json:"-"`
  3179  	// NullFields is a list of field names (e.g. "EffectiveTime") to include in API
  3180  	// requests with the JSON null value. By default, fields with empty values are
  3181  	// omitted from API requests. See
  3182  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3183  	NullFields []string `json:"-"`
  3184  }
  3185  
  3186  func (s *UsageRateTimelineEntry) MarshalJSON() ([]byte, error) {
  3187  	type NoMethod UsageRateTimelineEntry
  3188  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3189  }
  3190  
  3191  func (s *UsageRateTimelineEntry) UnmarshalJSON(data []byte) error {
  3192  	type NoMethod UsageRateTimelineEntry
  3193  	var s1 struct {
  3194  		UsageRate gensupport.JSONFloat64 `json:"usageRate"`
  3195  		*NoMethod
  3196  	}
  3197  	s1.NoMethod = (*NoMethod)(s)
  3198  	if err := json.Unmarshal(data, &s1); err != nil {
  3199  		return err
  3200  	}
  3201  	s.UsageRate = float64(s1.UsageRate)
  3202  	return nil
  3203  }
  3204  
  3205  // VlanAttachment: VLAN attachment for Cloud Interconnect.
  3206  type VlanAttachment struct {
  3207  	// Bandwidth: Capacities in the pricing table
  3208  	// (https://cloud.google.com/vpc/network-pricing#interconnect-pricing) Examples
  3209  	// of capacity are: 50/100/200/300/400/500-Mbps, 1/2/5/10/20/50-Gbps.
  3210  	//
  3211  	// Possible values:
  3212  	//   "BANDWIDTH_UNSPECIFIED" - Unspecified
  3213  	//   "BANDWIDTH_BPS_50M" - 50 Mbit/s
  3214  	//   "BANDWIDTH_BPS_100M" - 100 Mbit/s
  3215  	//   "BANDWIDTH_BPS_200M" - 200 Mbit/s
  3216  	//   "BANDWIDTH_BPS_300M" - 300 Mbit/s
  3217  	//   "BANDWIDTH_BPS_400M" - 400 Mbit/s
  3218  	//   "BANDWIDTH_BPS_500M" - 500 Mbit/s
  3219  	//   "BANDWIDTH_BPS_1G" - 1 Gbit/s
  3220  	//   "BANDWIDTH_BPS_2G" - 2 Gbit/s
  3221  	//   "BANDWIDTH_BPS_5G" - 5 Gbit/s
  3222  	//   "BANDWIDTH_BPS_10G" - 10 Gbit/s
  3223  	//   "BANDWIDTH_BPS_20G" - 20 Gbit/s
  3224  	//   "BANDWIDTH_BPS_50G" - 50 Gbit/s
  3225  	Bandwidth string `json:"bandwidth,omitempty"`
  3226  	// VlanCount: VLAN usage. This is specified as a unitless quantity which
  3227  	// indicates the number of VLAN attachment used in interconnect.
  3228  	VlanCount *Usage `json:"vlanCount,omitempty"`
  3229  	// ForceSendFields is a list of field names (e.g. "Bandwidth") to
  3230  	// unconditionally include in API requests. By default, fields with empty or
  3231  	// default values are omitted from API requests. See
  3232  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3233  	// details.
  3234  	ForceSendFields []string `json:"-"`
  3235  	// NullFields is a list of field names (e.g. "Bandwidth") to include in API
  3236  	// requests with the JSON null value. By default, fields with empty values are
  3237  	// omitted from API requests. See
  3238  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3239  	NullFields []string `json:"-"`
  3240  }
  3241  
  3242  func (s *VlanAttachment) MarshalJSON() ([]byte, error) {
  3243  	type NoMethod VlanAttachment
  3244  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3245  }
  3246  
  3247  // VmResourceBasedCud: Specifies a resource-based committed use discount (CUD).
  3248  type VmResourceBasedCud struct {
  3249  	// GuestAccelerator: Guest accelerator, known as GPU.
  3250  	GuestAccelerator *GuestAccelerator `json:"guestAccelerator,omitempty"`
  3251  	// MachineSeries: The machine series for CUD. For example: "n1" for general
  3252  	// purpose N1 machine type commitments. "n2" for general purpose N2 machine
  3253  	// type commitments. "e2" for general purpose E2 machine type commitments.
  3254  	// "n2d" for general purpose N2D machine type commitments. "t2d" for general
  3255  	// purpose T2D machine type commitments. "c2"/"c2d" for compute-optimized
  3256  	// commitments. "m1"/"m2" for the memory-optimized commitments. "a2' for the
  3257  	// accelerator-optimized commitments.
  3258  	MachineSeries string `json:"machineSeries,omitempty"`
  3259  	// MemorySizeGb: Memory size of the VM in GB (2^30 bytes). Must be an increment
  3260  	// of 0.25 (256 MB).
  3261  	MemorySizeGb float64 `json:"memorySizeGb,omitempty"`
  3262  	// Plan: Commitment usage plan.
  3263  	//
  3264  	// Possible values:
  3265  	//   "COMMITMENT_PLAN_UNSPECIFIED" - Not specified commitment plan.
  3266  	//   "TWELVE_MONTH" - 1 year commitment.
  3267  	//   "THIRTY_SIX_MONTH" - 3 years commitment.
  3268  	Plan string `json:"plan,omitempty"`
  3269  	// Region: The region where the VM runs. For example: "us-central1"
  3270  	Region string `json:"region,omitempty"`
  3271  	// VirtualCpuCount: The number of vCPUs. The number of vCPUs must be an integer
  3272  	// of 0 or more and can be even or odd.
  3273  	VirtualCpuCount int64 `json:"virtualCpuCount,omitempty,string"`
  3274  	// ForceSendFields is a list of field names (e.g. "GuestAccelerator") to
  3275  	// unconditionally include in API requests. By default, fields with empty or
  3276  	// default values are omitted from API requests. See
  3277  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3278  	// details.
  3279  	ForceSendFields []string `json:"-"`
  3280  	// NullFields is a list of field names (e.g. "GuestAccelerator") to include in
  3281  	// API requests with the JSON null value. By default, fields with empty values
  3282  	// are omitted from API requests. See
  3283  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3284  	NullFields []string `json:"-"`
  3285  }
  3286  
  3287  func (s *VmResourceBasedCud) MarshalJSON() ([]byte, error) {
  3288  	type NoMethod VmResourceBasedCud
  3289  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3290  }
  3291  
  3292  func (s *VmResourceBasedCud) UnmarshalJSON(data []byte) error {
  3293  	type NoMethod VmResourceBasedCud
  3294  	var s1 struct {
  3295  		MemorySizeGb gensupport.JSONFloat64 `json:"memorySizeGb"`
  3296  		*NoMethod
  3297  	}
  3298  	s1.NoMethod = (*NoMethod)(s)
  3299  	if err := json.Unmarshal(data, &s1); err != nil {
  3300  		return err
  3301  	}
  3302  	s.MemorySizeGb = float64(s1.MemorySizeGb)
  3303  	return nil
  3304  }
  3305  
  3306  // VmToVmEgressWorkload: Specify VM to VM data transfer.
  3307  type VmToVmEgressWorkload struct {
  3308  	InterRegionEgress *InterRegionEgress `json:"interRegionEgress,omitempty"`
  3309  	IntraRegionEgress *IntraRegionEgress `json:"intraRegionEgress,omitempty"`
  3310  	// ForceSendFields is a list of field names (e.g. "InterRegionEgress") to
  3311  	// unconditionally include in API requests. By default, fields with empty or
  3312  	// default values are omitted from API requests. See
  3313  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3314  	// details.
  3315  	ForceSendFields []string `json:"-"`
  3316  	// NullFields is a list of field names (e.g. "InterRegionEgress") to include in
  3317  	// API requests with the JSON null value. By default, fields with empty values
  3318  	// are omitted from API requests. See
  3319  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3320  	NullFields []string `json:"-"`
  3321  }
  3322  
  3323  func (s *VmToVmEgressWorkload) MarshalJSON() ([]byte, error) {
  3324  	type NoMethod VmToVmEgressWorkload
  3325  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3326  }
  3327  
  3328  // Workload: Specifies usage on a single Google Cloud product over a time
  3329  // frame. Each Google Cloud product has its own message, containing specific
  3330  // product configuration parameters of the product usage amounts along each
  3331  // dimension in which the product is billed.
  3332  type Workload struct {
  3333  	// CloudCdnEgressWorkload: Usage on Google Cloud CDN Data Transfer.
  3334  	CloudCdnEgressWorkload *CloudCdnEgressWorkload `json:"cloudCdnEgressWorkload,omitempty"`
  3335  	// CloudCdnWorkload: Usage on Google Cloud CDN.
  3336  	CloudCdnWorkload *CloudCdnWorkload `json:"cloudCdnWorkload,omitempty"`
  3337  	// CloudInterconnectEgressWorkload: Usage on Google Cloud Interconnect Data
  3338  	// Transfer.
  3339  	CloudInterconnectEgressWorkload *CloudInterconnectEgressWorkload `json:"cloudInterconnectEgressWorkload,omitempty"`
  3340  	// CloudInterconnectWorkload: Usage on Google Cloud Interconnect.
  3341  	CloudInterconnectWorkload *CloudInterconnectWorkload `json:"cloudInterconnectWorkload,omitempty"`
  3342  	// CloudStorageEgressWorkload: Usage on Cloud Storage Data Transfer.
  3343  	CloudStorageEgressWorkload *CloudStorageEgressWorkload `json:"cloudStorageEgressWorkload,omitempty"`
  3344  	// CloudStorageWorkload: Usage on Google Cloud Storage.
  3345  	CloudStorageWorkload *CloudStorageWorkload `json:"cloudStorageWorkload,omitempty"`
  3346  	// ComputeVmWorkload: Usage of a Google Compute Engine Virtual Machine.
  3347  	ComputeVmWorkload *ComputeVmWorkload `json:"computeVmWorkload,omitempty"`
  3348  	// Name: Required. A name for this workload. All workloads in a `CostScenario`
  3349  	// must have a unique `name`. Each `name` may be at most 128 characters long.
  3350  	Name string `json:"name,omitempty"`
  3351  	// PremiumTierEgressWorkload: Usage on Premium Tier Internet Data Transfer.
  3352  	PremiumTierEgressWorkload *PremiumTierEgressWorkload `json:"premiumTierEgressWorkload,omitempty"`
  3353  	// StandardTierEgressWorkload: Usage on Standard Tier Internet Data Transfer.
  3354  	StandardTierEgressWorkload *StandardTierEgressWorkload `json:"standardTierEgressWorkload,omitempty"`
  3355  	// VmToVmEgressWorkload: Usage on VM to VM Data Transfer.
  3356  	VmToVmEgressWorkload *VmToVmEgressWorkload `json:"vmToVmEgressWorkload,omitempty"`
  3357  	// ForceSendFields is a list of field names (e.g. "CloudCdnEgressWorkload") to
  3358  	// unconditionally include in API requests. By default, fields with empty or
  3359  	// default values are omitted from API requests. See
  3360  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3361  	// details.
  3362  	ForceSendFields []string `json:"-"`
  3363  	// NullFields is a list of field names (e.g. "CloudCdnEgressWorkload") to
  3364  	// include in API requests with the JSON null value. By default, fields with
  3365  	// empty values are omitted from API requests. See
  3366  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3367  	NullFields []string `json:"-"`
  3368  }
  3369  
  3370  func (s *Workload) MarshalJSON() ([]byte, error) {
  3371  	type NoMethod Workload
  3372  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3373  }
  3374  
  3375  // WorkloadCostEstimate: Estimated cost for a workload.
  3376  type WorkloadCostEstimate struct {
  3377  	// Name: The name of the workload, as specified in the `CostScenario`.
  3378  	Name string `json:"name,omitempty"`
  3379  	// SkuCostEstimates: Estimated costs for each SKU in the workload.
  3380  	SkuCostEstimates []*SkuCostEstimate `json:"skuCostEstimates,omitempty"`
  3381  	// WorkloadTotalCostEstimate: Total estimated costs for the workload.
  3382  	WorkloadTotalCostEstimate *CostEstimate `json:"workloadTotalCostEstimate,omitempty"`
  3383  	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
  3384  	// include in API requests. By default, fields with empty or default values are
  3385  	// omitted from API requests. See
  3386  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3387  	// details.
  3388  	ForceSendFields []string `json:"-"`
  3389  	// NullFields is a list of field names (e.g. "Name") to include in API requests
  3390  	// with the JSON null value. By default, fields with empty values are omitted
  3391  	// from API requests. See
  3392  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3393  	NullFields []string `json:"-"`
  3394  }
  3395  
  3396  func (s *WorkloadCostEstimate) MarshalJSON() ([]byte, error) {
  3397  	type NoMethod WorkloadCostEstimate
  3398  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3399  }
  3400  
  3401  type BillingAccountsEstimateCostScenarioCall struct {
  3402  	s                                            *Service
  3403  	billingAccount                               string
  3404  	estimatecostscenarioforbillingaccountrequest *EstimateCostScenarioForBillingAccountRequest
  3405  	urlParams_                                   gensupport.URLParams
  3406  	ctx_                                         context.Context
  3407  	header_                                      http.Header
  3408  }
  3409  
  3410  // EstimateCostScenario: Use custom pricing in the estimate, using a
  3411  // `CostScenario` with a defined `billingAccount`.
  3412  //
  3413  //   - billingAccount: Resource name of the billing account for the cost
  3414  //     estimate. The resource name has the form
  3415  //     `billingAccounts/{billing_account_id}`. For example,
  3416  //     `billingAccounts/012345-567890-ABCDEF` is the resource name for billing
  3417  //     account `012345-567890-ABCDEF`. Must be specified.
  3418  func (r *BillingAccountsService) EstimateCostScenario(billingAccount string, estimatecostscenarioforbillingaccountrequest *EstimateCostScenarioForBillingAccountRequest) *BillingAccountsEstimateCostScenarioCall {
  3419  	c := &BillingAccountsEstimateCostScenarioCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3420  	c.billingAccount = billingAccount
  3421  	c.estimatecostscenarioforbillingaccountrequest = estimatecostscenarioforbillingaccountrequest
  3422  	return c
  3423  }
  3424  
  3425  // Fields allows partial responses to be retrieved. See
  3426  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3427  // details.
  3428  func (c *BillingAccountsEstimateCostScenarioCall) Fields(s ...googleapi.Field) *BillingAccountsEstimateCostScenarioCall {
  3429  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3430  	return c
  3431  }
  3432  
  3433  // Context sets the context to be used in this call's Do method.
  3434  func (c *BillingAccountsEstimateCostScenarioCall) Context(ctx context.Context) *BillingAccountsEstimateCostScenarioCall {
  3435  	c.ctx_ = ctx
  3436  	return c
  3437  }
  3438  
  3439  // Header returns a http.Header that can be modified by the caller to add
  3440  // headers to the request.
  3441  func (c *BillingAccountsEstimateCostScenarioCall) Header() http.Header {
  3442  	if c.header_ == nil {
  3443  		c.header_ = make(http.Header)
  3444  	}
  3445  	return c.header_
  3446  }
  3447  
  3448  func (c *BillingAccountsEstimateCostScenarioCall) doRequest(alt string) (*http.Response, error) {
  3449  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  3450  	var body io.Reader = nil
  3451  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.estimatecostscenarioforbillingaccountrequest)
  3452  	if err != nil {
  3453  		return nil, err
  3454  	}
  3455  	c.urlParams_.Set("alt", alt)
  3456  	c.urlParams_.Set("prettyPrint", "false")
  3457  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+billingAccount}:estimateCostScenario")
  3458  	urls += "?" + c.urlParams_.Encode()
  3459  	req, err := http.NewRequest("POST", urls, body)
  3460  	if err != nil {
  3461  		return nil, err
  3462  	}
  3463  	req.Header = reqHeaders
  3464  	googleapi.Expand(req.URL, map[string]string{
  3465  		"billingAccount": c.billingAccount,
  3466  	})
  3467  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3468  }
  3469  
  3470  // Do executes the "cloudbilling.billingAccounts.estimateCostScenario" call.
  3471  // Any non-2xx status code is an error. Response headers are in either
  3472  // *EstimateCostScenarioForBillingAccountResponse.ServerResponse.Header or (if
  3473  // a response was returned at all) in error.(*googleapi.Error).Header. Use
  3474  // googleapi.IsNotModified to check whether the returned error was because
  3475  // http.StatusNotModified was returned.
  3476  func (c *BillingAccountsEstimateCostScenarioCall) Do(opts ...googleapi.CallOption) (*EstimateCostScenarioForBillingAccountResponse, error) {
  3477  	gensupport.SetOptions(c.urlParams_, opts...)
  3478  	res, err := c.doRequest("json")
  3479  	if res != nil && res.StatusCode == http.StatusNotModified {
  3480  		if res.Body != nil {
  3481  			res.Body.Close()
  3482  		}
  3483  		return nil, gensupport.WrapError(&googleapi.Error{
  3484  			Code:   res.StatusCode,
  3485  			Header: res.Header,
  3486  		})
  3487  	}
  3488  	if err != nil {
  3489  		return nil, err
  3490  	}
  3491  	defer googleapi.CloseBody(res)
  3492  	if err := googleapi.CheckResponse(res); err != nil {
  3493  		return nil, gensupport.WrapError(err)
  3494  	}
  3495  	ret := &EstimateCostScenarioForBillingAccountResponse{
  3496  		ServerResponse: googleapi.ServerResponse{
  3497  			Header:         res.Header,
  3498  			HTTPStatusCode: res.StatusCode,
  3499  		},
  3500  	}
  3501  	target := &ret
  3502  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3503  		return nil, err
  3504  	}
  3505  	return ret, nil
  3506  }
  3507  
  3508  type BillingAccountsServicesGetCall struct {
  3509  	s            *Service
  3510  	name         string
  3511  	urlParams_   gensupport.URLParams
  3512  	ifNoneMatch_ string
  3513  	ctx_         context.Context
  3514  	header_      http.Header
  3515  }
  3516  
  3517  // Get: Gets a Google Cloud service visible to a billing account.
  3518  //
  3519  //   - name: The name of the billing account service to retrieve. Format:
  3520  //     billingAccounts/{billing_account}/services/{service}.
  3521  func (r *BillingAccountsServicesService) Get(name string) *BillingAccountsServicesGetCall {
  3522  	c := &BillingAccountsServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3523  	c.name = name
  3524  	return c
  3525  }
  3526  
  3527  // Fields allows partial responses to be retrieved. See
  3528  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3529  // details.
  3530  func (c *BillingAccountsServicesGetCall) Fields(s ...googleapi.Field) *BillingAccountsServicesGetCall {
  3531  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3532  	return c
  3533  }
  3534  
  3535  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3536  // object's ETag matches the given value. This is useful for getting updates
  3537  // only after the object has changed since the last request.
  3538  func (c *BillingAccountsServicesGetCall) IfNoneMatch(entityTag string) *BillingAccountsServicesGetCall {
  3539  	c.ifNoneMatch_ = entityTag
  3540  	return c
  3541  }
  3542  
  3543  // Context sets the context to be used in this call's Do method.
  3544  func (c *BillingAccountsServicesGetCall) Context(ctx context.Context) *BillingAccountsServicesGetCall {
  3545  	c.ctx_ = ctx
  3546  	return c
  3547  }
  3548  
  3549  // Header returns a http.Header that can be modified by the caller to add
  3550  // headers to the request.
  3551  func (c *BillingAccountsServicesGetCall) Header() http.Header {
  3552  	if c.header_ == nil {
  3553  		c.header_ = make(http.Header)
  3554  	}
  3555  	return c.header_
  3556  }
  3557  
  3558  func (c *BillingAccountsServicesGetCall) doRequest(alt string) (*http.Response, error) {
  3559  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3560  	if c.ifNoneMatch_ != "" {
  3561  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3562  	}
  3563  	var body io.Reader = nil
  3564  	c.urlParams_.Set("alt", alt)
  3565  	c.urlParams_.Set("prettyPrint", "false")
  3566  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}")
  3567  	urls += "?" + c.urlParams_.Encode()
  3568  	req, err := http.NewRequest("GET", urls, body)
  3569  	if err != nil {
  3570  		return nil, err
  3571  	}
  3572  	req.Header = reqHeaders
  3573  	googleapi.Expand(req.URL, map[string]string{
  3574  		"name": c.name,
  3575  	})
  3576  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3577  }
  3578  
  3579  // Do executes the "cloudbilling.billingAccounts.services.get" call.
  3580  // Any non-2xx status code is an error. Response headers are in either
  3581  // *GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService.ServerRe
  3582  // sponse.Header or (if a response was returned at all) in
  3583  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3584  // whether the returned error was because http.StatusNotModified was returned.
  3585  func (c *BillingAccountsServicesGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService, error) {
  3586  	gensupport.SetOptions(c.urlParams_, opts...)
  3587  	res, err := c.doRequest("json")
  3588  	if res != nil && res.StatusCode == http.StatusNotModified {
  3589  		if res.Body != nil {
  3590  			res.Body.Close()
  3591  		}
  3592  		return nil, gensupport.WrapError(&googleapi.Error{
  3593  			Code:   res.StatusCode,
  3594  			Header: res.Header,
  3595  		})
  3596  	}
  3597  	if err != nil {
  3598  		return nil, err
  3599  	}
  3600  	defer googleapi.CloseBody(res)
  3601  	if err := googleapi.CheckResponse(res); err != nil {
  3602  		return nil, gensupport.WrapError(err)
  3603  	}
  3604  	ret := &GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService{
  3605  		ServerResponse: googleapi.ServerResponse{
  3606  			Header:         res.Header,
  3607  			HTTPStatusCode: res.StatusCode,
  3608  		},
  3609  	}
  3610  	target := &ret
  3611  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3612  		return nil, err
  3613  	}
  3614  	return ret, nil
  3615  }
  3616  
  3617  type BillingAccountsServicesListCall struct {
  3618  	s            *Service
  3619  	parent       string
  3620  	urlParams_   gensupport.URLParams
  3621  	ifNoneMatch_ string
  3622  	ctx_         context.Context
  3623  	header_      http.Header
  3624  }
  3625  
  3626  // List: Lists services visible to a billing account.
  3627  //
  3628  //   - parent: The billing account to list billing account service from. Format:
  3629  //     billingAccounts/{billing_account}.
  3630  func (r *BillingAccountsServicesService) List(parent string) *BillingAccountsServicesListCall {
  3631  	c := &BillingAccountsServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3632  	c.parent = parent
  3633  	return c
  3634  }
  3635  
  3636  // PageSize sets the optional parameter "pageSize": Maximum number of billing
  3637  // account service to return. Results may return fewer than this value. Default
  3638  // value is 50 and maximum value is 5000.
  3639  func (c *BillingAccountsServicesListCall) PageSize(pageSize int64) *BillingAccountsServicesListCall {
  3640  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  3641  	return c
  3642  }
  3643  
  3644  // PageToken sets the optional parameter "pageToken": Page token received from
  3645  // a previous ListBillingAccountServices call to retrieve the next page of
  3646  // results. If this field is empty, the first page is returned.
  3647  func (c *BillingAccountsServicesListCall) PageToken(pageToken string) *BillingAccountsServicesListCall {
  3648  	c.urlParams_.Set("pageToken", pageToken)
  3649  	return c
  3650  }
  3651  
  3652  // Fields allows partial responses to be retrieved. See
  3653  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3654  // details.
  3655  func (c *BillingAccountsServicesListCall) Fields(s ...googleapi.Field) *BillingAccountsServicesListCall {
  3656  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3657  	return c
  3658  }
  3659  
  3660  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3661  // object's ETag matches the given value. This is useful for getting updates
  3662  // only after the object has changed since the last request.
  3663  func (c *BillingAccountsServicesListCall) IfNoneMatch(entityTag string) *BillingAccountsServicesListCall {
  3664  	c.ifNoneMatch_ = entityTag
  3665  	return c
  3666  }
  3667  
  3668  // Context sets the context to be used in this call's Do method.
  3669  func (c *BillingAccountsServicesListCall) Context(ctx context.Context) *BillingAccountsServicesListCall {
  3670  	c.ctx_ = ctx
  3671  	return c
  3672  }
  3673  
  3674  // Header returns a http.Header that can be modified by the caller to add
  3675  // headers to the request.
  3676  func (c *BillingAccountsServicesListCall) Header() http.Header {
  3677  	if c.header_ == nil {
  3678  		c.header_ = make(http.Header)
  3679  	}
  3680  	return c.header_
  3681  }
  3682  
  3683  func (c *BillingAccountsServicesListCall) doRequest(alt string) (*http.Response, error) {
  3684  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3685  	if c.ifNoneMatch_ != "" {
  3686  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3687  	}
  3688  	var body io.Reader = nil
  3689  	c.urlParams_.Set("alt", alt)
  3690  	c.urlParams_.Set("prettyPrint", "false")
  3691  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/services")
  3692  	urls += "?" + c.urlParams_.Encode()
  3693  	req, err := http.NewRequest("GET", urls, body)
  3694  	if err != nil {
  3695  		return nil, err
  3696  	}
  3697  	req.Header = reqHeaders
  3698  	googleapi.Expand(req.URL, map[string]string{
  3699  		"parent": c.parent,
  3700  	})
  3701  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3702  }
  3703  
  3704  // Do executes the "cloudbilling.billingAccounts.services.list" call.
  3705  // Any non-2xx status code is an error. Response headers are in either
  3706  // *GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResp
  3707  // onse.ServerResponse.Header or (if a response was returned at all) in
  3708  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3709  // whether the returned error was because http.StatusNotModified was returned.
  3710  func (c *BillingAccountsServicesListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse, error) {
  3711  	gensupport.SetOptions(c.urlParams_, opts...)
  3712  	res, err := c.doRequest("json")
  3713  	if res != nil && res.StatusCode == http.StatusNotModified {
  3714  		if res.Body != nil {
  3715  			res.Body.Close()
  3716  		}
  3717  		return nil, gensupport.WrapError(&googleapi.Error{
  3718  			Code:   res.StatusCode,
  3719  			Header: res.Header,
  3720  		})
  3721  	}
  3722  	if err != nil {
  3723  		return nil, err
  3724  	}
  3725  	defer googleapi.CloseBody(res)
  3726  	if err := googleapi.CheckResponse(res); err != nil {
  3727  		return nil, gensupport.WrapError(err)
  3728  	}
  3729  	ret := &GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse{
  3730  		ServerResponse: googleapi.ServerResponse{
  3731  			Header:         res.Header,
  3732  			HTTPStatusCode: res.StatusCode,
  3733  		},
  3734  	}
  3735  	target := &ret
  3736  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3737  		return nil, err
  3738  	}
  3739  	return ret, nil
  3740  }
  3741  
  3742  // Pages invokes f for each page of results.
  3743  // A non-nil error returned from f will halt the iteration.
  3744  // The provided context supersedes any context provided to the Context method.
  3745  func (c *BillingAccountsServicesListCall) Pages(ctx context.Context, f func(*GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse) error) error {
  3746  	c.ctx_ = ctx
  3747  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  3748  	for {
  3749  		x, err := c.Do()
  3750  		if err != nil {
  3751  			return err
  3752  		}
  3753  		if err := f(x); err != nil {
  3754  			return err
  3755  		}
  3756  		if x.NextPageToken == "" {
  3757  			return nil
  3758  		}
  3759  		c.PageToken(x.NextPageToken)
  3760  	}
  3761  }
  3762  
  3763  type BillingAccountsSkuGroupsGetCall struct {
  3764  	s            *Service
  3765  	name         string
  3766  	urlParams_   gensupport.URLParams
  3767  	ifNoneMatch_ string
  3768  	ctx_         context.Context
  3769  	header_      http.Header
  3770  }
  3771  
  3772  // Get: Gets a SKU group visible to a billing account.
  3773  //
  3774  //   - name: The name of the BillingAccountSkuGroup to retrieve. Format:
  3775  //     billingAccounts/{billing_account}/skuGroups/{sku_group}.
  3776  func (r *BillingAccountsSkuGroupsService) Get(name string) *BillingAccountsSkuGroupsGetCall {
  3777  	c := &BillingAccountsSkuGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3778  	c.name = name
  3779  	return c
  3780  }
  3781  
  3782  // Fields allows partial responses to be retrieved. See
  3783  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3784  // details.
  3785  func (c *BillingAccountsSkuGroupsGetCall) Fields(s ...googleapi.Field) *BillingAccountsSkuGroupsGetCall {
  3786  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3787  	return c
  3788  }
  3789  
  3790  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3791  // object's ETag matches the given value. This is useful for getting updates
  3792  // only after the object has changed since the last request.
  3793  func (c *BillingAccountsSkuGroupsGetCall) IfNoneMatch(entityTag string) *BillingAccountsSkuGroupsGetCall {
  3794  	c.ifNoneMatch_ = entityTag
  3795  	return c
  3796  }
  3797  
  3798  // Context sets the context to be used in this call's Do method.
  3799  func (c *BillingAccountsSkuGroupsGetCall) Context(ctx context.Context) *BillingAccountsSkuGroupsGetCall {
  3800  	c.ctx_ = ctx
  3801  	return c
  3802  }
  3803  
  3804  // Header returns a http.Header that can be modified by the caller to add
  3805  // headers to the request.
  3806  func (c *BillingAccountsSkuGroupsGetCall) Header() http.Header {
  3807  	if c.header_ == nil {
  3808  		c.header_ = make(http.Header)
  3809  	}
  3810  	return c.header_
  3811  }
  3812  
  3813  func (c *BillingAccountsSkuGroupsGetCall) doRequest(alt string) (*http.Response, error) {
  3814  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3815  	if c.ifNoneMatch_ != "" {
  3816  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3817  	}
  3818  	var body io.Reader = nil
  3819  	c.urlParams_.Set("alt", alt)
  3820  	c.urlParams_.Set("prettyPrint", "false")
  3821  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}")
  3822  	urls += "?" + c.urlParams_.Encode()
  3823  	req, err := http.NewRequest("GET", urls, body)
  3824  	if err != nil {
  3825  		return nil, err
  3826  	}
  3827  	req.Header = reqHeaders
  3828  	googleapi.Expand(req.URL, map[string]string{
  3829  		"name": c.name,
  3830  	})
  3831  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3832  }
  3833  
  3834  // Do executes the "cloudbilling.billingAccounts.skuGroups.get" call.
  3835  // Any non-2xx status code is an error. Response headers are in either
  3836  // *GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup.Server
  3837  // Response.Header or (if a response was returned at all) in
  3838  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3839  // whether the returned error was because http.StatusNotModified was returned.
  3840  func (c *BillingAccountsSkuGroupsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup, error) {
  3841  	gensupport.SetOptions(c.urlParams_, opts...)
  3842  	res, err := c.doRequest("json")
  3843  	if res != nil && res.StatusCode == http.StatusNotModified {
  3844  		if res.Body != nil {
  3845  			res.Body.Close()
  3846  		}
  3847  		return nil, gensupport.WrapError(&googleapi.Error{
  3848  			Code:   res.StatusCode,
  3849  			Header: res.Header,
  3850  		})
  3851  	}
  3852  	if err != nil {
  3853  		return nil, err
  3854  	}
  3855  	defer googleapi.CloseBody(res)
  3856  	if err := googleapi.CheckResponse(res); err != nil {
  3857  		return nil, gensupport.WrapError(err)
  3858  	}
  3859  	ret := &GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup{
  3860  		ServerResponse: googleapi.ServerResponse{
  3861  			Header:         res.Header,
  3862  			HTTPStatusCode: res.StatusCode,
  3863  		},
  3864  	}
  3865  	target := &ret
  3866  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3867  		return nil, err
  3868  	}
  3869  	return ret, nil
  3870  }
  3871  
  3872  type BillingAccountsSkuGroupsListCall struct {
  3873  	s            *Service
  3874  	parent       string
  3875  	urlParams_   gensupport.URLParams
  3876  	ifNoneMatch_ string
  3877  	ctx_         context.Context
  3878  	header_      http.Header
  3879  }
  3880  
  3881  // List: Lists SKU groups visible to a billing account.
  3882  //
  3883  //   - parent: The billing account to list billing account SKU groups from.
  3884  //     Format: billingAccounts/{billing_account}.
  3885  func (r *BillingAccountsSkuGroupsService) List(parent string) *BillingAccountsSkuGroupsListCall {
  3886  	c := &BillingAccountsSkuGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3887  	c.parent = parent
  3888  	return c
  3889  }
  3890  
  3891  // PageSize sets the optional parameter "pageSize": Maximum number of billing
  3892  // account SKU groups to return. Results may return fewer than this value.
  3893  // Default value is 50 and maximum value is 5000.
  3894  func (c *BillingAccountsSkuGroupsListCall) PageSize(pageSize int64) *BillingAccountsSkuGroupsListCall {
  3895  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  3896  	return c
  3897  }
  3898  
  3899  // PageToken sets the optional parameter "pageToken": Page token received from
  3900  // a previous ListBillingAccountSkuGroups call to retrieve the next page of
  3901  // results. If this field is empty, the first page is returned.
  3902  func (c *BillingAccountsSkuGroupsListCall) PageToken(pageToken string) *BillingAccountsSkuGroupsListCall {
  3903  	c.urlParams_.Set("pageToken", pageToken)
  3904  	return c
  3905  }
  3906  
  3907  // Fields allows partial responses to be retrieved. See
  3908  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3909  // details.
  3910  func (c *BillingAccountsSkuGroupsListCall) Fields(s ...googleapi.Field) *BillingAccountsSkuGroupsListCall {
  3911  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3912  	return c
  3913  }
  3914  
  3915  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3916  // object's ETag matches the given value. This is useful for getting updates
  3917  // only after the object has changed since the last request.
  3918  func (c *BillingAccountsSkuGroupsListCall) IfNoneMatch(entityTag string) *BillingAccountsSkuGroupsListCall {
  3919  	c.ifNoneMatch_ = entityTag
  3920  	return c
  3921  }
  3922  
  3923  // Context sets the context to be used in this call's Do method.
  3924  func (c *BillingAccountsSkuGroupsListCall) Context(ctx context.Context) *BillingAccountsSkuGroupsListCall {
  3925  	c.ctx_ = ctx
  3926  	return c
  3927  }
  3928  
  3929  // Header returns a http.Header that can be modified by the caller to add
  3930  // headers to the request.
  3931  func (c *BillingAccountsSkuGroupsListCall) Header() http.Header {
  3932  	if c.header_ == nil {
  3933  		c.header_ = make(http.Header)
  3934  	}
  3935  	return c.header_
  3936  }
  3937  
  3938  func (c *BillingAccountsSkuGroupsListCall) doRequest(alt string) (*http.Response, error) {
  3939  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3940  	if c.ifNoneMatch_ != "" {
  3941  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3942  	}
  3943  	var body io.Reader = nil
  3944  	c.urlParams_.Set("alt", alt)
  3945  	c.urlParams_.Set("prettyPrint", "false")
  3946  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/skuGroups")
  3947  	urls += "?" + c.urlParams_.Encode()
  3948  	req, err := http.NewRequest("GET", urls, body)
  3949  	if err != nil {
  3950  		return nil, err
  3951  	}
  3952  	req.Header = reqHeaders
  3953  	googleapi.Expand(req.URL, map[string]string{
  3954  		"parent": c.parent,
  3955  	})
  3956  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3957  }
  3958  
  3959  // Do executes the "cloudbilling.billingAccounts.skuGroups.list" call.
  3960  // Any non-2xx status code is an error. Response headers are in either
  3961  // *GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsRe
  3962  // sponse.ServerResponse.Header or (if a response was returned at all) in
  3963  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3964  // whether the returned error was because http.StatusNotModified was returned.
  3965  func (c *BillingAccountsSkuGroupsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse, error) {
  3966  	gensupport.SetOptions(c.urlParams_, opts...)
  3967  	res, err := c.doRequest("json")
  3968  	if res != nil && res.StatusCode == http.StatusNotModified {
  3969  		if res.Body != nil {
  3970  			res.Body.Close()
  3971  		}
  3972  		return nil, gensupport.WrapError(&googleapi.Error{
  3973  			Code:   res.StatusCode,
  3974  			Header: res.Header,
  3975  		})
  3976  	}
  3977  	if err != nil {
  3978  		return nil, err
  3979  	}
  3980  	defer googleapi.CloseBody(res)
  3981  	if err := googleapi.CheckResponse(res); err != nil {
  3982  		return nil, gensupport.WrapError(err)
  3983  	}
  3984  	ret := &GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse{
  3985  		ServerResponse: googleapi.ServerResponse{
  3986  			Header:         res.Header,
  3987  			HTTPStatusCode: res.StatusCode,
  3988  		},
  3989  	}
  3990  	target := &ret
  3991  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3992  		return nil, err
  3993  	}
  3994  	return ret, nil
  3995  }
  3996  
  3997  // Pages invokes f for each page of results.
  3998  // A non-nil error returned from f will halt the iteration.
  3999  // The provided context supersedes any context provided to the Context method.
  4000  func (c *BillingAccountsSkuGroupsListCall) Pages(ctx context.Context, f func(*GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse) error) error {
  4001  	c.ctx_ = ctx
  4002  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  4003  	for {
  4004  		x, err := c.Do()
  4005  		if err != nil {
  4006  			return err
  4007  		}
  4008  		if err := f(x); err != nil {
  4009  			return err
  4010  		}
  4011  		if x.NextPageToken == "" {
  4012  			return nil
  4013  		}
  4014  		c.PageToken(x.NextPageToken)
  4015  	}
  4016  }
  4017  
  4018  type BillingAccountsSkuGroupsSkusGetCall struct {
  4019  	s            *Service
  4020  	name         string
  4021  	urlParams_   gensupport.URLParams
  4022  	ifNoneMatch_ string
  4023  	ctx_         context.Context
  4024  	header_      http.Header
  4025  }
  4026  
  4027  // Get: Gets a SKU that is part of a billing account SKU group.
  4028  //
  4029  //   - name: The name of the billing account SKU group SKU to retrieve. Format:
  4030  //     billingAccounts/{billing_account}/skuGroups/{sku_group}/skus/{sku}.
  4031  func (r *BillingAccountsSkuGroupsSkusService) Get(name string) *BillingAccountsSkuGroupsSkusGetCall {
  4032  	c := &BillingAccountsSkuGroupsSkusGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4033  	c.name = name
  4034  	return c
  4035  }
  4036  
  4037  // Fields allows partial responses to be retrieved. See
  4038  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4039  // details.
  4040  func (c *BillingAccountsSkuGroupsSkusGetCall) Fields(s ...googleapi.Field) *BillingAccountsSkuGroupsSkusGetCall {
  4041  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4042  	return c
  4043  }
  4044  
  4045  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4046  // object's ETag matches the given value. This is useful for getting updates
  4047  // only after the object has changed since the last request.
  4048  func (c *BillingAccountsSkuGroupsSkusGetCall) IfNoneMatch(entityTag string) *BillingAccountsSkuGroupsSkusGetCall {
  4049  	c.ifNoneMatch_ = entityTag
  4050  	return c
  4051  }
  4052  
  4053  // Context sets the context to be used in this call's Do method.
  4054  func (c *BillingAccountsSkuGroupsSkusGetCall) Context(ctx context.Context) *BillingAccountsSkuGroupsSkusGetCall {
  4055  	c.ctx_ = ctx
  4056  	return c
  4057  }
  4058  
  4059  // Header returns a http.Header that can be modified by the caller to add
  4060  // headers to the request.
  4061  func (c *BillingAccountsSkuGroupsSkusGetCall) Header() http.Header {
  4062  	if c.header_ == nil {
  4063  		c.header_ = make(http.Header)
  4064  	}
  4065  	return c.header_
  4066  }
  4067  
  4068  func (c *BillingAccountsSkuGroupsSkusGetCall) doRequest(alt string) (*http.Response, error) {
  4069  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4070  	if c.ifNoneMatch_ != "" {
  4071  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4072  	}
  4073  	var body io.Reader = nil
  4074  	c.urlParams_.Set("alt", alt)
  4075  	c.urlParams_.Set("prettyPrint", "false")
  4076  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}")
  4077  	urls += "?" + c.urlParams_.Encode()
  4078  	req, err := http.NewRequest("GET", urls, body)
  4079  	if err != nil {
  4080  		return nil, err
  4081  	}
  4082  	req.Header = reqHeaders
  4083  	googleapi.Expand(req.URL, map[string]string{
  4084  		"name": c.name,
  4085  	})
  4086  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4087  }
  4088  
  4089  // Do executes the "cloudbilling.billingAccounts.skuGroups.skus.get" call.
  4090  // Any non-2xx status code is an error. Response headers are in either
  4091  // *GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku.
  4092  // ServerResponse.Header or (if a response was returned at all) in
  4093  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4094  // whether the returned error was because http.StatusNotModified was returned.
  4095  func (c *BillingAccountsSkuGroupsSkusGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku, error) {
  4096  	gensupport.SetOptions(c.urlParams_, opts...)
  4097  	res, err := c.doRequest("json")
  4098  	if res != nil && res.StatusCode == http.StatusNotModified {
  4099  		if res.Body != nil {
  4100  			res.Body.Close()
  4101  		}
  4102  		return nil, gensupport.WrapError(&googleapi.Error{
  4103  			Code:   res.StatusCode,
  4104  			Header: res.Header,
  4105  		})
  4106  	}
  4107  	if err != nil {
  4108  		return nil, err
  4109  	}
  4110  	defer googleapi.CloseBody(res)
  4111  	if err := googleapi.CheckResponse(res); err != nil {
  4112  		return nil, gensupport.WrapError(err)
  4113  	}
  4114  	ret := &GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku{
  4115  		ServerResponse: googleapi.ServerResponse{
  4116  			Header:         res.Header,
  4117  			HTTPStatusCode: res.StatusCode,
  4118  		},
  4119  	}
  4120  	target := &ret
  4121  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4122  		return nil, err
  4123  	}
  4124  	return ret, nil
  4125  }
  4126  
  4127  type BillingAccountsSkuGroupsSkusListCall struct {
  4128  	s            *Service
  4129  	parent       string
  4130  	urlParams_   gensupport.URLParams
  4131  	ifNoneMatch_ string
  4132  	ctx_         context.Context
  4133  	header_      http.Header
  4134  }
  4135  
  4136  // List: Lists SKUs that is part of billing account SKU groups.
  4137  //
  4138  //   - parent: The billing account SKU group to list billing account SKU group
  4139  //     SKUs from. Format: billingAccounts/{billing_account}/skuGroups/{sku_group}.
  4140  func (r *BillingAccountsSkuGroupsSkusService) List(parent string) *BillingAccountsSkuGroupsSkusListCall {
  4141  	c := &BillingAccountsSkuGroupsSkusListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4142  	c.parent = parent
  4143  	return c
  4144  }
  4145  
  4146  // PageSize sets the optional parameter "pageSize": Maximum number of billing
  4147  // account SKU group SKUs to return. Results may return fewer than this value.
  4148  // Default value is 50 and maximum value is 5000.
  4149  func (c *BillingAccountsSkuGroupsSkusListCall) PageSize(pageSize int64) *BillingAccountsSkuGroupsSkusListCall {
  4150  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  4151  	return c
  4152  }
  4153  
  4154  // PageToken sets the optional parameter "pageToken": Page token received from
  4155  // a previous ListBillingAccountSkuGroupSkus call to retrieve the next page of
  4156  // results. If this field is empty, the first page is returned.
  4157  func (c *BillingAccountsSkuGroupsSkusListCall) PageToken(pageToken string) *BillingAccountsSkuGroupsSkusListCall {
  4158  	c.urlParams_.Set("pageToken", pageToken)
  4159  	return c
  4160  }
  4161  
  4162  // Fields allows partial responses to be retrieved. See
  4163  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4164  // details.
  4165  func (c *BillingAccountsSkuGroupsSkusListCall) Fields(s ...googleapi.Field) *BillingAccountsSkuGroupsSkusListCall {
  4166  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4167  	return c
  4168  }
  4169  
  4170  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4171  // object's ETag matches the given value. This is useful for getting updates
  4172  // only after the object has changed since the last request.
  4173  func (c *BillingAccountsSkuGroupsSkusListCall) IfNoneMatch(entityTag string) *BillingAccountsSkuGroupsSkusListCall {
  4174  	c.ifNoneMatch_ = entityTag
  4175  	return c
  4176  }
  4177  
  4178  // Context sets the context to be used in this call's Do method.
  4179  func (c *BillingAccountsSkuGroupsSkusListCall) Context(ctx context.Context) *BillingAccountsSkuGroupsSkusListCall {
  4180  	c.ctx_ = ctx
  4181  	return c
  4182  }
  4183  
  4184  // Header returns a http.Header that can be modified by the caller to add
  4185  // headers to the request.
  4186  func (c *BillingAccountsSkuGroupsSkusListCall) Header() http.Header {
  4187  	if c.header_ == nil {
  4188  		c.header_ = make(http.Header)
  4189  	}
  4190  	return c.header_
  4191  }
  4192  
  4193  func (c *BillingAccountsSkuGroupsSkusListCall) doRequest(alt string) (*http.Response, error) {
  4194  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4195  	if c.ifNoneMatch_ != "" {
  4196  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4197  	}
  4198  	var body io.Reader = nil
  4199  	c.urlParams_.Set("alt", alt)
  4200  	c.urlParams_.Set("prettyPrint", "false")
  4201  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/skus")
  4202  	urls += "?" + c.urlParams_.Encode()
  4203  	req, err := http.NewRequest("GET", urls, body)
  4204  	if err != nil {
  4205  		return nil, err
  4206  	}
  4207  	req.Header = reqHeaders
  4208  	googleapi.Expand(req.URL, map[string]string{
  4209  		"parent": c.parent,
  4210  	})
  4211  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4212  }
  4213  
  4214  // Do executes the "cloudbilling.billingAccounts.skuGroups.skus.list" call.
  4215  // Any non-2xx status code is an error. Response headers are in either
  4216  // *GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroup
  4217  // SkusResponse.ServerResponse.Header or (if a response was returned at all) in
  4218  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4219  // whether the returned error was because http.StatusNotModified was returned.
  4220  func (c *BillingAccountsSkuGroupsSkusListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse, error) {
  4221  	gensupport.SetOptions(c.urlParams_, opts...)
  4222  	res, err := c.doRequest("json")
  4223  	if res != nil && res.StatusCode == http.StatusNotModified {
  4224  		if res.Body != nil {
  4225  			res.Body.Close()
  4226  		}
  4227  		return nil, gensupport.WrapError(&googleapi.Error{
  4228  			Code:   res.StatusCode,
  4229  			Header: res.Header,
  4230  		})
  4231  	}
  4232  	if err != nil {
  4233  		return nil, err
  4234  	}
  4235  	defer googleapi.CloseBody(res)
  4236  	if err := googleapi.CheckResponse(res); err != nil {
  4237  		return nil, gensupport.WrapError(err)
  4238  	}
  4239  	ret := &GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse{
  4240  		ServerResponse: googleapi.ServerResponse{
  4241  			Header:         res.Header,
  4242  			HTTPStatusCode: res.StatusCode,
  4243  		},
  4244  	}
  4245  	target := &ret
  4246  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4247  		return nil, err
  4248  	}
  4249  	return ret, nil
  4250  }
  4251  
  4252  // Pages invokes f for each page of results.
  4253  // A non-nil error returned from f will halt the iteration.
  4254  // The provided context supersedes any context provided to the Context method.
  4255  func (c *BillingAccountsSkuGroupsSkusListCall) Pages(ctx context.Context, f func(*GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse) error) error {
  4256  	c.ctx_ = ctx
  4257  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  4258  	for {
  4259  		x, err := c.Do()
  4260  		if err != nil {
  4261  			return err
  4262  		}
  4263  		if err := f(x); err != nil {
  4264  			return err
  4265  		}
  4266  		if x.NextPageToken == "" {
  4267  			return nil
  4268  		}
  4269  		c.PageToken(x.NextPageToken)
  4270  	}
  4271  }
  4272  
  4273  type BillingAccountsSkusGetCall struct {
  4274  	s            *Service
  4275  	name         string
  4276  	urlParams_   gensupport.URLParams
  4277  	ifNoneMatch_ string
  4278  	ctx_         context.Context
  4279  	header_      http.Header
  4280  }
  4281  
  4282  // Get: Gets a SKU visible to a billing account.
  4283  //
  4284  //   - name: The name of the billing account SKU to retrieve. Format:
  4285  //     billingAccounts/{billing_account}/skus/{sku}.
  4286  func (r *BillingAccountsSkusService) Get(name string) *BillingAccountsSkusGetCall {
  4287  	c := &BillingAccountsSkusGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4288  	c.name = name
  4289  	return c
  4290  }
  4291  
  4292  // Fields allows partial responses to be retrieved. See
  4293  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4294  // details.
  4295  func (c *BillingAccountsSkusGetCall) Fields(s ...googleapi.Field) *BillingAccountsSkusGetCall {
  4296  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4297  	return c
  4298  }
  4299  
  4300  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4301  // object's ETag matches the given value. This is useful for getting updates
  4302  // only after the object has changed since the last request.
  4303  func (c *BillingAccountsSkusGetCall) IfNoneMatch(entityTag string) *BillingAccountsSkusGetCall {
  4304  	c.ifNoneMatch_ = entityTag
  4305  	return c
  4306  }
  4307  
  4308  // Context sets the context to be used in this call's Do method.
  4309  func (c *BillingAccountsSkusGetCall) Context(ctx context.Context) *BillingAccountsSkusGetCall {
  4310  	c.ctx_ = ctx
  4311  	return c
  4312  }
  4313  
  4314  // Header returns a http.Header that can be modified by the caller to add
  4315  // headers to the request.
  4316  func (c *BillingAccountsSkusGetCall) Header() http.Header {
  4317  	if c.header_ == nil {
  4318  		c.header_ = make(http.Header)
  4319  	}
  4320  	return c.header_
  4321  }
  4322  
  4323  func (c *BillingAccountsSkusGetCall) doRequest(alt string) (*http.Response, error) {
  4324  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4325  	if c.ifNoneMatch_ != "" {
  4326  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4327  	}
  4328  	var body io.Reader = nil
  4329  	c.urlParams_.Set("alt", alt)
  4330  	c.urlParams_.Set("prettyPrint", "false")
  4331  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}")
  4332  	urls += "?" + c.urlParams_.Encode()
  4333  	req, err := http.NewRequest("GET", urls, body)
  4334  	if err != nil {
  4335  		return nil, err
  4336  	}
  4337  	req.Header = reqHeaders
  4338  	googleapi.Expand(req.URL, map[string]string{
  4339  		"name": c.name,
  4340  	})
  4341  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4342  }
  4343  
  4344  // Do executes the "cloudbilling.billingAccounts.skus.get" call.
  4345  // Any non-2xx status code is an error. Response headers are in either
  4346  // *GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku.ServerResponse.H
  4347  // eader or (if a response was returned at all) in
  4348  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4349  // whether the returned error was because http.StatusNotModified was returned.
  4350  func (c *BillingAccountsSkusGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku, error) {
  4351  	gensupport.SetOptions(c.urlParams_, opts...)
  4352  	res, err := c.doRequest("json")
  4353  	if res != nil && res.StatusCode == http.StatusNotModified {
  4354  		if res.Body != nil {
  4355  			res.Body.Close()
  4356  		}
  4357  		return nil, gensupport.WrapError(&googleapi.Error{
  4358  			Code:   res.StatusCode,
  4359  			Header: res.Header,
  4360  		})
  4361  	}
  4362  	if err != nil {
  4363  		return nil, err
  4364  	}
  4365  	defer googleapi.CloseBody(res)
  4366  	if err := googleapi.CheckResponse(res); err != nil {
  4367  		return nil, gensupport.WrapError(err)
  4368  	}
  4369  	ret := &GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku{
  4370  		ServerResponse: googleapi.ServerResponse{
  4371  			Header:         res.Header,
  4372  			HTTPStatusCode: res.StatusCode,
  4373  		},
  4374  	}
  4375  	target := &ret
  4376  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4377  		return nil, err
  4378  	}
  4379  	return ret, nil
  4380  }
  4381  
  4382  type BillingAccountsSkusListCall struct {
  4383  	s            *Service
  4384  	parent       string
  4385  	urlParams_   gensupport.URLParams
  4386  	ifNoneMatch_ string
  4387  	ctx_         context.Context
  4388  	header_      http.Header
  4389  }
  4390  
  4391  // List: Lists SKUs visible to a billing account.
  4392  //
  4393  //   - parent: The billing account to list billing account SKU from. Format:
  4394  //     billingAccounts/{billing_account}.
  4395  func (r *BillingAccountsSkusService) List(parent string) *BillingAccountsSkusListCall {
  4396  	c := &BillingAccountsSkusListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4397  	c.parent = parent
  4398  	return c
  4399  }
  4400  
  4401  // Filter sets the optional parameter "filter": Options for how to filter the
  4402  // billing account SKUs. Currently, only filter on `billing_account_service` is
  4403  // supported. Only !=, = operators are supported. Examples: -
  4404  // billing_account_service =
  4405  // "billingAccounts/012345-567890-ABCDEF/services/DA34-426B-A397"
  4406  func (c *BillingAccountsSkusListCall) Filter(filter string) *BillingAccountsSkusListCall {
  4407  	c.urlParams_.Set("filter", filter)
  4408  	return c
  4409  }
  4410  
  4411  // PageSize sets the optional parameter "pageSize": Maximum number of billing
  4412  // account SKUs to return. Results may return fewer than this value. Default
  4413  // value is 50 and maximum value is 5000.
  4414  func (c *BillingAccountsSkusListCall) PageSize(pageSize int64) *BillingAccountsSkusListCall {
  4415  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  4416  	return c
  4417  }
  4418  
  4419  // PageToken sets the optional parameter "pageToken": Page token received from
  4420  // a previous ListBillingAccountSkus call to retrieve the next page of results.
  4421  // If this field is empty, the first page is returned.
  4422  func (c *BillingAccountsSkusListCall) PageToken(pageToken string) *BillingAccountsSkusListCall {
  4423  	c.urlParams_.Set("pageToken", pageToken)
  4424  	return c
  4425  }
  4426  
  4427  // Fields allows partial responses to be retrieved. See
  4428  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4429  // details.
  4430  func (c *BillingAccountsSkusListCall) Fields(s ...googleapi.Field) *BillingAccountsSkusListCall {
  4431  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4432  	return c
  4433  }
  4434  
  4435  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4436  // object's ETag matches the given value. This is useful for getting updates
  4437  // only after the object has changed since the last request.
  4438  func (c *BillingAccountsSkusListCall) IfNoneMatch(entityTag string) *BillingAccountsSkusListCall {
  4439  	c.ifNoneMatch_ = entityTag
  4440  	return c
  4441  }
  4442  
  4443  // Context sets the context to be used in this call's Do method.
  4444  func (c *BillingAccountsSkusListCall) Context(ctx context.Context) *BillingAccountsSkusListCall {
  4445  	c.ctx_ = ctx
  4446  	return c
  4447  }
  4448  
  4449  // Header returns a http.Header that can be modified by the caller to add
  4450  // headers to the request.
  4451  func (c *BillingAccountsSkusListCall) Header() http.Header {
  4452  	if c.header_ == nil {
  4453  		c.header_ = make(http.Header)
  4454  	}
  4455  	return c.header_
  4456  }
  4457  
  4458  func (c *BillingAccountsSkusListCall) doRequest(alt string) (*http.Response, error) {
  4459  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4460  	if c.ifNoneMatch_ != "" {
  4461  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4462  	}
  4463  	var body io.Reader = nil
  4464  	c.urlParams_.Set("alt", alt)
  4465  	c.urlParams_.Set("prettyPrint", "false")
  4466  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/skus")
  4467  	urls += "?" + c.urlParams_.Encode()
  4468  	req, err := http.NewRequest("GET", urls, body)
  4469  	if err != nil {
  4470  		return nil, err
  4471  	}
  4472  	req.Header = reqHeaders
  4473  	googleapi.Expand(req.URL, map[string]string{
  4474  		"parent": c.parent,
  4475  	})
  4476  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4477  }
  4478  
  4479  // Do executes the "cloudbilling.billingAccounts.skus.list" call.
  4480  // Any non-2xx status code is an error. Response headers are in either
  4481  // *GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse.Ser
  4482  // verResponse.Header or (if a response was returned at all) in
  4483  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4484  // whether the returned error was because http.StatusNotModified was returned.
  4485  func (c *BillingAccountsSkusListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse, error) {
  4486  	gensupport.SetOptions(c.urlParams_, opts...)
  4487  	res, err := c.doRequest("json")
  4488  	if res != nil && res.StatusCode == http.StatusNotModified {
  4489  		if res.Body != nil {
  4490  			res.Body.Close()
  4491  		}
  4492  		return nil, gensupport.WrapError(&googleapi.Error{
  4493  			Code:   res.StatusCode,
  4494  			Header: res.Header,
  4495  		})
  4496  	}
  4497  	if err != nil {
  4498  		return nil, err
  4499  	}
  4500  	defer googleapi.CloseBody(res)
  4501  	if err := googleapi.CheckResponse(res); err != nil {
  4502  		return nil, gensupport.WrapError(err)
  4503  	}
  4504  	ret := &GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse{
  4505  		ServerResponse: googleapi.ServerResponse{
  4506  			Header:         res.Header,
  4507  			HTTPStatusCode: res.StatusCode,
  4508  		},
  4509  	}
  4510  	target := &ret
  4511  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4512  		return nil, err
  4513  	}
  4514  	return ret, nil
  4515  }
  4516  
  4517  // Pages invokes f for each page of results.
  4518  // A non-nil error returned from f will halt the iteration.
  4519  // The provided context supersedes any context provided to the Context method.
  4520  func (c *BillingAccountsSkusListCall) Pages(ctx context.Context, f func(*GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse) error) error {
  4521  	c.ctx_ = ctx
  4522  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  4523  	for {
  4524  		x, err := c.Do()
  4525  		if err != nil {
  4526  			return err
  4527  		}
  4528  		if err := f(x); err != nil {
  4529  			return err
  4530  		}
  4531  		if x.NextPageToken == "" {
  4532  			return nil
  4533  		}
  4534  		c.PageToken(x.NextPageToken)
  4535  	}
  4536  }
  4537  
  4538  type BillingAccountsSkusPriceGetCall struct {
  4539  	s            *Service
  4540  	name         string
  4541  	urlParams_   gensupport.URLParams
  4542  	ifNoneMatch_ string
  4543  	ctx_         context.Context
  4544  	header_      http.Header
  4545  }
  4546  
  4547  // Get: Gets the latest price for SKUs available to your Cloud Billing account.
  4548  //
  4549  //   - name: Name of the billing account price to retrieve. Format:
  4550  //     billingAccounts/{billing_account}/skus/{sku}/price.
  4551  func (r *BillingAccountsSkusPriceService) Get(name string) *BillingAccountsSkusPriceGetCall {
  4552  	c := &BillingAccountsSkusPriceGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4553  	c.name = name
  4554  	return c
  4555  }
  4556  
  4557  // CurrencyCode sets the optional parameter "currencyCode": ISO-4217 currency
  4558  // code for the price. If not specified, the currency of the billing account is
  4559  // used.
  4560  func (c *BillingAccountsSkusPriceGetCall) CurrencyCode(currencyCode string) *BillingAccountsSkusPriceGetCall {
  4561  	c.urlParams_.Set("currencyCode", currencyCode)
  4562  	return c
  4563  }
  4564  
  4565  // Fields allows partial responses to be retrieved. See
  4566  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4567  // details.
  4568  func (c *BillingAccountsSkusPriceGetCall) Fields(s ...googleapi.Field) *BillingAccountsSkusPriceGetCall {
  4569  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4570  	return c
  4571  }
  4572  
  4573  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4574  // object's ETag matches the given value. This is useful for getting updates
  4575  // only after the object has changed since the last request.
  4576  func (c *BillingAccountsSkusPriceGetCall) IfNoneMatch(entityTag string) *BillingAccountsSkusPriceGetCall {
  4577  	c.ifNoneMatch_ = entityTag
  4578  	return c
  4579  }
  4580  
  4581  // Context sets the context to be used in this call's Do method.
  4582  func (c *BillingAccountsSkusPriceGetCall) Context(ctx context.Context) *BillingAccountsSkusPriceGetCall {
  4583  	c.ctx_ = ctx
  4584  	return c
  4585  }
  4586  
  4587  // Header returns a http.Header that can be modified by the caller to add
  4588  // headers to the request.
  4589  func (c *BillingAccountsSkusPriceGetCall) Header() http.Header {
  4590  	if c.header_ == nil {
  4591  		c.header_ = make(http.Header)
  4592  	}
  4593  	return c.header_
  4594  }
  4595  
  4596  func (c *BillingAccountsSkusPriceGetCall) doRequest(alt string) (*http.Response, error) {
  4597  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4598  	if c.ifNoneMatch_ != "" {
  4599  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4600  	}
  4601  	var body io.Reader = nil
  4602  	c.urlParams_.Set("alt", alt)
  4603  	c.urlParams_.Set("prettyPrint", "false")
  4604  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}")
  4605  	urls += "?" + c.urlParams_.Encode()
  4606  	req, err := http.NewRequest("GET", urls, body)
  4607  	if err != nil {
  4608  		return nil, err
  4609  	}
  4610  	req.Header = reqHeaders
  4611  	googleapi.Expand(req.URL, map[string]string{
  4612  		"name": c.name,
  4613  	})
  4614  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4615  }
  4616  
  4617  // Do executes the "cloudbilling.billingAccounts.skus.price.get" call.
  4618  // Any non-2xx status code is an error. Response headers are in either
  4619  // *GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice.ServerRespon
  4620  // se.Header or (if a response was returned at all) in
  4621  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4622  // whether the returned error was because http.StatusNotModified was returned.
  4623  func (c *BillingAccountsSkusPriceGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice, error) {
  4624  	gensupport.SetOptions(c.urlParams_, opts...)
  4625  	res, err := c.doRequest("json")
  4626  	if res != nil && res.StatusCode == http.StatusNotModified {
  4627  		if res.Body != nil {
  4628  			res.Body.Close()
  4629  		}
  4630  		return nil, gensupport.WrapError(&googleapi.Error{
  4631  			Code:   res.StatusCode,
  4632  			Header: res.Header,
  4633  		})
  4634  	}
  4635  	if err != nil {
  4636  		return nil, err
  4637  	}
  4638  	defer googleapi.CloseBody(res)
  4639  	if err := googleapi.CheckResponse(res); err != nil {
  4640  		return nil, gensupport.WrapError(err)
  4641  	}
  4642  	ret := &GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice{
  4643  		ServerResponse: googleapi.ServerResponse{
  4644  			Header:         res.Header,
  4645  			HTTPStatusCode: res.StatusCode,
  4646  		},
  4647  	}
  4648  	target := &ret
  4649  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4650  		return nil, err
  4651  	}
  4652  	return ret, nil
  4653  }
  4654  
  4655  type BillingAccountsSkusPricesListCall struct {
  4656  	s            *Service
  4657  	parent       string
  4658  	urlParams_   gensupport.URLParams
  4659  	ifNoneMatch_ string
  4660  	ctx_         context.Context
  4661  	header_      http.Header
  4662  }
  4663  
  4664  // List: Lists the latest prices for SKUs available to your Cloud Billing
  4665  // account.
  4666  //
  4667  //   - parent: To list all Billing Account SKUs, use `-` as the SKU ID. Format:
  4668  //     `billingAccounts/{billing_account}/skus/-` Note: Specifying an actual SKU
  4669  //     resource id will return a collection of one Billing Account Price.
  4670  func (r *BillingAccountsSkusPricesService) List(parent string) *BillingAccountsSkusPricesListCall {
  4671  	c := &BillingAccountsSkusPricesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4672  	c.parent = parent
  4673  	return c
  4674  }
  4675  
  4676  // CurrencyCode sets the optional parameter "currencyCode": ISO-4217 currency
  4677  // code for the price. If not specified, currency of billing account will be
  4678  // used.
  4679  func (c *BillingAccountsSkusPricesListCall) CurrencyCode(currencyCode string) *BillingAccountsSkusPricesListCall {
  4680  	c.urlParams_.Set("currencyCode", currencyCode)
  4681  	return c
  4682  }
  4683  
  4684  // PageSize sets the optional parameter "pageSize": Maximum number of billing
  4685  // account price to return. Results may return fewer than this value. Default
  4686  // value is 50 and maximum value is 5000.
  4687  func (c *BillingAccountsSkusPricesListCall) PageSize(pageSize int64) *BillingAccountsSkusPricesListCall {
  4688  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  4689  	return c
  4690  }
  4691  
  4692  // PageToken sets the optional parameter "pageToken": Page token received from
  4693  // a previous ListBillingAccountPrices call to retrieve the next page of
  4694  // results. If this field is empty, the first page is returned.
  4695  func (c *BillingAccountsSkusPricesListCall) PageToken(pageToken string) *BillingAccountsSkusPricesListCall {
  4696  	c.urlParams_.Set("pageToken", pageToken)
  4697  	return c
  4698  }
  4699  
  4700  // Fields allows partial responses to be retrieved. See
  4701  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4702  // details.
  4703  func (c *BillingAccountsSkusPricesListCall) Fields(s ...googleapi.Field) *BillingAccountsSkusPricesListCall {
  4704  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4705  	return c
  4706  }
  4707  
  4708  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4709  // object's ETag matches the given value. This is useful for getting updates
  4710  // only after the object has changed since the last request.
  4711  func (c *BillingAccountsSkusPricesListCall) IfNoneMatch(entityTag string) *BillingAccountsSkusPricesListCall {
  4712  	c.ifNoneMatch_ = entityTag
  4713  	return c
  4714  }
  4715  
  4716  // Context sets the context to be used in this call's Do method.
  4717  func (c *BillingAccountsSkusPricesListCall) Context(ctx context.Context) *BillingAccountsSkusPricesListCall {
  4718  	c.ctx_ = ctx
  4719  	return c
  4720  }
  4721  
  4722  // Header returns a http.Header that can be modified by the caller to add
  4723  // headers to the request.
  4724  func (c *BillingAccountsSkusPricesListCall) Header() http.Header {
  4725  	if c.header_ == nil {
  4726  		c.header_ = make(http.Header)
  4727  	}
  4728  	return c.header_
  4729  }
  4730  
  4731  func (c *BillingAccountsSkusPricesListCall) doRequest(alt string) (*http.Response, error) {
  4732  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4733  	if c.ifNoneMatch_ != "" {
  4734  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4735  	}
  4736  	var body io.Reader = nil
  4737  	c.urlParams_.Set("alt", alt)
  4738  	c.urlParams_.Set("prettyPrint", "false")
  4739  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/prices")
  4740  	urls += "?" + c.urlParams_.Encode()
  4741  	req, err := http.NewRequest("GET", urls, body)
  4742  	if err != nil {
  4743  		return nil, err
  4744  	}
  4745  	req.Header = reqHeaders
  4746  	googleapi.Expand(req.URL, map[string]string{
  4747  		"parent": c.parent,
  4748  	})
  4749  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4750  }
  4751  
  4752  // Do executes the "cloudbilling.billingAccounts.skus.prices.list" call.
  4753  // Any non-2xx status code is an error. Response headers are in either
  4754  // *GoogleCloudBillingBillingaccountpricesV1betaListBillingAccountPricesResponse
  4755  // .ServerResponse.Header or (if a response was returned at all) in
  4756  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4757  // whether the returned error was because http.StatusNotModified was returned.
  4758  func (c *BillingAccountsSkusPricesListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountpricesV1betaListBillingAccountPricesResponse, error) {
  4759  	gensupport.SetOptions(c.urlParams_, opts...)
  4760  	res, err := c.doRequest("json")
  4761  	if res != nil && res.StatusCode == http.StatusNotModified {
  4762  		if res.Body != nil {
  4763  			res.Body.Close()
  4764  		}
  4765  		return nil, gensupport.WrapError(&googleapi.Error{
  4766  			Code:   res.StatusCode,
  4767  			Header: res.Header,
  4768  		})
  4769  	}
  4770  	if err != nil {
  4771  		return nil, err
  4772  	}
  4773  	defer googleapi.CloseBody(res)
  4774  	if err := googleapi.CheckResponse(res); err != nil {
  4775  		return nil, gensupport.WrapError(err)
  4776  	}
  4777  	ret := &GoogleCloudBillingBillingaccountpricesV1betaListBillingAccountPricesResponse{
  4778  		ServerResponse: googleapi.ServerResponse{
  4779  			Header:         res.Header,
  4780  			HTTPStatusCode: res.StatusCode,
  4781  		},
  4782  	}
  4783  	target := &ret
  4784  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4785  		return nil, err
  4786  	}
  4787  	return ret, nil
  4788  }
  4789  
  4790  // Pages invokes f for each page of results.
  4791  // A non-nil error returned from f will halt the iteration.
  4792  // The provided context supersedes any context provided to the Context method.
  4793  func (c *BillingAccountsSkusPricesListCall) Pages(ctx context.Context, f func(*GoogleCloudBillingBillingaccountpricesV1betaListBillingAccountPricesResponse) error) error {
  4794  	c.ctx_ = ctx
  4795  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  4796  	for {
  4797  		x, err := c.Do()
  4798  		if err != nil {
  4799  			return err
  4800  		}
  4801  		if err := f(x); err != nil {
  4802  			return err
  4803  		}
  4804  		if x.NextPageToken == "" {
  4805  			return nil
  4806  		}
  4807  		c.PageToken(x.NextPageToken)
  4808  	}
  4809  }
  4810  
  4811  type SkuGroupsGetCall struct {
  4812  	s            *Service
  4813  	name         string
  4814  	urlParams_   gensupport.URLParams
  4815  	ifNoneMatch_ string
  4816  	ctx_         context.Context
  4817  	header_      http.Header
  4818  }
  4819  
  4820  // Get: Gets a publicly listed SKU group.
  4821  //
  4822  // - name: The name of the SKU group to retrieve. Format: skuGroups/{sku_group}.
  4823  func (r *SkuGroupsService) Get(name string) *SkuGroupsGetCall {
  4824  	c := &SkuGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4825  	c.name = name
  4826  	return c
  4827  }
  4828  
  4829  // Fields allows partial responses to be retrieved. See
  4830  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4831  // details.
  4832  func (c *SkuGroupsGetCall) Fields(s ...googleapi.Field) *SkuGroupsGetCall {
  4833  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4834  	return c
  4835  }
  4836  
  4837  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4838  // object's ETag matches the given value. This is useful for getting updates
  4839  // only after the object has changed since the last request.
  4840  func (c *SkuGroupsGetCall) IfNoneMatch(entityTag string) *SkuGroupsGetCall {
  4841  	c.ifNoneMatch_ = entityTag
  4842  	return c
  4843  }
  4844  
  4845  // Context sets the context to be used in this call's Do method.
  4846  func (c *SkuGroupsGetCall) Context(ctx context.Context) *SkuGroupsGetCall {
  4847  	c.ctx_ = ctx
  4848  	return c
  4849  }
  4850  
  4851  // Header returns a http.Header that can be modified by the caller to add
  4852  // headers to the request.
  4853  func (c *SkuGroupsGetCall) Header() http.Header {
  4854  	if c.header_ == nil {
  4855  		c.header_ = make(http.Header)
  4856  	}
  4857  	return c.header_
  4858  }
  4859  
  4860  func (c *SkuGroupsGetCall) doRequest(alt string) (*http.Response, error) {
  4861  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4862  	if c.ifNoneMatch_ != "" {
  4863  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4864  	}
  4865  	var body io.Reader = nil
  4866  	c.urlParams_.Set("alt", alt)
  4867  	c.urlParams_.Set("prettyPrint", "false")
  4868  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}")
  4869  	urls += "?" + c.urlParams_.Encode()
  4870  	req, err := http.NewRequest("GET", urls, body)
  4871  	if err != nil {
  4872  		return nil, err
  4873  	}
  4874  	req.Header = reqHeaders
  4875  	googleapi.Expand(req.URL, map[string]string{
  4876  		"name": c.name,
  4877  	})
  4878  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4879  }
  4880  
  4881  // Do executes the "cloudbilling.skuGroups.get" call.
  4882  // Any non-2xx status code is an error. Response headers are in either
  4883  // *GoogleCloudBillingSkugroupsV1betaSkuGroup.ServerResponse.Header or (if a
  4884  // response was returned at all) in error.(*googleapi.Error).Header. Use
  4885  // googleapi.IsNotModified to check whether the returned error was because
  4886  // http.StatusNotModified was returned.
  4887  func (c *SkuGroupsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingSkugroupsV1betaSkuGroup, error) {
  4888  	gensupport.SetOptions(c.urlParams_, opts...)
  4889  	res, err := c.doRequest("json")
  4890  	if res != nil && res.StatusCode == http.StatusNotModified {
  4891  		if res.Body != nil {
  4892  			res.Body.Close()
  4893  		}
  4894  		return nil, gensupport.WrapError(&googleapi.Error{
  4895  			Code:   res.StatusCode,
  4896  			Header: res.Header,
  4897  		})
  4898  	}
  4899  	if err != nil {
  4900  		return nil, err
  4901  	}
  4902  	defer googleapi.CloseBody(res)
  4903  	if err := googleapi.CheckResponse(res); err != nil {
  4904  		return nil, gensupport.WrapError(err)
  4905  	}
  4906  	ret := &GoogleCloudBillingSkugroupsV1betaSkuGroup{
  4907  		ServerResponse: googleapi.ServerResponse{
  4908  			Header:         res.Header,
  4909  			HTTPStatusCode: res.StatusCode,
  4910  		},
  4911  	}
  4912  	target := &ret
  4913  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4914  		return nil, err
  4915  	}
  4916  	return ret, nil
  4917  }
  4918  
  4919  type SkuGroupsListCall struct {
  4920  	s            *Service
  4921  	urlParams_   gensupport.URLParams
  4922  	ifNoneMatch_ string
  4923  	ctx_         context.Context
  4924  	header_      http.Header
  4925  }
  4926  
  4927  // List: Lists all publicly listed SKU groups.
  4928  func (r *SkuGroupsService) List() *SkuGroupsListCall {
  4929  	c := &SkuGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4930  	return c
  4931  }
  4932  
  4933  // PageSize sets the optional parameter "pageSize": Maximum number of SKU
  4934  // groups to return. Results may return fewer than this value. Default value is
  4935  // 50 and maximum value is 5000.
  4936  func (c *SkuGroupsListCall) PageSize(pageSize int64) *SkuGroupsListCall {
  4937  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  4938  	return c
  4939  }
  4940  
  4941  // PageToken sets the optional parameter "pageToken": Page token received from
  4942  // a previous ListSkuGroups call to retrieve the next page of results. If this
  4943  // field is empty, the first page is returned.
  4944  func (c *SkuGroupsListCall) PageToken(pageToken string) *SkuGroupsListCall {
  4945  	c.urlParams_.Set("pageToken", pageToken)
  4946  	return c
  4947  }
  4948  
  4949  // Fields allows partial responses to be retrieved. See
  4950  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4951  // details.
  4952  func (c *SkuGroupsListCall) Fields(s ...googleapi.Field) *SkuGroupsListCall {
  4953  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4954  	return c
  4955  }
  4956  
  4957  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4958  // object's ETag matches the given value. This is useful for getting updates
  4959  // only after the object has changed since the last request.
  4960  func (c *SkuGroupsListCall) IfNoneMatch(entityTag string) *SkuGroupsListCall {
  4961  	c.ifNoneMatch_ = entityTag
  4962  	return c
  4963  }
  4964  
  4965  // Context sets the context to be used in this call's Do method.
  4966  func (c *SkuGroupsListCall) Context(ctx context.Context) *SkuGroupsListCall {
  4967  	c.ctx_ = ctx
  4968  	return c
  4969  }
  4970  
  4971  // Header returns a http.Header that can be modified by the caller to add
  4972  // headers to the request.
  4973  func (c *SkuGroupsListCall) Header() http.Header {
  4974  	if c.header_ == nil {
  4975  		c.header_ = make(http.Header)
  4976  	}
  4977  	return c.header_
  4978  }
  4979  
  4980  func (c *SkuGroupsListCall) doRequest(alt string) (*http.Response, error) {
  4981  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4982  	if c.ifNoneMatch_ != "" {
  4983  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4984  	}
  4985  	var body io.Reader = nil
  4986  	c.urlParams_.Set("alt", alt)
  4987  	c.urlParams_.Set("prettyPrint", "false")
  4988  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/skuGroups")
  4989  	urls += "?" + c.urlParams_.Encode()
  4990  	req, err := http.NewRequest("GET", urls, body)
  4991  	if err != nil {
  4992  		return nil, err
  4993  	}
  4994  	req.Header = reqHeaders
  4995  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4996  }
  4997  
  4998  // Do executes the "cloudbilling.skuGroups.list" call.
  4999  // Any non-2xx status code is an error. Response headers are in either
  5000  // *GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse.ServerResponse.Header
  5001  //
  5002  //	or (if a response was returned at all) in error.(*googleapi.Error).Header.
  5003  //
  5004  // Use googleapi.IsNotModified to check whether the returned error was because
  5005  // http.StatusNotModified was returned.
  5006  func (c *SkuGroupsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse, error) {
  5007  	gensupport.SetOptions(c.urlParams_, opts...)
  5008  	res, err := c.doRequest("json")
  5009  	if res != nil && res.StatusCode == http.StatusNotModified {
  5010  		if res.Body != nil {
  5011  			res.Body.Close()
  5012  		}
  5013  		return nil, gensupport.WrapError(&googleapi.Error{
  5014  			Code:   res.StatusCode,
  5015  			Header: res.Header,
  5016  		})
  5017  	}
  5018  	if err != nil {
  5019  		return nil, err
  5020  	}
  5021  	defer googleapi.CloseBody(res)
  5022  	if err := googleapi.CheckResponse(res); err != nil {
  5023  		return nil, gensupport.WrapError(err)
  5024  	}
  5025  	ret := &GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse{
  5026  		ServerResponse: googleapi.ServerResponse{
  5027  			Header:         res.Header,
  5028  			HTTPStatusCode: res.StatusCode,
  5029  		},
  5030  	}
  5031  	target := &ret
  5032  	if err := gensupport.DecodeResponse(target, res); err != nil {
  5033  		return nil, err
  5034  	}
  5035  	return ret, nil
  5036  }
  5037  
  5038  // Pages invokes f for each page of results.
  5039  // A non-nil error returned from f will halt the iteration.
  5040  // The provided context supersedes any context provided to the Context method.
  5041  func (c *SkuGroupsListCall) Pages(ctx context.Context, f func(*GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse) error) error {
  5042  	c.ctx_ = ctx
  5043  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  5044  	for {
  5045  		x, err := c.Do()
  5046  		if err != nil {
  5047  			return err
  5048  		}
  5049  		if err := f(x); err != nil {
  5050  			return err
  5051  		}
  5052  		if x.NextPageToken == "" {
  5053  			return nil
  5054  		}
  5055  		c.PageToken(x.NextPageToken)
  5056  	}
  5057  }
  5058  
  5059  type SkuGroupsSkusGetCall struct {
  5060  	s            *Service
  5061  	name         string
  5062  	urlParams_   gensupport.URLParams
  5063  	ifNoneMatch_ string
  5064  	ctx_         context.Context
  5065  	header_      http.Header
  5066  }
  5067  
  5068  // Get: Gets a publicly listed SKU that is part of a publicly listed SKU group.
  5069  //
  5070  //   - name: The name of the SKU group SKU to retrieve. Format:
  5071  //     skuGroups/{sku_group}/skus/{sku}.
  5072  func (r *SkuGroupsSkusService) Get(name string) *SkuGroupsSkusGetCall {
  5073  	c := &SkuGroupsSkusGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  5074  	c.name = name
  5075  	return c
  5076  }
  5077  
  5078  // Fields allows partial responses to be retrieved. See
  5079  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  5080  // details.
  5081  func (c *SkuGroupsSkusGetCall) Fields(s ...googleapi.Field) *SkuGroupsSkusGetCall {
  5082  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  5083  	return c
  5084  }
  5085  
  5086  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  5087  // object's ETag matches the given value. This is useful for getting updates
  5088  // only after the object has changed since the last request.
  5089  func (c *SkuGroupsSkusGetCall) IfNoneMatch(entityTag string) *SkuGroupsSkusGetCall {
  5090  	c.ifNoneMatch_ = entityTag
  5091  	return c
  5092  }
  5093  
  5094  // Context sets the context to be used in this call's Do method.
  5095  func (c *SkuGroupsSkusGetCall) Context(ctx context.Context) *SkuGroupsSkusGetCall {
  5096  	c.ctx_ = ctx
  5097  	return c
  5098  }
  5099  
  5100  // Header returns a http.Header that can be modified by the caller to add
  5101  // headers to the request.
  5102  func (c *SkuGroupsSkusGetCall) Header() http.Header {
  5103  	if c.header_ == nil {
  5104  		c.header_ = make(http.Header)
  5105  	}
  5106  	return c.header_
  5107  }
  5108  
  5109  func (c *SkuGroupsSkusGetCall) doRequest(alt string) (*http.Response, error) {
  5110  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  5111  	if c.ifNoneMatch_ != "" {
  5112  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  5113  	}
  5114  	var body io.Reader = nil
  5115  	c.urlParams_.Set("alt", alt)
  5116  	c.urlParams_.Set("prettyPrint", "false")
  5117  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}")
  5118  	urls += "?" + c.urlParams_.Encode()
  5119  	req, err := http.NewRequest("GET", urls, body)
  5120  	if err != nil {
  5121  		return nil, err
  5122  	}
  5123  	req.Header = reqHeaders
  5124  	googleapi.Expand(req.URL, map[string]string{
  5125  		"name": c.name,
  5126  	})
  5127  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  5128  }
  5129  
  5130  // Do executes the "cloudbilling.skuGroups.skus.get" call.
  5131  // Any non-2xx status code is an error. Response headers are in either
  5132  // *GoogleCloudBillingSkugroupskusV1betaSkuGroupSku.ServerResponse.Header or
  5133  // (if a response was returned at all) in error.(*googleapi.Error).Header. Use
  5134  // googleapi.IsNotModified to check whether the returned error was because
  5135  // http.StatusNotModified was returned.
  5136  func (c *SkuGroupsSkusGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingSkugroupskusV1betaSkuGroupSku, error) {
  5137  	gensupport.SetOptions(c.urlParams_, opts...)
  5138  	res, err := c.doRequest("json")
  5139  	if res != nil && res.StatusCode == http.StatusNotModified {
  5140  		if res.Body != nil {
  5141  			res.Body.Close()
  5142  		}
  5143  		return nil, gensupport.WrapError(&googleapi.Error{
  5144  			Code:   res.StatusCode,
  5145  			Header: res.Header,
  5146  		})
  5147  	}
  5148  	if err != nil {
  5149  		return nil, err
  5150  	}
  5151  	defer googleapi.CloseBody(res)
  5152  	if err := googleapi.CheckResponse(res); err != nil {
  5153  		return nil, gensupport.WrapError(err)
  5154  	}
  5155  	ret := &GoogleCloudBillingSkugroupskusV1betaSkuGroupSku{
  5156  		ServerResponse: googleapi.ServerResponse{
  5157  			Header:         res.Header,
  5158  			HTTPStatusCode: res.StatusCode,
  5159  		},
  5160  	}
  5161  	target := &ret
  5162  	if err := gensupport.DecodeResponse(target, res); err != nil {
  5163  		return nil, err
  5164  	}
  5165  	return ret, nil
  5166  }
  5167  
  5168  type SkuGroupsSkusListCall struct {
  5169  	s            *Service
  5170  	parent       string
  5171  	urlParams_   gensupport.URLParams
  5172  	ifNoneMatch_ string
  5173  	ctx_         context.Context
  5174  	header_      http.Header
  5175  }
  5176  
  5177  // List: Lists all publicly listed SKUs contained by a publicly listed SKU
  5178  // group.
  5179  //
  5180  //   - parent: The SkuGroup to list SkuGroupSku from. Format:
  5181  //     skuGroups/{sku_group}.
  5182  func (r *SkuGroupsSkusService) List(parent string) *SkuGroupsSkusListCall {
  5183  	c := &SkuGroupsSkusListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  5184  	c.parent = parent
  5185  	return c
  5186  }
  5187  
  5188  // PageSize sets the optional parameter "pageSize": Maximum number of SKU group
  5189  // SKUs to return. Results may return fewer than this value. Default value is
  5190  // 50 and maximum value is 5000.
  5191  func (c *SkuGroupsSkusListCall) PageSize(pageSize int64) *SkuGroupsSkusListCall {
  5192  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  5193  	return c
  5194  }
  5195  
  5196  // PageToken sets the optional parameter "pageToken": Page token received from
  5197  // a previous ListSkuGroupSkus call to retrieve the next page of results. If
  5198  // this field is empty, the first page is returned.
  5199  func (c *SkuGroupsSkusListCall) PageToken(pageToken string) *SkuGroupsSkusListCall {
  5200  	c.urlParams_.Set("pageToken", pageToken)
  5201  	return c
  5202  }
  5203  
  5204  // Fields allows partial responses to be retrieved. See
  5205  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  5206  // details.
  5207  func (c *SkuGroupsSkusListCall) Fields(s ...googleapi.Field) *SkuGroupsSkusListCall {
  5208  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  5209  	return c
  5210  }
  5211  
  5212  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  5213  // object's ETag matches the given value. This is useful for getting updates
  5214  // only after the object has changed since the last request.
  5215  func (c *SkuGroupsSkusListCall) IfNoneMatch(entityTag string) *SkuGroupsSkusListCall {
  5216  	c.ifNoneMatch_ = entityTag
  5217  	return c
  5218  }
  5219  
  5220  // Context sets the context to be used in this call's Do method.
  5221  func (c *SkuGroupsSkusListCall) Context(ctx context.Context) *SkuGroupsSkusListCall {
  5222  	c.ctx_ = ctx
  5223  	return c
  5224  }
  5225  
  5226  // Header returns a http.Header that can be modified by the caller to add
  5227  // headers to the request.
  5228  func (c *SkuGroupsSkusListCall) Header() http.Header {
  5229  	if c.header_ == nil {
  5230  		c.header_ = make(http.Header)
  5231  	}
  5232  	return c.header_
  5233  }
  5234  
  5235  func (c *SkuGroupsSkusListCall) doRequest(alt string) (*http.Response, error) {
  5236  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  5237  	if c.ifNoneMatch_ != "" {
  5238  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  5239  	}
  5240  	var body io.Reader = nil
  5241  	c.urlParams_.Set("alt", alt)
  5242  	c.urlParams_.Set("prettyPrint", "false")
  5243  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/skus")
  5244  	urls += "?" + c.urlParams_.Encode()
  5245  	req, err := http.NewRequest("GET", urls, body)
  5246  	if err != nil {
  5247  		return nil, err
  5248  	}
  5249  	req.Header = reqHeaders
  5250  	googleapi.Expand(req.URL, map[string]string{
  5251  		"parent": c.parent,
  5252  	})
  5253  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  5254  }
  5255  
  5256  // Do executes the "cloudbilling.skuGroups.skus.list" call.
  5257  // Any non-2xx status code is an error. Response headers are in either
  5258  // *GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse.ServerResponse.
  5259  // Header or (if a response was returned at all) in
  5260  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  5261  // whether the returned error was because http.StatusNotModified was returned.
  5262  func (c *SkuGroupsSkusListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse, error) {
  5263  	gensupport.SetOptions(c.urlParams_, opts...)
  5264  	res, err := c.doRequest("json")
  5265  	if res != nil && res.StatusCode == http.StatusNotModified {
  5266  		if res.Body != nil {
  5267  			res.Body.Close()
  5268  		}
  5269  		return nil, gensupport.WrapError(&googleapi.Error{
  5270  			Code:   res.StatusCode,
  5271  			Header: res.Header,
  5272  		})
  5273  	}
  5274  	if err != nil {
  5275  		return nil, err
  5276  	}
  5277  	defer googleapi.CloseBody(res)
  5278  	if err := googleapi.CheckResponse(res); err != nil {
  5279  		return nil, gensupport.WrapError(err)
  5280  	}
  5281  	ret := &GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse{
  5282  		ServerResponse: googleapi.ServerResponse{
  5283  			Header:         res.Header,
  5284  			HTTPStatusCode: res.StatusCode,
  5285  		},
  5286  	}
  5287  	target := &ret
  5288  	if err := gensupport.DecodeResponse(target, res); err != nil {
  5289  		return nil, err
  5290  	}
  5291  	return ret, nil
  5292  }
  5293  
  5294  // Pages invokes f for each page of results.
  5295  // A non-nil error returned from f will halt the iteration.
  5296  // The provided context supersedes any context provided to the Context method.
  5297  func (c *SkuGroupsSkusListCall) Pages(ctx context.Context, f func(*GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse) error) error {
  5298  	c.ctx_ = ctx
  5299  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  5300  	for {
  5301  		x, err := c.Do()
  5302  		if err != nil {
  5303  			return err
  5304  		}
  5305  		if err := f(x); err != nil {
  5306  			return err
  5307  		}
  5308  		if x.NextPageToken == "" {
  5309  			return nil
  5310  		}
  5311  		c.PageToken(x.NextPageToken)
  5312  	}
  5313  }
  5314  
  5315  type SkusPriceGetCall struct {
  5316  	s            *Service
  5317  	name         string
  5318  	urlParams_   gensupport.URLParams
  5319  	ifNoneMatch_ string
  5320  	ctx_         context.Context
  5321  	header_      http.Header
  5322  }
  5323  
  5324  // Get: Gets the latest price for the given SKU.
  5325  //
  5326  // - name: Name of the latest price to retrieve. Format: skus/{sku}/price.
  5327  func (r *SkusPriceService) Get(name string) *SkusPriceGetCall {
  5328  	c := &SkusPriceGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  5329  	c.name = name
  5330  	return c
  5331  }
  5332  
  5333  // CurrencyCode sets the optional parameter "currencyCode": ISO-4217 currency
  5334  // code for the price. If not specified, USD will be used.
  5335  func (c *SkusPriceGetCall) CurrencyCode(currencyCode string) *SkusPriceGetCall {
  5336  	c.urlParams_.Set("currencyCode", currencyCode)
  5337  	return c
  5338  }
  5339  
  5340  // Fields allows partial responses to be retrieved. See
  5341  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  5342  // details.
  5343  func (c *SkusPriceGetCall) Fields(s ...googleapi.Field) *SkusPriceGetCall {
  5344  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  5345  	return c
  5346  }
  5347  
  5348  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  5349  // object's ETag matches the given value. This is useful for getting updates
  5350  // only after the object has changed since the last request.
  5351  func (c *SkusPriceGetCall) IfNoneMatch(entityTag string) *SkusPriceGetCall {
  5352  	c.ifNoneMatch_ = entityTag
  5353  	return c
  5354  }
  5355  
  5356  // Context sets the context to be used in this call's Do method.
  5357  func (c *SkusPriceGetCall) Context(ctx context.Context) *SkusPriceGetCall {
  5358  	c.ctx_ = ctx
  5359  	return c
  5360  }
  5361  
  5362  // Header returns a http.Header that can be modified by the caller to add
  5363  // headers to the request.
  5364  func (c *SkusPriceGetCall) Header() http.Header {
  5365  	if c.header_ == nil {
  5366  		c.header_ = make(http.Header)
  5367  	}
  5368  	return c.header_
  5369  }
  5370  
  5371  func (c *SkusPriceGetCall) doRequest(alt string) (*http.Response, error) {
  5372  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  5373  	if c.ifNoneMatch_ != "" {
  5374  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  5375  	}
  5376  	var body io.Reader = nil
  5377  	c.urlParams_.Set("alt", alt)
  5378  	c.urlParams_.Set("prettyPrint", "false")
  5379  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}")
  5380  	urls += "?" + c.urlParams_.Encode()
  5381  	req, err := http.NewRequest("GET", urls, body)
  5382  	if err != nil {
  5383  		return nil, err
  5384  	}
  5385  	req.Header = reqHeaders
  5386  	googleapi.Expand(req.URL, map[string]string{
  5387  		"name": c.name,
  5388  	})
  5389  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  5390  }
  5391  
  5392  // Do executes the "cloudbilling.skus.price.get" call.
  5393  // Any non-2xx status code is an error. Response headers are in either
  5394  // *GoogleCloudBillingPricesV1betaPrice.ServerResponse.Header or (if a response
  5395  // was returned at all) in error.(*googleapi.Error).Header. Use
  5396  // googleapi.IsNotModified to check whether the returned error was because
  5397  // http.StatusNotModified was returned.
  5398  func (c *SkusPriceGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingPricesV1betaPrice, error) {
  5399  	gensupport.SetOptions(c.urlParams_, opts...)
  5400  	res, err := c.doRequest("json")
  5401  	if res != nil && res.StatusCode == http.StatusNotModified {
  5402  		if res.Body != nil {
  5403  			res.Body.Close()
  5404  		}
  5405  		return nil, gensupport.WrapError(&googleapi.Error{
  5406  			Code:   res.StatusCode,
  5407  			Header: res.Header,
  5408  		})
  5409  	}
  5410  	if err != nil {
  5411  		return nil, err
  5412  	}
  5413  	defer googleapi.CloseBody(res)
  5414  	if err := googleapi.CheckResponse(res); err != nil {
  5415  		return nil, gensupport.WrapError(err)
  5416  	}
  5417  	ret := &GoogleCloudBillingPricesV1betaPrice{
  5418  		ServerResponse: googleapi.ServerResponse{
  5419  			Header:         res.Header,
  5420  			HTTPStatusCode: res.StatusCode,
  5421  		},
  5422  	}
  5423  	target := &ret
  5424  	if err := gensupport.DecodeResponse(target, res); err != nil {
  5425  		return nil, err
  5426  	}
  5427  	return ret, nil
  5428  }
  5429  
  5430  type SkusPricesListCall struct {
  5431  	s            *Service
  5432  	parent       string
  5433  	urlParams_   gensupport.URLParams
  5434  	ifNoneMatch_ string
  5435  	ctx_         context.Context
  5436  	header_      http.Header
  5437  }
  5438  
  5439  // List: Lists the latest prices for all SKUs.
  5440  //
  5441  //   - parent: To list the prices for all SKUs, use `-` as the SKU ID. Format:
  5442  //     `skus/-` Specifying a specific SKU ID returns a collection with one Price
  5443  //     object for the SKU.
  5444  func (r *SkusPricesService) List(parent string) *SkusPricesListCall {
  5445  	c := &SkusPricesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  5446  	c.parent = parent
  5447  	return c
  5448  }
  5449  
  5450  // CurrencyCode sets the optional parameter "currencyCode": ISO-4217 currency
  5451  // code for the price. If not specified, USD will be used.
  5452  func (c *SkusPricesListCall) CurrencyCode(currencyCode string) *SkusPricesListCall {
  5453  	c.urlParams_.Set("currencyCode", currencyCode)
  5454  	return c
  5455  }
  5456  
  5457  // PageSize sets the optional parameter "pageSize": Maximum number of prices to
  5458  // return. Results may return fewer than this value. Default value is 50 and
  5459  // maximum value is 5000.
  5460  func (c *SkusPricesListCall) PageSize(pageSize int64) *SkusPricesListCall {
  5461  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  5462  	return c
  5463  }
  5464  
  5465  // PageToken sets the optional parameter "pageToken": Page token received from
  5466  // a previous ListPrices call to retrieve the next page of results. If this
  5467  // field is empty, the first page is returned.
  5468  func (c *SkusPricesListCall) PageToken(pageToken string) *SkusPricesListCall {
  5469  	c.urlParams_.Set("pageToken", pageToken)
  5470  	return c
  5471  }
  5472  
  5473  // Fields allows partial responses to be retrieved. See
  5474  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  5475  // details.
  5476  func (c *SkusPricesListCall) Fields(s ...googleapi.Field) *SkusPricesListCall {
  5477  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  5478  	return c
  5479  }
  5480  
  5481  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  5482  // object's ETag matches the given value. This is useful for getting updates
  5483  // only after the object has changed since the last request.
  5484  func (c *SkusPricesListCall) IfNoneMatch(entityTag string) *SkusPricesListCall {
  5485  	c.ifNoneMatch_ = entityTag
  5486  	return c
  5487  }
  5488  
  5489  // Context sets the context to be used in this call's Do method.
  5490  func (c *SkusPricesListCall) Context(ctx context.Context) *SkusPricesListCall {
  5491  	c.ctx_ = ctx
  5492  	return c
  5493  }
  5494  
  5495  // Header returns a http.Header that can be modified by the caller to add
  5496  // headers to the request.
  5497  func (c *SkusPricesListCall) Header() http.Header {
  5498  	if c.header_ == nil {
  5499  		c.header_ = make(http.Header)
  5500  	}
  5501  	return c.header_
  5502  }
  5503  
  5504  func (c *SkusPricesListCall) doRequest(alt string) (*http.Response, error) {
  5505  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  5506  	if c.ifNoneMatch_ != "" {
  5507  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  5508  	}
  5509  	var body io.Reader = nil
  5510  	c.urlParams_.Set("alt", alt)
  5511  	c.urlParams_.Set("prettyPrint", "false")
  5512  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/prices")
  5513  	urls += "?" + c.urlParams_.Encode()
  5514  	req, err := http.NewRequest("GET", urls, body)
  5515  	if err != nil {
  5516  		return nil, err
  5517  	}
  5518  	req.Header = reqHeaders
  5519  	googleapi.Expand(req.URL, map[string]string{
  5520  		"parent": c.parent,
  5521  	})
  5522  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  5523  }
  5524  
  5525  // Do executes the "cloudbilling.skus.prices.list" call.
  5526  // Any non-2xx status code is an error. Response headers are in either
  5527  // *GoogleCloudBillingPricesV1betaListPricesResponse.ServerResponse.Header or
  5528  // (if a response was returned at all) in error.(*googleapi.Error).Header. Use
  5529  // googleapi.IsNotModified to check whether the returned error was because
  5530  // http.StatusNotModified was returned.
  5531  func (c *SkusPricesListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingPricesV1betaListPricesResponse, error) {
  5532  	gensupport.SetOptions(c.urlParams_, opts...)
  5533  	res, err := c.doRequest("json")
  5534  	if res != nil && res.StatusCode == http.StatusNotModified {
  5535  		if res.Body != nil {
  5536  			res.Body.Close()
  5537  		}
  5538  		return nil, gensupport.WrapError(&googleapi.Error{
  5539  			Code:   res.StatusCode,
  5540  			Header: res.Header,
  5541  		})
  5542  	}
  5543  	if err != nil {
  5544  		return nil, err
  5545  	}
  5546  	defer googleapi.CloseBody(res)
  5547  	if err := googleapi.CheckResponse(res); err != nil {
  5548  		return nil, gensupport.WrapError(err)
  5549  	}
  5550  	ret := &GoogleCloudBillingPricesV1betaListPricesResponse{
  5551  		ServerResponse: googleapi.ServerResponse{
  5552  			Header:         res.Header,
  5553  			HTTPStatusCode: res.StatusCode,
  5554  		},
  5555  	}
  5556  	target := &ret
  5557  	if err := gensupport.DecodeResponse(target, res); err != nil {
  5558  		return nil, err
  5559  	}
  5560  	return ret, nil
  5561  }
  5562  
  5563  // Pages invokes f for each page of results.
  5564  // A non-nil error returned from f will halt the iteration.
  5565  // The provided context supersedes any context provided to the Context method.
  5566  func (c *SkusPricesListCall) Pages(ctx context.Context, f func(*GoogleCloudBillingPricesV1betaListPricesResponse) error) error {
  5567  	c.ctx_ = ctx
  5568  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  5569  	for {
  5570  		x, err := c.Do()
  5571  		if err != nil {
  5572  			return err
  5573  		}
  5574  		if err := f(x); err != nil {
  5575  			return err
  5576  		}
  5577  		if x.NextPageToken == "" {
  5578  			return nil
  5579  		}
  5580  		c.PageToken(x.NextPageToken)
  5581  	}
  5582  }
  5583  
  5584  type V1betaEstimateCostScenarioCall struct {
  5585  	s                                        *Service
  5586  	estimatecostscenariowithlistpricerequest *EstimateCostScenarioWithListPriceRequest
  5587  	urlParams_                               gensupport.URLParams
  5588  	ctx_                                     context.Context
  5589  	header_                                  http.Header
  5590  }
  5591  
  5592  // EstimateCostScenario: Estimate list prices using a `CostScenario` without a
  5593  // defined `billingAccount`.
  5594  func (r *V1betaService) EstimateCostScenario(estimatecostscenariowithlistpricerequest *EstimateCostScenarioWithListPriceRequest) *V1betaEstimateCostScenarioCall {
  5595  	c := &V1betaEstimateCostScenarioCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  5596  	c.estimatecostscenariowithlistpricerequest = estimatecostscenariowithlistpricerequest
  5597  	return c
  5598  }
  5599  
  5600  // Fields allows partial responses to be retrieved. See
  5601  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  5602  // details.
  5603  func (c *V1betaEstimateCostScenarioCall) Fields(s ...googleapi.Field) *V1betaEstimateCostScenarioCall {
  5604  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  5605  	return c
  5606  }
  5607  
  5608  // Context sets the context to be used in this call's Do method.
  5609  func (c *V1betaEstimateCostScenarioCall) Context(ctx context.Context) *V1betaEstimateCostScenarioCall {
  5610  	c.ctx_ = ctx
  5611  	return c
  5612  }
  5613  
  5614  // Header returns a http.Header that can be modified by the caller to add
  5615  // headers to the request.
  5616  func (c *V1betaEstimateCostScenarioCall) Header() http.Header {
  5617  	if c.header_ == nil {
  5618  		c.header_ = make(http.Header)
  5619  	}
  5620  	return c.header_
  5621  }
  5622  
  5623  func (c *V1betaEstimateCostScenarioCall) doRequest(alt string) (*http.Response, error) {
  5624  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  5625  	var body io.Reader = nil
  5626  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.estimatecostscenariowithlistpricerequest)
  5627  	if err != nil {
  5628  		return nil, err
  5629  	}
  5630  	c.urlParams_.Set("alt", alt)
  5631  	c.urlParams_.Set("prettyPrint", "false")
  5632  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta:estimateCostScenario")
  5633  	urls += "?" + c.urlParams_.Encode()
  5634  	req, err := http.NewRequest("POST", urls, body)
  5635  	if err != nil {
  5636  		return nil, err
  5637  	}
  5638  	req.Header = reqHeaders
  5639  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  5640  }
  5641  
  5642  // Do executes the "cloudbilling.estimateCostScenario" call.
  5643  // Any non-2xx status code is an error. Response headers are in either
  5644  // *EstimateCostScenarioWithListPriceResponse.ServerResponse.Header or (if a
  5645  // response was returned at all) in error.(*googleapi.Error).Header. Use
  5646  // googleapi.IsNotModified to check whether the returned error was because
  5647  // http.StatusNotModified was returned.
  5648  func (c *V1betaEstimateCostScenarioCall) Do(opts ...googleapi.CallOption) (*EstimateCostScenarioWithListPriceResponse, error) {
  5649  	gensupport.SetOptions(c.urlParams_, opts...)
  5650  	res, err := c.doRequest("json")
  5651  	if res != nil && res.StatusCode == http.StatusNotModified {
  5652  		if res.Body != nil {
  5653  			res.Body.Close()
  5654  		}
  5655  		return nil, gensupport.WrapError(&googleapi.Error{
  5656  			Code:   res.StatusCode,
  5657  			Header: res.Header,
  5658  		})
  5659  	}
  5660  	if err != nil {
  5661  		return nil, err
  5662  	}
  5663  	defer googleapi.CloseBody(res)
  5664  	if err := googleapi.CheckResponse(res); err != nil {
  5665  		return nil, gensupport.WrapError(err)
  5666  	}
  5667  	ret := &EstimateCostScenarioWithListPriceResponse{
  5668  		ServerResponse: googleapi.ServerResponse{
  5669  			Header:         res.Header,
  5670  			HTTPStatusCode: res.StatusCode,
  5671  		},
  5672  	}
  5673  	target := &ret
  5674  	if err := gensupport.DecodeResponse(target, res); err != nil {
  5675  		return nil, err
  5676  	}
  5677  	return ret, nil
  5678  }
  5679  

View as plain text