...

Source file src/google.golang.org/api/monitoring/v1/monitoring-gen.go

Documentation: google.golang.org/api/monitoring/v1

     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 monitoring provides access to the Cloud Monitoring API.
     8  //
     9  // For product documentation, see: https://cloud.google.com/monitoring/api/
    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/monitoring/v1"
    27  //	...
    28  //	ctx := context.Background()
    29  //	monitoringService, err := monitoring.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  //	monitoringService, err := monitoring.NewService(ctx, option.WithScopes(monitoring.MonitoringWriteScope))
    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  //	monitoringService, err := monitoring.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  //	monitoringService, err := monitoring.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
    54  //
    55  // See [google.golang.org/api/option.ClientOption] for details on options.
    56  package monitoring // import "google.golang.org/api/monitoring/v1"
    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 = "monitoring:v1"
    95  const apiName = "monitoring"
    96  const apiVersion = "v1"
    97  const basePath = "https://monitoring.googleapis.com/"
    98  const basePathTemplate = "https://monitoring.UNIVERSE_DOMAIN/"
    99  const mtlsBasePath = "https://monitoring.mtls.googleapis.com/"
   100  
   101  // OAuth2 scopes used by this API.
   102  const (
   103  	// See, edit, configure, and delete your Google Cloud data and see the email
   104  	// address for your Google Account.
   105  	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
   106  
   107  	// View and write monitoring data for all of your Google and third-party Cloud
   108  	// and API projects
   109  	MonitoringScope = "https://www.googleapis.com/auth/monitoring"
   110  
   111  	// View monitoring data for all of your Google Cloud and third-party projects
   112  	MonitoringReadScope = "https://www.googleapis.com/auth/monitoring.read"
   113  
   114  	// Publish metric data to your Google Cloud projects
   115  	MonitoringWriteScope = "https://www.googleapis.com/auth/monitoring.write"
   116  )
   117  
   118  // NewService creates a new Service.
   119  func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
   120  	scopesOption := internaloption.WithDefaultScopes(
   121  		"https://www.googleapis.com/auth/cloud-platform",
   122  		"https://www.googleapis.com/auth/monitoring",
   123  		"https://www.googleapis.com/auth/monitoring.read",
   124  		"https://www.googleapis.com/auth/monitoring.write",
   125  	)
   126  	// NOTE: prepend, so we don't override user-specified scopes.
   127  	opts = append([]option.ClientOption{scopesOption}, opts...)
   128  	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
   129  	opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
   130  	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
   131  	opts = append(opts, internaloption.EnableNewAuthLibrary())
   132  	client, endpoint, err := htransport.NewClient(ctx, opts...)
   133  	if err != nil {
   134  		return nil, err
   135  	}
   136  	s, err := New(client)
   137  	if err != nil {
   138  		return nil, err
   139  	}
   140  	if endpoint != "" {
   141  		s.BasePath = endpoint
   142  	}
   143  	return s, nil
   144  }
   145  
   146  // New creates a new Service. It uses the provided http.Client for requests.
   147  //
   148  // Deprecated: please use NewService instead.
   149  // To provide a custom HTTP client, use option.WithHTTPClient.
   150  // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
   151  func New(client *http.Client) (*Service, error) {
   152  	if client == nil {
   153  		return nil, errors.New("client is nil")
   154  	}
   155  	s := &Service{client: client, BasePath: basePath}
   156  	s.Locations = NewLocationsService(s)
   157  	s.Operations = NewOperationsService(s)
   158  	s.Projects = NewProjectsService(s)
   159  	return s, nil
   160  }
   161  
   162  type Service struct {
   163  	client    *http.Client
   164  	BasePath  string // API endpoint base URL
   165  	UserAgent string // optional additional User-Agent fragment
   166  
   167  	Locations *LocationsService
   168  
   169  	Operations *OperationsService
   170  
   171  	Projects *ProjectsService
   172  }
   173  
   174  func (s *Service) userAgent() string {
   175  	if s.UserAgent == "" {
   176  		return googleapi.UserAgent
   177  	}
   178  	return googleapi.UserAgent + " " + s.UserAgent
   179  }
   180  
   181  func NewLocationsService(s *Service) *LocationsService {
   182  	rs := &LocationsService{s: s}
   183  	rs.Global = NewLocationsGlobalService(s)
   184  	return rs
   185  }
   186  
   187  type LocationsService struct {
   188  	s *Service
   189  
   190  	Global *LocationsGlobalService
   191  }
   192  
   193  func NewLocationsGlobalService(s *Service) *LocationsGlobalService {
   194  	rs := &LocationsGlobalService{s: s}
   195  	rs.MetricsScopes = NewLocationsGlobalMetricsScopesService(s)
   196  	return rs
   197  }
   198  
   199  type LocationsGlobalService struct {
   200  	s *Service
   201  
   202  	MetricsScopes *LocationsGlobalMetricsScopesService
   203  }
   204  
   205  func NewLocationsGlobalMetricsScopesService(s *Service) *LocationsGlobalMetricsScopesService {
   206  	rs := &LocationsGlobalMetricsScopesService{s: s}
   207  	rs.Projects = NewLocationsGlobalMetricsScopesProjectsService(s)
   208  	return rs
   209  }
   210  
   211  type LocationsGlobalMetricsScopesService struct {
   212  	s *Service
   213  
   214  	Projects *LocationsGlobalMetricsScopesProjectsService
   215  }
   216  
   217  func NewLocationsGlobalMetricsScopesProjectsService(s *Service) *LocationsGlobalMetricsScopesProjectsService {
   218  	rs := &LocationsGlobalMetricsScopesProjectsService{s: s}
   219  	return rs
   220  }
   221  
   222  type LocationsGlobalMetricsScopesProjectsService struct {
   223  	s *Service
   224  }
   225  
   226  func NewOperationsService(s *Service) *OperationsService {
   227  	rs := &OperationsService{s: s}
   228  	return rs
   229  }
   230  
   231  type OperationsService struct {
   232  	s *Service
   233  }
   234  
   235  func NewProjectsService(s *Service) *ProjectsService {
   236  	rs := &ProjectsService{s: s}
   237  	rs.Dashboards = NewProjectsDashboardsService(s)
   238  	rs.Location = NewProjectsLocationService(s)
   239  	return rs
   240  }
   241  
   242  type ProjectsService struct {
   243  	s *Service
   244  
   245  	Dashboards *ProjectsDashboardsService
   246  
   247  	Location *ProjectsLocationService
   248  }
   249  
   250  func NewProjectsDashboardsService(s *Service) *ProjectsDashboardsService {
   251  	rs := &ProjectsDashboardsService{s: s}
   252  	return rs
   253  }
   254  
   255  type ProjectsDashboardsService struct {
   256  	s *Service
   257  }
   258  
   259  func NewProjectsLocationService(s *Service) *ProjectsLocationService {
   260  	rs := &ProjectsLocationService{s: s}
   261  	rs.Prometheus = NewProjectsLocationPrometheusService(s)
   262  	return rs
   263  }
   264  
   265  type ProjectsLocationService struct {
   266  	s *Service
   267  
   268  	Prometheus *ProjectsLocationPrometheusService
   269  }
   270  
   271  func NewProjectsLocationPrometheusService(s *Service) *ProjectsLocationPrometheusService {
   272  	rs := &ProjectsLocationPrometheusService{s: s}
   273  	rs.Api = NewProjectsLocationPrometheusApiService(s)
   274  	return rs
   275  }
   276  
   277  type ProjectsLocationPrometheusService struct {
   278  	s *Service
   279  
   280  	Api *ProjectsLocationPrometheusApiService
   281  }
   282  
   283  func NewProjectsLocationPrometheusApiService(s *Service) *ProjectsLocationPrometheusApiService {
   284  	rs := &ProjectsLocationPrometheusApiService{s: s}
   285  	rs.V1 = NewProjectsLocationPrometheusApiV1Service(s)
   286  	return rs
   287  }
   288  
   289  type ProjectsLocationPrometheusApiService struct {
   290  	s *Service
   291  
   292  	V1 *ProjectsLocationPrometheusApiV1Service
   293  }
   294  
   295  func NewProjectsLocationPrometheusApiV1Service(s *Service) *ProjectsLocationPrometheusApiV1Service {
   296  	rs := &ProjectsLocationPrometheusApiV1Service{s: s}
   297  	rs.Label = NewProjectsLocationPrometheusApiV1LabelService(s)
   298  	rs.Metadata = NewProjectsLocationPrometheusApiV1MetadataService(s)
   299  	return rs
   300  }
   301  
   302  type ProjectsLocationPrometheusApiV1Service struct {
   303  	s *Service
   304  
   305  	Label *ProjectsLocationPrometheusApiV1LabelService
   306  
   307  	Metadata *ProjectsLocationPrometheusApiV1MetadataService
   308  }
   309  
   310  func NewProjectsLocationPrometheusApiV1LabelService(s *Service) *ProjectsLocationPrometheusApiV1LabelService {
   311  	rs := &ProjectsLocationPrometheusApiV1LabelService{s: s}
   312  	return rs
   313  }
   314  
   315  type ProjectsLocationPrometheusApiV1LabelService struct {
   316  	s *Service
   317  }
   318  
   319  func NewProjectsLocationPrometheusApiV1MetadataService(s *Service) *ProjectsLocationPrometheusApiV1MetadataService {
   320  	rs := &ProjectsLocationPrometheusApiV1MetadataService{s: s}
   321  	return rs
   322  }
   323  
   324  type ProjectsLocationPrometheusApiV1MetadataService struct {
   325  	s *Service
   326  }
   327  
   328  // Aggregation: Describes how to combine multiple time series to provide a
   329  // different view of the data. Aggregation of time series is done in two steps.
   330  // First, each time series in the set is aligned to the same time interval
   331  // boundaries, then the set of time series is optionally reduced in
   332  // number.Alignment consists of applying the per_series_aligner operation to
   333  // each time series after its data has been divided into regular
   334  // alignment_period time intervals. This process takes all of the data points
   335  // in an alignment period, applies a mathematical transformation such as
   336  // averaging, minimum, maximum, delta, etc., and converts them into a single
   337  // data point per period.Reduction is when the aligned and transformed time
   338  // series can optionally be combined, reducing the number of time series
   339  // through similar mathematical transformations. Reduction involves applying a
   340  // cross_series_reducer to all the time series, optionally sorting the time
   341  // series into subsets with group_by_fields, and applying the reducer to each
   342  // subset.The raw time series data can contain a huge amount of information
   343  // from multiple sources. Alignment and reduction transforms this mass of data
   344  // into a more manageable and representative collection of data, for example
   345  // "the 95% latency across the average of all tasks in a cluster". This
   346  // representative data can be more easily graphed and comprehended, and the
   347  // individual time series data is still available for later drilldown. For more
   348  // details, see Filtering and aggregation
   349  // (https://cloud.google.com/monitoring/api/v3/aggregation).
   350  type Aggregation struct {
   351  	// AlignmentPeriod: The alignment_period specifies a time interval, in seconds,
   352  	// that is used to divide the data in all the time series into consistent
   353  	// blocks of time. This will be done before the per-series aligner can be
   354  	// applied to the data.The value must be at least 60 seconds. If a per-series
   355  	// aligner other than ALIGN_NONE is specified, this field is required or an
   356  	// error is returned. If no per-series aligner is specified, or the aligner
   357  	// ALIGN_NONE is specified, then this field is ignored.The maximum value of the
   358  	// alignment_period is 2 years, or 104 weeks.
   359  	AlignmentPeriod string `json:"alignmentPeriod,omitempty"`
   360  	// CrossSeriesReducer: The reduction operation to be used to combine time
   361  	// series into a single time series, where the value of each data point in the
   362  	// resulting series is a function of all the already aligned values in the
   363  	// input time series.Not all reducer operations can be applied to all time
   364  	// series. The valid choices depend on the metric_kind and the value_type of
   365  	// the original time series. Reduction can yield a time series with a different
   366  	// metric_kind or value_type than the input time series.Time series data must
   367  	// first be aligned (see per_series_aligner) in order to perform cross-time
   368  	// series reduction. If cross_series_reducer is specified, then
   369  	// per_series_aligner must be specified, and must not be ALIGN_NONE. An
   370  	// alignment_period must also be specified; otherwise, an error is returned.
   371  	//
   372  	// Possible values:
   373  	//   "REDUCE_NONE" - No cross-time series reduction. The output of the Aligner
   374  	// is returned.
   375  	//   "REDUCE_MEAN" - Reduce by computing the mean value across time series for
   376  	// each alignment period. This reducer is valid for DELTA and GAUGE metrics
   377  	// with numeric or distribution values. The value_type of the output is DOUBLE.
   378  	//   "REDUCE_MIN" - Reduce by computing the minimum value across time series
   379  	// for each alignment period. This reducer is valid for DELTA and GAUGE metrics
   380  	// with numeric values. The value_type of the output is the same as the
   381  	// value_type of the input.
   382  	//   "REDUCE_MAX" - Reduce by computing the maximum value across time series
   383  	// for each alignment period. This reducer is valid for DELTA and GAUGE metrics
   384  	// with numeric values. The value_type of the output is the same as the
   385  	// value_type of the input.
   386  	//   "REDUCE_SUM" - Reduce by computing the sum across time series for each
   387  	// alignment period. This reducer is valid for DELTA and GAUGE metrics with
   388  	// numeric and distribution values. The value_type of the output is the same as
   389  	// the value_type of the input.
   390  	//   "REDUCE_STDDEV" - Reduce by computing the standard deviation across time
   391  	// series for each alignment period. This reducer is valid for DELTA and GAUGE
   392  	// metrics with numeric or distribution values. The value_type of the output is
   393  	// DOUBLE.
   394  	//   "REDUCE_COUNT" - Reduce by computing the number of data points across time
   395  	// series for each alignment period. This reducer is valid for DELTA and GAUGE
   396  	// metrics of numeric, Boolean, distribution, and string value_type. The
   397  	// value_type of the output is INT64.
   398  	//   "REDUCE_COUNT_TRUE" - Reduce by computing the number of True-valued data
   399  	// points across time series for each alignment period. This reducer is valid
   400  	// for DELTA and GAUGE metrics of Boolean value_type. The value_type of the
   401  	// output is INT64.
   402  	//   "REDUCE_COUNT_FALSE" - Reduce by computing the number of False-valued data
   403  	// points across time series for each alignment period. This reducer is valid
   404  	// for DELTA and GAUGE metrics of Boolean value_type. The value_type of the
   405  	// output is INT64.
   406  	//   "REDUCE_FRACTION_TRUE" - Reduce by computing the ratio of the number of
   407  	// True-valued data points to the total number of data points for each
   408  	// alignment period. This reducer is valid for DELTA and GAUGE metrics of
   409  	// Boolean value_type. The output value is in the range 0.0, 1.0 and has
   410  	// value_type DOUBLE.
   411  	//   "REDUCE_PERCENTILE_99" - Reduce by computing the 99th percentile
   412  	// (https://en.wikipedia.org/wiki/Percentile) of data points across time series
   413  	// for each alignment period. This reducer is valid for GAUGE and DELTA metrics
   414  	// of numeric and distribution type. The value of the output is DOUBLE.
   415  	//   "REDUCE_PERCENTILE_95" - Reduce by computing the 95th percentile
   416  	// (https://en.wikipedia.org/wiki/Percentile) of data points across time series
   417  	// for each alignment period. This reducer is valid for GAUGE and DELTA metrics
   418  	// of numeric and distribution type. The value of the output is DOUBLE.
   419  	//   "REDUCE_PERCENTILE_50" - Reduce by computing the 50th percentile
   420  	// (https://en.wikipedia.org/wiki/Percentile) of data points across time series
   421  	// for each alignment period. This reducer is valid for GAUGE and DELTA metrics
   422  	// of numeric and distribution type. The value of the output is DOUBLE.
   423  	//   "REDUCE_PERCENTILE_05" - Reduce by computing the 5th percentile
   424  	// (https://en.wikipedia.org/wiki/Percentile) of data points across time series
   425  	// for each alignment period. This reducer is valid for GAUGE and DELTA metrics
   426  	// of numeric and distribution type. The value of the output is DOUBLE.
   427  	CrossSeriesReducer string `json:"crossSeriesReducer,omitempty"`
   428  	// GroupByFields: The set of fields to preserve when cross_series_reducer is
   429  	// specified. The group_by_fields determine how the time series are partitioned
   430  	// into subsets prior to applying the aggregation operation. Each subset
   431  	// contains time series that have the same value for each of the grouping
   432  	// fields. Each individual time series is a member of exactly one subset. The
   433  	// cross_series_reducer is applied to each subset of time series. It is not
   434  	// possible to reduce across different resource types, so this field implicitly
   435  	// contains resource.type. Fields not specified in group_by_fields are
   436  	// aggregated away. If group_by_fields is not specified and all the time series
   437  	// have the same resource type, then the time series are aggregated into a
   438  	// single output time series. If cross_series_reducer is not defined, this
   439  	// field is ignored.
   440  	GroupByFields []string `json:"groupByFields,omitempty"`
   441  	// PerSeriesAligner: An Aligner describes how to bring the data points in a
   442  	// single time series into temporal alignment. Except for ALIGN_NONE, all
   443  	// alignments cause all the data points in an alignment_period to be
   444  	// mathematically grouped together, resulting in a single data point for each
   445  	// alignment_period with end timestamp at the end of the period.Not all
   446  	// alignment operations may be applied to all time series. The valid choices
   447  	// depend on the metric_kind and value_type of the original time series.
   448  	// Alignment can change the metric_kind or the value_type of the time
   449  	// series.Time series data must be aligned in order to perform cross-time
   450  	// series reduction. If cross_series_reducer is specified, then
   451  	// per_series_aligner must be specified and not equal to ALIGN_NONE and
   452  	// alignment_period must be specified; otherwise, an error is returned.
   453  	//
   454  	// Possible values:
   455  	//   "ALIGN_NONE" - No alignment. Raw data is returned. Not valid if
   456  	// cross-series reduction is requested. The value_type of the result is the
   457  	// same as the value_type of the input.
   458  	//   "ALIGN_DELTA" - Align and convert to DELTA. The output is delta = y1 -
   459  	// y0.This alignment is valid for CUMULATIVE and DELTA metrics. If the selected
   460  	// alignment period results in periods with no data, then the aligned value for
   461  	// such a period is created by interpolation. The value_type of the aligned
   462  	// result is the same as the value_type of the input.
   463  	//   "ALIGN_RATE" - Align and convert to a rate. The result is computed as rate
   464  	// = (y1 - y0)/(t1 - t0), or "delta over time". Think of this aligner as
   465  	// providing the slope of the line that passes through the value at the start
   466  	// and at the end of the alignment_period.This aligner is valid for CUMULATIVE
   467  	// and DELTA metrics with numeric values. If the selected alignment period
   468  	// results in periods with no data, then the aligned value for such a period is
   469  	// created by interpolation. The output is a GAUGE metric with value_type
   470  	// DOUBLE.If, by "rate", you mean "percentage change", see the
   471  	// ALIGN_PERCENT_CHANGE aligner instead.
   472  	//   "ALIGN_INTERPOLATE" - Align by interpolating between adjacent points
   473  	// around the alignment period boundary. This aligner is valid for GAUGE
   474  	// metrics with numeric values. The value_type of the aligned result is the
   475  	// same as the value_type of the input.
   476  	//   "ALIGN_NEXT_OLDER" - Align by moving the most recent data point before the
   477  	// end of the alignment period to the boundary at the end of the alignment
   478  	// period. This aligner is valid for GAUGE metrics. The value_type of the
   479  	// aligned result is the same as the value_type of the input.
   480  	//   "ALIGN_MIN" - Align the time series by returning the minimum value in each
   481  	// alignment period. This aligner is valid for GAUGE and DELTA metrics with
   482  	// numeric values. The value_type of the aligned result is the same as the
   483  	// value_type of the input.
   484  	//   "ALIGN_MAX" - Align the time series by returning the maximum value in each
   485  	// alignment period. This aligner is valid for GAUGE and DELTA metrics with
   486  	// numeric values. The value_type of the aligned result is the same as the
   487  	// value_type of the input.
   488  	//   "ALIGN_MEAN" - Align the time series by returning the mean value in each
   489  	// alignment period. This aligner is valid for GAUGE and DELTA metrics with
   490  	// numeric values. The value_type of the aligned result is DOUBLE.
   491  	//   "ALIGN_COUNT" - Align the time series by returning the number of values in
   492  	// each alignment period. This aligner is valid for GAUGE and DELTA metrics
   493  	// with numeric or Boolean values. The value_type of the aligned result is
   494  	// INT64.
   495  	//   "ALIGN_SUM" - Align the time series by returning the sum of the values in
   496  	// each alignment period. This aligner is valid for GAUGE and DELTA metrics
   497  	// with numeric and distribution values. The value_type of the aligned result
   498  	// is the same as the value_type of the input.
   499  	//   "ALIGN_STDDEV" - Align the time series by returning the standard deviation
   500  	// of the values in each alignment period. This aligner is valid for GAUGE and
   501  	// DELTA metrics with numeric values. The value_type of the output is DOUBLE.
   502  	//   "ALIGN_COUNT_TRUE" - Align the time series by returning the number of True
   503  	// values in each alignment period. This aligner is valid for GAUGE metrics
   504  	// with Boolean values. The value_type of the output is INT64.
   505  	//   "ALIGN_COUNT_FALSE" - Align the time series by returning the number of
   506  	// False values in each alignment period. This aligner is valid for GAUGE
   507  	// metrics with Boolean values. The value_type of the output is INT64.
   508  	//   "ALIGN_FRACTION_TRUE" - Align the time series by returning the ratio of
   509  	// the number of True values to the total number of values in each alignment
   510  	// period. This aligner is valid for GAUGE metrics with Boolean values. The
   511  	// output value is in the range 0.0, 1.0 and has value_type DOUBLE.
   512  	//   "ALIGN_PERCENTILE_99" - Align the time series by using percentile
   513  	// aggregation (https://en.wikipedia.org/wiki/Percentile). The resulting data
   514  	// point in each alignment period is the 99th percentile of all data points in
   515  	// the period. This aligner is valid for GAUGE and DELTA metrics with
   516  	// distribution values. The output is a GAUGE metric with value_type DOUBLE.
   517  	//   "ALIGN_PERCENTILE_95" - Align the time series by using percentile
   518  	// aggregation (https://en.wikipedia.org/wiki/Percentile). The resulting data
   519  	// point in each alignment period is the 95th percentile of all data points in
   520  	// the period. This aligner is valid for GAUGE and DELTA metrics with
   521  	// distribution values. The output is a GAUGE metric with value_type DOUBLE.
   522  	//   "ALIGN_PERCENTILE_50" - Align the time series by using percentile
   523  	// aggregation (https://en.wikipedia.org/wiki/Percentile). The resulting data
   524  	// point in each alignment period is the 50th percentile of all data points in
   525  	// the period. This aligner is valid for GAUGE and DELTA metrics with
   526  	// distribution values. The output is a GAUGE metric with value_type DOUBLE.
   527  	//   "ALIGN_PERCENTILE_05" - Align the time series by using percentile
   528  	// aggregation (https://en.wikipedia.org/wiki/Percentile). The resulting data
   529  	// point in each alignment period is the 5th percentile of all data points in
   530  	// the period. This aligner is valid for GAUGE and DELTA metrics with
   531  	// distribution values. The output is a GAUGE metric with value_type DOUBLE.
   532  	//   "ALIGN_PERCENT_CHANGE" - Align and convert to a percentage change. This
   533  	// aligner is valid for GAUGE and DELTA metrics with numeric values. This
   534  	// alignment returns ((current - previous)/previous) * 100, where the value of
   535  	// previous is determined based on the alignment_period.If the values of
   536  	// current and previous are both 0, then the returned value is 0. If only
   537  	// previous is 0, the returned value is infinity.A 10-minute moving mean is
   538  	// computed at each point of the alignment period prior to the above
   539  	// calculation to smooth the metric and prevent false positives from very
   540  	// short-lived spikes. The moving mean is only applicable for data whose values
   541  	// are >= 0. Any values < 0 are treated as a missing datapoint, and are
   542  	// ignored. While DELTA metrics are accepted by this alignment, special care
   543  	// should be taken that the values for the metric will always be positive. The
   544  	// output is a GAUGE metric with value_type DOUBLE.
   545  	PerSeriesAligner string `json:"perSeriesAligner,omitempty"`
   546  	// ForceSendFields is a list of field names (e.g. "AlignmentPeriod") to
   547  	// unconditionally include in API requests. By default, fields with empty or
   548  	// default values are omitted from API requests. See
   549  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   550  	// details.
   551  	ForceSendFields []string `json:"-"`
   552  	// NullFields is a list of field names (e.g. "AlignmentPeriod") to include in
   553  	// API requests with the JSON null value. By default, fields with empty values
   554  	// are omitted from API requests. See
   555  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   556  	NullFields []string `json:"-"`
   557  }
   558  
   559  func (s *Aggregation) MarshalJSON() ([]byte, error) {
   560  	type NoMethod Aggregation
   561  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   562  }
   563  
   564  // AggregationFunction: Preview: An identifier for an aggregation function.
   565  // Aggregation functions are SQL functions that group or transform data from
   566  // multiple points to a single point. This is a preview feature and may be
   567  // subject to change before final release.
   568  type AggregationFunction struct {
   569  	// Parameters: Optional. Parameters applied to the aggregation function. Only
   570  	// used for functions that require them.
   571  	Parameters []*Parameter `json:"parameters,omitempty"`
   572  	// Type: Required. The type of aggregation function, must be one of the
   573  	// following: "none" - no function. "percentile" - APPROX_QUANTILES() - 1
   574  	// parameter numeric value "average" - AVG() "count" - COUNT() "count-distinct"
   575  	// - COUNT(DISTINCT) "count-distinct-approx" - APPROX_COUNT_DISTINCT() "max" -
   576  	// MAX() "min" - MIN() "sum" - SUM()
   577  	Type string `json:"type,omitempty"`
   578  	// ForceSendFields is a list of field names (e.g. "Parameters") to
   579  	// unconditionally include in API requests. By default, fields with empty or
   580  	// default values are omitted from API requests. See
   581  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   582  	// details.
   583  	ForceSendFields []string `json:"-"`
   584  	// NullFields is a list of field names (e.g. "Parameters") to include in API
   585  	// requests with the JSON null value. By default, fields with empty values are
   586  	// omitted from API requests. See
   587  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   588  	NullFields []string `json:"-"`
   589  }
   590  
   591  func (s *AggregationFunction) MarshalJSON() ([]byte, error) {
   592  	type NoMethod AggregationFunction
   593  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   594  }
   595  
   596  // AlertChart: A chart that displays alert policy data.
   597  type AlertChart struct {
   598  	// Name: Required. The resource name of the alert policy. The format is:
   599  	// projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]
   600  	Name string `json:"name,omitempty"`
   601  	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
   602  	// include in API requests. By default, fields with empty or default values are
   603  	// omitted from API requests. See
   604  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   605  	// details.
   606  	ForceSendFields []string `json:"-"`
   607  	// NullFields is a list of field names (e.g. "Name") to include in API requests
   608  	// with the JSON null value. By default, fields with empty values are omitted
   609  	// from API requests. See
   610  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   611  	NullFields []string `json:"-"`
   612  }
   613  
   614  func (s *AlertChart) MarshalJSON() ([]byte, error) {
   615  	type NoMethod AlertChart
   616  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   617  }
   618  
   619  // Axis: A chart axis.
   620  type Axis struct {
   621  	// Label: The label of the axis.
   622  	Label string `json:"label,omitempty"`
   623  	// Scale: The axis scale. By default, a linear scale is used.
   624  	//
   625  	// Possible values:
   626  	//   "SCALE_UNSPECIFIED" - Scale is unspecified. The view will default to
   627  	// LINEAR.
   628  	//   "LINEAR" - Linear scale.
   629  	//   "LOG10" - Logarithmic scale (base 10).
   630  	Scale string `json:"scale,omitempty"`
   631  	// ForceSendFields is a list of field names (e.g. "Label") to unconditionally
   632  	// include in API requests. By default, fields with empty or default values are
   633  	// omitted from API requests. See
   634  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   635  	// details.
   636  	ForceSendFields []string `json:"-"`
   637  	// NullFields is a list of field names (e.g. "Label") to include in API
   638  	// requests with the JSON null value. By default, fields with empty values are
   639  	// omitted from API requests. See
   640  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   641  	NullFields []string `json:"-"`
   642  }
   643  
   644  func (s *Axis) MarshalJSON() ([]byte, error) {
   645  	type NoMethod Axis
   646  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   647  }
   648  
   649  // Breakdown: Preview: A breakdown is an aggregation applied to the measures
   650  // over a specified column. A breakdown can result in multiple series across a
   651  // category for the provided measure. This is a preview feature and may be
   652  // subject to change before final release.
   653  type Breakdown struct {
   654  	// AggregationFunction: Required. The Aggregation function is applied across
   655  	// all data in each breakdown created.
   656  	AggregationFunction *AggregationFunction `json:"aggregationFunction,omitempty"`
   657  	// Column: Required. The name of the column in the dataset containing the
   658  	// breakdown values.
   659  	Column string `json:"column,omitempty"`
   660  	// Limit: Required. A limit to the number of breakdowns. If set to zero then
   661  	// all possible breakdowns are applied. The list of breakdowns is dependent on
   662  	// the value of the sort_order field.
   663  	Limit int64 `json:"limit,omitempty"`
   664  	// SortOrder: Required. The sort order is applied to the values of the
   665  	// breakdown column.
   666  	//
   667  	// Possible values:
   668  	//   "SORT_ORDER_UNSPECIFIED" - An unspecified sort order. This option is
   669  	// invalid when sorting is required.
   670  	//   "SORT_ORDER_NONE" - No sorting is applied.
   671  	//   "SORT_ORDER_ASCENDING" - The lowest-valued entries are selected first.
   672  	//   "SORT_ORDER_DESCENDING" - The highest-valued entries are selected first.
   673  	SortOrder string `json:"sortOrder,omitempty"`
   674  	// ForceSendFields is a list of field names (e.g. "AggregationFunction") to
   675  	// unconditionally include in API requests. By default, fields with empty or
   676  	// default values are omitted from API requests. See
   677  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   678  	// details.
   679  	ForceSendFields []string `json:"-"`
   680  	// NullFields is a list of field names (e.g. "AggregationFunction") to include
   681  	// in API requests with the JSON null value. By default, fields with empty
   682  	// values are omitted from API requests. See
   683  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   684  	NullFields []string `json:"-"`
   685  }
   686  
   687  func (s *Breakdown) MarshalJSON() ([]byte, error) {
   688  	type NoMethod Breakdown
   689  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   690  }
   691  
   692  // ChartOptions: Options to control visual rendering of a chart.
   693  type ChartOptions struct {
   694  	// DisplayHorizontal: Preview: Configures whether the charted values are shown
   695  	// on the horizontal or vertical axis. By default, values are represented the
   696  	// vertical axis. This is a preview feature and may be subject to change before
   697  	// final release.
   698  	DisplayHorizontal bool `json:"displayHorizontal,omitempty"`
   699  	// Mode: The chart mode.
   700  	//
   701  	// Possible values:
   702  	//   "MODE_UNSPECIFIED" - Mode is unspecified. The view will default to COLOR.
   703  	//   "COLOR" - The chart distinguishes data series using different color. Line
   704  	// colors may get reused when there are many lines in the chart.
   705  	//   "X_RAY" - The chart uses the Stackdriver x-ray mode, in which each data
   706  	// set is plotted using the same semi-transparent color.
   707  	//   "STATS" - The chart displays statistics such as average, median, 95th
   708  	// percentile, and more.
   709  	Mode string `json:"mode,omitempty"`
   710  	// ForceSendFields is a list of field names (e.g. "DisplayHorizontal") to
   711  	// unconditionally include in API requests. By default, fields with empty or
   712  	// default values are omitted from API requests. See
   713  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   714  	// details.
   715  	ForceSendFields []string `json:"-"`
   716  	// NullFields is a list of field names (e.g. "DisplayHorizontal") to include in
   717  	// API requests with the JSON null value. By default, fields with empty values
   718  	// are omitted from API requests. See
   719  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   720  	NullFields []string `json:"-"`
   721  }
   722  
   723  func (s *ChartOptions) MarshalJSON() ([]byte, error) {
   724  	type NoMethod ChartOptions
   725  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   726  }
   727  
   728  // CollapsibleGroup: A widget that groups the other widgets. All widgets that
   729  // are within the area spanned by the grouping widget are considered member
   730  // widgets.
   731  type CollapsibleGroup struct {
   732  	// Collapsed: The collapsed state of the widget on first page load.
   733  	Collapsed bool `json:"collapsed,omitempty"`
   734  	// ForceSendFields is a list of field names (e.g. "Collapsed") to
   735  	// unconditionally include in API requests. By default, fields with empty or
   736  	// default values are omitted from API requests. See
   737  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   738  	// details.
   739  	ForceSendFields []string `json:"-"`
   740  	// NullFields is a list of field names (e.g. "Collapsed") to include in API
   741  	// requests with the JSON null value. By default, fields with empty values are
   742  	// omitted from API requests. See
   743  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   744  	NullFields []string `json:"-"`
   745  }
   746  
   747  func (s *CollapsibleGroup) MarshalJSON() ([]byte, error) {
   748  	type NoMethod CollapsibleGroup
   749  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   750  }
   751  
   752  // Column: Defines the layout properties and content for a column.
   753  type Column struct {
   754  	// Weight: The relative weight of this column. The column weight is used to
   755  	// adjust the width of columns on the screen (relative to peers). Greater the
   756  	// weight, greater the width of the column on the screen. If omitted, a value
   757  	// of 1 is used while rendering.
   758  	Weight int64 `json:"weight,omitempty,string"`
   759  	// Widgets: The display widgets arranged vertically in this column.
   760  	Widgets []*Widget `json:"widgets,omitempty"`
   761  	// ForceSendFields is a list of field names (e.g. "Weight") to unconditionally
   762  	// include in API requests. By default, fields with empty or default values are
   763  	// omitted from API requests. See
   764  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   765  	// details.
   766  	ForceSendFields []string `json:"-"`
   767  	// NullFields is a list of field names (e.g. "Weight") to include in API
   768  	// requests with the JSON null value. By default, fields with empty values are
   769  	// omitted from API requests. See
   770  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   771  	NullFields []string `json:"-"`
   772  }
   773  
   774  func (s *Column) MarshalJSON() ([]byte, error) {
   775  	type NoMethod Column
   776  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   777  }
   778  
   779  // ColumnLayout: A simplified layout that divides the available space into
   780  // vertical columns and arranges a set of widgets vertically in each column.
   781  type ColumnLayout struct {
   782  	// Columns: The columns of content to display.
   783  	Columns []*Column `json:"columns,omitempty"`
   784  	// ForceSendFields is a list of field names (e.g. "Columns") to unconditionally
   785  	// include in API requests. By default, fields with empty or default values are
   786  	// omitted from API requests. See
   787  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   788  	// details.
   789  	ForceSendFields []string `json:"-"`
   790  	// NullFields is a list of field names (e.g. "Columns") to include in API
   791  	// requests with the JSON null value. By default, fields with empty values are
   792  	// omitted from API requests. See
   793  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   794  	NullFields []string `json:"-"`
   795  }
   796  
   797  func (s *ColumnLayout) MarshalJSON() ([]byte, error) {
   798  	type NoMethod ColumnLayout
   799  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   800  }
   801  
   802  // ColumnSettings: The persistent settings for a table's columns.
   803  type ColumnSettings struct {
   804  	// Column: Required. The id of the column.
   805  	Column string `json:"column,omitempty"`
   806  	// Visible: Required. Whether the column should be visible on page load.
   807  	Visible bool `json:"visible,omitempty"`
   808  	// ForceSendFields is a list of field names (e.g. "Column") to unconditionally
   809  	// include in API requests. By default, fields with empty or default values are
   810  	// omitted from API requests. See
   811  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   812  	// details.
   813  	ForceSendFields []string `json:"-"`
   814  	// NullFields is a list of field names (e.g. "Column") to include in API
   815  	// requests with the JSON null value. By default, fields with empty values are
   816  	// omitted from API requests. See
   817  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   818  	NullFields []string `json:"-"`
   819  }
   820  
   821  func (s *ColumnSettings) MarshalJSON() ([]byte, error) {
   822  	type NoMethod ColumnSettings
   823  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   824  }
   825  
   826  // Dashboard: A Google Stackdriver dashboard. Dashboards define the content and
   827  // layout of pages in the Stackdriver web application.
   828  type Dashboard struct {
   829  	// Annotations: Configuration for event annotations to display on this
   830  	// dashboard.
   831  	Annotations *DashboardAnnotations `json:"annotations,omitempty"`
   832  	// ColumnLayout: The content is divided into equally spaced columns and the
   833  	// widgets are arranged vertically.
   834  	ColumnLayout *ColumnLayout `json:"columnLayout,omitempty"`
   835  	// DashboardFilters: Filters to reduce the amount of data charted based on the
   836  	// filter criteria.
   837  	DashboardFilters []*DashboardFilter `json:"dashboardFilters,omitempty"`
   838  	// DisplayName: Required. The mutable, human-readable name.
   839  	DisplayName string `json:"displayName,omitempty"`
   840  	// Etag: etag is used for optimistic concurrency control as a way to help
   841  	// prevent simultaneous updates of a policy from overwriting each other. An
   842  	// etag is returned in the response to GetDashboard, and users are expected to
   843  	// put that etag in the request to UpdateDashboard to ensure that their change
   844  	// will be applied to the same version of the Dashboard configuration. The
   845  	// field should not be passed during dashboard creation.
   846  	Etag string `json:"etag,omitempty"`
   847  	// GridLayout: Content is arranged with a basic layout that re-flows a simple
   848  	// list of informational elements like widgets or tiles.
   849  	GridLayout *GridLayout `json:"gridLayout,omitempty"`
   850  	// Labels: Labels applied to the dashboard
   851  	Labels map[string]string `json:"labels,omitempty"`
   852  	// MosaicLayout: The content is arranged as a grid of tiles, with each content
   853  	// widget occupying one or more grid blocks.
   854  	MosaicLayout *MosaicLayout `json:"mosaicLayout,omitempty"`
   855  	// Name: Identifier. The resource name of the dashboard.
   856  	Name string `json:"name,omitempty"`
   857  	// RowLayout: The content is divided into equally spaced rows and the widgets
   858  	// are arranged horizontally.
   859  	RowLayout *RowLayout `json:"rowLayout,omitempty"`
   860  
   861  	// ServerResponse contains the HTTP response code and headers from the server.
   862  	googleapi.ServerResponse `json:"-"`
   863  	// ForceSendFields is a list of field names (e.g. "Annotations") to
   864  	// unconditionally include in API requests. By default, fields with empty or
   865  	// default values are omitted from API requests. See
   866  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   867  	// details.
   868  	ForceSendFields []string `json:"-"`
   869  	// NullFields is a list of field names (e.g. "Annotations") to include in API
   870  	// requests with the JSON null value. By default, fields with empty values are
   871  	// omitted from API requests. See
   872  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   873  	NullFields []string `json:"-"`
   874  }
   875  
   876  func (s *Dashboard) MarshalJSON() ([]byte, error) {
   877  	type NoMethod Dashboard
   878  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   879  }
   880  
   881  // DashboardAnnotations: Dashboard-level configuration for annotations
   882  type DashboardAnnotations struct {
   883  	// DefaultResourceNames: Dashboard level defaults for names of logging
   884  	// resources to search for events. Currently only projects are supported. Each
   885  	// individual EventAnnotation may have its own overrides. If both this field
   886  	// and the per annotation field is empty, then the scoping project is used.
   887  	// Limit: 50 projects. For example: “projects/some-project-id”
   888  	DefaultResourceNames []string `json:"defaultResourceNames,omitempty"`
   889  	// EventAnnotations: List of annotation configurations for this dashboard. Each
   890  	// entry specifies one event type.
   891  	EventAnnotations []*EventAnnotation `json:"eventAnnotations,omitempty"`
   892  	// ForceSendFields is a list of field names (e.g. "DefaultResourceNames") to
   893  	// unconditionally include in API requests. By default, fields with empty or
   894  	// default values are omitted from API requests. See
   895  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   896  	// details.
   897  	ForceSendFields []string `json:"-"`
   898  	// NullFields is a list of field names (e.g. "DefaultResourceNames") to include
   899  	// in API requests with the JSON null value. By default, fields with empty
   900  	// values are omitted from API requests. See
   901  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   902  	NullFields []string `json:"-"`
   903  }
   904  
   905  func (s *DashboardAnnotations) MarshalJSON() ([]byte, error) {
   906  	type NoMethod DashboardAnnotations
   907  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   908  }
   909  
   910  // DashboardFilter: A filter to reduce the amount of data charted in relevant
   911  // widgets.
   912  type DashboardFilter struct {
   913  	// ApplyToNewWidgets: Whether to apply this filter to new widgets by default
   914  	ApplyToNewWidgets bool `json:"applyToNewWidgets,omitempty"`
   915  	// FilterType: The specified filter type
   916  	//
   917  	// Possible values:
   918  	//   "FILTER_TYPE_UNSPECIFIED" - Filter type is unspecified. This is not valid
   919  	// in a well-formed request.
   920  	//   "RESOURCE_LABEL" - Filter on a resource label value
   921  	//   "METRIC_LABEL" - Filter on a metrics label value
   922  	//   "USER_METADATA_LABEL" - Filter on a user metadata label value
   923  	//   "SYSTEM_METADATA_LABEL" - Filter on a system metadata label value
   924  	//   "GROUP" - Filter on a group id
   925  	FilterType string `json:"filterType,omitempty"`
   926  	// LabelKey: Required. The key for the label
   927  	LabelKey string `json:"labelKey,omitempty"`
   928  	// StringValue: A variable-length string value.
   929  	StringValue string `json:"stringValue,omitempty"`
   930  	// TemplateVariable: The placeholder text that can be referenced in a filter
   931  	// string or MQL query. If omitted, the dashboard filter will be applied to all
   932  	// relevant widgets in the dashboard.
   933  	TemplateVariable string `json:"templateVariable,omitempty"`
   934  	// ForceSendFields is a list of field names (e.g. "ApplyToNewWidgets") to
   935  	// unconditionally include in API requests. By default, fields with empty or
   936  	// default values are omitted from API requests. See
   937  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   938  	// details.
   939  	ForceSendFields []string `json:"-"`
   940  	// NullFields is a list of field names (e.g. "ApplyToNewWidgets") to include in
   941  	// API requests with the JSON null value. By default, fields with empty values
   942  	// are omitted from API requests. See
   943  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   944  	NullFields []string `json:"-"`
   945  }
   946  
   947  func (s *DashboardFilter) MarshalJSON() ([]byte, error) {
   948  	type NoMethod DashboardFilter
   949  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   950  }
   951  
   952  // DataSet: Groups a time series query definition with charting options.
   953  type DataSet struct {
   954  	// Breakdowns: Optional. The collection of breakdowns to be applied to the
   955  	// dataset.
   956  	Breakdowns []*Breakdown `json:"breakdowns,omitempty"`
   957  	// Dimensions: Optional. A collection of dimension columns.
   958  	Dimensions []*Dimension `json:"dimensions,omitempty"`
   959  	// LegendTemplate: A template string for naming TimeSeries in the resulting
   960  	// data set. This should be a string with interpolations of the form
   961  	// ${label_name}, which will resolve to the label's value.
   962  	LegendTemplate string `json:"legendTemplate,omitempty"`
   963  	// Measures: Optional. A collection of measures.
   964  	Measures []*Measure `json:"measures,omitempty"`
   965  	// MinAlignmentPeriod: Optional. The lower bound on data point frequency for
   966  	// this data set, implemented by specifying the minimum alignment period to use
   967  	// in a time series query For example, if the data is published once every 10
   968  	// minutes, the min_alignment_period should be at least 10 minutes. It would
   969  	// not make sense to fetch and align data at one minute intervals.
   970  	MinAlignmentPeriod string `json:"minAlignmentPeriod,omitempty"`
   971  	// PlotType: How this data should be plotted on the chart.
   972  	//
   973  	// Possible values:
   974  	//   "PLOT_TYPE_UNSPECIFIED" - Plot type is unspecified. The view will default
   975  	// to LINE.
   976  	//   "LINE" - The data is plotted as a set of lines (one line per series).
   977  	//   "STACKED_AREA" - The data is plotted as a set of filled areas (one area
   978  	// per series), with the areas stacked vertically (the base of each area is the
   979  	// top of its predecessor, and the base of the first area is the x-axis). Since
   980  	// the areas do not overlap, each is filled with a different opaque color.
   981  	//   "STACKED_BAR" - The data is plotted as a set of rectangular boxes (one box
   982  	// per series), with the boxes stacked vertically (the base of each box is the
   983  	// top of its predecessor, and the base of the first box is the x-axis). Since
   984  	// the boxes do not overlap, each is filled with a different opaque color.
   985  	//   "HEATMAP" - The data is plotted as a heatmap. The series being plotted
   986  	// must have a DISTRIBUTION value type. The value of each bucket in the
   987  	// distribution is displayed as a color. This type is not currently available
   988  	// in the Stackdriver Monitoring application.
   989  	PlotType string `json:"plotType,omitempty"`
   990  	// TargetAxis: Optional. The target axis to use for plotting the metric.
   991  	//
   992  	// Possible values:
   993  	//   "TARGET_AXIS_UNSPECIFIED" - The target axis was not specified. Defaults to
   994  	// Y1.
   995  	//   "Y1" - The y_axis (the right axis of chart).
   996  	//   "Y2" - The y2_axis (the left axis of chart).
   997  	TargetAxis string `json:"targetAxis,omitempty"`
   998  	// TimeSeriesQuery: Required. Fields for querying time series data from the
   999  	// Stackdriver metrics API.
  1000  	TimeSeriesQuery *TimeSeriesQuery `json:"timeSeriesQuery,omitempty"`
  1001  	// ForceSendFields is a list of field names (e.g. "Breakdowns") to
  1002  	// unconditionally include in API requests. By default, fields with empty or
  1003  	// default values are omitted from API requests. See
  1004  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1005  	// details.
  1006  	ForceSendFields []string `json:"-"`
  1007  	// NullFields is a list of field names (e.g. "Breakdowns") to include in API
  1008  	// requests with the JSON null value. By default, fields with empty values are
  1009  	// omitted from API requests. See
  1010  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1011  	NullFields []string `json:"-"`
  1012  }
  1013  
  1014  func (s *DataSet) MarshalJSON() ([]byte, error) {
  1015  	type NoMethod DataSet
  1016  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1017  }
  1018  
  1019  // Dimension: A chart dimension. Dimensions are a structured label, class, or
  1020  // category for a set of measurements in your data.
  1021  type Dimension struct {
  1022  	// Column: Required. The name of the column in the source SQL query that is
  1023  	// used to chart the dimension.
  1024  	Column string `json:"column,omitempty"`
  1025  	// ColumnType: Optional. The type of the dimension column. This is relevant
  1026  	// only if one of the bin_size fields is set. If it is empty, the type
  1027  	// TIMESTAMP or INT64 will be assumed based on which bin_size field is set. If
  1028  	// populated, this should be set to one of the following types: DATE, TIME,
  1029  	// DATETIME, TIMESTAMP, BIGNUMERIC, INT64, NUMERIC, FLOAT64.
  1030  	ColumnType string `json:"columnType,omitempty"`
  1031  	// FloatBinSize: Optional. float_bin_size is used when the column type used for
  1032  	// a dimension is a floating point numeric column.
  1033  	FloatBinSize float64 `json:"floatBinSize,omitempty"`
  1034  	// MaxBinCount: A limit to the number of bins generated. When 0 is specified,
  1035  	// the maximum count is not enforced.
  1036  	MaxBinCount int64 `json:"maxBinCount,omitempty"`
  1037  	// NumericBinSize: numeric_bin_size is used when the column type used for a
  1038  	// dimension is numeric or string.
  1039  	NumericBinSize int64 `json:"numericBinSize,omitempty"`
  1040  	// SortColumn: The column name to sort on for binning. This column can be the
  1041  	// same column as this dimension or any other column used as a measure in the
  1042  	// results. If sort_order is set to NONE, then this value is not used.
  1043  	SortColumn string `json:"sortColumn,omitempty"`
  1044  	// SortOrder: The sort order applied to the sort column.
  1045  	//
  1046  	// Possible values:
  1047  	//   "SORT_ORDER_UNSPECIFIED" - An unspecified sort order. This option is
  1048  	// invalid when sorting is required.
  1049  	//   "SORT_ORDER_NONE" - No sorting is applied.
  1050  	//   "SORT_ORDER_ASCENDING" - The lowest-valued entries are selected first.
  1051  	//   "SORT_ORDER_DESCENDING" - The highest-valued entries are selected first.
  1052  	SortOrder string `json:"sortOrder,omitempty"`
  1053  	// TimeBinSize: time_bin_size is used when the data type specified by column is
  1054  	// a time type and the bin size is determined by a time duration. If
  1055  	// column_type is DATE, this must be a whole value multiple of 1 day. If
  1056  	// column_type is TIME, this must be less than or equal to 24 hours.
  1057  	TimeBinSize string `json:"timeBinSize,omitempty"`
  1058  	// ForceSendFields is a list of field names (e.g. "Column") to unconditionally
  1059  	// include in API requests. By default, fields with empty or default values are
  1060  	// omitted from API requests. See
  1061  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1062  	// details.
  1063  	ForceSendFields []string `json:"-"`
  1064  	// NullFields is a list of field names (e.g. "Column") to include in API
  1065  	// requests with the JSON null value. By default, fields with empty values are
  1066  	// omitted from API requests. See
  1067  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1068  	NullFields []string `json:"-"`
  1069  }
  1070  
  1071  func (s *Dimension) MarshalJSON() ([]byte, error) {
  1072  	type NoMethod Dimension
  1073  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1074  }
  1075  
  1076  func (s *Dimension) UnmarshalJSON(data []byte) error {
  1077  	type NoMethod Dimension
  1078  	var s1 struct {
  1079  		FloatBinSize gensupport.JSONFloat64 `json:"floatBinSize"`
  1080  		*NoMethod
  1081  	}
  1082  	s1.NoMethod = (*NoMethod)(s)
  1083  	if err := json.Unmarshal(data, &s1); err != nil {
  1084  		return err
  1085  	}
  1086  	s.FloatBinSize = float64(s1.FloatBinSize)
  1087  	return nil
  1088  }
  1089  
  1090  // DroppedLabels: A set of (label, value) pairs that were removed from a
  1091  // Distribution time series during aggregation and then added as an attachment
  1092  // to a Distribution.Exemplar.The full label set for the exemplars is
  1093  // constructed by using the dropped pairs in combination with the label values
  1094  // that remain on the aggregated Distribution time series. The constructed full
  1095  // label set can be used to identify the specific entity, such as the instance
  1096  // or job, which might be contributing to a long-tail. However, with dropped
  1097  // labels, the storage requirements are reduced because only the aggregated
  1098  // distribution values for a large group of time series are stored.Note that
  1099  // there are no guarantees on ordering of the labels from exemplar-to-exemplar
  1100  // and from distribution-to-distribution in the same stream, and there may be
  1101  // duplicates. It is up to clients to resolve any ambiguities.
  1102  type DroppedLabels struct {
  1103  	// Label: Map from label to its value, for all labels dropped in any
  1104  	// aggregation.
  1105  	Label map[string]string `json:"label,omitempty"`
  1106  	// ForceSendFields is a list of field names (e.g. "Label") to unconditionally
  1107  	// include in API requests. By default, fields with empty or default values are
  1108  	// omitted from API requests. See
  1109  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1110  	// details.
  1111  	ForceSendFields []string `json:"-"`
  1112  	// NullFields is a list of field names (e.g. "Label") to include in API
  1113  	// requests with the JSON null value. By default, fields with empty values are
  1114  	// omitted from API requests. See
  1115  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1116  	NullFields []string `json:"-"`
  1117  }
  1118  
  1119  func (s *DroppedLabels) MarshalJSON() ([]byte, error) {
  1120  	type NoMethod DroppedLabels
  1121  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1122  }
  1123  
  1124  // Empty: A generic empty message that you can re-use to avoid defining
  1125  // duplicated empty messages in your APIs. A typical example is to use it as
  1126  // the request or the response type of an API method. For instance: service Foo
  1127  // { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
  1128  type Empty struct {
  1129  	// ServerResponse contains the HTTP response code and headers from the server.
  1130  	googleapi.ServerResponse `json:"-"`
  1131  }
  1132  
  1133  // ErrorReportingPanel: A widget that displays a list of error groups.
  1134  type ErrorReportingPanel struct {
  1135  	// ProjectNames: The resource name of the Google Cloud Platform project.
  1136  	// Written as projects/{projectID} or projects/{projectNumber}, where
  1137  	// {projectID} and {projectNumber} can be found in the Google Cloud console
  1138  	// (https://support.google.com/cloud/answer/6158840).Examples:
  1139  	// projects/my-project-123, projects/5551234.
  1140  	ProjectNames []string `json:"projectNames,omitempty"`
  1141  	// Services: An identifier of the service, such as the name of the executable,
  1142  	// job, or Google App Engine service name. This field is expected to have a low
  1143  	// number of values that are relatively stable over time, as opposed to
  1144  	// version, which can be changed whenever new code is deployed.Contains the
  1145  	// service name for error reports extracted from Google App Engine logs or
  1146  	// default if the App Engine default service is used.
  1147  	Services []string `json:"services,omitempty"`
  1148  	// Versions: Represents the source code version that the developer provided,
  1149  	// which could represent a version label or a Git SHA-1 hash, for example. For
  1150  	// App Engine standard environment, the version is set to the version of the
  1151  	// app.
  1152  	Versions []string `json:"versions,omitempty"`
  1153  	// ForceSendFields is a list of field names (e.g. "ProjectNames") to
  1154  	// unconditionally include in API requests. By default, fields with empty or
  1155  	// default values are omitted from API requests. See
  1156  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1157  	// details.
  1158  	ForceSendFields []string `json:"-"`
  1159  	// NullFields is a list of field names (e.g. "ProjectNames") to include in API
  1160  	// requests with the JSON null value. By default, fields with empty values are
  1161  	// omitted from API requests. See
  1162  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1163  	NullFields []string `json:"-"`
  1164  }
  1165  
  1166  func (s *ErrorReportingPanel) MarshalJSON() ([]byte, error) {
  1167  	type NoMethod ErrorReportingPanel
  1168  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1169  }
  1170  
  1171  // EventAnnotation: Annotation configuration for one event type on a dashboard
  1172  type EventAnnotation struct {
  1173  	// DisplayName: Solely for UI display. Should not be used programmatically.
  1174  	DisplayName string `json:"displayName,omitempty"`
  1175  	// Enabled: Whether or not to show the events on the dashboard by default
  1176  	Enabled bool `json:"enabled,omitempty"`
  1177  	// EventType: The type of event to display.
  1178  	//
  1179  	// Possible values:
  1180  	//   "EVENT_TYPE_UNSPECIFIED" - No event type specified.
  1181  	//   "GKE_WORKLOAD_DEPLOYMENT" - Patch/update of GKE workload.
  1182  	//   "GKE_POD_CRASH" - Crash events for a GKE Pod.
  1183  	//   "GKE_POD_UNSCHEDULABLE" - Scheduling failures for GKE Pods.
  1184  	//   "GKE_CONTAINER_CREATION_FAILED" - Failure to create a GKE container.
  1185  	//   "GKE_CLUSTER_CREATE_DELETE" - Create/delete of a GKE cluster.
  1186  	//   "GKE_CLUSTER_UPDATE" - Update of a GKE cluster.
  1187  	//   "GKE_NODE_POOL_UPDATE" - Update of a GKE node pool.
  1188  	//   "GKE_CLUSTER_AUTOSCALER" - GKE cluster autoscaler event.
  1189  	//   "GKE_POD_AUTOSCALER" - GKE pod autoscaler event.
  1190  	//   "VM_TERMINATION" - Termination of a virtual machine.
  1191  	//   "VM_GUEST_OS_ERROR" - Guest OS error on a virtual machine.
  1192  	//   "VM_START_FAILED" - Start failure on a virtual machine.
  1193  	//   "MIG_UPDATE" - Update of a managed instance group.
  1194  	//   "MIG_AUTOSCALER" - Autoscaler event for a managed instance group.
  1195  	//   "CLOUD_RUN_DEPLOYMENT" - New deployment of a Cloud Run service.
  1196  	//   "CLOUD_SQL_FAILOVER" - Failover of a Cloud SQL instance.
  1197  	//   "CLOUD_SQL_START_STOP" - Start/stop of a Cloud SQL instance.
  1198  	//   "CLOUD_SQL_STORAGE" - Storage event for a Cloud SQL instance.
  1199  	//   "UPTIME_CHECK_FAILURE" - Failure of a Cloud Monitoring uptime check.
  1200  	EventType string `json:"eventType,omitempty"`
  1201  	// Filter: string filtering the events - event dependant. Example values:
  1202  	// "resource.labels.pod_name = 'pod-1'"
  1203  	// "protoPayload.authenticationInfo.principalEmail='user@example.com'"
  1204  	Filter string `json:"filter,omitempty"`
  1205  	// ResourceNames: Per annotation level override for the names of logging
  1206  	// resources to search for events. Currently only projects are supported. If
  1207  	// both this field and the per annotation field is empty, it will default to
  1208  	// the host project. Limit: 50 projects. For example:
  1209  	// “projects/another-project-id”
  1210  	ResourceNames []string `json:"resourceNames,omitempty"`
  1211  	// ForceSendFields is a list of field names (e.g. "DisplayName") to
  1212  	// unconditionally include in API requests. By default, fields with empty or
  1213  	// default values are omitted from API requests. See
  1214  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1215  	// details.
  1216  	ForceSendFields []string `json:"-"`
  1217  	// NullFields is a list of field names (e.g. "DisplayName") to include in API
  1218  	// requests with the JSON null value. By default, fields with empty values are
  1219  	// omitted from API requests. See
  1220  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1221  	NullFields []string `json:"-"`
  1222  }
  1223  
  1224  func (s *EventAnnotation) MarshalJSON() ([]byte, error) {
  1225  	type NoMethod EventAnnotation
  1226  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1227  }
  1228  
  1229  // Field: A single field of a message type.
  1230  type Field struct {
  1231  	// Cardinality: The field cardinality.
  1232  	//
  1233  	// Possible values:
  1234  	//   "CARDINALITY_UNKNOWN" - For fields with unknown cardinality.
  1235  	//   "CARDINALITY_OPTIONAL" - For optional fields.
  1236  	//   "CARDINALITY_REQUIRED" - For required fields. Proto2 syntax only.
  1237  	//   "CARDINALITY_REPEATED" - For repeated fields.
  1238  	Cardinality string `json:"cardinality,omitempty"`
  1239  	// DefaultValue: The string value of the default value of this field. Proto2
  1240  	// syntax only.
  1241  	DefaultValue string `json:"defaultValue,omitempty"`
  1242  	// JsonName: The field JSON name.
  1243  	JsonName string `json:"jsonName,omitempty"`
  1244  	// Kind: The field type.
  1245  	//
  1246  	// Possible values:
  1247  	//   "TYPE_UNKNOWN" - Field type unknown.
  1248  	//   "TYPE_DOUBLE" - Field type double.
  1249  	//   "TYPE_FLOAT" - Field type float.
  1250  	//   "TYPE_INT64" - Field type int64.
  1251  	//   "TYPE_UINT64" - Field type uint64.
  1252  	//   "TYPE_INT32" - Field type int32.
  1253  	//   "TYPE_FIXED64" - Field type fixed64.
  1254  	//   "TYPE_FIXED32" - Field type fixed32.
  1255  	//   "TYPE_BOOL" - Field type bool.
  1256  	//   "TYPE_STRING" - Field type string.
  1257  	//   "TYPE_GROUP" - Field type group. Proto2 syntax only, and deprecated.
  1258  	//   "TYPE_MESSAGE" - Field type message.
  1259  	//   "TYPE_BYTES" - Field type bytes.
  1260  	//   "TYPE_UINT32" - Field type uint32.
  1261  	//   "TYPE_ENUM" - Field type enum.
  1262  	//   "TYPE_SFIXED32" - Field type sfixed32.
  1263  	//   "TYPE_SFIXED64" - Field type sfixed64.
  1264  	//   "TYPE_SINT32" - Field type sint32.
  1265  	//   "TYPE_SINT64" - Field type sint64.
  1266  	Kind string `json:"kind,omitempty"`
  1267  	// Name: The field name.
  1268  	Name string `json:"name,omitempty"`
  1269  	// Number: The field number.
  1270  	Number int64 `json:"number,omitempty"`
  1271  	// OneofIndex: The index of the field type in Type.oneofs, for message or
  1272  	// enumeration types. The first type has index 1; zero means the type is not in
  1273  	// the list.
  1274  	OneofIndex int64 `json:"oneofIndex,omitempty"`
  1275  	// Options: The protocol buffer options.
  1276  	Options []*Option `json:"options,omitempty"`
  1277  	// Packed: Whether to use alternative packed wire representation.
  1278  	Packed bool `json:"packed,omitempty"`
  1279  	// TypeUrl: The field type URL, without the scheme, for message or enumeration
  1280  	// types. Example: "type.googleapis.com/google.protobuf.Timestamp".
  1281  	TypeUrl string `json:"typeUrl,omitempty"`
  1282  	// ForceSendFields is a list of field names (e.g. "Cardinality") to
  1283  	// unconditionally include in API requests. By default, fields with empty or
  1284  	// default values are omitted from API requests. See
  1285  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1286  	// details.
  1287  	ForceSendFields []string `json:"-"`
  1288  	// NullFields is a list of field names (e.g. "Cardinality") to include in API
  1289  	// requests with the JSON null value. By default, fields with empty values are
  1290  	// omitted from API requests. See
  1291  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1292  	NullFields []string `json:"-"`
  1293  }
  1294  
  1295  func (s *Field) MarshalJSON() ([]byte, error) {
  1296  	type NoMethod Field
  1297  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1298  }
  1299  
  1300  // GaugeView: A gauge chart shows where the current value sits within a
  1301  // pre-defined range. The upper and lower bounds should define the possible
  1302  // range of values for the scorecard's query (inclusive).
  1303  type GaugeView struct {
  1304  	// LowerBound: The lower bound for this gauge chart. The value of the chart
  1305  	// should always be greater than or equal to this.
  1306  	LowerBound float64 `json:"lowerBound,omitempty"`
  1307  	// UpperBound: The upper bound for this gauge chart. The value of the chart
  1308  	// should always be less than or equal to this.
  1309  	UpperBound float64 `json:"upperBound,omitempty"`
  1310  	// ForceSendFields is a list of field names (e.g. "LowerBound") to
  1311  	// unconditionally include in API requests. By default, fields with empty or
  1312  	// default values are omitted from API requests. See
  1313  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1314  	// details.
  1315  	ForceSendFields []string `json:"-"`
  1316  	// NullFields is a list of field names (e.g. "LowerBound") to include in API
  1317  	// requests with the JSON null value. By default, fields with empty values are
  1318  	// omitted from API requests. See
  1319  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1320  	NullFields []string `json:"-"`
  1321  }
  1322  
  1323  func (s *GaugeView) MarshalJSON() ([]byte, error) {
  1324  	type NoMethod GaugeView
  1325  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1326  }
  1327  
  1328  func (s *GaugeView) UnmarshalJSON(data []byte) error {
  1329  	type NoMethod GaugeView
  1330  	var s1 struct {
  1331  		LowerBound gensupport.JSONFloat64 `json:"lowerBound"`
  1332  		UpperBound gensupport.JSONFloat64 `json:"upperBound"`
  1333  		*NoMethod
  1334  	}
  1335  	s1.NoMethod = (*NoMethod)(s)
  1336  	if err := json.Unmarshal(data, &s1); err != nil {
  1337  		return err
  1338  	}
  1339  	s.LowerBound = float64(s1.LowerBound)
  1340  	s.UpperBound = float64(s1.UpperBound)
  1341  	return nil
  1342  }
  1343  
  1344  // GridLayout: A basic layout divides the available space into vertical columns
  1345  // of equal width and arranges a list of widgets using a row-first strategy.
  1346  type GridLayout struct {
  1347  	// Columns: The number of columns into which the view's width is divided. If
  1348  	// omitted or set to zero, a system default will be used while rendering.
  1349  	Columns int64 `json:"columns,omitempty,string"`
  1350  	// Widgets: The informational elements that are arranged into the columns
  1351  	// row-first.
  1352  	Widgets []*Widget `json:"widgets,omitempty"`
  1353  	// ForceSendFields is a list of field names (e.g. "Columns") to unconditionally
  1354  	// include in API requests. By default, fields with empty or default values are
  1355  	// omitted from API requests. See
  1356  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1357  	// details.
  1358  	ForceSendFields []string `json:"-"`
  1359  	// NullFields is a list of field names (e.g. "Columns") to include in API
  1360  	// requests with the JSON null value. By default, fields with empty values are
  1361  	// omitted from API requests. See
  1362  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1363  	NullFields []string `json:"-"`
  1364  }
  1365  
  1366  func (s *GridLayout) MarshalJSON() ([]byte, error) {
  1367  	type NoMethod GridLayout
  1368  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1369  }
  1370  
  1371  // HttpBody: Message that represents an arbitrary HTTP body. It should only be
  1372  // used for payload formats that can't be represented as JSON, such as raw
  1373  // binary or an HTML page.This message can be used both in streaming and
  1374  // non-streaming API methods in the request as well as the response.It can be
  1375  // used as a top-level request field, which is convenient if one wants to
  1376  // extract parameters from either the URL or HTTP template into the request
  1377  // fields and also want access to the raw HTTP body.Example: message
  1378  // GetResourceRequest { // A unique request id. string request_id = 1; // The
  1379  // raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; }
  1380  // service ResourceService { rpc GetResource(GetResourceRequest) returns
  1381  // (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns
  1382  // (google.protobuf.Empty); } Example with streaming methods: service
  1383  // CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream
  1384  // google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns
  1385  // (stream google.api.HttpBody); } Use of this type only changes how the
  1386  // request and response bodies are handled, all other features will continue to
  1387  // work unchanged.
  1388  type HttpBody struct {
  1389  	// ContentType: The HTTP Content-Type header value specifying the content type
  1390  	// of the body.
  1391  	ContentType string `json:"contentType,omitempty"`
  1392  	// Data: The HTTP request/response body as raw binary.
  1393  	Data string `json:"data,omitempty"`
  1394  	// Extensions: Application specific response metadata. Must be set in the first
  1395  	// response for streaming APIs.
  1396  	Extensions []googleapi.RawMessage `json:"extensions,omitempty"`
  1397  
  1398  	// ServerResponse contains the HTTP response code and headers from the server.
  1399  	googleapi.ServerResponse `json:"-"`
  1400  	// ForceSendFields is a list of field names (e.g. "ContentType") to
  1401  	// unconditionally include in API requests. By default, fields with empty or
  1402  	// default values are omitted from API requests. See
  1403  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1404  	// details.
  1405  	ForceSendFields []string `json:"-"`
  1406  	// NullFields is a list of field names (e.g. "ContentType") to include in API
  1407  	// requests with the JSON null value. By default, fields with empty values are
  1408  	// omitted from API requests. See
  1409  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1410  	NullFields []string `json:"-"`
  1411  }
  1412  
  1413  func (s *HttpBody) MarshalJSON() ([]byte, error) {
  1414  	type NoMethod HttpBody
  1415  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1416  }
  1417  
  1418  // IncidentList: A widget that displays a list of incidents
  1419  type IncidentList struct {
  1420  	// MonitoredResources: Optional. The monitored resource for which incidents are
  1421  	// listed. The resource doesn't need to be fully specified. That is, you can
  1422  	// specify the resource type but not the values of the resource labels. The
  1423  	// resource type and labels are used for filtering.
  1424  	MonitoredResources []*MonitoredResource `json:"monitoredResources,omitempty"`
  1425  	// PolicyNames: Optional. A list of alert policy names to filter the incident
  1426  	// list by. Don't include the project ID prefix in the policy name. For
  1427  	// example, use alertPolicies/utilization.
  1428  	PolicyNames []string `json:"policyNames,omitempty"`
  1429  	// ForceSendFields is a list of field names (e.g. "MonitoredResources") to
  1430  	// unconditionally include in API requests. By default, fields with empty or
  1431  	// default values are omitted from API requests. See
  1432  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1433  	// details.
  1434  	ForceSendFields []string `json:"-"`
  1435  	// NullFields is a list of field names (e.g. "MonitoredResources") to include
  1436  	// in API requests with the JSON null value. By default, fields with empty
  1437  	// values are omitted from API requests. See
  1438  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1439  	NullFields []string `json:"-"`
  1440  }
  1441  
  1442  func (s *IncidentList) MarshalJSON() ([]byte, error) {
  1443  	type NoMethod IncidentList
  1444  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1445  }
  1446  
  1447  // Interval: Represents a time interval, encoded as a Timestamp start
  1448  // (inclusive) and a Timestamp end (exclusive).The start must be less than or
  1449  // equal to the end. When the start equals the end, the interval is empty
  1450  // (matches no time). When both start and end are unspecified, the interval
  1451  // matches any time.
  1452  type Interval struct {
  1453  	// EndTime: Optional. Exclusive end of the interval.If specified, a Timestamp
  1454  	// matching this interval will have to be before the end.
  1455  	EndTime string `json:"endTime,omitempty"`
  1456  	// StartTime: Optional. Inclusive start of the interval.If specified, a
  1457  	// Timestamp matching this interval will have to be the same or after the
  1458  	// start.
  1459  	StartTime string `json:"startTime,omitempty"`
  1460  	// ForceSendFields is a list of field names (e.g. "EndTime") to unconditionally
  1461  	// include in API requests. By default, fields with empty or default values are
  1462  	// omitted from API requests. See
  1463  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1464  	// details.
  1465  	ForceSendFields []string `json:"-"`
  1466  	// NullFields is a list of field names (e.g. "EndTime") to include in API
  1467  	// requests with the JSON null value. By default, fields with empty values are
  1468  	// omitted from API requests. See
  1469  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1470  	NullFields []string `json:"-"`
  1471  }
  1472  
  1473  func (s *Interval) MarshalJSON() ([]byte, error) {
  1474  	type NoMethod Interval
  1475  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1476  }
  1477  
  1478  // ListDashboardsResponse: The ListDashboards request.
  1479  type ListDashboardsResponse struct {
  1480  	// Dashboards: The list of requested dashboards.
  1481  	Dashboards []*Dashboard `json:"dashboards,omitempty"`
  1482  	// NextPageToken: If there are more results than have been returned, then this
  1483  	// field is set to a non-empty value. To see the additional results, use that
  1484  	// value as page_token in the next call to this method.
  1485  	NextPageToken string `json:"nextPageToken,omitempty"`
  1486  
  1487  	// ServerResponse contains the HTTP response code and headers from the server.
  1488  	googleapi.ServerResponse `json:"-"`
  1489  	// ForceSendFields is a list of field names (e.g. "Dashboards") to
  1490  	// unconditionally include in API requests. By default, fields with empty or
  1491  	// default values are omitted from API requests. See
  1492  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1493  	// details.
  1494  	ForceSendFields []string `json:"-"`
  1495  	// NullFields is a list of field names (e.g. "Dashboards") to include in API
  1496  	// requests with the JSON null value. By default, fields with empty values are
  1497  	// omitted from API requests. See
  1498  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1499  	NullFields []string `json:"-"`
  1500  }
  1501  
  1502  func (s *ListDashboardsResponse) MarshalJSON() ([]byte, error) {
  1503  	type NoMethod ListDashboardsResponse
  1504  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1505  }
  1506  
  1507  // ListMetricsScopesByMonitoredProjectResponse: Response for the
  1508  // ListMetricsScopesByMonitoredProject method.
  1509  type ListMetricsScopesByMonitoredProjectResponse struct {
  1510  	// MetricsScopes: A set of all metrics scopes that the specified monitored
  1511  	// project has been added to.
  1512  	MetricsScopes []*MetricsScope `json:"metricsScopes,omitempty"`
  1513  
  1514  	// ServerResponse contains the HTTP response code and headers from the server.
  1515  	googleapi.ServerResponse `json:"-"`
  1516  	// ForceSendFields is a list of field names (e.g. "MetricsScopes") to
  1517  	// unconditionally include in API requests. By default, fields with empty or
  1518  	// default values are omitted from API requests. See
  1519  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1520  	// details.
  1521  	ForceSendFields []string `json:"-"`
  1522  	// NullFields is a list of field names (e.g. "MetricsScopes") to include in API
  1523  	// requests with the JSON null value. By default, fields with empty values are
  1524  	// omitted from API requests. See
  1525  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1526  	NullFields []string `json:"-"`
  1527  }
  1528  
  1529  func (s *ListMetricsScopesByMonitoredProjectResponse) MarshalJSON() ([]byte, error) {
  1530  	type NoMethod ListMetricsScopesByMonitoredProjectResponse
  1531  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1532  }
  1533  
  1534  // LogsPanel: A widget that displays a stream of log.
  1535  type LogsPanel struct {
  1536  	// Filter: A filter that chooses which log entries to return. See Advanced Logs
  1537  	// Queries (https://cloud.google.com/logging/docs/view/advanced-queries). Only
  1538  	// log entries that match the filter are returned. An empty filter matches all
  1539  	// log entries.
  1540  	Filter string `json:"filter,omitempty"`
  1541  	// ResourceNames: The names of logging resources to collect logs for. Currently
  1542  	// only projects are supported. If empty, the widget will default to the host
  1543  	// project.
  1544  	ResourceNames []string `json:"resourceNames,omitempty"`
  1545  	// ForceSendFields is a list of field names (e.g. "Filter") to unconditionally
  1546  	// include in API requests. By default, fields with empty or default values are
  1547  	// omitted from API requests. See
  1548  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1549  	// details.
  1550  	ForceSendFields []string `json:"-"`
  1551  	// NullFields is a list of field names (e.g. "Filter") to include in API
  1552  	// requests with the JSON null value. By default, fields with empty values are
  1553  	// omitted from API requests. See
  1554  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1555  	NullFields []string `json:"-"`
  1556  }
  1557  
  1558  func (s *LogsPanel) MarshalJSON() ([]byte, error) {
  1559  	type NoMethod LogsPanel
  1560  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1561  }
  1562  
  1563  // Measure: A chart measure. Measures represent a measured property in your
  1564  // chart data such as rainfall in inches, number of units sold, revenue gained,
  1565  // etc.
  1566  type Measure struct {
  1567  	// AggregationFunction: Required. The aggregation function applied to the input
  1568  	// column. This must not be set to "none" unless binning is disabled on the
  1569  	// dimension. The aggregation function is used to group points on the dimension
  1570  	// bins.
  1571  	AggregationFunction *AggregationFunction `json:"aggregationFunction,omitempty"`
  1572  	// Column: Required. The column name within in the dataset used for the
  1573  	// measure.
  1574  	Column string `json:"column,omitempty"`
  1575  	// ForceSendFields is a list of field names (e.g. "AggregationFunction") to
  1576  	// unconditionally include in API requests. By default, fields with empty or
  1577  	// default values are omitted from API requests. See
  1578  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1579  	// details.
  1580  	ForceSendFields []string `json:"-"`
  1581  	// NullFields is a list of field names (e.g. "AggregationFunction") to include
  1582  	// in API requests with the JSON null value. By default, fields with empty
  1583  	// values are omitted from API requests. See
  1584  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1585  	NullFields []string `json:"-"`
  1586  }
  1587  
  1588  func (s *Measure) MarshalJSON() ([]byte, error) {
  1589  	type NoMethod Measure
  1590  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1591  }
  1592  
  1593  // MetricsScope: Represents a Metrics Scope
  1594  // (https://cloud.google.com/monitoring/settings#concept-scope) in Cloud
  1595  // Monitoring, which specifies one or more Google projects and zero or more AWS
  1596  // accounts to monitor together.
  1597  type MetricsScope struct {
  1598  	// CreateTime: Output only. The time when this Metrics Scope was created.
  1599  	CreateTime string `json:"createTime,omitempty"`
  1600  	// MonitoredProjects: Output only. The list of projects monitored by this
  1601  	// Metrics Scope.
  1602  	MonitoredProjects []*MonitoredProject `json:"monitoredProjects,omitempty"`
  1603  	// Name: Immutable. The resource name of the Monitoring Metrics Scope. On
  1604  	// input, the resource name can be specified with the scoping project ID or
  1605  	// number. On output, the resource name is specified with the scoping project
  1606  	// number. Example:
  1607  	// locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}
  1608  	Name string `json:"name,omitempty"`
  1609  	// UpdateTime: Output only. The time when this Metrics Scope record was last
  1610  	// updated.
  1611  	UpdateTime string `json:"updateTime,omitempty"`
  1612  
  1613  	// ServerResponse contains the HTTP response code and headers from the server.
  1614  	googleapi.ServerResponse `json:"-"`
  1615  	// ForceSendFields is a list of field names (e.g. "CreateTime") to
  1616  	// unconditionally include in API requests. By default, fields with empty or
  1617  	// default values are omitted from API requests. See
  1618  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1619  	// details.
  1620  	ForceSendFields []string `json:"-"`
  1621  	// NullFields is a list of field names (e.g. "CreateTime") to include in API
  1622  	// requests with the JSON null value. By default, fields with empty values are
  1623  	// omitted from API requests. See
  1624  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1625  	NullFields []string `json:"-"`
  1626  }
  1627  
  1628  func (s *MetricsScope) MarshalJSON() ([]byte, error) {
  1629  	type NoMethod MetricsScope
  1630  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1631  }
  1632  
  1633  // MonitoredProject: A project being monitored
  1634  // (https://cloud.google.com/monitoring/settings/multiple-projects#create-multi)
  1635  // by a Metrics Scope.
  1636  type MonitoredProject struct {
  1637  	// CreateTime: Output only. The time when this MonitoredProject was created.
  1638  	CreateTime string `json:"createTime,omitempty"`
  1639  	// Name: Immutable. The resource name of the MonitoredProject. On input, the
  1640  	// resource name includes the scoping project ID and monitored project ID. On
  1641  	// output, it contains the equivalent project numbers. Example:
  1642  	// locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}/projects/{MONIT
  1643  	// ORED_PROJECT_ID_OR_NUMBER}
  1644  	Name string `json:"name,omitempty"`
  1645  	// ForceSendFields is a list of field names (e.g. "CreateTime") to
  1646  	// unconditionally include in API requests. By default, fields with empty or
  1647  	// default values are omitted from API requests. See
  1648  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1649  	// details.
  1650  	ForceSendFields []string `json:"-"`
  1651  	// NullFields is a list of field names (e.g. "CreateTime") to include in API
  1652  	// requests with the JSON null value. By default, fields with empty values are
  1653  	// omitted from API requests. See
  1654  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1655  	NullFields []string `json:"-"`
  1656  }
  1657  
  1658  func (s *MonitoredProject) MarshalJSON() ([]byte, error) {
  1659  	type NoMethod MonitoredProject
  1660  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1661  }
  1662  
  1663  // MonitoredResource: An object representing a resource that can be used for
  1664  // monitoring, logging, billing, or other purposes. Examples include virtual
  1665  // machine instances, databases, and storage devices such as disks. The type
  1666  // field identifies a MonitoredResourceDescriptor object that describes the
  1667  // resource's schema. Information in the labels field identifies the actual
  1668  // resource and its attributes according to the schema. For example, a
  1669  // particular Compute Engine VM instance could be represented by the following
  1670  // object, because the MonitoredResourceDescriptor for "gce_instance" has
  1671  // labels "project_id", "instance_id" and "zone": { "type": "gce_instance",
  1672  // "labels": { "project_id": "my-project", "instance_id": "12345678901234",
  1673  // "zone": "us-central1-a" }}
  1674  type MonitoredResource struct {
  1675  	// Labels: Required. Values for all of the labels listed in the associated
  1676  	// monitored resource descriptor. For example, Compute Engine VM instances use
  1677  	// the labels "project_id", "instance_id", and "zone".
  1678  	Labels map[string]string `json:"labels,omitempty"`
  1679  	// Type: Required. The monitored resource type. This field must match the type
  1680  	// field of a MonitoredResourceDescriptor object. For example, the type of a
  1681  	// Compute Engine VM instance is gce_instance. For a list of types, see
  1682  	// Monitoring resource types
  1683  	// (https://cloud.google.com/monitoring/api/resources) and Logging resource
  1684  	// types (https://cloud.google.com/logging/docs/api/v2/resource-list).
  1685  	Type string `json:"type,omitempty"`
  1686  	// ForceSendFields is a list of field names (e.g. "Labels") to unconditionally
  1687  	// include in API requests. By default, fields with empty or default values are
  1688  	// omitted from API requests. See
  1689  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1690  	// details.
  1691  	ForceSendFields []string `json:"-"`
  1692  	// NullFields is a list of field names (e.g. "Labels") to include in API
  1693  	// requests with the JSON null value. By default, fields with empty values are
  1694  	// omitted from API requests. See
  1695  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1696  	NullFields []string `json:"-"`
  1697  }
  1698  
  1699  func (s *MonitoredResource) MarshalJSON() ([]byte, error) {
  1700  	type NoMethod MonitoredResource
  1701  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1702  }
  1703  
  1704  // MosaicLayout: A mosaic layout divides the available space into a grid of
  1705  // blocks, and overlays the grid with tiles. Unlike GridLayout, tiles may span
  1706  // multiple grid blocks and can be placed at arbitrary locations in the grid.
  1707  type MosaicLayout struct {
  1708  	// Columns: The number of columns in the mosaic grid. The number of columns
  1709  	// must be between 1 and 12, inclusive.
  1710  	Columns int64 `json:"columns,omitempty"`
  1711  	// Tiles: The tiles to display.
  1712  	Tiles []*Tile `json:"tiles,omitempty"`
  1713  	// ForceSendFields is a list of field names (e.g. "Columns") to unconditionally
  1714  	// include in API requests. By default, fields with empty or default values are
  1715  	// omitted from API requests. See
  1716  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1717  	// details.
  1718  	ForceSendFields []string `json:"-"`
  1719  	// NullFields is a list of field names (e.g. "Columns") to include in API
  1720  	// requests with the JSON null value. By default, fields with empty values are
  1721  	// omitted from API requests. See
  1722  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1723  	NullFields []string `json:"-"`
  1724  }
  1725  
  1726  func (s *MosaicLayout) MarshalJSON() ([]byte, error) {
  1727  	type NoMethod MosaicLayout
  1728  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1729  }
  1730  
  1731  // Operation: This resource represents a long-running operation that is the
  1732  // result of a network API call.
  1733  type Operation struct {
  1734  	// Done: If the value is false, it means the operation is still in progress. If
  1735  	// true, the operation is completed, and either error or response is available.
  1736  	Done bool `json:"done,omitempty"`
  1737  	// Error: The error result of the operation in case of failure or cancellation.
  1738  	Error *Status `json:"error,omitempty"`
  1739  	// Metadata: Service-specific metadata associated with the operation. It
  1740  	// typically contains progress information and common metadata such as create
  1741  	// time. Some services might not provide such metadata. Any method that returns
  1742  	// a long-running operation should document the metadata type, if any.
  1743  	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
  1744  	// Name: The server-assigned name, which is only unique within the same service
  1745  	// that originally returns it. If you use the default HTTP mapping, the name
  1746  	// should be a resource name ending with operations/{unique_id}.
  1747  	Name string `json:"name,omitempty"`
  1748  	// Response: The normal, successful response of the operation. If the original
  1749  	// method returns no data on success, such as Delete, the response is
  1750  	// google.protobuf.Empty. If the original method is standard Get/Create/Update,
  1751  	// the response should be the resource. For other methods, the response should
  1752  	// have the type XxxResponse, where Xxx is the original method name. For
  1753  	// example, if the original method name is TakeSnapshot(), the inferred
  1754  	// response type is TakeSnapshotResponse.
  1755  	Response googleapi.RawMessage `json:"response,omitempty"`
  1756  
  1757  	// ServerResponse contains the HTTP response code and headers from the server.
  1758  	googleapi.ServerResponse `json:"-"`
  1759  	// ForceSendFields is a list of field names (e.g. "Done") to unconditionally
  1760  	// include in API requests. By default, fields with empty or default values are
  1761  	// omitted from API requests. See
  1762  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1763  	// details.
  1764  	ForceSendFields []string `json:"-"`
  1765  	// NullFields is a list of field names (e.g. "Done") to include in API requests
  1766  	// with the JSON null value. By default, fields with empty values are omitted
  1767  	// from API requests. See
  1768  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1769  	NullFields []string `json:"-"`
  1770  }
  1771  
  1772  func (s *Operation) MarshalJSON() ([]byte, error) {
  1773  	type NoMethod Operation
  1774  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1775  }
  1776  
  1777  // OperationMetadata: Contains metadata for longrunning operation for the edit
  1778  // Metrics Scope endpoints.
  1779  type OperationMetadata struct {
  1780  	// CreateTime: The time when the batch request was received.
  1781  	CreateTime string `json:"createTime,omitempty"`
  1782  	// State: Current state of the batch operation.
  1783  	//
  1784  	// Possible values:
  1785  	//   "STATE_UNSPECIFIED" - Invalid.
  1786  	//   "CREATED" - Request has been received.
  1787  	//   "RUNNING" - Request is actively being processed.
  1788  	//   "DONE" - The batch processing is done.
  1789  	//   "CANCELLED" - The batch processing was cancelled.
  1790  	State string `json:"state,omitempty"`
  1791  	// UpdateTime: The time when the operation result was last updated.
  1792  	UpdateTime string `json:"updateTime,omitempty"`
  1793  	// ForceSendFields is a list of field names (e.g. "CreateTime") to
  1794  	// unconditionally include in API requests. By default, fields with empty or
  1795  	// default values are omitted from API requests. See
  1796  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1797  	// details.
  1798  	ForceSendFields []string `json:"-"`
  1799  	// NullFields is a list of field names (e.g. "CreateTime") to include in API
  1800  	// requests with the JSON null value. By default, fields with empty values are
  1801  	// omitted from API requests. See
  1802  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1803  	NullFields []string `json:"-"`
  1804  }
  1805  
  1806  func (s *OperationMetadata) MarshalJSON() ([]byte, error) {
  1807  	type NoMethod OperationMetadata
  1808  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1809  }
  1810  
  1811  // OpsAnalyticsQuery: Preview: A query that produces an aggregated response and
  1812  // supporting data. This is a preview feature and may be subject to change
  1813  // before final release.
  1814  type OpsAnalyticsQuery struct {
  1815  	// Sql: A SQL query to fetch time series, category series, or numeric series
  1816  	// data.
  1817  	Sql string `json:"sql,omitempty"`
  1818  	// ForceSendFields is a list of field names (e.g. "Sql") to unconditionally
  1819  	// include in API requests. By default, fields with empty or default values are
  1820  	// omitted from API requests. See
  1821  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1822  	// details.
  1823  	ForceSendFields []string `json:"-"`
  1824  	// NullFields is a list of field names (e.g. "Sql") to include in API requests
  1825  	// with the JSON null value. By default, fields with empty values are omitted
  1826  	// from API requests. See
  1827  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1828  	NullFields []string `json:"-"`
  1829  }
  1830  
  1831  func (s *OpsAnalyticsQuery) MarshalJSON() ([]byte, error) {
  1832  	type NoMethod OpsAnalyticsQuery
  1833  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1834  }
  1835  
  1836  // Option: A protocol buffer option, which can be attached to a message, field,
  1837  // enumeration, etc.
  1838  type Option struct {
  1839  	// Name: The option's name. For protobuf built-in options (options defined in
  1840  	// descriptor.proto), this is the short name. For example, "map_entry". For
  1841  	// custom options, it should be the fully-qualified name. For example,
  1842  	// "google.api.http".
  1843  	Name string `json:"name,omitempty"`
  1844  	// Value: The option's value packed in an Any message. If the value is a
  1845  	// primitive, the corresponding wrapper type defined in
  1846  	// google/protobuf/wrappers.proto should be used. If the value is an enum, it
  1847  	// should be stored as an int32 value using the google.protobuf.Int32Value
  1848  	// type.
  1849  	Value googleapi.RawMessage `json:"value,omitempty"`
  1850  	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
  1851  	// include in API requests. By default, fields with empty or default values are
  1852  	// omitted from API requests. See
  1853  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1854  	// details.
  1855  	ForceSendFields []string `json:"-"`
  1856  	// NullFields is a list of field names (e.g. "Name") to include in API requests
  1857  	// with the JSON null value. By default, fields with empty values are omitted
  1858  	// from API requests. See
  1859  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1860  	NullFields []string `json:"-"`
  1861  }
  1862  
  1863  func (s *Option) MarshalJSON() ([]byte, error) {
  1864  	type NoMethod Option
  1865  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1866  }
  1867  
  1868  // Parameter: Preview: Parameter value applied to the aggregation function.
  1869  // This is a preview feature and may be subject to change before final release.
  1870  type Parameter struct {
  1871  	// DoubleValue: A floating-point parameter value.
  1872  	DoubleValue float64 `json:"doubleValue,omitempty"`
  1873  	// IntValue: An integer parameter value.
  1874  	IntValue int64 `json:"intValue,omitempty,string"`
  1875  	// ForceSendFields is a list of field names (e.g. "DoubleValue") 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. "DoubleValue") to include in API
  1882  	// requests with the JSON null value. By default, fields with empty values are
  1883  	// 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 *Parameter) MarshalJSON() ([]byte, error) {
  1889  	type NoMethod Parameter
  1890  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1891  }
  1892  
  1893  func (s *Parameter) UnmarshalJSON(data []byte) error {
  1894  	type NoMethod Parameter
  1895  	var s1 struct {
  1896  		DoubleValue gensupport.JSONFloat64 `json:"doubleValue"`
  1897  		*NoMethod
  1898  	}
  1899  	s1.NoMethod = (*NoMethod)(s)
  1900  	if err := json.Unmarshal(data, &s1); err != nil {
  1901  		return err
  1902  	}
  1903  	s.DoubleValue = float64(s1.DoubleValue)
  1904  	return nil
  1905  }
  1906  
  1907  // PickTimeSeriesFilter: Describes a ranking-based time series filter. Each
  1908  // input time series is ranked with an aligner. The filter will allow up to
  1909  // num_time_series time series to pass through it, selecting them based on the
  1910  // relative ranking.For example, if ranking_method is METHOD_MEAN,direction is
  1911  // BOTTOM, and num_time_series is 3, then the 3 times series with the lowest
  1912  // mean values will pass through the filter.
  1913  type PickTimeSeriesFilter struct {
  1914  	// Direction: How to use the ranking to select time series that pass through
  1915  	// the filter.
  1916  	//
  1917  	// Possible values:
  1918  	//   "DIRECTION_UNSPECIFIED" - Not allowed. You must specify a different
  1919  	// Direction if you specify a PickTimeSeriesFilter.
  1920  	//   "TOP" - Pass the highest num_time_series ranking inputs.
  1921  	//   "BOTTOM" - Pass the lowest num_time_series ranking inputs.
  1922  	Direction string `json:"direction,omitempty"`
  1923  	// Interval: Select the top N streams/time series within this time interval
  1924  	Interval *Interval `json:"interval,omitempty"`
  1925  	// NumTimeSeries: How many time series to allow to pass through the filter.
  1926  	NumTimeSeries int64 `json:"numTimeSeries,omitempty"`
  1927  	// RankingMethod: ranking_method is applied to each time series independently
  1928  	// to produce the value which will be used to compare the time series to other
  1929  	// time series.
  1930  	//
  1931  	// Possible values:
  1932  	//   "METHOD_UNSPECIFIED" - Not allowed. You must specify a different Method if
  1933  	// you specify a PickTimeSeriesFilter.
  1934  	//   "METHOD_MEAN" - Select the mean of all values.
  1935  	//   "METHOD_MAX" - Select the maximum value.
  1936  	//   "METHOD_MIN" - Select the minimum value.
  1937  	//   "METHOD_SUM" - Compute the sum of all values.
  1938  	//   "METHOD_LATEST" - Select the most recent value.
  1939  	RankingMethod string `json:"rankingMethod,omitempty"`
  1940  	// ForceSendFields is a list of field names (e.g. "Direction") to
  1941  	// unconditionally include in API requests. By default, fields with empty or
  1942  	// default values are omitted from API requests. See
  1943  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1944  	// details.
  1945  	ForceSendFields []string `json:"-"`
  1946  	// NullFields is a list of field names (e.g. "Direction") to include in API
  1947  	// requests with the JSON null value. By default, fields with empty values are
  1948  	// omitted from API requests. See
  1949  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1950  	NullFields []string `json:"-"`
  1951  }
  1952  
  1953  func (s *PickTimeSeriesFilter) MarshalJSON() ([]byte, error) {
  1954  	type NoMethod PickTimeSeriesFilter
  1955  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1956  }
  1957  
  1958  // PieChart: A widget that displays timeseries data as a pie or a donut.
  1959  type PieChart struct {
  1960  	// ChartType: Required. Indicates the visualization type for the PieChart.
  1961  	//
  1962  	// Possible values:
  1963  	//   "PIE_CHART_TYPE_UNSPECIFIED" - The zero value. No type specified. Do not
  1964  	// use.
  1965  	//   "PIE" - A Pie type PieChart.
  1966  	//   "DONUT" - Similar to PIE, but the DONUT type PieChart has a hole in the
  1967  	// middle.
  1968  	ChartType string `json:"chartType,omitempty"`
  1969  	// DataSets: Required. The queries for the chart's data.
  1970  	DataSets []*PieChartDataSet `json:"dataSets,omitempty"`
  1971  	// ShowLabels: Optional. Indicates whether or not the pie chart should show
  1972  	// slices' labels
  1973  	ShowLabels bool `json:"showLabels,omitempty"`
  1974  	// ForceSendFields is a list of field names (e.g. "ChartType") to
  1975  	// unconditionally include in API requests. By default, fields with empty or
  1976  	// default values are omitted from API requests. See
  1977  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1978  	// details.
  1979  	ForceSendFields []string `json:"-"`
  1980  	// NullFields is a list of field names (e.g. "ChartType") to include in API
  1981  	// requests with the JSON null value. By default, fields with empty values are
  1982  	// omitted from API requests. See
  1983  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1984  	NullFields []string `json:"-"`
  1985  }
  1986  
  1987  func (s *PieChart) MarshalJSON() ([]byte, error) {
  1988  	type NoMethod PieChart
  1989  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1990  }
  1991  
  1992  // PieChartDataSet: Groups a time series query definition.
  1993  type PieChartDataSet struct {
  1994  	// Dimensions: A dimension is a structured label, class, or category for a set
  1995  	// of measurements in your data.
  1996  	Dimensions []*Dimension `json:"dimensions,omitempty"`
  1997  	// Measures: A measure is a measured value of a property in your data. For
  1998  	// example, rainfall in inches, number of units sold, revenue gained, etc.
  1999  	Measures []*Measure `json:"measures,omitempty"`
  2000  	// MinAlignmentPeriod: Optional. The lower bound on data point frequency for
  2001  	// this data set, implemented by specifying the minimum alignment period to use
  2002  	// in a time series query. For example, if the data is published once every 10
  2003  	// minutes, the min_alignment_period should be at least 10 minutes. It would
  2004  	// not make sense to fetch and align data at one minute intervals.
  2005  	MinAlignmentPeriod string `json:"minAlignmentPeriod,omitempty"`
  2006  	// SliceNameTemplate: Optional. A template for the name of the slice. This name
  2007  	// will be displayed in the legend and the tooltip of the pie chart. It
  2008  	// replaces the auto-generated names for the slices. For example, if the
  2009  	// template is set to ${resource.labels.zone}, the zone's value will be used
  2010  	// for the name instead of the default name.
  2011  	SliceNameTemplate string `json:"sliceNameTemplate,omitempty"`
  2012  	// TimeSeriesQuery: Required. The query for the PieChart. See,
  2013  	// google.monitoring.dashboard.v1.TimeSeriesQuery.
  2014  	TimeSeriesQuery *TimeSeriesQuery `json:"timeSeriesQuery,omitempty"`
  2015  	// ForceSendFields is a list of field names (e.g. "Dimensions") to
  2016  	// unconditionally include in API requests. By default, fields with empty or
  2017  	// default values are omitted from API requests. See
  2018  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2019  	// details.
  2020  	ForceSendFields []string `json:"-"`
  2021  	// NullFields is a list of field names (e.g. "Dimensions") to include in API
  2022  	// requests with the JSON null value. By default, fields with empty values are
  2023  	// omitted from API requests. See
  2024  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2025  	NullFields []string `json:"-"`
  2026  }
  2027  
  2028  func (s *PieChartDataSet) MarshalJSON() ([]byte, error) {
  2029  	type NoMethod PieChartDataSet
  2030  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2031  }
  2032  
  2033  // QueryExemplarsRequest: QueryExemplarsRequest holds all parameters of the
  2034  // Prometheus upstream API for querying exemplars.
  2035  type QueryExemplarsRequest struct {
  2036  	// End: The end time to evaluate the query for. Either floating point UNIX
  2037  	// seconds or RFC3339 formatted timestamp.
  2038  	End string `json:"end,omitempty"`
  2039  	// Query: A PromQL query string. Query lanauge documentation:
  2040  	// https://prometheus.io/docs/prometheus/latest/querying/basics/.
  2041  	Query string `json:"query,omitempty"`
  2042  	// Start: The start time to evaluate the query for. Either floating point UNIX
  2043  	// seconds or RFC3339 formatted timestamp.
  2044  	Start string `json:"start,omitempty"`
  2045  	// ForceSendFields is a list of field names (e.g. "End") to unconditionally
  2046  	// include in API requests. By default, fields with empty or default values are
  2047  	// omitted from API requests. See
  2048  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2049  	// details.
  2050  	ForceSendFields []string `json:"-"`
  2051  	// NullFields is a list of field names (e.g. "End") to include in API requests
  2052  	// with the JSON null value. By default, fields with empty values are omitted
  2053  	// from API requests. See
  2054  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2055  	NullFields []string `json:"-"`
  2056  }
  2057  
  2058  func (s *QueryExemplarsRequest) MarshalJSON() ([]byte, error) {
  2059  	type NoMethod QueryExemplarsRequest
  2060  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2061  }
  2062  
  2063  // QueryInstantRequest: QueryInstantRequest holds all parameters of the
  2064  // Prometheus upstream instant query API plus GCM specific parameters.
  2065  type QueryInstantRequest struct {
  2066  	// Query: A PromQL query string. Query lanauge documentation:
  2067  	// https://prometheus.io/docs/prometheus/latest/querying/basics/.
  2068  	Query string `json:"query,omitempty"`
  2069  	// Time: The single point in time to evaluate the query for. Either floating
  2070  	// point UNIX seconds or RFC3339 formatted timestamp.
  2071  	Time string `json:"time,omitempty"`
  2072  	// Timeout: An upper bound timeout for the query. Either a Prometheus duration
  2073  	// string
  2074  	// (https://prometheus.io/docs/prometheus/latest/querying/basics/#time-durations)
  2075  	// or floating point seconds. This non-standard encoding must be used for
  2076  	// compatibility with the open source API. Clients may still implement timeouts
  2077  	// at the connection level while ignoring this field.
  2078  	Timeout string `json:"timeout,omitempty"`
  2079  	// ForceSendFields is a list of field names (e.g. "Query") to unconditionally
  2080  	// include in API requests. By default, fields with empty or default values are
  2081  	// omitted from API requests. See
  2082  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2083  	// details.
  2084  	ForceSendFields []string `json:"-"`
  2085  	// NullFields is a list of field names (e.g. "Query") to include in API
  2086  	// requests with the JSON null value. By default, fields with empty values are
  2087  	// omitted from API requests. See
  2088  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2089  	NullFields []string `json:"-"`
  2090  }
  2091  
  2092  func (s *QueryInstantRequest) MarshalJSON() ([]byte, error) {
  2093  	type NoMethod QueryInstantRequest
  2094  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2095  }
  2096  
  2097  // QueryLabelsRequest: QueryLabelsRequest holds all parameters of the
  2098  // Prometheus upstream API for returning a list of label names.
  2099  type QueryLabelsRequest struct {
  2100  	// End: The end time to evaluate the query for. Either floating point UNIX
  2101  	// seconds or RFC3339 formatted timestamp.
  2102  	End string `json:"end,omitempty"`
  2103  	// Match: A list of matchers encoded in the Prometheus label matcher format to
  2104  	// constrain the values to series that satisfy them.
  2105  	Match string `json:"match,omitempty"`
  2106  	// Start: The start time to evaluate the query for. Either floating point UNIX
  2107  	// seconds or RFC3339 formatted timestamp.
  2108  	Start string `json:"start,omitempty"`
  2109  	// ForceSendFields is a list of field names (e.g. "End") to unconditionally
  2110  	// include in API requests. By default, fields with empty or default values are
  2111  	// omitted from API requests. See
  2112  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2113  	// details.
  2114  	ForceSendFields []string `json:"-"`
  2115  	// NullFields is a list of field names (e.g. "End") to include in API requests
  2116  	// with the JSON null value. By default, fields with empty values are omitted
  2117  	// from API requests. See
  2118  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2119  	NullFields []string `json:"-"`
  2120  }
  2121  
  2122  func (s *QueryLabelsRequest) MarshalJSON() ([]byte, error) {
  2123  	type NoMethod QueryLabelsRequest
  2124  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2125  }
  2126  
  2127  // QueryRangeRequest: QueryRangeRequest holds all parameters of the Prometheus
  2128  // upstream range query API plus GCM specific parameters.
  2129  type QueryRangeRequest struct {
  2130  	// End: The end time to evaluate the query for. Either floating point UNIX
  2131  	// seconds or RFC3339 formatted timestamp.
  2132  	End string `json:"end,omitempty"`
  2133  	// Query: A PromQL query string. Query lanauge documentation:
  2134  	// https://prometheus.io/docs/prometheus/latest/querying/basics/.
  2135  	Query string `json:"query,omitempty"`
  2136  	// Start: The start time to evaluate the query for. Either floating point UNIX
  2137  	// seconds or RFC3339 formatted timestamp.
  2138  	Start string `json:"start,omitempty"`
  2139  	// Step: The resolution of query result. Either a Prometheus duration string
  2140  	// (https://prometheus.io/docs/prometheus/latest/querying/basics/#time-durations)
  2141  	// or floating point seconds. This non-standard encoding must be used for
  2142  	// compatibility with the open source API. Clients may still implement timeouts
  2143  	// at the connection level while ignoring this field.
  2144  	Step string `json:"step,omitempty"`
  2145  	// Timeout: An upper bound timeout for the query. Either a Prometheus duration
  2146  	// string
  2147  	// (https://prometheus.io/docs/prometheus/latest/querying/basics/#time-durations)
  2148  	// or floating point seconds. This non-standard encoding must be used for
  2149  	// compatibility with the open source API. Clients may still implement timeouts
  2150  	// at the connection level while ignoring this field.
  2151  	Timeout string `json:"timeout,omitempty"`
  2152  	// ForceSendFields is a list of field names (e.g. "End") to unconditionally
  2153  	// include in API requests. By default, fields with empty or default values are
  2154  	// omitted from API requests. See
  2155  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2156  	// details.
  2157  	ForceSendFields []string `json:"-"`
  2158  	// NullFields is a list of field names (e.g. "End") to include in API requests
  2159  	// with the JSON null value. By default, fields with empty values are omitted
  2160  	// from API requests. See
  2161  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2162  	NullFields []string `json:"-"`
  2163  }
  2164  
  2165  func (s *QueryRangeRequest) MarshalJSON() ([]byte, error) {
  2166  	type NoMethod QueryRangeRequest
  2167  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2168  }
  2169  
  2170  // QuerySeriesRequest: QuerySeries holds all parameters of the Prometheus
  2171  // upstream API for querying series.
  2172  type QuerySeriesRequest struct {
  2173  	// End: The end time to evaluate the query for. Either floating point UNIX
  2174  	// seconds or RFC3339 formatted timestamp.
  2175  	End string `json:"end,omitempty"`
  2176  	// Start: The start time to evaluate the query for. Either floating point UNIX
  2177  	// seconds or RFC3339 formatted timestamp.
  2178  	Start string `json:"start,omitempty"`
  2179  	// ForceSendFields is a list of field names (e.g. "End") to unconditionally
  2180  	// include in API requests. By default, fields with empty or default values are
  2181  	// omitted from API requests. See
  2182  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2183  	// details.
  2184  	ForceSendFields []string `json:"-"`
  2185  	// NullFields is a list of field names (e.g. "End") to include in API requests
  2186  	// with the JSON null value. By default, fields with empty values are omitted
  2187  	// from API requests. See
  2188  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2189  	NullFields []string `json:"-"`
  2190  }
  2191  
  2192  func (s *QuerySeriesRequest) MarshalJSON() ([]byte, error) {
  2193  	type NoMethod QuerySeriesRequest
  2194  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2195  }
  2196  
  2197  // RatioPart: Describes a query to build the numerator or denominator of a
  2198  // TimeSeriesFilterRatio.
  2199  type RatioPart struct {
  2200  	// Aggregation: By default, the raw time series data is returned. Use this
  2201  	// field to combine multiple time series for different views of the data.
  2202  	Aggregation *Aggregation `json:"aggregation,omitempty"`
  2203  	// Filter: Required. The monitoring filter
  2204  	// (https://cloud.google.com/monitoring/api/v3/filters) that identifies the
  2205  	// metric types, resources, and projects to query.
  2206  	Filter string `json:"filter,omitempty"`
  2207  	// ForceSendFields is a list of field names (e.g. "Aggregation") to
  2208  	// unconditionally include in API requests. By default, fields with empty or
  2209  	// default values are omitted from API requests. See
  2210  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2211  	// details.
  2212  	ForceSendFields []string `json:"-"`
  2213  	// NullFields is a list of field names (e.g. "Aggregation") to include in API
  2214  	// requests with the JSON null value. By default, fields with empty values are
  2215  	// omitted from API requests. See
  2216  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2217  	NullFields []string `json:"-"`
  2218  }
  2219  
  2220  func (s *RatioPart) MarshalJSON() ([]byte, error) {
  2221  	type NoMethod RatioPart
  2222  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2223  }
  2224  
  2225  // Row: Defines the layout properties and content for a row.
  2226  type Row struct {
  2227  	// Weight: The relative weight of this row. The row weight is used to adjust
  2228  	// the height of rows on the screen (relative to peers). Greater the weight,
  2229  	// greater the height of the row on the screen. If omitted, a value of 1 is
  2230  	// used while rendering.
  2231  	Weight int64 `json:"weight,omitempty,string"`
  2232  	// Widgets: The display widgets arranged horizontally in this row.
  2233  	Widgets []*Widget `json:"widgets,omitempty"`
  2234  	// ForceSendFields is a list of field names (e.g. "Weight") to unconditionally
  2235  	// include in API requests. By default, fields with empty or default values are
  2236  	// omitted from API requests. See
  2237  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2238  	// details.
  2239  	ForceSendFields []string `json:"-"`
  2240  	// NullFields is a list of field names (e.g. "Weight") to include in API
  2241  	// requests with the JSON null value. By default, fields with empty values are
  2242  	// omitted from API requests. See
  2243  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2244  	NullFields []string `json:"-"`
  2245  }
  2246  
  2247  func (s *Row) MarshalJSON() ([]byte, error) {
  2248  	type NoMethod Row
  2249  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2250  }
  2251  
  2252  // RowLayout: A simplified layout that divides the available space into rows
  2253  // and arranges a set of widgets horizontally in each row.
  2254  type RowLayout struct {
  2255  	// Rows: The rows of content to display.
  2256  	Rows []*Row `json:"rows,omitempty"`
  2257  	// ForceSendFields is a list of field names (e.g. "Rows") to unconditionally
  2258  	// include in API requests. By default, fields with empty or default values are
  2259  	// omitted from API requests. See
  2260  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2261  	// details.
  2262  	ForceSendFields []string `json:"-"`
  2263  	// NullFields is a list of field names (e.g. "Rows") to include in API requests
  2264  	// with the JSON null value. By default, fields with empty values are omitted
  2265  	// from API requests. See
  2266  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2267  	NullFields []string `json:"-"`
  2268  }
  2269  
  2270  func (s *RowLayout) MarshalJSON() ([]byte, error) {
  2271  	type NoMethod RowLayout
  2272  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2273  }
  2274  
  2275  // Scorecard: A widget showing the latest value of a metric, and how this value
  2276  // relates to one or more thresholds.
  2277  type Scorecard struct {
  2278  	// BlankView: Will cause the Scorecard to show only the value, with no
  2279  	// indicator to its value relative to its thresholds.
  2280  	BlankView *Empty `json:"blankView,omitempty"`
  2281  	// GaugeView: Will cause the scorecard to show a gauge chart.
  2282  	GaugeView *GaugeView `json:"gaugeView,omitempty"`
  2283  	// SparkChartView: Will cause the scorecard to show a spark chart.
  2284  	SparkChartView *SparkChartView `json:"sparkChartView,omitempty"`
  2285  	// Thresholds: The thresholds used to determine the state of the scorecard
  2286  	// given the time series' current value. For an actual value x, the scorecard
  2287  	// is in a danger state if x is less than or equal to a danger threshold that
  2288  	// triggers below, or greater than or equal to a danger threshold that triggers
  2289  	// above. Similarly, if x is above/below a warning threshold that triggers
  2290  	// above/below, then the scorecard is in a warning state - unless x also puts
  2291  	// it in a danger state. (Danger trumps warning.)As an example, consider a
  2292  	// scorecard with the following four thresholds: { value: 90, category:
  2293  	// 'DANGER', trigger: 'ABOVE', }, { value: 70, category: 'WARNING', trigger:
  2294  	// 'ABOVE', }, { value: 10, category: 'DANGER', trigger: 'BELOW', }, { value:
  2295  	// 20, category: 'WARNING', trigger: 'BELOW', } Then: values less than or equal
  2296  	// to 10 would put the scorecard in a DANGER state, values greater than 10 but
  2297  	// less than or equal to 20 a WARNING state, values strictly between 20 and 70
  2298  	// an OK state, values greater than or equal to 70 but less than 90 a WARNING
  2299  	// state, and values greater than or equal to 90 a DANGER state.
  2300  	Thresholds []*Threshold `json:"thresholds,omitempty"`
  2301  	// TimeSeriesQuery: Required. Fields for querying time series data from the
  2302  	// Stackdriver metrics API.
  2303  	TimeSeriesQuery *TimeSeriesQuery `json:"timeSeriesQuery,omitempty"`
  2304  	// ForceSendFields is a list of field names (e.g. "BlankView") to
  2305  	// unconditionally include in API requests. By default, fields with empty or
  2306  	// default values are omitted from API requests. See
  2307  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2308  	// details.
  2309  	ForceSendFields []string `json:"-"`
  2310  	// NullFields is a list of field names (e.g. "BlankView") to include in API
  2311  	// requests with the JSON null value. By default, fields with empty values are
  2312  	// omitted from API requests. See
  2313  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2314  	NullFields []string `json:"-"`
  2315  }
  2316  
  2317  func (s *Scorecard) MarshalJSON() ([]byte, error) {
  2318  	type NoMethod Scorecard
  2319  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2320  }
  2321  
  2322  // SectionHeader: A widget that defines a new section header. Sections populate
  2323  // a table of contents and allow easier navigation of long-form content.
  2324  type SectionHeader struct {
  2325  	// DividerBelow: Whether to insert a divider below the section in the table of
  2326  	// contents
  2327  	DividerBelow bool `json:"dividerBelow,omitempty"`
  2328  	// Subtitle: The subtitle of the section
  2329  	Subtitle string `json:"subtitle,omitempty"`
  2330  	// ForceSendFields is a list of field names (e.g. "DividerBelow") to
  2331  	// unconditionally include in API requests. By default, fields with empty or
  2332  	// default values are omitted from API requests. See
  2333  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2334  	// details.
  2335  	ForceSendFields []string `json:"-"`
  2336  	// NullFields is a list of field names (e.g. "DividerBelow") to include in API
  2337  	// requests with the JSON null value. By default, fields with empty values are
  2338  	// omitted from API requests. See
  2339  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2340  	NullFields []string `json:"-"`
  2341  }
  2342  
  2343  func (s *SectionHeader) MarshalJSON() ([]byte, error) {
  2344  	type NoMethod SectionHeader
  2345  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2346  }
  2347  
  2348  // SingleViewGroup: A widget that groups the other widgets by using a dropdown
  2349  // menu. All widgets that are within the area spanned by the grouping widget
  2350  // are considered member widgets.
  2351  type SingleViewGroup struct {
  2352  }
  2353  
  2354  // SourceContext: SourceContext represents information about the source of a
  2355  // protobuf element, like the file in which it is defined.
  2356  type SourceContext struct {
  2357  	// FileName: The path-qualified name of the .proto file that contained the
  2358  	// associated protobuf element. For example:
  2359  	// "google/protobuf/source_context.proto".
  2360  	FileName string `json:"fileName,omitempty"`
  2361  	// ForceSendFields is a list of field names (e.g. "FileName") to
  2362  	// unconditionally include in API requests. By default, fields with empty or
  2363  	// default values are omitted from API requests. See
  2364  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2365  	// details.
  2366  	ForceSendFields []string `json:"-"`
  2367  	// NullFields is a list of field names (e.g. "FileName") to include in API
  2368  	// requests with the JSON null value. By default, fields with empty values are
  2369  	// omitted from API requests. See
  2370  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2371  	NullFields []string `json:"-"`
  2372  }
  2373  
  2374  func (s *SourceContext) MarshalJSON() ([]byte, error) {
  2375  	type NoMethod SourceContext
  2376  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2377  }
  2378  
  2379  // SpanContext: The context of a span. This is attached to an Exemplar in
  2380  // Distribution values during aggregation.It contains the name of a span with
  2381  // format: projects/[PROJECT_ID_OR_NUMBER]/traces/[TRACE_ID]/spans/[SPAN_ID]
  2382  type SpanContext struct {
  2383  	// SpanName: The resource name of the span. The format is:
  2384  	// projects/[PROJECT_ID_OR_NUMBER]/traces/[TRACE_ID]/spans/[SPAN_ID] [TRACE_ID]
  2385  	// is a unique identifier for a trace within a project; it is a 32-character
  2386  	// hexadecimal encoding of a 16-byte array.[SPAN_ID] is a unique identifier for
  2387  	// a span within a trace; it is a 16-character hexadecimal encoding of an
  2388  	// 8-byte array.
  2389  	SpanName string `json:"spanName,omitempty"`
  2390  	// ForceSendFields is a list of field names (e.g. "SpanName") to
  2391  	// unconditionally include in API requests. By default, fields with empty or
  2392  	// default values are omitted from API requests. See
  2393  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2394  	// details.
  2395  	ForceSendFields []string `json:"-"`
  2396  	// NullFields is a list of field names (e.g. "SpanName") to include in API
  2397  	// requests with the JSON null value. By default, fields with empty values are
  2398  	// omitted from API requests. See
  2399  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2400  	NullFields []string `json:"-"`
  2401  }
  2402  
  2403  func (s *SpanContext) MarshalJSON() ([]byte, error) {
  2404  	type NoMethod SpanContext
  2405  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2406  }
  2407  
  2408  // SparkChartView: A sparkChart is a small chart suitable for inclusion in a
  2409  // table-cell or inline in text. This message contains the configuration for a
  2410  // sparkChart to show up on a Scorecard, showing recent trends of the
  2411  // scorecard's timeseries.
  2412  type SparkChartView struct {
  2413  	// MinAlignmentPeriod: The lower bound on data point frequency in the chart
  2414  	// implemented by specifying the minimum alignment period to use in a time
  2415  	// series query. For example, if the data is published once every 10 minutes it
  2416  	// would not make sense to fetch and align data at one minute intervals. This
  2417  	// field is optional and exists only as a hint.
  2418  	MinAlignmentPeriod string `json:"minAlignmentPeriod,omitempty"`
  2419  	// SparkChartType: Required. The type of sparkchart to show in this chartView.
  2420  	//
  2421  	// Possible values:
  2422  	//   "SPARK_CHART_TYPE_UNSPECIFIED" - Not allowed in well-formed requests.
  2423  	//   "SPARK_LINE" - The sparkline will be rendered as a small line chart.
  2424  	//   "SPARK_BAR" - The sparkbar will be rendered as a small bar chart.
  2425  	SparkChartType string `json:"sparkChartType,omitempty"`
  2426  	// ForceSendFields is a list of field names (e.g. "MinAlignmentPeriod") to
  2427  	// unconditionally include in API requests. By default, fields with empty or
  2428  	// default values are omitted from API requests. See
  2429  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2430  	// details.
  2431  	ForceSendFields []string `json:"-"`
  2432  	// NullFields is a list of field names (e.g. "MinAlignmentPeriod") to include
  2433  	// in API requests with the JSON null value. By default, fields with empty
  2434  	// values are omitted from API requests. See
  2435  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2436  	NullFields []string `json:"-"`
  2437  }
  2438  
  2439  func (s *SparkChartView) MarshalJSON() ([]byte, error) {
  2440  	type NoMethod SparkChartView
  2441  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2442  }
  2443  
  2444  // StatisticalTimeSeriesFilter: A filter that ranks streams based on their
  2445  // statistical relation to other streams in a request. Note: This field is
  2446  // deprecated and completely ignored by the API.
  2447  type StatisticalTimeSeriesFilter struct {
  2448  	// NumTimeSeries: How many time series to output.
  2449  	NumTimeSeries int64 `json:"numTimeSeries,omitempty"`
  2450  	// RankingMethod: rankingMethod is applied to a set of time series, and then
  2451  	// the produced value for each individual time series is used to compare a
  2452  	// given time series to others. These are methods that cannot be applied
  2453  	// stream-by-stream, but rather require the full context of a request to
  2454  	// evaluate time series.
  2455  	//
  2456  	// Possible values:
  2457  	//   "METHOD_UNSPECIFIED" - Not allowed in well-formed requests.
  2458  	//   "METHOD_CLUSTER_OUTLIER" - Compute the outlier score of each stream.
  2459  	RankingMethod string `json:"rankingMethod,omitempty"`
  2460  	// ForceSendFields is a list of field names (e.g. "NumTimeSeries") to
  2461  	// unconditionally include in API requests. By default, fields with empty or
  2462  	// default values are omitted from API requests. See
  2463  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2464  	// details.
  2465  	ForceSendFields []string `json:"-"`
  2466  	// NullFields is a list of field names (e.g. "NumTimeSeries") to include in API
  2467  	// requests with the JSON null value. By default, fields with empty values are
  2468  	// omitted from API requests. See
  2469  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2470  	NullFields []string `json:"-"`
  2471  }
  2472  
  2473  func (s *StatisticalTimeSeriesFilter) MarshalJSON() ([]byte, error) {
  2474  	type NoMethod StatisticalTimeSeriesFilter
  2475  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2476  }
  2477  
  2478  // Status: The Status type defines a logical error model that is suitable for
  2479  // different programming environments, including REST APIs and RPC APIs. It is
  2480  // used by gRPC (https://github.com/grpc). Each Status message contains three
  2481  // pieces of data: error code, error message, and error details.You can find
  2482  // out more about this error model and how to work with it in the API Design
  2483  // Guide (https://cloud.google.com/apis/design/errors).
  2484  type Status struct {
  2485  	// Code: The status code, which should be an enum value of google.rpc.Code.
  2486  	Code int64 `json:"code,omitempty"`
  2487  	// Details: A list of messages that carry the error details. There is a common
  2488  	// set of message types for APIs to use.
  2489  	Details []googleapi.RawMessage `json:"details,omitempty"`
  2490  	// Message: A developer-facing error message, which should be in English. Any
  2491  	// user-facing error message should be localized and sent in the
  2492  	// google.rpc.Status.details field, or localized by the client.
  2493  	Message string `json:"message,omitempty"`
  2494  	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
  2495  	// include in API requests. By default, fields with empty or default values are
  2496  	// omitted from API requests. See
  2497  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2498  	// details.
  2499  	ForceSendFields []string `json:"-"`
  2500  	// NullFields is a list of field names (e.g. "Code") to include in API requests
  2501  	// with the JSON null value. By default, fields with empty values are omitted
  2502  	// from API requests. See
  2503  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2504  	NullFields []string `json:"-"`
  2505  }
  2506  
  2507  func (s *Status) MarshalJSON() ([]byte, error) {
  2508  	type NoMethod Status
  2509  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2510  }
  2511  
  2512  // TableDataSet: Groups a time series query definition with table options.
  2513  type TableDataSet struct {
  2514  	// MinAlignmentPeriod: Optional. The lower bound on data point frequency for
  2515  	// this data set, implemented by specifying the minimum alignment period to use
  2516  	// in a time series query For example, if the data is published once every 10
  2517  	// minutes, the min_alignment_period should be at least 10 minutes. It would
  2518  	// not make sense to fetch and align data at one minute intervals.
  2519  	MinAlignmentPeriod string `json:"minAlignmentPeriod,omitempty"`
  2520  	// TableDisplayOptions: Optional. Table display options for configuring how the
  2521  	// table is rendered.
  2522  	TableDisplayOptions *TableDisplayOptions `json:"tableDisplayOptions,omitempty"`
  2523  	// TableTemplate: Optional. A template string for naming TimeSeries in the
  2524  	// resulting data set. This should be a string with interpolations of the form
  2525  	// ${label_name}, which will resolve to the label's value i.e.
  2526  	// "${resource.labels.project_id}."
  2527  	TableTemplate string `json:"tableTemplate,omitempty"`
  2528  	// TimeSeriesQuery: Required. Fields for querying time series data from the
  2529  	// Stackdriver metrics API.
  2530  	TimeSeriesQuery *TimeSeriesQuery `json:"timeSeriesQuery,omitempty"`
  2531  	// ForceSendFields is a list of field names (e.g. "MinAlignmentPeriod") to
  2532  	// unconditionally include in API requests. By default, fields with empty or
  2533  	// default values are omitted from API requests. See
  2534  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2535  	// details.
  2536  	ForceSendFields []string `json:"-"`
  2537  	// NullFields is a list of field names (e.g. "MinAlignmentPeriod") to include
  2538  	// in API requests with the JSON null value. By default, fields with empty
  2539  	// values are omitted from API requests. See
  2540  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2541  	NullFields []string `json:"-"`
  2542  }
  2543  
  2544  func (s *TableDataSet) MarshalJSON() ([]byte, error) {
  2545  	type NoMethod TableDataSet
  2546  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2547  }
  2548  
  2549  // TableDisplayOptions: Table display options that can be reused.
  2550  type TableDisplayOptions struct {
  2551  	// ShownColumns: Optional. This field is unused and has been replaced by
  2552  	// TimeSeriesTable.column_settings
  2553  	ShownColumns []string `json:"shownColumns,omitempty"`
  2554  	// ForceSendFields is a list of field names (e.g. "ShownColumns") to
  2555  	// unconditionally include in API requests. By default, fields with empty or
  2556  	// default values are omitted from API requests. See
  2557  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2558  	// details.
  2559  	ForceSendFields []string `json:"-"`
  2560  	// NullFields is a list of field names (e.g. "ShownColumns") to include in API
  2561  	// requests with the JSON null value. By default, fields with empty values are
  2562  	// omitted from API requests. See
  2563  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2564  	NullFields []string `json:"-"`
  2565  }
  2566  
  2567  func (s *TableDisplayOptions) MarshalJSON() ([]byte, error) {
  2568  	type NoMethod TableDisplayOptions
  2569  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2570  }
  2571  
  2572  // Text: A widget that displays textual content.
  2573  type Text struct {
  2574  	// Content: The text content to be displayed.
  2575  	Content string `json:"content,omitempty"`
  2576  	// Format: How the text content is formatted.
  2577  	//
  2578  	// Possible values:
  2579  	//   "FORMAT_UNSPECIFIED" - Format is unspecified. Defaults to MARKDOWN.
  2580  	//   "MARKDOWN" - The text contains Markdown formatting.
  2581  	//   "RAW" - The text contains no special formatting.
  2582  	Format string `json:"format,omitempty"`
  2583  	// Style: How the text is styled
  2584  	Style *TextStyle `json:"style,omitempty"`
  2585  	// ForceSendFields is a list of field names (e.g. "Content") to unconditionally
  2586  	// include in API requests. By default, fields with empty or default values are
  2587  	// omitted from API requests. See
  2588  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2589  	// details.
  2590  	ForceSendFields []string `json:"-"`
  2591  	// NullFields is a list of field names (e.g. "Content") to include in API
  2592  	// requests with the JSON null value. By default, fields with empty values are
  2593  	// omitted from API requests. See
  2594  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2595  	NullFields []string `json:"-"`
  2596  }
  2597  
  2598  func (s *Text) MarshalJSON() ([]byte, error) {
  2599  	type NoMethod Text
  2600  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2601  }
  2602  
  2603  // TextStyle: Properties that determine how the title and content are styled
  2604  type TextStyle struct {
  2605  	// BackgroundColor: The background color as a hex string. "#RRGGBB" or "#RGB"
  2606  	BackgroundColor string `json:"backgroundColor,omitempty"`
  2607  	// FontSize: Font sizes for both the title and content. The title will still be
  2608  	// larger relative to the content.
  2609  	//
  2610  	// Possible values:
  2611  	//   "FONT_SIZE_UNSPECIFIED" - No font size specified, will default to FS_LARGE
  2612  	//   "FS_EXTRA_SMALL" - Extra small font size
  2613  	//   "FS_SMALL" - Small font size
  2614  	//   "FS_MEDIUM" - Medium font size
  2615  	//   "FS_LARGE" - Large font size
  2616  	//   "FS_EXTRA_LARGE" - Extra large font size
  2617  	FontSize string `json:"fontSize,omitempty"`
  2618  	// HorizontalAlignment: The horizontal alignment of both the title and content
  2619  	//
  2620  	// Possible values:
  2621  	//   "HORIZONTAL_ALIGNMENT_UNSPECIFIED" - No horizontal alignment specified,
  2622  	// will default to H_LEFT
  2623  	//   "H_LEFT" - Left-align
  2624  	//   "H_CENTER" - Center-align
  2625  	//   "H_RIGHT" - Right-align
  2626  	HorizontalAlignment string `json:"horizontalAlignment,omitempty"`
  2627  	// Padding: The amount of padding around the widget
  2628  	//
  2629  	// Possible values:
  2630  	//   "PADDING_SIZE_UNSPECIFIED" - No padding size specified, will default to
  2631  	// P_EXTRA_SMALL
  2632  	//   "P_EXTRA_SMALL" - Extra small padding
  2633  	//   "P_SMALL" - Small padding
  2634  	//   "P_MEDIUM" - Medium padding
  2635  	//   "P_LARGE" - Large padding
  2636  	//   "P_EXTRA_LARGE" - Extra large padding
  2637  	Padding string `json:"padding,omitempty"`
  2638  	// PointerLocation: The pointer location for this widget (also sometimes called
  2639  	// a "tail")
  2640  	//
  2641  	// Possible values:
  2642  	//   "POINTER_LOCATION_UNSPECIFIED" - No visual pointer
  2643  	//   "PL_TOP" - Placed in the middle of the top of the widget
  2644  	//   "PL_RIGHT" - Placed in the middle of the right side of the widget
  2645  	//   "PL_BOTTOM" - Placed in the middle of the bottom of the widget
  2646  	//   "PL_LEFT" - Placed in the middle of the left side of the widget
  2647  	//   "PL_TOP_LEFT" - Placed on the left side of the top of the widget
  2648  	//   "PL_TOP_RIGHT" - Placed on the right side of the top of the widget
  2649  	//   "PL_RIGHT_TOP" - Placed on the top of the right side of the widget
  2650  	//   "PL_RIGHT_BOTTOM" - Placed on the bottom of the right side of the widget
  2651  	//   "PL_BOTTOM_RIGHT" - Placed on the right side of the bottom of the widget
  2652  	//   "PL_BOTTOM_LEFT" - Placed on the left side of the bottom of the widget
  2653  	//   "PL_LEFT_BOTTOM" - Placed on the bottom of the left side of the widget
  2654  	//   "PL_LEFT_TOP" - Placed on the top of the left side of the widget
  2655  	PointerLocation string `json:"pointerLocation,omitempty"`
  2656  	// TextColor: The text color as a hex string. "#RRGGBB" or "#RGB"
  2657  	TextColor string `json:"textColor,omitempty"`
  2658  	// VerticalAlignment: The vertical alignment of both the title and content
  2659  	//
  2660  	// Possible values:
  2661  	//   "VERTICAL_ALIGNMENT_UNSPECIFIED" - No vertical alignment specified, will
  2662  	// default to V_TOP
  2663  	//   "V_TOP" - Top-align
  2664  	//   "V_CENTER" - Center-align
  2665  	//   "V_BOTTOM" - Bottom-align
  2666  	VerticalAlignment string `json:"verticalAlignment,omitempty"`
  2667  	// ForceSendFields is a list of field names (e.g. "BackgroundColor") to
  2668  	// unconditionally include in API requests. By default, fields with empty or
  2669  	// default values are omitted from API requests. See
  2670  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2671  	// details.
  2672  	ForceSendFields []string `json:"-"`
  2673  	// NullFields is a list of field names (e.g. "BackgroundColor") to include in
  2674  	// API requests with the JSON null value. By default, fields with empty values
  2675  	// are omitted from API requests. See
  2676  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2677  	NullFields []string `json:"-"`
  2678  }
  2679  
  2680  func (s *TextStyle) MarshalJSON() ([]byte, error) {
  2681  	type NoMethod TextStyle
  2682  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2683  }
  2684  
  2685  // Threshold: Defines a threshold for categorizing time series values.
  2686  type Threshold struct {
  2687  	// Color: The state color for this threshold. Color is not allowed in a
  2688  	// XyChart.
  2689  	//
  2690  	// Possible values:
  2691  	//   "COLOR_UNSPECIFIED" - Color is unspecified. Not allowed in well-formed
  2692  	// requests.
  2693  	//   "YELLOW" - Crossing the threshold is "concerning" behavior.
  2694  	//   "RED" - Crossing the threshold is "emergency" behavior.
  2695  	Color string `json:"color,omitempty"`
  2696  	// Direction: The direction for the current threshold. Direction is not allowed
  2697  	// in a XyChart.
  2698  	//
  2699  	// Possible values:
  2700  	//   "DIRECTION_UNSPECIFIED" - Not allowed in well-formed requests.
  2701  	//   "ABOVE" - The threshold will be considered crossed if the actual value is
  2702  	// above the threshold value.
  2703  	//   "BELOW" - The threshold will be considered crossed if the actual value is
  2704  	// below the threshold value.
  2705  	Direction string `json:"direction,omitempty"`
  2706  	// Label: A label for the threshold.
  2707  	Label string `json:"label,omitempty"`
  2708  	// TargetAxis: The target axis to use for plotting the threshold. Target axis
  2709  	// is not allowed in a Scorecard.
  2710  	//
  2711  	// Possible values:
  2712  	//   "TARGET_AXIS_UNSPECIFIED" - The target axis was not specified. Defaults to
  2713  	// Y1.
  2714  	//   "Y1" - The y_axis (the right axis of chart).
  2715  	//   "Y2" - The y2_axis (the left axis of chart).
  2716  	TargetAxis string `json:"targetAxis,omitempty"`
  2717  	// Value: The value of the threshold. The value should be defined in the native
  2718  	// scale of the metric.
  2719  	Value float64 `json:"value,omitempty"`
  2720  	// ForceSendFields is a list of field names (e.g. "Color") to unconditionally
  2721  	// include in API requests. By default, fields with empty or default values are
  2722  	// omitted from API requests. See
  2723  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2724  	// details.
  2725  	ForceSendFields []string `json:"-"`
  2726  	// NullFields is a list of field names (e.g. "Color") to include in API
  2727  	// requests with the JSON null value. By default, fields with empty values are
  2728  	// omitted from API requests. See
  2729  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2730  	NullFields []string `json:"-"`
  2731  }
  2732  
  2733  func (s *Threshold) MarshalJSON() ([]byte, error) {
  2734  	type NoMethod Threshold
  2735  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2736  }
  2737  
  2738  func (s *Threshold) UnmarshalJSON(data []byte) error {
  2739  	type NoMethod Threshold
  2740  	var s1 struct {
  2741  		Value gensupport.JSONFloat64 `json:"value"`
  2742  		*NoMethod
  2743  	}
  2744  	s1.NoMethod = (*NoMethod)(s)
  2745  	if err := json.Unmarshal(data, &s1); err != nil {
  2746  		return err
  2747  	}
  2748  	s.Value = float64(s1.Value)
  2749  	return nil
  2750  }
  2751  
  2752  // Tile: A single tile in the mosaic. The placement and size of the tile are
  2753  // configurable.
  2754  type Tile struct {
  2755  	// Height: The height of the tile, measured in grid blocks. Tiles must have a
  2756  	// minimum height of 1.
  2757  	Height int64 `json:"height,omitempty"`
  2758  	// Widget: The informational widget contained in the tile. For example an
  2759  	// XyChart.
  2760  	Widget *Widget `json:"widget,omitempty"`
  2761  	// Width: The width of the tile, measured in grid blocks. Tiles must have a
  2762  	// minimum width of 1.
  2763  	Width int64 `json:"width,omitempty"`
  2764  	// XPos: The zero-indexed position of the tile in grid blocks relative to the
  2765  	// left edge of the grid. Tiles must be contained within the specified number
  2766  	// of columns. x_pos cannot be negative.
  2767  	XPos int64 `json:"xPos,omitempty"`
  2768  	// YPos: The zero-indexed position of the tile in grid blocks relative to the
  2769  	// top edge of the grid. y_pos cannot be negative.
  2770  	YPos int64 `json:"yPos,omitempty"`
  2771  	// ForceSendFields is a list of field names (e.g. "Height") to unconditionally
  2772  	// include in API requests. By default, fields with empty or default values are
  2773  	// omitted from API requests. See
  2774  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2775  	// details.
  2776  	ForceSendFields []string `json:"-"`
  2777  	// NullFields is a list of field names (e.g. "Height") to include in API
  2778  	// requests with the JSON null value. By default, fields with empty values are
  2779  	// omitted from API requests. See
  2780  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2781  	NullFields []string `json:"-"`
  2782  }
  2783  
  2784  func (s *Tile) MarshalJSON() ([]byte, error) {
  2785  	type NoMethod Tile
  2786  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2787  }
  2788  
  2789  // TimeSeriesFilter: A filter that defines a subset of time series data that is
  2790  // displayed in a widget. Time series data is fetched using the ListTimeSeries
  2791  // (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list)
  2792  // method.
  2793  type TimeSeriesFilter struct {
  2794  	// Aggregation: By default, the raw time series data is returned. Use this
  2795  	// field to combine multiple time series for different views of the data.
  2796  	Aggregation *Aggregation `json:"aggregation,omitempty"`
  2797  	// Filter: Required. The monitoring filter
  2798  	// (https://cloud.google.com/monitoring/api/v3/filters) that identifies the
  2799  	// metric types, resources, and projects to query.
  2800  	Filter string `json:"filter,omitempty"`
  2801  	// PickTimeSeriesFilter: Ranking based time series filter.
  2802  	PickTimeSeriesFilter *PickTimeSeriesFilter `json:"pickTimeSeriesFilter,omitempty"`
  2803  	// SecondaryAggregation: Apply a second aggregation after aggregation is
  2804  	// applied.
  2805  	SecondaryAggregation *Aggregation `json:"secondaryAggregation,omitempty"`
  2806  	// StatisticalTimeSeriesFilter: Statistics based time series filter. Note: This
  2807  	// field is deprecated and completely ignored by the API.
  2808  	StatisticalTimeSeriesFilter *StatisticalTimeSeriesFilter `json:"statisticalTimeSeriesFilter,omitempty"`
  2809  	// ForceSendFields is a list of field names (e.g. "Aggregation") to
  2810  	// unconditionally include in API requests. By default, fields with empty or
  2811  	// default values are omitted from API requests. See
  2812  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2813  	// details.
  2814  	ForceSendFields []string `json:"-"`
  2815  	// NullFields is a list of field names (e.g. "Aggregation") to include in API
  2816  	// requests with the JSON null value. By default, fields with empty values are
  2817  	// omitted from API requests. See
  2818  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2819  	NullFields []string `json:"-"`
  2820  }
  2821  
  2822  func (s *TimeSeriesFilter) MarshalJSON() ([]byte, error) {
  2823  	type NoMethod TimeSeriesFilter
  2824  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2825  }
  2826  
  2827  // TimeSeriesFilterRatio: A pair of time series filters that define a ratio
  2828  // computation. The output time series is the pair-wise division of each
  2829  // aligned element from the numerator and denominator time series.
  2830  type TimeSeriesFilterRatio struct {
  2831  	// Denominator: The denominator of the ratio.
  2832  	Denominator *RatioPart `json:"denominator,omitempty"`
  2833  	// Numerator: The numerator of the ratio.
  2834  	Numerator *RatioPart `json:"numerator,omitempty"`
  2835  	// PickTimeSeriesFilter: Ranking based time series filter.
  2836  	PickTimeSeriesFilter *PickTimeSeriesFilter `json:"pickTimeSeriesFilter,omitempty"`
  2837  	// SecondaryAggregation: Apply a second aggregation after the ratio is
  2838  	// computed.
  2839  	SecondaryAggregation *Aggregation `json:"secondaryAggregation,omitempty"`
  2840  	// StatisticalTimeSeriesFilter: Statistics based time series filter. Note: This
  2841  	// field is deprecated and completely ignored by the API.
  2842  	StatisticalTimeSeriesFilter *StatisticalTimeSeriesFilter `json:"statisticalTimeSeriesFilter,omitempty"`
  2843  	// ForceSendFields is a list of field names (e.g. "Denominator") to
  2844  	// unconditionally include in API requests. By default, fields with empty or
  2845  	// default values are omitted from API requests. See
  2846  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2847  	// details.
  2848  	ForceSendFields []string `json:"-"`
  2849  	// NullFields is a list of field names (e.g. "Denominator") to include in API
  2850  	// requests with the JSON null value. By default, fields with empty values are
  2851  	// omitted from API requests. See
  2852  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2853  	NullFields []string `json:"-"`
  2854  }
  2855  
  2856  func (s *TimeSeriesFilterRatio) MarshalJSON() ([]byte, error) {
  2857  	type NoMethod TimeSeriesFilterRatio
  2858  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2859  }
  2860  
  2861  // TimeSeriesQuery: TimeSeriesQuery collects the set of supported methods for
  2862  // querying time series data from the Stackdriver metrics API.
  2863  type TimeSeriesQuery struct {
  2864  	// OpsAnalyticsQuery: Preview: A query used to fetch a time series, category
  2865  	// series, or numeric series with SQL. This is a preview feature and may be
  2866  	// subject to change before final release.
  2867  	OpsAnalyticsQuery *OpsAnalyticsQuery `json:"opsAnalyticsQuery,omitempty"`
  2868  	// OutputFullDuration: Optional. If set, Cloud Monitoring will treat the full
  2869  	// query duration as the alignment period so that there will be only 1 output
  2870  	// value.*Note: This could override the configured alignment period except for
  2871  	// the cases where a series of data points are expected, like - XyChart -
  2872  	// Scorecard's spark chart
  2873  	OutputFullDuration bool `json:"outputFullDuration,omitempty"`
  2874  	// PrometheusQuery: A query used to fetch time series with PromQL.
  2875  	PrometheusQuery string `json:"prometheusQuery,omitempty"`
  2876  	// TimeSeriesFilter: Filter parameters to fetch time series.
  2877  	TimeSeriesFilter *TimeSeriesFilter `json:"timeSeriesFilter,omitempty"`
  2878  	// TimeSeriesFilterRatio: Parameters to fetch a ratio between two time series
  2879  	// filters.
  2880  	TimeSeriesFilterRatio *TimeSeriesFilterRatio `json:"timeSeriesFilterRatio,omitempty"`
  2881  	// TimeSeriesQueryLanguage: A query used to fetch time series with MQL.
  2882  	TimeSeriesQueryLanguage string `json:"timeSeriesQueryLanguage,omitempty"`
  2883  	// UnitOverride: The unit of data contained in fetched time series. If
  2884  	// non-empty, this unit will override any unit that accompanies fetched data.
  2885  	// The format is the same as the unit
  2886  	// (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors)
  2887  	// field in MetricDescriptor.
  2888  	UnitOverride string `json:"unitOverride,omitempty"`
  2889  	// ForceSendFields is a list of field names (e.g. "OpsAnalyticsQuery") to
  2890  	// unconditionally include in API requests. By default, fields with empty or
  2891  	// default values are omitted from API requests. See
  2892  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2893  	// details.
  2894  	ForceSendFields []string `json:"-"`
  2895  	// NullFields is a list of field names (e.g. "OpsAnalyticsQuery") to include in
  2896  	// API requests with the JSON null value. By default, fields with empty values
  2897  	// are omitted from API requests. See
  2898  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2899  	NullFields []string `json:"-"`
  2900  }
  2901  
  2902  func (s *TimeSeriesQuery) MarshalJSON() ([]byte, error) {
  2903  	type NoMethod TimeSeriesQuery
  2904  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2905  }
  2906  
  2907  // TimeSeriesTable: A table that displays time series data.
  2908  type TimeSeriesTable struct {
  2909  	// ColumnSettings: Optional. The list of the persistent column settings for the
  2910  	// table.
  2911  	ColumnSettings []*ColumnSettings `json:"columnSettings,omitempty"`
  2912  	// DataSets: Required. The data displayed in this table.
  2913  	DataSets []*TableDataSet `json:"dataSets,omitempty"`
  2914  	// MetricVisualization: Optional. Store rendering strategy
  2915  	//
  2916  	// Possible values:
  2917  	//   "METRIC_VISUALIZATION_UNSPECIFIED" - Unspecified state
  2918  	//   "NUMBER" - Default text rendering
  2919  	//   "BAR" - Horizontal bar rendering
  2920  	MetricVisualization string `json:"metricVisualization,omitempty"`
  2921  	// ForceSendFields is a list of field names (e.g. "ColumnSettings") to
  2922  	// unconditionally include in API requests. By default, fields with empty or
  2923  	// default values are omitted from API requests. See
  2924  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2925  	// details.
  2926  	ForceSendFields []string `json:"-"`
  2927  	// NullFields is a list of field names (e.g. "ColumnSettings") to include in
  2928  	// API requests with the JSON null value. By default, fields with empty values
  2929  	// are omitted from API requests. See
  2930  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2931  	NullFields []string `json:"-"`
  2932  }
  2933  
  2934  func (s *TimeSeriesTable) MarshalJSON() ([]byte, error) {
  2935  	type NoMethod TimeSeriesTable
  2936  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2937  }
  2938  
  2939  // Type: A protocol buffer message type.
  2940  type Type struct {
  2941  	// Edition: The source edition string, only valid when syntax is
  2942  	// SYNTAX_EDITIONS.
  2943  	Edition string `json:"edition,omitempty"`
  2944  	// Fields: The list of fields.
  2945  	Fields []*Field `json:"fields,omitempty"`
  2946  	// Name: The fully qualified message name.
  2947  	Name string `json:"name,omitempty"`
  2948  	// Oneofs: The list of types appearing in oneof definitions in this type.
  2949  	Oneofs []string `json:"oneofs,omitempty"`
  2950  	// Options: The protocol buffer options.
  2951  	Options []*Option `json:"options,omitempty"`
  2952  	// SourceContext: The source context.
  2953  	SourceContext *SourceContext `json:"sourceContext,omitempty"`
  2954  	// Syntax: The source syntax.
  2955  	//
  2956  	// Possible values:
  2957  	//   "SYNTAX_PROTO2" - Syntax proto2.
  2958  	//   "SYNTAX_PROTO3" - Syntax proto3.
  2959  	//   "SYNTAX_EDITIONS" - Syntax editions.
  2960  	Syntax string `json:"syntax,omitempty"`
  2961  	// ForceSendFields is a list of field names (e.g. "Edition") to unconditionally
  2962  	// include in API requests. By default, fields with empty or default values are
  2963  	// omitted from API requests. See
  2964  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2965  	// details.
  2966  	ForceSendFields []string `json:"-"`
  2967  	// NullFields is a list of field names (e.g. "Edition") to include in API
  2968  	// requests with the JSON null value. By default, fields with empty values are
  2969  	// omitted from API requests. See
  2970  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2971  	NullFields []string `json:"-"`
  2972  }
  2973  
  2974  func (s *Type) MarshalJSON() ([]byte, error) {
  2975  	type NoMethod Type
  2976  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2977  }
  2978  
  2979  // Widget: Widget contains a single dashboard component and configuration of
  2980  // how to present the component in the dashboard.
  2981  type Widget struct {
  2982  	// AlertChart: A chart of alert policy data.
  2983  	AlertChart *AlertChart `json:"alertChart,omitempty"`
  2984  	// Blank: A blank space.
  2985  	Blank *Empty `json:"blank,omitempty"`
  2986  	// CollapsibleGroup: A widget that groups the other widgets. All widgets that
  2987  	// are within the area spanned by the grouping widget are considered member
  2988  	// widgets.
  2989  	CollapsibleGroup *CollapsibleGroup `json:"collapsibleGroup,omitempty"`
  2990  	// ErrorReportingPanel: A widget that displays a list of error groups.
  2991  	ErrorReportingPanel *ErrorReportingPanel `json:"errorReportingPanel,omitempty"`
  2992  	// Id: Optional. The widget id. Ids may be made up of alphanumerics, dashes and
  2993  	// underscores. Widget ids are optional.
  2994  	Id string `json:"id,omitempty"`
  2995  	// IncidentList: A widget that shows list of incidents.
  2996  	IncidentList *IncidentList `json:"incidentList,omitempty"`
  2997  	// LogsPanel: A widget that shows a stream of logs.
  2998  	LogsPanel *LogsPanel `json:"logsPanel,omitempty"`
  2999  	// PieChart: A widget that displays timeseries data as a pie chart.
  3000  	PieChart *PieChart `json:"pieChart,omitempty"`
  3001  	// Scorecard: A scorecard summarizing time series data.
  3002  	Scorecard *Scorecard `json:"scorecard,omitempty"`
  3003  	// SectionHeader: A widget that defines a section header for easier navigation
  3004  	// of the dashboard.
  3005  	SectionHeader *SectionHeader `json:"sectionHeader,omitempty"`
  3006  	// SingleViewGroup: A widget that groups the other widgets by using a dropdown
  3007  	// menu.
  3008  	SingleViewGroup *SingleViewGroup `json:"singleViewGroup,omitempty"`
  3009  	// Text: A raw string or markdown displaying textual content.
  3010  	Text *Text `json:"text,omitempty"`
  3011  	// TimeSeriesTable: A widget that displays time series data in a tabular
  3012  	// format.
  3013  	TimeSeriesTable *TimeSeriesTable `json:"timeSeriesTable,omitempty"`
  3014  	// Title: Optional. The title of the widget.
  3015  	Title string `json:"title,omitempty"`
  3016  	// XyChart: A chart of time series data.
  3017  	XyChart *XyChart `json:"xyChart,omitempty"`
  3018  	// ForceSendFields is a list of field names (e.g. "AlertChart") to
  3019  	// unconditionally include in API requests. By default, fields with empty or
  3020  	// default values are omitted from API requests. See
  3021  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3022  	// details.
  3023  	ForceSendFields []string `json:"-"`
  3024  	// NullFields is a list of field names (e.g. "AlertChart") to include in API
  3025  	// requests with the JSON null value. By default, fields with empty values are
  3026  	// omitted from API requests. See
  3027  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3028  	NullFields []string `json:"-"`
  3029  }
  3030  
  3031  func (s *Widget) MarshalJSON() ([]byte, error) {
  3032  	type NoMethod Widget
  3033  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3034  }
  3035  
  3036  // XyChart: A chart that displays data on a 2D (X and Y axes) plane.
  3037  type XyChart struct {
  3038  	// ChartOptions: Display options for the chart.
  3039  	ChartOptions *ChartOptions `json:"chartOptions,omitempty"`
  3040  	// DataSets: Required. The data displayed in this chart.
  3041  	DataSets []*DataSet `json:"dataSets,omitempty"`
  3042  	// Thresholds: Threshold lines drawn horizontally across the chart.
  3043  	Thresholds []*Threshold `json:"thresholds,omitempty"`
  3044  	// TimeshiftDuration: The duration used to display a comparison chart. A
  3045  	// comparison chart simultaneously shows values from two similar-length time
  3046  	// periods (e.g., week-over-week metrics). The duration must be positive, and
  3047  	// it can only be applied to charts with data sets of LINE plot type.
  3048  	TimeshiftDuration string `json:"timeshiftDuration,omitempty"`
  3049  	// XAxis: The properties applied to the x-axis.
  3050  	XAxis *Axis `json:"xAxis,omitempty"`
  3051  	// Y2Axis: The properties applied to the y2-axis.
  3052  	Y2Axis *Axis `json:"y2Axis,omitempty"`
  3053  	// YAxis: The properties applied to the y-axis.
  3054  	YAxis *Axis `json:"yAxis,omitempty"`
  3055  	// ForceSendFields is a list of field names (e.g. "ChartOptions") to
  3056  	// unconditionally include in API requests. By default, fields with empty or
  3057  	// default values are omitted from API requests. See
  3058  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3059  	// details.
  3060  	ForceSendFields []string `json:"-"`
  3061  	// NullFields is a list of field names (e.g. "ChartOptions") to include in API
  3062  	// requests with the JSON null value. By default, fields with empty values are
  3063  	// omitted from API requests. See
  3064  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3065  	NullFields []string `json:"-"`
  3066  }
  3067  
  3068  func (s *XyChart) MarshalJSON() ([]byte, error) {
  3069  	type NoMethod XyChart
  3070  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3071  }
  3072  
  3073  type LocationsGlobalMetricsScopesGetCall struct {
  3074  	s            *Service
  3075  	name         string
  3076  	urlParams_   gensupport.URLParams
  3077  	ifNoneMatch_ string
  3078  	ctx_         context.Context
  3079  	header_      http.Header
  3080  }
  3081  
  3082  // Get: Returns a specific Metrics Scope, including the list of projects
  3083  // monitored by the specified Metrics Scope.
  3084  //
  3085  //   - name: The resource name of the Metrics Scope. Example:
  3086  //     locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}.
  3087  func (r *LocationsGlobalMetricsScopesService) Get(name string) *LocationsGlobalMetricsScopesGetCall {
  3088  	c := &LocationsGlobalMetricsScopesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3089  	c.name = name
  3090  	return c
  3091  }
  3092  
  3093  // Fields allows partial responses to be retrieved. See
  3094  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3095  // details.
  3096  func (c *LocationsGlobalMetricsScopesGetCall) Fields(s ...googleapi.Field) *LocationsGlobalMetricsScopesGetCall {
  3097  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3098  	return c
  3099  }
  3100  
  3101  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3102  // object's ETag matches the given value. This is useful for getting updates
  3103  // only after the object has changed since the last request.
  3104  func (c *LocationsGlobalMetricsScopesGetCall) IfNoneMatch(entityTag string) *LocationsGlobalMetricsScopesGetCall {
  3105  	c.ifNoneMatch_ = entityTag
  3106  	return c
  3107  }
  3108  
  3109  // Context sets the context to be used in this call's Do method.
  3110  func (c *LocationsGlobalMetricsScopesGetCall) Context(ctx context.Context) *LocationsGlobalMetricsScopesGetCall {
  3111  	c.ctx_ = ctx
  3112  	return c
  3113  }
  3114  
  3115  // Header returns a http.Header that can be modified by the caller to add
  3116  // headers to the request.
  3117  func (c *LocationsGlobalMetricsScopesGetCall) Header() http.Header {
  3118  	if c.header_ == nil {
  3119  		c.header_ = make(http.Header)
  3120  	}
  3121  	return c.header_
  3122  }
  3123  
  3124  func (c *LocationsGlobalMetricsScopesGetCall) doRequest(alt string) (*http.Response, error) {
  3125  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3126  	if c.ifNoneMatch_ != "" {
  3127  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3128  	}
  3129  	var body io.Reader = nil
  3130  	c.urlParams_.Set("alt", alt)
  3131  	c.urlParams_.Set("prettyPrint", "false")
  3132  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  3133  	urls += "?" + c.urlParams_.Encode()
  3134  	req, err := http.NewRequest("GET", urls, body)
  3135  	if err != nil {
  3136  		return nil, err
  3137  	}
  3138  	req.Header = reqHeaders
  3139  	googleapi.Expand(req.URL, map[string]string{
  3140  		"name": c.name,
  3141  	})
  3142  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3143  }
  3144  
  3145  // Do executes the "monitoring.locations.global.metricsScopes.get" call.
  3146  // Any non-2xx status code is an error. Response headers are in either
  3147  // *MetricsScope.ServerResponse.Header or (if a response was returned at all)
  3148  // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3149  // whether the returned error was because http.StatusNotModified was returned.
  3150  func (c *LocationsGlobalMetricsScopesGetCall) Do(opts ...googleapi.CallOption) (*MetricsScope, error) {
  3151  	gensupport.SetOptions(c.urlParams_, opts...)
  3152  	res, err := c.doRequest("json")
  3153  	if res != nil && res.StatusCode == http.StatusNotModified {
  3154  		if res.Body != nil {
  3155  			res.Body.Close()
  3156  		}
  3157  		return nil, gensupport.WrapError(&googleapi.Error{
  3158  			Code:   res.StatusCode,
  3159  			Header: res.Header,
  3160  		})
  3161  	}
  3162  	if err != nil {
  3163  		return nil, err
  3164  	}
  3165  	defer googleapi.CloseBody(res)
  3166  	if err := googleapi.CheckResponse(res); err != nil {
  3167  		return nil, gensupport.WrapError(err)
  3168  	}
  3169  	ret := &MetricsScope{
  3170  		ServerResponse: googleapi.ServerResponse{
  3171  			Header:         res.Header,
  3172  			HTTPStatusCode: res.StatusCode,
  3173  		},
  3174  	}
  3175  	target := &ret
  3176  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3177  		return nil, err
  3178  	}
  3179  	return ret, nil
  3180  }
  3181  
  3182  type LocationsGlobalMetricsScopesListMetricsScopesByMonitoredProjectCall struct {
  3183  	s            *Service
  3184  	urlParams_   gensupport.URLParams
  3185  	ifNoneMatch_ string
  3186  	ctx_         context.Context
  3187  	header_      http.Header
  3188  }
  3189  
  3190  // ListMetricsScopesByMonitoredProject: Returns a list of every Metrics Scope
  3191  // that a specific MonitoredProject has been added to. The metrics scope
  3192  // representing the specified monitored project will always be the first entry
  3193  // in the response.
  3194  func (r *LocationsGlobalMetricsScopesService) ListMetricsScopesByMonitoredProject() *LocationsGlobalMetricsScopesListMetricsScopesByMonitoredProjectCall {
  3195  	c := &LocationsGlobalMetricsScopesListMetricsScopesByMonitoredProjectCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3196  	return c
  3197  }
  3198  
  3199  // MonitoredResourceContainer sets the optional parameter
  3200  // "monitoredResourceContainer": Required. The resource name of the Monitored
  3201  // Project being requested. Example: projects/{MONITORED_PROJECT_ID_OR_NUMBER}
  3202  func (c *LocationsGlobalMetricsScopesListMetricsScopesByMonitoredProjectCall) MonitoredResourceContainer(monitoredResourceContainer string) *LocationsGlobalMetricsScopesListMetricsScopesByMonitoredProjectCall {
  3203  	c.urlParams_.Set("monitoredResourceContainer", monitoredResourceContainer)
  3204  	return c
  3205  }
  3206  
  3207  // Fields allows partial responses to be retrieved. See
  3208  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3209  // details.
  3210  func (c *LocationsGlobalMetricsScopesListMetricsScopesByMonitoredProjectCall) Fields(s ...googleapi.Field) *LocationsGlobalMetricsScopesListMetricsScopesByMonitoredProjectCall {
  3211  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3212  	return c
  3213  }
  3214  
  3215  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3216  // object's ETag matches the given value. This is useful for getting updates
  3217  // only after the object has changed since the last request.
  3218  func (c *LocationsGlobalMetricsScopesListMetricsScopesByMonitoredProjectCall) IfNoneMatch(entityTag string) *LocationsGlobalMetricsScopesListMetricsScopesByMonitoredProjectCall {
  3219  	c.ifNoneMatch_ = entityTag
  3220  	return c
  3221  }
  3222  
  3223  // Context sets the context to be used in this call's Do method.
  3224  func (c *LocationsGlobalMetricsScopesListMetricsScopesByMonitoredProjectCall) Context(ctx context.Context) *LocationsGlobalMetricsScopesListMetricsScopesByMonitoredProjectCall {
  3225  	c.ctx_ = ctx
  3226  	return c
  3227  }
  3228  
  3229  // Header returns a http.Header that can be modified by the caller to add
  3230  // headers to the request.
  3231  func (c *LocationsGlobalMetricsScopesListMetricsScopesByMonitoredProjectCall) Header() http.Header {
  3232  	if c.header_ == nil {
  3233  		c.header_ = make(http.Header)
  3234  	}
  3235  	return c.header_
  3236  }
  3237  
  3238  func (c *LocationsGlobalMetricsScopesListMetricsScopesByMonitoredProjectCall) doRequest(alt string) (*http.Response, error) {
  3239  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3240  	if c.ifNoneMatch_ != "" {
  3241  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3242  	}
  3243  	var body io.Reader = nil
  3244  	c.urlParams_.Set("alt", alt)
  3245  	c.urlParams_.Set("prettyPrint", "false")
  3246  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/locations/global/metricsScopes:listMetricsScopesByMonitoredProject")
  3247  	urls += "?" + c.urlParams_.Encode()
  3248  	req, err := http.NewRequest("GET", urls, body)
  3249  	if err != nil {
  3250  		return nil, err
  3251  	}
  3252  	req.Header = reqHeaders
  3253  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3254  }
  3255  
  3256  // Do executes the "monitoring.locations.global.metricsScopes.listMetricsScopesByMonitoredProject" call.
  3257  // Any non-2xx status code is an error. Response headers are in either
  3258  // *ListMetricsScopesByMonitoredProjectResponse.ServerResponse.Header or (if a
  3259  // response was returned at all) in error.(*googleapi.Error).Header. Use
  3260  // googleapi.IsNotModified to check whether the returned error was because
  3261  // http.StatusNotModified was returned.
  3262  func (c *LocationsGlobalMetricsScopesListMetricsScopesByMonitoredProjectCall) Do(opts ...googleapi.CallOption) (*ListMetricsScopesByMonitoredProjectResponse, error) {
  3263  	gensupport.SetOptions(c.urlParams_, opts...)
  3264  	res, err := c.doRequest("json")
  3265  	if res != nil && res.StatusCode == http.StatusNotModified {
  3266  		if res.Body != nil {
  3267  			res.Body.Close()
  3268  		}
  3269  		return nil, gensupport.WrapError(&googleapi.Error{
  3270  			Code:   res.StatusCode,
  3271  			Header: res.Header,
  3272  		})
  3273  	}
  3274  	if err != nil {
  3275  		return nil, err
  3276  	}
  3277  	defer googleapi.CloseBody(res)
  3278  	if err := googleapi.CheckResponse(res); err != nil {
  3279  		return nil, gensupport.WrapError(err)
  3280  	}
  3281  	ret := &ListMetricsScopesByMonitoredProjectResponse{
  3282  		ServerResponse: googleapi.ServerResponse{
  3283  			Header:         res.Header,
  3284  			HTTPStatusCode: res.StatusCode,
  3285  		},
  3286  	}
  3287  	target := &ret
  3288  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3289  		return nil, err
  3290  	}
  3291  	return ret, nil
  3292  }
  3293  
  3294  type LocationsGlobalMetricsScopesProjectsCreateCall struct {
  3295  	s                *Service
  3296  	parent           string
  3297  	monitoredproject *MonitoredProject
  3298  	urlParams_       gensupport.URLParams
  3299  	ctx_             context.Context
  3300  	header_          http.Header
  3301  }
  3302  
  3303  // Create: Adds a MonitoredProject with the given project ID to the specified
  3304  // Metrics Scope.
  3305  //
  3306  //   - parent: The resource name of the existing Metrics Scope that will monitor
  3307  //     this project. Example:
  3308  //     locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}.
  3309  func (r *LocationsGlobalMetricsScopesProjectsService) Create(parent string, monitoredproject *MonitoredProject) *LocationsGlobalMetricsScopesProjectsCreateCall {
  3310  	c := &LocationsGlobalMetricsScopesProjectsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3311  	c.parent = parent
  3312  	c.monitoredproject = monitoredproject
  3313  	return c
  3314  }
  3315  
  3316  // Fields allows partial responses to be retrieved. See
  3317  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3318  // details.
  3319  func (c *LocationsGlobalMetricsScopesProjectsCreateCall) Fields(s ...googleapi.Field) *LocationsGlobalMetricsScopesProjectsCreateCall {
  3320  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3321  	return c
  3322  }
  3323  
  3324  // Context sets the context to be used in this call's Do method.
  3325  func (c *LocationsGlobalMetricsScopesProjectsCreateCall) Context(ctx context.Context) *LocationsGlobalMetricsScopesProjectsCreateCall {
  3326  	c.ctx_ = ctx
  3327  	return c
  3328  }
  3329  
  3330  // Header returns a http.Header that can be modified by the caller to add
  3331  // headers to the request.
  3332  func (c *LocationsGlobalMetricsScopesProjectsCreateCall) Header() http.Header {
  3333  	if c.header_ == nil {
  3334  		c.header_ = make(http.Header)
  3335  	}
  3336  	return c.header_
  3337  }
  3338  
  3339  func (c *LocationsGlobalMetricsScopesProjectsCreateCall) doRequest(alt string) (*http.Response, error) {
  3340  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  3341  	var body io.Reader = nil
  3342  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.monitoredproject)
  3343  	if err != nil {
  3344  		return nil, err
  3345  	}
  3346  	c.urlParams_.Set("alt", alt)
  3347  	c.urlParams_.Set("prettyPrint", "false")
  3348  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/projects")
  3349  	urls += "?" + c.urlParams_.Encode()
  3350  	req, err := http.NewRequest("POST", urls, body)
  3351  	if err != nil {
  3352  		return nil, err
  3353  	}
  3354  	req.Header = reqHeaders
  3355  	googleapi.Expand(req.URL, map[string]string{
  3356  		"parent": c.parent,
  3357  	})
  3358  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3359  }
  3360  
  3361  // Do executes the "monitoring.locations.global.metricsScopes.projects.create" call.
  3362  // Any non-2xx status code is an error. Response headers are in either
  3363  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  3364  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3365  // whether the returned error was because http.StatusNotModified was returned.
  3366  func (c *LocationsGlobalMetricsScopesProjectsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  3367  	gensupport.SetOptions(c.urlParams_, opts...)
  3368  	res, err := c.doRequest("json")
  3369  	if res != nil && res.StatusCode == http.StatusNotModified {
  3370  		if res.Body != nil {
  3371  			res.Body.Close()
  3372  		}
  3373  		return nil, gensupport.WrapError(&googleapi.Error{
  3374  			Code:   res.StatusCode,
  3375  			Header: res.Header,
  3376  		})
  3377  	}
  3378  	if err != nil {
  3379  		return nil, err
  3380  	}
  3381  	defer googleapi.CloseBody(res)
  3382  	if err := googleapi.CheckResponse(res); err != nil {
  3383  		return nil, gensupport.WrapError(err)
  3384  	}
  3385  	ret := &Operation{
  3386  		ServerResponse: googleapi.ServerResponse{
  3387  			Header:         res.Header,
  3388  			HTTPStatusCode: res.StatusCode,
  3389  		},
  3390  	}
  3391  	target := &ret
  3392  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3393  		return nil, err
  3394  	}
  3395  	return ret, nil
  3396  }
  3397  
  3398  type LocationsGlobalMetricsScopesProjectsDeleteCall struct {
  3399  	s          *Service
  3400  	name       string
  3401  	urlParams_ gensupport.URLParams
  3402  	ctx_       context.Context
  3403  	header_    http.Header
  3404  }
  3405  
  3406  // Delete: Deletes a MonitoredProject from the specified Metrics Scope.
  3407  //
  3408  //   - name: The resource name of the MonitoredProject. Example:
  3409  //     locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}/projects/{MON
  3410  //     ITORED_PROJECT_ID_OR_NUMBER}Authorization requires the following Google
  3411  //     IAM (https://cloud.google.com/iam) permissions on both the Metrics Scope
  3412  //     and on the MonitoredProject: monitoring.metricsScopes.link.
  3413  func (r *LocationsGlobalMetricsScopesProjectsService) Delete(name string) *LocationsGlobalMetricsScopesProjectsDeleteCall {
  3414  	c := &LocationsGlobalMetricsScopesProjectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3415  	c.name = name
  3416  	return c
  3417  }
  3418  
  3419  // Fields allows partial responses to be retrieved. See
  3420  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3421  // details.
  3422  func (c *LocationsGlobalMetricsScopesProjectsDeleteCall) Fields(s ...googleapi.Field) *LocationsGlobalMetricsScopesProjectsDeleteCall {
  3423  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3424  	return c
  3425  }
  3426  
  3427  // Context sets the context to be used in this call's Do method.
  3428  func (c *LocationsGlobalMetricsScopesProjectsDeleteCall) Context(ctx context.Context) *LocationsGlobalMetricsScopesProjectsDeleteCall {
  3429  	c.ctx_ = ctx
  3430  	return c
  3431  }
  3432  
  3433  // Header returns a http.Header that can be modified by the caller to add
  3434  // headers to the request.
  3435  func (c *LocationsGlobalMetricsScopesProjectsDeleteCall) Header() http.Header {
  3436  	if c.header_ == nil {
  3437  		c.header_ = make(http.Header)
  3438  	}
  3439  	return c.header_
  3440  }
  3441  
  3442  func (c *LocationsGlobalMetricsScopesProjectsDeleteCall) doRequest(alt string) (*http.Response, error) {
  3443  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3444  	var body io.Reader = nil
  3445  	c.urlParams_.Set("alt", alt)
  3446  	c.urlParams_.Set("prettyPrint", "false")
  3447  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  3448  	urls += "?" + c.urlParams_.Encode()
  3449  	req, err := http.NewRequest("DELETE", urls, body)
  3450  	if err != nil {
  3451  		return nil, err
  3452  	}
  3453  	req.Header = reqHeaders
  3454  	googleapi.Expand(req.URL, map[string]string{
  3455  		"name": c.name,
  3456  	})
  3457  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3458  }
  3459  
  3460  // Do executes the "monitoring.locations.global.metricsScopes.projects.delete" call.
  3461  // Any non-2xx status code is an error. Response headers are in either
  3462  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  3463  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3464  // whether the returned error was because http.StatusNotModified was returned.
  3465  func (c *LocationsGlobalMetricsScopesProjectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  3466  	gensupport.SetOptions(c.urlParams_, opts...)
  3467  	res, err := c.doRequest("json")
  3468  	if res != nil && res.StatusCode == http.StatusNotModified {
  3469  		if res.Body != nil {
  3470  			res.Body.Close()
  3471  		}
  3472  		return nil, gensupport.WrapError(&googleapi.Error{
  3473  			Code:   res.StatusCode,
  3474  			Header: res.Header,
  3475  		})
  3476  	}
  3477  	if err != nil {
  3478  		return nil, err
  3479  	}
  3480  	defer googleapi.CloseBody(res)
  3481  	if err := googleapi.CheckResponse(res); err != nil {
  3482  		return nil, gensupport.WrapError(err)
  3483  	}
  3484  	ret := &Operation{
  3485  		ServerResponse: googleapi.ServerResponse{
  3486  			Header:         res.Header,
  3487  			HTTPStatusCode: res.StatusCode,
  3488  		},
  3489  	}
  3490  	target := &ret
  3491  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3492  		return nil, err
  3493  	}
  3494  	return ret, nil
  3495  }
  3496  
  3497  type OperationsGetCall struct {
  3498  	s            *Service
  3499  	name         string
  3500  	urlParams_   gensupport.URLParams
  3501  	ifNoneMatch_ string
  3502  	ctx_         context.Context
  3503  	header_      http.Header
  3504  }
  3505  
  3506  // Get: Gets the latest state of a long-running operation. Clients can use this
  3507  // method to poll the operation result at intervals as recommended by the API
  3508  // service.
  3509  //
  3510  // - name: The name of the operation resource.
  3511  func (r *OperationsService) Get(name string) *OperationsGetCall {
  3512  	c := &OperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3513  	c.name = name
  3514  	return c
  3515  }
  3516  
  3517  // Fields allows partial responses to be retrieved. See
  3518  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3519  // details.
  3520  func (c *OperationsGetCall) Fields(s ...googleapi.Field) *OperationsGetCall {
  3521  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3522  	return c
  3523  }
  3524  
  3525  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3526  // object's ETag matches the given value. This is useful for getting updates
  3527  // only after the object has changed since the last request.
  3528  func (c *OperationsGetCall) IfNoneMatch(entityTag string) *OperationsGetCall {
  3529  	c.ifNoneMatch_ = entityTag
  3530  	return c
  3531  }
  3532  
  3533  // Context sets the context to be used in this call's Do method.
  3534  func (c *OperationsGetCall) Context(ctx context.Context) *OperationsGetCall {
  3535  	c.ctx_ = ctx
  3536  	return c
  3537  }
  3538  
  3539  // Header returns a http.Header that can be modified by the caller to add
  3540  // headers to the request.
  3541  func (c *OperationsGetCall) Header() http.Header {
  3542  	if c.header_ == nil {
  3543  		c.header_ = make(http.Header)
  3544  	}
  3545  	return c.header_
  3546  }
  3547  
  3548  func (c *OperationsGetCall) doRequest(alt string) (*http.Response, error) {
  3549  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3550  	if c.ifNoneMatch_ != "" {
  3551  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3552  	}
  3553  	var body io.Reader = nil
  3554  	c.urlParams_.Set("alt", alt)
  3555  	c.urlParams_.Set("prettyPrint", "false")
  3556  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  3557  	urls += "?" + c.urlParams_.Encode()
  3558  	req, err := http.NewRequest("GET", urls, body)
  3559  	if err != nil {
  3560  		return nil, err
  3561  	}
  3562  	req.Header = reqHeaders
  3563  	googleapi.Expand(req.URL, map[string]string{
  3564  		"name": c.name,
  3565  	})
  3566  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3567  }
  3568  
  3569  // Do executes the "monitoring.operations.get" call.
  3570  // Any non-2xx status code is an error. Response headers are in either
  3571  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  3572  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3573  // whether the returned error was because http.StatusNotModified was returned.
  3574  func (c *OperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  3575  	gensupport.SetOptions(c.urlParams_, opts...)
  3576  	res, err := c.doRequest("json")
  3577  	if res != nil && res.StatusCode == http.StatusNotModified {
  3578  		if res.Body != nil {
  3579  			res.Body.Close()
  3580  		}
  3581  		return nil, gensupport.WrapError(&googleapi.Error{
  3582  			Code:   res.StatusCode,
  3583  			Header: res.Header,
  3584  		})
  3585  	}
  3586  	if err != nil {
  3587  		return nil, err
  3588  	}
  3589  	defer googleapi.CloseBody(res)
  3590  	if err := googleapi.CheckResponse(res); err != nil {
  3591  		return nil, gensupport.WrapError(err)
  3592  	}
  3593  	ret := &Operation{
  3594  		ServerResponse: googleapi.ServerResponse{
  3595  			Header:         res.Header,
  3596  			HTTPStatusCode: res.StatusCode,
  3597  		},
  3598  	}
  3599  	target := &ret
  3600  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3601  		return nil, err
  3602  	}
  3603  	return ret, nil
  3604  }
  3605  
  3606  type ProjectsDashboardsCreateCall struct {
  3607  	s          *Service
  3608  	parent     string
  3609  	dashboard  *Dashboard
  3610  	urlParams_ gensupport.URLParams
  3611  	ctx_       context.Context
  3612  	header_    http.Header
  3613  }
  3614  
  3615  // Create: Creates a new custom dashboard. For examples on how you can use this
  3616  // API to create dashboards, see Managing dashboards by API
  3617  // (https://cloud.google.com/monitoring/dashboards/api-dashboard). This method
  3618  // requires the monitoring.dashboards.create permission on the specified
  3619  // project. For more information about permissions, see Cloud Identity and
  3620  // Access Management (https://cloud.google.com/iam).
  3621  //
  3622  //   - parent: The project on which to execute the request. The format is:
  3623  //     projects/[PROJECT_ID_OR_NUMBER] The [PROJECT_ID_OR_NUMBER] must match the
  3624  //     dashboard resource name.
  3625  func (r *ProjectsDashboardsService) Create(parent string, dashboard *Dashboard) *ProjectsDashboardsCreateCall {
  3626  	c := &ProjectsDashboardsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3627  	c.parent = parent
  3628  	c.dashboard = dashboard
  3629  	return c
  3630  }
  3631  
  3632  // ValidateOnly sets the optional parameter "validateOnly": If set, validate
  3633  // the request and preview the review, but do not actually save it.
  3634  func (c *ProjectsDashboardsCreateCall) ValidateOnly(validateOnly bool) *ProjectsDashboardsCreateCall {
  3635  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
  3636  	return c
  3637  }
  3638  
  3639  // Fields allows partial responses to be retrieved. See
  3640  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3641  // details.
  3642  func (c *ProjectsDashboardsCreateCall) Fields(s ...googleapi.Field) *ProjectsDashboardsCreateCall {
  3643  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3644  	return c
  3645  }
  3646  
  3647  // Context sets the context to be used in this call's Do method.
  3648  func (c *ProjectsDashboardsCreateCall) Context(ctx context.Context) *ProjectsDashboardsCreateCall {
  3649  	c.ctx_ = ctx
  3650  	return c
  3651  }
  3652  
  3653  // Header returns a http.Header that can be modified by the caller to add
  3654  // headers to the request.
  3655  func (c *ProjectsDashboardsCreateCall) Header() http.Header {
  3656  	if c.header_ == nil {
  3657  		c.header_ = make(http.Header)
  3658  	}
  3659  	return c.header_
  3660  }
  3661  
  3662  func (c *ProjectsDashboardsCreateCall) doRequest(alt string) (*http.Response, error) {
  3663  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  3664  	var body io.Reader = nil
  3665  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.dashboard)
  3666  	if err != nil {
  3667  		return nil, err
  3668  	}
  3669  	c.urlParams_.Set("alt", alt)
  3670  	c.urlParams_.Set("prettyPrint", "false")
  3671  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/dashboards")
  3672  	urls += "?" + c.urlParams_.Encode()
  3673  	req, err := http.NewRequest("POST", urls, body)
  3674  	if err != nil {
  3675  		return nil, err
  3676  	}
  3677  	req.Header = reqHeaders
  3678  	googleapi.Expand(req.URL, map[string]string{
  3679  		"parent": c.parent,
  3680  	})
  3681  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3682  }
  3683  
  3684  // Do executes the "monitoring.projects.dashboards.create" call.
  3685  // Any non-2xx status code is an error. Response headers are in either
  3686  // *Dashboard.ServerResponse.Header or (if a response was returned at all) in
  3687  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3688  // whether the returned error was because http.StatusNotModified was returned.
  3689  func (c *ProjectsDashboardsCreateCall) Do(opts ...googleapi.CallOption) (*Dashboard, error) {
  3690  	gensupport.SetOptions(c.urlParams_, opts...)
  3691  	res, err := c.doRequest("json")
  3692  	if res != nil && res.StatusCode == http.StatusNotModified {
  3693  		if res.Body != nil {
  3694  			res.Body.Close()
  3695  		}
  3696  		return nil, gensupport.WrapError(&googleapi.Error{
  3697  			Code:   res.StatusCode,
  3698  			Header: res.Header,
  3699  		})
  3700  	}
  3701  	if err != nil {
  3702  		return nil, err
  3703  	}
  3704  	defer googleapi.CloseBody(res)
  3705  	if err := googleapi.CheckResponse(res); err != nil {
  3706  		return nil, gensupport.WrapError(err)
  3707  	}
  3708  	ret := &Dashboard{
  3709  		ServerResponse: googleapi.ServerResponse{
  3710  			Header:         res.Header,
  3711  			HTTPStatusCode: res.StatusCode,
  3712  		},
  3713  	}
  3714  	target := &ret
  3715  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3716  		return nil, err
  3717  	}
  3718  	return ret, nil
  3719  }
  3720  
  3721  type ProjectsDashboardsDeleteCall struct {
  3722  	s          *Service
  3723  	name       string
  3724  	urlParams_ gensupport.URLParams
  3725  	ctx_       context.Context
  3726  	header_    http.Header
  3727  }
  3728  
  3729  // Delete: Deletes an existing custom dashboard.This method requires the
  3730  // monitoring.dashboards.delete permission on the specified dashboard. For more
  3731  // information, see Cloud Identity and Access Management
  3732  // (https://cloud.google.com/iam).
  3733  //
  3734  //   - name: The resource name of the Dashboard. The format is:
  3735  //     projects/[PROJECT_ID_OR_NUMBER]/dashboards/[DASHBOARD_ID].
  3736  func (r *ProjectsDashboardsService) Delete(name string) *ProjectsDashboardsDeleteCall {
  3737  	c := &ProjectsDashboardsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3738  	c.name = name
  3739  	return c
  3740  }
  3741  
  3742  // Fields allows partial responses to be retrieved. See
  3743  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3744  // details.
  3745  func (c *ProjectsDashboardsDeleteCall) Fields(s ...googleapi.Field) *ProjectsDashboardsDeleteCall {
  3746  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3747  	return c
  3748  }
  3749  
  3750  // Context sets the context to be used in this call's Do method.
  3751  func (c *ProjectsDashboardsDeleteCall) Context(ctx context.Context) *ProjectsDashboardsDeleteCall {
  3752  	c.ctx_ = ctx
  3753  	return c
  3754  }
  3755  
  3756  // Header returns a http.Header that can be modified by the caller to add
  3757  // headers to the request.
  3758  func (c *ProjectsDashboardsDeleteCall) Header() http.Header {
  3759  	if c.header_ == nil {
  3760  		c.header_ = make(http.Header)
  3761  	}
  3762  	return c.header_
  3763  }
  3764  
  3765  func (c *ProjectsDashboardsDeleteCall) doRequest(alt string) (*http.Response, error) {
  3766  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3767  	var body io.Reader = nil
  3768  	c.urlParams_.Set("alt", alt)
  3769  	c.urlParams_.Set("prettyPrint", "false")
  3770  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  3771  	urls += "?" + c.urlParams_.Encode()
  3772  	req, err := http.NewRequest("DELETE", urls, body)
  3773  	if err != nil {
  3774  		return nil, err
  3775  	}
  3776  	req.Header = reqHeaders
  3777  	googleapi.Expand(req.URL, map[string]string{
  3778  		"name": c.name,
  3779  	})
  3780  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3781  }
  3782  
  3783  // Do executes the "monitoring.projects.dashboards.delete" call.
  3784  // Any non-2xx status code is an error. Response headers are in either
  3785  // *Empty.ServerResponse.Header or (if a response was returned at all) in
  3786  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3787  // whether the returned error was because http.StatusNotModified was returned.
  3788  func (c *ProjectsDashboardsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
  3789  	gensupport.SetOptions(c.urlParams_, opts...)
  3790  	res, err := c.doRequest("json")
  3791  	if res != nil && res.StatusCode == http.StatusNotModified {
  3792  		if res.Body != nil {
  3793  			res.Body.Close()
  3794  		}
  3795  		return nil, gensupport.WrapError(&googleapi.Error{
  3796  			Code:   res.StatusCode,
  3797  			Header: res.Header,
  3798  		})
  3799  	}
  3800  	if err != nil {
  3801  		return nil, err
  3802  	}
  3803  	defer googleapi.CloseBody(res)
  3804  	if err := googleapi.CheckResponse(res); err != nil {
  3805  		return nil, gensupport.WrapError(err)
  3806  	}
  3807  	ret := &Empty{
  3808  		ServerResponse: googleapi.ServerResponse{
  3809  			Header:         res.Header,
  3810  			HTTPStatusCode: res.StatusCode,
  3811  		},
  3812  	}
  3813  	target := &ret
  3814  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3815  		return nil, err
  3816  	}
  3817  	return ret, nil
  3818  }
  3819  
  3820  type ProjectsDashboardsGetCall struct {
  3821  	s            *Service
  3822  	name         string
  3823  	urlParams_   gensupport.URLParams
  3824  	ifNoneMatch_ string
  3825  	ctx_         context.Context
  3826  	header_      http.Header
  3827  }
  3828  
  3829  // Get: Fetches a specific dashboard.This method requires the
  3830  // monitoring.dashboards.get permission on the specified dashboard. For more
  3831  // information, see Cloud Identity and Access Management
  3832  // (https://cloud.google.com/iam).
  3833  //
  3834  //   - name: The resource name of the Dashboard. The format is one of:
  3835  //     dashboards/[DASHBOARD_ID] (for system dashboards)
  3836  //     projects/[PROJECT_ID_OR_NUMBER]/dashboards/[DASHBOARD_ID] (for custom
  3837  //     dashboards).
  3838  func (r *ProjectsDashboardsService) Get(name string) *ProjectsDashboardsGetCall {
  3839  	c := &ProjectsDashboardsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3840  	c.name = name
  3841  	return c
  3842  }
  3843  
  3844  // Fields allows partial responses to be retrieved. See
  3845  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3846  // details.
  3847  func (c *ProjectsDashboardsGetCall) Fields(s ...googleapi.Field) *ProjectsDashboardsGetCall {
  3848  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3849  	return c
  3850  }
  3851  
  3852  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3853  // object's ETag matches the given value. This is useful for getting updates
  3854  // only after the object has changed since the last request.
  3855  func (c *ProjectsDashboardsGetCall) IfNoneMatch(entityTag string) *ProjectsDashboardsGetCall {
  3856  	c.ifNoneMatch_ = entityTag
  3857  	return c
  3858  }
  3859  
  3860  // Context sets the context to be used in this call's Do method.
  3861  func (c *ProjectsDashboardsGetCall) Context(ctx context.Context) *ProjectsDashboardsGetCall {
  3862  	c.ctx_ = ctx
  3863  	return c
  3864  }
  3865  
  3866  // Header returns a http.Header that can be modified by the caller to add
  3867  // headers to the request.
  3868  func (c *ProjectsDashboardsGetCall) Header() http.Header {
  3869  	if c.header_ == nil {
  3870  		c.header_ = make(http.Header)
  3871  	}
  3872  	return c.header_
  3873  }
  3874  
  3875  func (c *ProjectsDashboardsGetCall) doRequest(alt string) (*http.Response, error) {
  3876  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3877  	if c.ifNoneMatch_ != "" {
  3878  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3879  	}
  3880  	var body io.Reader = nil
  3881  	c.urlParams_.Set("alt", alt)
  3882  	c.urlParams_.Set("prettyPrint", "false")
  3883  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  3884  	urls += "?" + c.urlParams_.Encode()
  3885  	req, err := http.NewRequest("GET", urls, body)
  3886  	if err != nil {
  3887  		return nil, err
  3888  	}
  3889  	req.Header = reqHeaders
  3890  	googleapi.Expand(req.URL, map[string]string{
  3891  		"name": c.name,
  3892  	})
  3893  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3894  }
  3895  
  3896  // Do executes the "monitoring.projects.dashboards.get" call.
  3897  // Any non-2xx status code is an error. Response headers are in either
  3898  // *Dashboard.ServerResponse.Header or (if a response was returned at all) in
  3899  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3900  // whether the returned error was because http.StatusNotModified was returned.
  3901  func (c *ProjectsDashboardsGetCall) Do(opts ...googleapi.CallOption) (*Dashboard, error) {
  3902  	gensupport.SetOptions(c.urlParams_, opts...)
  3903  	res, err := c.doRequest("json")
  3904  	if res != nil && res.StatusCode == http.StatusNotModified {
  3905  		if res.Body != nil {
  3906  			res.Body.Close()
  3907  		}
  3908  		return nil, gensupport.WrapError(&googleapi.Error{
  3909  			Code:   res.StatusCode,
  3910  			Header: res.Header,
  3911  		})
  3912  	}
  3913  	if err != nil {
  3914  		return nil, err
  3915  	}
  3916  	defer googleapi.CloseBody(res)
  3917  	if err := googleapi.CheckResponse(res); err != nil {
  3918  		return nil, gensupport.WrapError(err)
  3919  	}
  3920  	ret := &Dashboard{
  3921  		ServerResponse: googleapi.ServerResponse{
  3922  			Header:         res.Header,
  3923  			HTTPStatusCode: res.StatusCode,
  3924  		},
  3925  	}
  3926  	target := &ret
  3927  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3928  		return nil, err
  3929  	}
  3930  	return ret, nil
  3931  }
  3932  
  3933  type ProjectsDashboardsListCall struct {
  3934  	s            *Service
  3935  	parent       string
  3936  	urlParams_   gensupport.URLParams
  3937  	ifNoneMatch_ string
  3938  	ctx_         context.Context
  3939  	header_      http.Header
  3940  }
  3941  
  3942  // List: Lists the existing dashboards.This method requires the
  3943  // monitoring.dashboards.list permission on the specified project. For more
  3944  // information, see Cloud Identity and Access Management
  3945  // (https://cloud.google.com/iam).
  3946  //
  3947  //   - parent: The scope of the dashboards to list. The format is:
  3948  //     projects/[PROJECT_ID_OR_NUMBER].
  3949  func (r *ProjectsDashboardsService) List(parent string) *ProjectsDashboardsListCall {
  3950  	c := &ProjectsDashboardsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3951  	c.parent = parent
  3952  	return c
  3953  }
  3954  
  3955  // PageSize sets the optional parameter "pageSize": A positive number that is
  3956  // the maximum number of results to return. If unspecified, a default of 1000
  3957  // is used.
  3958  func (c *ProjectsDashboardsListCall) PageSize(pageSize int64) *ProjectsDashboardsListCall {
  3959  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  3960  	return c
  3961  }
  3962  
  3963  // PageToken sets the optional parameter "pageToken": If this field is not
  3964  // empty then it must contain the nextPageToken value returned by a previous
  3965  // call to this method. Using this field causes the method to return additional
  3966  // results from the previous method call.
  3967  func (c *ProjectsDashboardsListCall) PageToken(pageToken string) *ProjectsDashboardsListCall {
  3968  	c.urlParams_.Set("pageToken", pageToken)
  3969  	return c
  3970  }
  3971  
  3972  // Fields allows partial responses to be retrieved. See
  3973  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3974  // details.
  3975  func (c *ProjectsDashboardsListCall) Fields(s ...googleapi.Field) *ProjectsDashboardsListCall {
  3976  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3977  	return c
  3978  }
  3979  
  3980  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3981  // object's ETag matches the given value. This is useful for getting updates
  3982  // only after the object has changed since the last request.
  3983  func (c *ProjectsDashboardsListCall) IfNoneMatch(entityTag string) *ProjectsDashboardsListCall {
  3984  	c.ifNoneMatch_ = entityTag
  3985  	return c
  3986  }
  3987  
  3988  // Context sets the context to be used in this call's Do method.
  3989  func (c *ProjectsDashboardsListCall) Context(ctx context.Context) *ProjectsDashboardsListCall {
  3990  	c.ctx_ = ctx
  3991  	return c
  3992  }
  3993  
  3994  // Header returns a http.Header that can be modified by the caller to add
  3995  // headers to the request.
  3996  func (c *ProjectsDashboardsListCall) Header() http.Header {
  3997  	if c.header_ == nil {
  3998  		c.header_ = make(http.Header)
  3999  	}
  4000  	return c.header_
  4001  }
  4002  
  4003  func (c *ProjectsDashboardsListCall) doRequest(alt string) (*http.Response, error) {
  4004  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4005  	if c.ifNoneMatch_ != "" {
  4006  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4007  	}
  4008  	var body io.Reader = nil
  4009  	c.urlParams_.Set("alt", alt)
  4010  	c.urlParams_.Set("prettyPrint", "false")
  4011  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/dashboards")
  4012  	urls += "?" + c.urlParams_.Encode()
  4013  	req, err := http.NewRequest("GET", urls, body)
  4014  	if err != nil {
  4015  		return nil, err
  4016  	}
  4017  	req.Header = reqHeaders
  4018  	googleapi.Expand(req.URL, map[string]string{
  4019  		"parent": c.parent,
  4020  	})
  4021  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4022  }
  4023  
  4024  // Do executes the "monitoring.projects.dashboards.list" call.
  4025  // Any non-2xx status code is an error. Response headers are in either
  4026  // *ListDashboardsResponse.ServerResponse.Header or (if a response was returned
  4027  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  4028  // check whether the returned error was because http.StatusNotModified was
  4029  // returned.
  4030  func (c *ProjectsDashboardsListCall) Do(opts ...googleapi.CallOption) (*ListDashboardsResponse, error) {
  4031  	gensupport.SetOptions(c.urlParams_, opts...)
  4032  	res, err := c.doRequest("json")
  4033  	if res != nil && res.StatusCode == http.StatusNotModified {
  4034  		if res.Body != nil {
  4035  			res.Body.Close()
  4036  		}
  4037  		return nil, gensupport.WrapError(&googleapi.Error{
  4038  			Code:   res.StatusCode,
  4039  			Header: res.Header,
  4040  		})
  4041  	}
  4042  	if err != nil {
  4043  		return nil, err
  4044  	}
  4045  	defer googleapi.CloseBody(res)
  4046  	if err := googleapi.CheckResponse(res); err != nil {
  4047  		return nil, gensupport.WrapError(err)
  4048  	}
  4049  	ret := &ListDashboardsResponse{
  4050  		ServerResponse: googleapi.ServerResponse{
  4051  			Header:         res.Header,
  4052  			HTTPStatusCode: res.StatusCode,
  4053  		},
  4054  	}
  4055  	target := &ret
  4056  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4057  		return nil, err
  4058  	}
  4059  	return ret, nil
  4060  }
  4061  
  4062  // Pages invokes f for each page of results.
  4063  // A non-nil error returned from f will halt the iteration.
  4064  // The provided context supersedes any context provided to the Context method.
  4065  func (c *ProjectsDashboardsListCall) Pages(ctx context.Context, f func(*ListDashboardsResponse) error) error {
  4066  	c.ctx_ = ctx
  4067  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  4068  	for {
  4069  		x, err := c.Do()
  4070  		if err != nil {
  4071  			return err
  4072  		}
  4073  		if err := f(x); err != nil {
  4074  			return err
  4075  		}
  4076  		if x.NextPageToken == "" {
  4077  			return nil
  4078  		}
  4079  		c.PageToken(x.NextPageToken)
  4080  	}
  4081  }
  4082  
  4083  type ProjectsDashboardsPatchCall struct {
  4084  	s          *Service
  4085  	name       string
  4086  	dashboard  *Dashboard
  4087  	urlParams_ gensupport.URLParams
  4088  	ctx_       context.Context
  4089  	header_    http.Header
  4090  }
  4091  
  4092  // Patch: Replaces an existing custom dashboard with a new definition.This
  4093  // method requires the monitoring.dashboards.update permission on the specified
  4094  // dashboard. For more information, see Cloud Identity and Access Management
  4095  // (https://cloud.google.com/iam).
  4096  //
  4097  // - name: Identifier. The resource name of the dashboard.
  4098  func (r *ProjectsDashboardsService) Patch(name string, dashboard *Dashboard) *ProjectsDashboardsPatchCall {
  4099  	c := &ProjectsDashboardsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4100  	c.name = name
  4101  	c.dashboard = dashboard
  4102  	return c
  4103  }
  4104  
  4105  // ValidateOnly sets the optional parameter "validateOnly": If set, validate
  4106  // the request and preview the review, but do not actually save it.
  4107  func (c *ProjectsDashboardsPatchCall) ValidateOnly(validateOnly bool) *ProjectsDashboardsPatchCall {
  4108  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
  4109  	return c
  4110  }
  4111  
  4112  // Fields allows partial responses to be retrieved. See
  4113  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4114  // details.
  4115  func (c *ProjectsDashboardsPatchCall) Fields(s ...googleapi.Field) *ProjectsDashboardsPatchCall {
  4116  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4117  	return c
  4118  }
  4119  
  4120  // Context sets the context to be used in this call's Do method.
  4121  func (c *ProjectsDashboardsPatchCall) Context(ctx context.Context) *ProjectsDashboardsPatchCall {
  4122  	c.ctx_ = ctx
  4123  	return c
  4124  }
  4125  
  4126  // Header returns a http.Header that can be modified by the caller to add
  4127  // headers to the request.
  4128  func (c *ProjectsDashboardsPatchCall) Header() http.Header {
  4129  	if c.header_ == nil {
  4130  		c.header_ = make(http.Header)
  4131  	}
  4132  	return c.header_
  4133  }
  4134  
  4135  func (c *ProjectsDashboardsPatchCall) doRequest(alt string) (*http.Response, error) {
  4136  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4137  	var body io.Reader = nil
  4138  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.dashboard)
  4139  	if err != nil {
  4140  		return nil, err
  4141  	}
  4142  	c.urlParams_.Set("alt", alt)
  4143  	c.urlParams_.Set("prettyPrint", "false")
  4144  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  4145  	urls += "?" + c.urlParams_.Encode()
  4146  	req, err := http.NewRequest("PATCH", urls, body)
  4147  	if err != nil {
  4148  		return nil, err
  4149  	}
  4150  	req.Header = reqHeaders
  4151  	googleapi.Expand(req.URL, map[string]string{
  4152  		"name": c.name,
  4153  	})
  4154  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4155  }
  4156  
  4157  // Do executes the "monitoring.projects.dashboards.patch" call.
  4158  // Any non-2xx status code is an error. Response headers are in either
  4159  // *Dashboard.ServerResponse.Header or (if a response was returned at all) in
  4160  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4161  // whether the returned error was because http.StatusNotModified was returned.
  4162  func (c *ProjectsDashboardsPatchCall) Do(opts ...googleapi.CallOption) (*Dashboard, error) {
  4163  	gensupport.SetOptions(c.urlParams_, opts...)
  4164  	res, err := c.doRequest("json")
  4165  	if res != nil && res.StatusCode == http.StatusNotModified {
  4166  		if res.Body != nil {
  4167  			res.Body.Close()
  4168  		}
  4169  		return nil, gensupport.WrapError(&googleapi.Error{
  4170  			Code:   res.StatusCode,
  4171  			Header: res.Header,
  4172  		})
  4173  	}
  4174  	if err != nil {
  4175  		return nil, err
  4176  	}
  4177  	defer googleapi.CloseBody(res)
  4178  	if err := googleapi.CheckResponse(res); err != nil {
  4179  		return nil, gensupport.WrapError(err)
  4180  	}
  4181  	ret := &Dashboard{
  4182  		ServerResponse: googleapi.ServerResponse{
  4183  			Header:         res.Header,
  4184  			HTTPStatusCode: res.StatusCode,
  4185  		},
  4186  	}
  4187  	target := &ret
  4188  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4189  		return nil, err
  4190  	}
  4191  	return ret, nil
  4192  }
  4193  
  4194  type ProjectsLocationPrometheusApiV1LabelsCall struct {
  4195  	s                  *Service
  4196  	name               string
  4197  	location           string
  4198  	querylabelsrequest *QueryLabelsRequest
  4199  	urlParams_         gensupport.URLParams
  4200  	ctx_               context.Context
  4201  	header_            http.Header
  4202  }
  4203  
  4204  // Labels: Lists labels for metrics.
  4205  //
  4206  //   - location: Location of the resource information. Has to be "global" now.
  4207  //   - name: The workspace on which to execute the request. It is not part of the
  4208  //     open source API but used as a request path prefix to distinguish different
  4209  //     virtual Prometheus instances of Google Prometheus Engine. The format is:
  4210  //     projects/PROJECT_ID_OR_NUMBER.
  4211  func (r *ProjectsLocationPrometheusApiV1Service) Labels(name string, location string, querylabelsrequest *QueryLabelsRequest) *ProjectsLocationPrometheusApiV1LabelsCall {
  4212  	c := &ProjectsLocationPrometheusApiV1LabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4213  	c.name = name
  4214  	c.location = location
  4215  	c.querylabelsrequest = querylabelsrequest
  4216  	return c
  4217  }
  4218  
  4219  // Fields allows partial responses to be retrieved. See
  4220  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4221  // details.
  4222  func (c *ProjectsLocationPrometheusApiV1LabelsCall) Fields(s ...googleapi.Field) *ProjectsLocationPrometheusApiV1LabelsCall {
  4223  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4224  	return c
  4225  }
  4226  
  4227  // Context sets the context to be used in this call's Do method.
  4228  func (c *ProjectsLocationPrometheusApiV1LabelsCall) Context(ctx context.Context) *ProjectsLocationPrometheusApiV1LabelsCall {
  4229  	c.ctx_ = ctx
  4230  	return c
  4231  }
  4232  
  4233  // Header returns a http.Header that can be modified by the caller to add
  4234  // headers to the request.
  4235  func (c *ProjectsLocationPrometheusApiV1LabelsCall) Header() http.Header {
  4236  	if c.header_ == nil {
  4237  		c.header_ = make(http.Header)
  4238  	}
  4239  	return c.header_
  4240  }
  4241  
  4242  func (c *ProjectsLocationPrometheusApiV1LabelsCall) doRequest(alt string) (*http.Response, error) {
  4243  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4244  	var body io.Reader = nil
  4245  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.querylabelsrequest)
  4246  	if err != nil {
  4247  		return nil, err
  4248  	}
  4249  	c.urlParams_.Set("alt", alt)
  4250  	c.urlParams_.Set("prettyPrint", "false")
  4251  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/location/{location}/prometheus/api/v1/labels")
  4252  	urls += "?" + c.urlParams_.Encode()
  4253  	req, err := http.NewRequest("POST", urls, body)
  4254  	if err != nil {
  4255  		return nil, err
  4256  	}
  4257  	req.Header = reqHeaders
  4258  	googleapi.Expand(req.URL, map[string]string{
  4259  		"name":     c.name,
  4260  		"location": c.location,
  4261  	})
  4262  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4263  }
  4264  
  4265  // Do executes the "monitoring.projects.location.prometheus.api.v1.labels" call.
  4266  // Any non-2xx status code is an error. Response headers are in either
  4267  // *HttpBody.ServerResponse.Header or (if a response was returned at all) in
  4268  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4269  // whether the returned error was because http.StatusNotModified was returned.
  4270  func (c *ProjectsLocationPrometheusApiV1LabelsCall) Do(opts ...googleapi.CallOption) (*HttpBody, error) {
  4271  	gensupport.SetOptions(c.urlParams_, opts...)
  4272  	res, err := c.doRequest("json")
  4273  	if res != nil && res.StatusCode == http.StatusNotModified {
  4274  		if res.Body != nil {
  4275  			res.Body.Close()
  4276  		}
  4277  		return nil, gensupport.WrapError(&googleapi.Error{
  4278  			Code:   res.StatusCode,
  4279  			Header: res.Header,
  4280  		})
  4281  	}
  4282  	if err != nil {
  4283  		return nil, err
  4284  	}
  4285  	defer googleapi.CloseBody(res)
  4286  	if err := googleapi.CheckResponse(res); err != nil {
  4287  		return nil, gensupport.WrapError(err)
  4288  	}
  4289  	ret := &HttpBody{
  4290  		ServerResponse: googleapi.ServerResponse{
  4291  			Header:         res.Header,
  4292  			HTTPStatusCode: res.StatusCode,
  4293  		},
  4294  	}
  4295  	target := &ret
  4296  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4297  		return nil, err
  4298  	}
  4299  	return ret, nil
  4300  }
  4301  
  4302  type ProjectsLocationPrometheusApiV1QueryCall struct {
  4303  	s                   *Service
  4304  	name                string
  4305  	location            string
  4306  	queryinstantrequest *QueryInstantRequest
  4307  	urlParams_          gensupport.URLParams
  4308  	ctx_                context.Context
  4309  	header_             http.Header
  4310  }
  4311  
  4312  // Query: Evaluate a PromQL query at a single point in time.
  4313  //
  4314  //   - location: Location of the resource information. Has to be "global" now.
  4315  //   - name: The project on which to execute the request. Data associcated with
  4316  //     the project's workspace stored under the The format is:
  4317  //     projects/PROJECT_ID_OR_NUMBER. Open source API but used as a request path
  4318  //     prefix to distinguish different virtual Prometheus instances of Google
  4319  //     Prometheus Engine.
  4320  func (r *ProjectsLocationPrometheusApiV1Service) Query(name string, location string, queryinstantrequest *QueryInstantRequest) *ProjectsLocationPrometheusApiV1QueryCall {
  4321  	c := &ProjectsLocationPrometheusApiV1QueryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4322  	c.name = name
  4323  	c.location = location
  4324  	c.queryinstantrequest = queryinstantrequest
  4325  	return c
  4326  }
  4327  
  4328  // Fields allows partial responses to be retrieved. See
  4329  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4330  // details.
  4331  func (c *ProjectsLocationPrometheusApiV1QueryCall) Fields(s ...googleapi.Field) *ProjectsLocationPrometheusApiV1QueryCall {
  4332  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4333  	return c
  4334  }
  4335  
  4336  // Context sets the context to be used in this call's Do method.
  4337  func (c *ProjectsLocationPrometheusApiV1QueryCall) Context(ctx context.Context) *ProjectsLocationPrometheusApiV1QueryCall {
  4338  	c.ctx_ = ctx
  4339  	return c
  4340  }
  4341  
  4342  // Header returns a http.Header that can be modified by the caller to add
  4343  // headers to the request.
  4344  func (c *ProjectsLocationPrometheusApiV1QueryCall) Header() http.Header {
  4345  	if c.header_ == nil {
  4346  		c.header_ = make(http.Header)
  4347  	}
  4348  	return c.header_
  4349  }
  4350  
  4351  func (c *ProjectsLocationPrometheusApiV1QueryCall) doRequest(alt string) (*http.Response, error) {
  4352  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4353  	var body io.Reader = nil
  4354  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.queryinstantrequest)
  4355  	if err != nil {
  4356  		return nil, err
  4357  	}
  4358  	c.urlParams_.Set("alt", alt)
  4359  	c.urlParams_.Set("prettyPrint", "false")
  4360  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/location/{location}/prometheus/api/v1/query")
  4361  	urls += "?" + c.urlParams_.Encode()
  4362  	req, err := http.NewRequest("POST", urls, body)
  4363  	if err != nil {
  4364  		return nil, err
  4365  	}
  4366  	req.Header = reqHeaders
  4367  	googleapi.Expand(req.URL, map[string]string{
  4368  		"name":     c.name,
  4369  		"location": c.location,
  4370  	})
  4371  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4372  }
  4373  
  4374  // Do executes the "monitoring.projects.location.prometheus.api.v1.query" call.
  4375  // Any non-2xx status code is an error. Response headers are in either
  4376  // *HttpBody.ServerResponse.Header or (if a response was returned at all) in
  4377  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4378  // whether the returned error was because http.StatusNotModified was returned.
  4379  func (c *ProjectsLocationPrometheusApiV1QueryCall) Do(opts ...googleapi.CallOption) (*HttpBody, error) {
  4380  	gensupport.SetOptions(c.urlParams_, opts...)
  4381  	res, err := c.doRequest("json")
  4382  	if res != nil && res.StatusCode == http.StatusNotModified {
  4383  		if res.Body != nil {
  4384  			res.Body.Close()
  4385  		}
  4386  		return nil, gensupport.WrapError(&googleapi.Error{
  4387  			Code:   res.StatusCode,
  4388  			Header: res.Header,
  4389  		})
  4390  	}
  4391  	if err != nil {
  4392  		return nil, err
  4393  	}
  4394  	defer googleapi.CloseBody(res)
  4395  	if err := googleapi.CheckResponse(res); err != nil {
  4396  		return nil, gensupport.WrapError(err)
  4397  	}
  4398  	ret := &HttpBody{
  4399  		ServerResponse: googleapi.ServerResponse{
  4400  			Header:         res.Header,
  4401  			HTTPStatusCode: res.StatusCode,
  4402  		},
  4403  	}
  4404  	target := &ret
  4405  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4406  		return nil, err
  4407  	}
  4408  	return ret, nil
  4409  }
  4410  
  4411  type ProjectsLocationPrometheusApiV1QueryExemplarsCall struct {
  4412  	s                     *Service
  4413  	name                  string
  4414  	location              string
  4415  	queryexemplarsrequest *QueryExemplarsRequest
  4416  	urlParams_            gensupport.URLParams
  4417  	ctx_                  context.Context
  4418  	header_               http.Header
  4419  }
  4420  
  4421  // QueryExemplars: Lists exemplars relevant to a given PromQL query,
  4422  //
  4423  //   - location: Location of the resource information. Has to be "global" now.
  4424  //   - name: The project on which to execute the request. Data associcated with
  4425  //     the project's workspace stored under the The format is:
  4426  //     projects/PROJECT_ID_OR_NUMBER. Open source API but used as a request path
  4427  //     prefix to distinguish different virtual Prometheus instances of Google
  4428  //     Prometheus Engine.
  4429  func (r *ProjectsLocationPrometheusApiV1Service) QueryExemplars(name string, location string, queryexemplarsrequest *QueryExemplarsRequest) *ProjectsLocationPrometheusApiV1QueryExemplarsCall {
  4430  	c := &ProjectsLocationPrometheusApiV1QueryExemplarsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4431  	c.name = name
  4432  	c.location = location
  4433  	c.queryexemplarsrequest = queryexemplarsrequest
  4434  	return c
  4435  }
  4436  
  4437  // Fields allows partial responses to be retrieved. See
  4438  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4439  // details.
  4440  func (c *ProjectsLocationPrometheusApiV1QueryExemplarsCall) Fields(s ...googleapi.Field) *ProjectsLocationPrometheusApiV1QueryExemplarsCall {
  4441  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4442  	return c
  4443  }
  4444  
  4445  // Context sets the context to be used in this call's Do method.
  4446  func (c *ProjectsLocationPrometheusApiV1QueryExemplarsCall) Context(ctx context.Context) *ProjectsLocationPrometheusApiV1QueryExemplarsCall {
  4447  	c.ctx_ = ctx
  4448  	return c
  4449  }
  4450  
  4451  // Header returns a http.Header that can be modified by the caller to add
  4452  // headers to the request.
  4453  func (c *ProjectsLocationPrometheusApiV1QueryExemplarsCall) Header() http.Header {
  4454  	if c.header_ == nil {
  4455  		c.header_ = make(http.Header)
  4456  	}
  4457  	return c.header_
  4458  }
  4459  
  4460  func (c *ProjectsLocationPrometheusApiV1QueryExemplarsCall) doRequest(alt string) (*http.Response, error) {
  4461  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4462  	var body io.Reader = nil
  4463  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.queryexemplarsrequest)
  4464  	if err != nil {
  4465  		return nil, err
  4466  	}
  4467  	c.urlParams_.Set("alt", alt)
  4468  	c.urlParams_.Set("prettyPrint", "false")
  4469  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/location/{location}/prometheus/api/v1/query_exemplars")
  4470  	urls += "?" + c.urlParams_.Encode()
  4471  	req, err := http.NewRequest("POST", urls, body)
  4472  	if err != nil {
  4473  		return nil, err
  4474  	}
  4475  	req.Header = reqHeaders
  4476  	googleapi.Expand(req.URL, map[string]string{
  4477  		"name":     c.name,
  4478  		"location": c.location,
  4479  	})
  4480  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4481  }
  4482  
  4483  // Do executes the "monitoring.projects.location.prometheus.api.v1.query_exemplars" call.
  4484  // Any non-2xx status code is an error. Response headers are in either
  4485  // *HttpBody.ServerResponse.Header or (if a response was returned at all) in
  4486  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4487  // whether the returned error was because http.StatusNotModified was returned.
  4488  func (c *ProjectsLocationPrometheusApiV1QueryExemplarsCall) Do(opts ...googleapi.CallOption) (*HttpBody, error) {
  4489  	gensupport.SetOptions(c.urlParams_, opts...)
  4490  	res, err := c.doRequest("json")
  4491  	if res != nil && res.StatusCode == http.StatusNotModified {
  4492  		if res.Body != nil {
  4493  			res.Body.Close()
  4494  		}
  4495  		return nil, gensupport.WrapError(&googleapi.Error{
  4496  			Code:   res.StatusCode,
  4497  			Header: res.Header,
  4498  		})
  4499  	}
  4500  	if err != nil {
  4501  		return nil, err
  4502  	}
  4503  	defer googleapi.CloseBody(res)
  4504  	if err := googleapi.CheckResponse(res); err != nil {
  4505  		return nil, gensupport.WrapError(err)
  4506  	}
  4507  	ret := &HttpBody{
  4508  		ServerResponse: googleapi.ServerResponse{
  4509  			Header:         res.Header,
  4510  			HTTPStatusCode: res.StatusCode,
  4511  		},
  4512  	}
  4513  	target := &ret
  4514  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4515  		return nil, err
  4516  	}
  4517  	return ret, nil
  4518  }
  4519  
  4520  type ProjectsLocationPrometheusApiV1QueryRangeCall struct {
  4521  	s                 *Service
  4522  	name              string
  4523  	location          string
  4524  	queryrangerequest *QueryRangeRequest
  4525  	urlParams_        gensupport.URLParams
  4526  	ctx_              context.Context
  4527  	header_           http.Header
  4528  }
  4529  
  4530  // QueryRange: Evaluate a PromQL query with start, end time range.
  4531  //
  4532  //   - location: Location of the resource information. Has to be "global" now.
  4533  //   - name: The project on which to execute the request. Data associcated with
  4534  //     the project's workspace stored under the The format is:
  4535  //     projects/PROJECT_ID_OR_NUMBER. Open source API but used as a request path
  4536  //     prefix to distinguish different virtual Prometheus instances of Google
  4537  //     Prometheus Engine.
  4538  func (r *ProjectsLocationPrometheusApiV1Service) QueryRange(name string, location string, queryrangerequest *QueryRangeRequest) *ProjectsLocationPrometheusApiV1QueryRangeCall {
  4539  	c := &ProjectsLocationPrometheusApiV1QueryRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4540  	c.name = name
  4541  	c.location = location
  4542  	c.queryrangerequest = queryrangerequest
  4543  	return c
  4544  }
  4545  
  4546  // Fields allows partial responses to be retrieved. See
  4547  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4548  // details.
  4549  func (c *ProjectsLocationPrometheusApiV1QueryRangeCall) Fields(s ...googleapi.Field) *ProjectsLocationPrometheusApiV1QueryRangeCall {
  4550  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4551  	return c
  4552  }
  4553  
  4554  // Context sets the context to be used in this call's Do method.
  4555  func (c *ProjectsLocationPrometheusApiV1QueryRangeCall) Context(ctx context.Context) *ProjectsLocationPrometheusApiV1QueryRangeCall {
  4556  	c.ctx_ = ctx
  4557  	return c
  4558  }
  4559  
  4560  // Header returns a http.Header that can be modified by the caller to add
  4561  // headers to the request.
  4562  func (c *ProjectsLocationPrometheusApiV1QueryRangeCall) Header() http.Header {
  4563  	if c.header_ == nil {
  4564  		c.header_ = make(http.Header)
  4565  	}
  4566  	return c.header_
  4567  }
  4568  
  4569  func (c *ProjectsLocationPrometheusApiV1QueryRangeCall) doRequest(alt string) (*http.Response, error) {
  4570  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4571  	var body io.Reader = nil
  4572  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.queryrangerequest)
  4573  	if err != nil {
  4574  		return nil, err
  4575  	}
  4576  	c.urlParams_.Set("alt", alt)
  4577  	c.urlParams_.Set("prettyPrint", "false")
  4578  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/location/{location}/prometheus/api/v1/query_range")
  4579  	urls += "?" + c.urlParams_.Encode()
  4580  	req, err := http.NewRequest("POST", urls, body)
  4581  	if err != nil {
  4582  		return nil, err
  4583  	}
  4584  	req.Header = reqHeaders
  4585  	googleapi.Expand(req.URL, map[string]string{
  4586  		"name":     c.name,
  4587  		"location": c.location,
  4588  	})
  4589  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4590  }
  4591  
  4592  // Do executes the "monitoring.projects.location.prometheus.api.v1.query_range" call.
  4593  // Any non-2xx status code is an error. Response headers are in either
  4594  // *HttpBody.ServerResponse.Header or (if a response was returned at all) in
  4595  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4596  // whether the returned error was because http.StatusNotModified was returned.
  4597  func (c *ProjectsLocationPrometheusApiV1QueryRangeCall) Do(opts ...googleapi.CallOption) (*HttpBody, error) {
  4598  	gensupport.SetOptions(c.urlParams_, opts...)
  4599  	res, err := c.doRequest("json")
  4600  	if res != nil && res.StatusCode == http.StatusNotModified {
  4601  		if res.Body != nil {
  4602  			res.Body.Close()
  4603  		}
  4604  		return nil, gensupport.WrapError(&googleapi.Error{
  4605  			Code:   res.StatusCode,
  4606  			Header: res.Header,
  4607  		})
  4608  	}
  4609  	if err != nil {
  4610  		return nil, err
  4611  	}
  4612  	defer googleapi.CloseBody(res)
  4613  	if err := googleapi.CheckResponse(res); err != nil {
  4614  		return nil, gensupport.WrapError(err)
  4615  	}
  4616  	ret := &HttpBody{
  4617  		ServerResponse: googleapi.ServerResponse{
  4618  			Header:         res.Header,
  4619  			HTTPStatusCode: res.StatusCode,
  4620  		},
  4621  	}
  4622  	target := &ret
  4623  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4624  		return nil, err
  4625  	}
  4626  	return ret, nil
  4627  }
  4628  
  4629  type ProjectsLocationPrometheusApiV1SeriesCall struct {
  4630  	s                  *Service
  4631  	name               string
  4632  	location           string
  4633  	queryseriesrequest *QuerySeriesRequest
  4634  	urlParams_         gensupport.URLParams
  4635  	ctx_               context.Context
  4636  	header_            http.Header
  4637  }
  4638  
  4639  // Series: Lists metadata for metrics.
  4640  //
  4641  //   - location: Location of the resource information. Has to be "global" for
  4642  //     now.
  4643  //   - name: The workspace on which to execute the request. It is not part of the
  4644  //     open source API but used as a request path prefix to distinguish different
  4645  //     virtual Prometheus instances of Google Prometheus Engine. The format is:
  4646  //     projects/PROJECT_ID_OR_NUMBER.
  4647  func (r *ProjectsLocationPrometheusApiV1Service) Series(name string, location string, queryseriesrequest *QuerySeriesRequest) *ProjectsLocationPrometheusApiV1SeriesCall {
  4648  	c := &ProjectsLocationPrometheusApiV1SeriesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4649  	c.name = name
  4650  	c.location = location
  4651  	c.queryseriesrequest = queryseriesrequest
  4652  	return c
  4653  }
  4654  
  4655  // Fields allows partial responses to be retrieved. See
  4656  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4657  // details.
  4658  func (c *ProjectsLocationPrometheusApiV1SeriesCall) Fields(s ...googleapi.Field) *ProjectsLocationPrometheusApiV1SeriesCall {
  4659  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4660  	return c
  4661  }
  4662  
  4663  // Context sets the context to be used in this call's Do method.
  4664  func (c *ProjectsLocationPrometheusApiV1SeriesCall) Context(ctx context.Context) *ProjectsLocationPrometheusApiV1SeriesCall {
  4665  	c.ctx_ = ctx
  4666  	return c
  4667  }
  4668  
  4669  // Header returns a http.Header that can be modified by the caller to add
  4670  // headers to the request.
  4671  func (c *ProjectsLocationPrometheusApiV1SeriesCall) Header() http.Header {
  4672  	if c.header_ == nil {
  4673  		c.header_ = make(http.Header)
  4674  	}
  4675  	return c.header_
  4676  }
  4677  
  4678  func (c *ProjectsLocationPrometheusApiV1SeriesCall) doRequest(alt string) (*http.Response, error) {
  4679  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4680  	var body io.Reader = nil
  4681  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.queryseriesrequest)
  4682  	if err != nil {
  4683  		return nil, err
  4684  	}
  4685  	c.urlParams_.Set("alt", alt)
  4686  	c.urlParams_.Set("prettyPrint", "false")
  4687  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/location/{location}/prometheus/api/v1/series")
  4688  	urls += "?" + c.urlParams_.Encode()
  4689  	req, err := http.NewRequest("POST", urls, body)
  4690  	if err != nil {
  4691  		return nil, err
  4692  	}
  4693  	req.Header = reqHeaders
  4694  	googleapi.Expand(req.URL, map[string]string{
  4695  		"name":     c.name,
  4696  		"location": c.location,
  4697  	})
  4698  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4699  }
  4700  
  4701  // Do executes the "monitoring.projects.location.prometheus.api.v1.series" call.
  4702  // Any non-2xx status code is an error. Response headers are in either
  4703  // *HttpBody.ServerResponse.Header or (if a response was returned at all) in
  4704  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4705  // whether the returned error was because http.StatusNotModified was returned.
  4706  func (c *ProjectsLocationPrometheusApiV1SeriesCall) Do(opts ...googleapi.CallOption) (*HttpBody, error) {
  4707  	gensupport.SetOptions(c.urlParams_, opts...)
  4708  	res, err := c.doRequest("json")
  4709  	if res != nil && res.StatusCode == http.StatusNotModified {
  4710  		if res.Body != nil {
  4711  			res.Body.Close()
  4712  		}
  4713  		return nil, gensupport.WrapError(&googleapi.Error{
  4714  			Code:   res.StatusCode,
  4715  			Header: res.Header,
  4716  		})
  4717  	}
  4718  	if err != nil {
  4719  		return nil, err
  4720  	}
  4721  	defer googleapi.CloseBody(res)
  4722  	if err := googleapi.CheckResponse(res); err != nil {
  4723  		return nil, gensupport.WrapError(err)
  4724  	}
  4725  	ret := &HttpBody{
  4726  		ServerResponse: googleapi.ServerResponse{
  4727  			Header:         res.Header,
  4728  			HTTPStatusCode: res.StatusCode,
  4729  		},
  4730  	}
  4731  	target := &ret
  4732  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4733  		return nil, err
  4734  	}
  4735  	return ret, nil
  4736  }
  4737  
  4738  type ProjectsLocationPrometheusApiV1LabelValuesCall struct {
  4739  	s            *Service
  4740  	name         string
  4741  	location     string
  4742  	label        string
  4743  	urlParams_   gensupport.URLParams
  4744  	ifNoneMatch_ string
  4745  	ctx_         context.Context
  4746  	header_      http.Header
  4747  }
  4748  
  4749  // Values: Lists possible values for a given label name.
  4750  //
  4751  //   - label: The label name for which values are queried.
  4752  //   - location: Location of the resource information. Has to be "global" now.
  4753  //   - name: The workspace on which to execute the request. It is not part of the
  4754  //     open source API but used as a request path prefix to distinguish different
  4755  //     virtual Prometheus instances of Google Prometheus Engine. The format is:
  4756  //     projects/PROJECT_ID_OR_NUMBER.
  4757  func (r *ProjectsLocationPrometheusApiV1LabelService) Values(name string, location string, label string) *ProjectsLocationPrometheusApiV1LabelValuesCall {
  4758  	c := &ProjectsLocationPrometheusApiV1LabelValuesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4759  	c.name = name
  4760  	c.location = location
  4761  	c.label = label
  4762  	return c
  4763  }
  4764  
  4765  // End sets the optional parameter "end": The end time to evaluate the query
  4766  // for. Either floating point UNIX seconds or RFC3339 formatted timestamp.
  4767  func (c *ProjectsLocationPrometheusApiV1LabelValuesCall) End(end string) *ProjectsLocationPrometheusApiV1LabelValuesCall {
  4768  	c.urlParams_.Set("end", end)
  4769  	return c
  4770  }
  4771  
  4772  // Match sets the optional parameter "match": A list of matchers encoded in the
  4773  // Prometheus label matcher format to constrain the values to series that
  4774  // satisfy them.
  4775  func (c *ProjectsLocationPrometheusApiV1LabelValuesCall) Match(match string) *ProjectsLocationPrometheusApiV1LabelValuesCall {
  4776  	c.urlParams_.Set("match", match)
  4777  	return c
  4778  }
  4779  
  4780  // Start sets the optional parameter "start": The start time to evaluate the
  4781  // query for. Either floating point UNIX seconds or RFC3339 formatted
  4782  // timestamp.
  4783  func (c *ProjectsLocationPrometheusApiV1LabelValuesCall) Start(start string) *ProjectsLocationPrometheusApiV1LabelValuesCall {
  4784  	c.urlParams_.Set("start", start)
  4785  	return c
  4786  }
  4787  
  4788  // Fields allows partial responses to be retrieved. See
  4789  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4790  // details.
  4791  func (c *ProjectsLocationPrometheusApiV1LabelValuesCall) Fields(s ...googleapi.Field) *ProjectsLocationPrometheusApiV1LabelValuesCall {
  4792  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4793  	return c
  4794  }
  4795  
  4796  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4797  // object's ETag matches the given value. This is useful for getting updates
  4798  // only after the object has changed since the last request.
  4799  func (c *ProjectsLocationPrometheusApiV1LabelValuesCall) IfNoneMatch(entityTag string) *ProjectsLocationPrometheusApiV1LabelValuesCall {
  4800  	c.ifNoneMatch_ = entityTag
  4801  	return c
  4802  }
  4803  
  4804  // Context sets the context to be used in this call's Do method.
  4805  func (c *ProjectsLocationPrometheusApiV1LabelValuesCall) Context(ctx context.Context) *ProjectsLocationPrometheusApiV1LabelValuesCall {
  4806  	c.ctx_ = ctx
  4807  	return c
  4808  }
  4809  
  4810  // Header returns a http.Header that can be modified by the caller to add
  4811  // headers to the request.
  4812  func (c *ProjectsLocationPrometheusApiV1LabelValuesCall) Header() http.Header {
  4813  	if c.header_ == nil {
  4814  		c.header_ = make(http.Header)
  4815  	}
  4816  	return c.header_
  4817  }
  4818  
  4819  func (c *ProjectsLocationPrometheusApiV1LabelValuesCall) doRequest(alt string) (*http.Response, error) {
  4820  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4821  	if c.ifNoneMatch_ != "" {
  4822  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4823  	}
  4824  	var body io.Reader = nil
  4825  	c.urlParams_.Set("alt", alt)
  4826  	c.urlParams_.Set("prettyPrint", "false")
  4827  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/location/{location}/prometheus/api/v1/label/{label}/values")
  4828  	urls += "?" + c.urlParams_.Encode()
  4829  	req, err := http.NewRequest("GET", urls, body)
  4830  	if err != nil {
  4831  		return nil, err
  4832  	}
  4833  	req.Header = reqHeaders
  4834  	googleapi.Expand(req.URL, map[string]string{
  4835  		"name":     c.name,
  4836  		"location": c.location,
  4837  		"label":    c.label,
  4838  	})
  4839  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4840  }
  4841  
  4842  // Do executes the "monitoring.projects.location.prometheus.api.v1.label.values" call.
  4843  // Any non-2xx status code is an error. Response headers are in either
  4844  // *HttpBody.ServerResponse.Header or (if a response was returned at all) in
  4845  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4846  // whether the returned error was because http.StatusNotModified was returned.
  4847  func (c *ProjectsLocationPrometheusApiV1LabelValuesCall) Do(opts ...googleapi.CallOption) (*HttpBody, error) {
  4848  	gensupport.SetOptions(c.urlParams_, opts...)
  4849  	res, err := c.doRequest("json")
  4850  	if res != nil && res.StatusCode == http.StatusNotModified {
  4851  		if res.Body != nil {
  4852  			res.Body.Close()
  4853  		}
  4854  		return nil, gensupport.WrapError(&googleapi.Error{
  4855  			Code:   res.StatusCode,
  4856  			Header: res.Header,
  4857  		})
  4858  	}
  4859  	if err != nil {
  4860  		return nil, err
  4861  	}
  4862  	defer googleapi.CloseBody(res)
  4863  	if err := googleapi.CheckResponse(res); err != nil {
  4864  		return nil, gensupport.WrapError(err)
  4865  	}
  4866  	ret := &HttpBody{
  4867  		ServerResponse: googleapi.ServerResponse{
  4868  			Header:         res.Header,
  4869  			HTTPStatusCode: res.StatusCode,
  4870  		},
  4871  	}
  4872  	target := &ret
  4873  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4874  		return nil, err
  4875  	}
  4876  	return ret, nil
  4877  }
  4878  
  4879  type ProjectsLocationPrometheusApiV1MetadataListCall struct {
  4880  	s            *Service
  4881  	name         string
  4882  	location     string
  4883  	urlParams_   gensupport.URLParams
  4884  	ifNoneMatch_ string
  4885  	ctx_         context.Context
  4886  	header_      http.Header
  4887  }
  4888  
  4889  // List: Lists metadata for metrics.
  4890  //
  4891  //   - location: Location of the resource information. Has to be "global" for
  4892  //     now.
  4893  //   - name: The workspace on which to execute the request. It is not part of the
  4894  //     open source API but used as a request path prefix to distinguish different
  4895  //     virtual Prometheus instances of Google Prometheus Engine. The format is:
  4896  //     projects/PROJECT_ID_OR_NUMBER.
  4897  func (r *ProjectsLocationPrometheusApiV1MetadataService) List(name string, location string) *ProjectsLocationPrometheusApiV1MetadataListCall {
  4898  	c := &ProjectsLocationPrometheusApiV1MetadataListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4899  	c.name = name
  4900  	c.location = location
  4901  	return c
  4902  }
  4903  
  4904  // Limit sets the optional parameter "limit": Maximum number of metrics to
  4905  // return.
  4906  func (c *ProjectsLocationPrometheusApiV1MetadataListCall) Limit(limit int64) *ProjectsLocationPrometheusApiV1MetadataListCall {
  4907  	c.urlParams_.Set("limit", fmt.Sprint(limit))
  4908  	return c
  4909  }
  4910  
  4911  // Metric sets the optional parameter "metric": The metric name for which to
  4912  // query metadata. If unset, all metric metadata is returned.
  4913  func (c *ProjectsLocationPrometheusApiV1MetadataListCall) Metric(metric string) *ProjectsLocationPrometheusApiV1MetadataListCall {
  4914  	c.urlParams_.Set("metric", metric)
  4915  	return c
  4916  }
  4917  
  4918  // Fields allows partial responses to be retrieved. See
  4919  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4920  // details.
  4921  func (c *ProjectsLocationPrometheusApiV1MetadataListCall) Fields(s ...googleapi.Field) *ProjectsLocationPrometheusApiV1MetadataListCall {
  4922  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4923  	return c
  4924  }
  4925  
  4926  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4927  // object's ETag matches the given value. This is useful for getting updates
  4928  // only after the object has changed since the last request.
  4929  func (c *ProjectsLocationPrometheusApiV1MetadataListCall) IfNoneMatch(entityTag string) *ProjectsLocationPrometheusApiV1MetadataListCall {
  4930  	c.ifNoneMatch_ = entityTag
  4931  	return c
  4932  }
  4933  
  4934  // Context sets the context to be used in this call's Do method.
  4935  func (c *ProjectsLocationPrometheusApiV1MetadataListCall) Context(ctx context.Context) *ProjectsLocationPrometheusApiV1MetadataListCall {
  4936  	c.ctx_ = ctx
  4937  	return c
  4938  }
  4939  
  4940  // Header returns a http.Header that can be modified by the caller to add
  4941  // headers to the request.
  4942  func (c *ProjectsLocationPrometheusApiV1MetadataListCall) Header() http.Header {
  4943  	if c.header_ == nil {
  4944  		c.header_ = make(http.Header)
  4945  	}
  4946  	return c.header_
  4947  }
  4948  
  4949  func (c *ProjectsLocationPrometheusApiV1MetadataListCall) doRequest(alt string) (*http.Response, error) {
  4950  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4951  	if c.ifNoneMatch_ != "" {
  4952  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4953  	}
  4954  	var body io.Reader = nil
  4955  	c.urlParams_.Set("alt", alt)
  4956  	c.urlParams_.Set("prettyPrint", "false")
  4957  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/location/{location}/prometheus/api/v1/metadata")
  4958  	urls += "?" + c.urlParams_.Encode()
  4959  	req, err := http.NewRequest("GET", urls, body)
  4960  	if err != nil {
  4961  		return nil, err
  4962  	}
  4963  	req.Header = reqHeaders
  4964  	googleapi.Expand(req.URL, map[string]string{
  4965  		"name":     c.name,
  4966  		"location": c.location,
  4967  	})
  4968  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4969  }
  4970  
  4971  // Do executes the "monitoring.projects.location.prometheus.api.v1.metadata.list" call.
  4972  // Any non-2xx status code is an error. Response headers are in either
  4973  // *HttpBody.ServerResponse.Header or (if a response was returned at all) in
  4974  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4975  // whether the returned error was because http.StatusNotModified was returned.
  4976  func (c *ProjectsLocationPrometheusApiV1MetadataListCall) Do(opts ...googleapi.CallOption) (*HttpBody, error) {
  4977  	gensupport.SetOptions(c.urlParams_, opts...)
  4978  	res, err := c.doRequest("json")
  4979  	if res != nil && res.StatusCode == http.StatusNotModified {
  4980  		if res.Body != nil {
  4981  			res.Body.Close()
  4982  		}
  4983  		return nil, gensupport.WrapError(&googleapi.Error{
  4984  			Code:   res.StatusCode,
  4985  			Header: res.Header,
  4986  		})
  4987  	}
  4988  	if err != nil {
  4989  		return nil, err
  4990  	}
  4991  	defer googleapi.CloseBody(res)
  4992  	if err := googleapi.CheckResponse(res); err != nil {
  4993  		return nil, gensupport.WrapError(err)
  4994  	}
  4995  	ret := &HttpBody{
  4996  		ServerResponse: googleapi.ServerResponse{
  4997  			Header:         res.Header,
  4998  			HTTPStatusCode: res.StatusCode,
  4999  		},
  5000  	}
  5001  	target := &ret
  5002  	if err := gensupport.DecodeResponse(target, res); err != nil {
  5003  		return nil, err
  5004  	}
  5005  	return ret, nil
  5006  }
  5007  

View as plain text