...

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

Documentation: google.golang.org/api/gkeonprem/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 gkeonprem provides access to the Anthos On-Prem API.
     8  //
     9  // For product documentation, see: https://cloud.google.com/anthos/clusters/docs/on-prem/
    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/gkeonprem/v1"
    27  //	...
    28  //	ctx := context.Background()
    29  //	gkeonpremService, err := gkeonprem.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  // To use an API key for authentication (note: some APIs do not support API
    38  // keys), use [google.golang.org/api/option.WithAPIKey]:
    39  //
    40  //	gkeonpremService, err := gkeonprem.NewService(ctx, option.WithAPIKey("AIza..."))
    41  //
    42  // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth
    43  // flow, use [google.golang.org/api/option.WithTokenSource]:
    44  //
    45  //	config := &oauth2.Config{...}
    46  //	// ...
    47  //	token, err := config.Exchange(ctx, ...)
    48  //	gkeonpremService, err := gkeonprem.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
    49  //
    50  // See [google.golang.org/api/option.ClientOption] for details on options.
    51  package gkeonprem // import "google.golang.org/api/gkeonprem/v1"
    52  
    53  import (
    54  	"bytes"
    55  	"context"
    56  	"encoding/json"
    57  	"errors"
    58  	"fmt"
    59  	"io"
    60  	"net/http"
    61  	"net/url"
    62  	"strconv"
    63  	"strings"
    64  
    65  	googleapi "google.golang.org/api/googleapi"
    66  	internal "google.golang.org/api/internal"
    67  	gensupport "google.golang.org/api/internal/gensupport"
    68  	option "google.golang.org/api/option"
    69  	internaloption "google.golang.org/api/option/internaloption"
    70  	htransport "google.golang.org/api/transport/http"
    71  )
    72  
    73  // Always reference these packages, just in case the auto-generated code
    74  // below doesn't.
    75  var _ = bytes.NewBuffer
    76  var _ = strconv.Itoa
    77  var _ = fmt.Sprintf
    78  var _ = json.NewDecoder
    79  var _ = io.Copy
    80  var _ = url.Parse
    81  var _ = gensupport.MarshalJSON
    82  var _ = googleapi.Version
    83  var _ = errors.New
    84  var _ = strings.Replace
    85  var _ = context.Canceled
    86  var _ = internaloption.WithDefaultEndpoint
    87  var _ = internal.Version
    88  
    89  const apiId = "gkeonprem:v1"
    90  const apiName = "gkeonprem"
    91  const apiVersion = "v1"
    92  const basePath = "https://gkeonprem.googleapis.com/"
    93  const basePathTemplate = "https://gkeonprem.UNIVERSE_DOMAIN/"
    94  const mtlsBasePath = "https://gkeonprem.mtls.googleapis.com/"
    95  
    96  // OAuth2 scopes used by this API.
    97  const (
    98  	// See, edit, configure, and delete your Google Cloud data and see the email
    99  	// address for your Google Account.
   100  	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
   101  )
   102  
   103  // NewService creates a new Service.
   104  func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
   105  	scopesOption := internaloption.WithDefaultScopes(
   106  		"https://www.googleapis.com/auth/cloud-platform",
   107  	)
   108  	// NOTE: prepend, so we don't override user-specified scopes.
   109  	opts = append([]option.ClientOption{scopesOption}, opts...)
   110  	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
   111  	opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
   112  	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
   113  	opts = append(opts, internaloption.EnableNewAuthLibrary())
   114  	client, endpoint, err := htransport.NewClient(ctx, opts...)
   115  	if err != nil {
   116  		return nil, err
   117  	}
   118  	s, err := New(client)
   119  	if err != nil {
   120  		return nil, err
   121  	}
   122  	if endpoint != "" {
   123  		s.BasePath = endpoint
   124  	}
   125  	return s, nil
   126  }
   127  
   128  // New creates a new Service. It uses the provided http.Client for requests.
   129  //
   130  // Deprecated: please use NewService instead.
   131  // To provide a custom HTTP client, use option.WithHTTPClient.
   132  // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
   133  func New(client *http.Client) (*Service, error) {
   134  	if client == nil {
   135  		return nil, errors.New("client is nil")
   136  	}
   137  	s := &Service{client: client, BasePath: basePath}
   138  	s.Projects = NewProjectsService(s)
   139  	return s, nil
   140  }
   141  
   142  type Service struct {
   143  	client    *http.Client
   144  	BasePath  string // API endpoint base URL
   145  	UserAgent string // optional additional User-Agent fragment
   146  
   147  	Projects *ProjectsService
   148  }
   149  
   150  func (s *Service) userAgent() string {
   151  	if s.UserAgent == "" {
   152  		return googleapi.UserAgent
   153  	}
   154  	return googleapi.UserAgent + " " + s.UserAgent
   155  }
   156  
   157  func NewProjectsService(s *Service) *ProjectsService {
   158  	rs := &ProjectsService{s: s}
   159  	rs.Locations = NewProjectsLocationsService(s)
   160  	return rs
   161  }
   162  
   163  type ProjectsService struct {
   164  	s *Service
   165  
   166  	Locations *ProjectsLocationsService
   167  }
   168  
   169  func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
   170  	rs := &ProjectsLocationsService{s: s}
   171  	rs.BareMetalAdminClusters = NewProjectsLocationsBareMetalAdminClustersService(s)
   172  	rs.BareMetalClusters = NewProjectsLocationsBareMetalClustersService(s)
   173  	rs.Operations = NewProjectsLocationsOperationsService(s)
   174  	rs.VmwareAdminClusters = NewProjectsLocationsVmwareAdminClustersService(s)
   175  	rs.VmwareClusters = NewProjectsLocationsVmwareClustersService(s)
   176  	return rs
   177  }
   178  
   179  type ProjectsLocationsService struct {
   180  	s *Service
   181  
   182  	BareMetalAdminClusters *ProjectsLocationsBareMetalAdminClustersService
   183  
   184  	BareMetalClusters *ProjectsLocationsBareMetalClustersService
   185  
   186  	Operations *ProjectsLocationsOperationsService
   187  
   188  	VmwareAdminClusters *ProjectsLocationsVmwareAdminClustersService
   189  
   190  	VmwareClusters *ProjectsLocationsVmwareClustersService
   191  }
   192  
   193  func NewProjectsLocationsBareMetalAdminClustersService(s *Service) *ProjectsLocationsBareMetalAdminClustersService {
   194  	rs := &ProjectsLocationsBareMetalAdminClustersService{s: s}
   195  	rs.Operations = NewProjectsLocationsBareMetalAdminClustersOperationsService(s)
   196  	return rs
   197  }
   198  
   199  type ProjectsLocationsBareMetalAdminClustersService struct {
   200  	s *Service
   201  
   202  	Operations *ProjectsLocationsBareMetalAdminClustersOperationsService
   203  }
   204  
   205  func NewProjectsLocationsBareMetalAdminClustersOperationsService(s *Service) *ProjectsLocationsBareMetalAdminClustersOperationsService {
   206  	rs := &ProjectsLocationsBareMetalAdminClustersOperationsService{s: s}
   207  	return rs
   208  }
   209  
   210  type ProjectsLocationsBareMetalAdminClustersOperationsService struct {
   211  	s *Service
   212  }
   213  
   214  func NewProjectsLocationsBareMetalClustersService(s *Service) *ProjectsLocationsBareMetalClustersService {
   215  	rs := &ProjectsLocationsBareMetalClustersService{s: s}
   216  	rs.BareMetalNodePools = NewProjectsLocationsBareMetalClustersBareMetalNodePoolsService(s)
   217  	rs.Operations = NewProjectsLocationsBareMetalClustersOperationsService(s)
   218  	return rs
   219  }
   220  
   221  type ProjectsLocationsBareMetalClustersService struct {
   222  	s *Service
   223  
   224  	BareMetalNodePools *ProjectsLocationsBareMetalClustersBareMetalNodePoolsService
   225  
   226  	Operations *ProjectsLocationsBareMetalClustersOperationsService
   227  }
   228  
   229  func NewProjectsLocationsBareMetalClustersBareMetalNodePoolsService(s *Service) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsService {
   230  	rs := &ProjectsLocationsBareMetalClustersBareMetalNodePoolsService{s: s}
   231  	rs.Operations = NewProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsService(s)
   232  	return rs
   233  }
   234  
   235  type ProjectsLocationsBareMetalClustersBareMetalNodePoolsService struct {
   236  	s *Service
   237  
   238  	Operations *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsService
   239  }
   240  
   241  func NewProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsService(s *Service) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsService {
   242  	rs := &ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsService{s: s}
   243  	return rs
   244  }
   245  
   246  type ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsService struct {
   247  	s *Service
   248  }
   249  
   250  func NewProjectsLocationsBareMetalClustersOperationsService(s *Service) *ProjectsLocationsBareMetalClustersOperationsService {
   251  	rs := &ProjectsLocationsBareMetalClustersOperationsService{s: s}
   252  	return rs
   253  }
   254  
   255  type ProjectsLocationsBareMetalClustersOperationsService struct {
   256  	s *Service
   257  }
   258  
   259  func NewProjectsLocationsOperationsService(s *Service) *ProjectsLocationsOperationsService {
   260  	rs := &ProjectsLocationsOperationsService{s: s}
   261  	return rs
   262  }
   263  
   264  type ProjectsLocationsOperationsService struct {
   265  	s *Service
   266  }
   267  
   268  func NewProjectsLocationsVmwareAdminClustersService(s *Service) *ProjectsLocationsVmwareAdminClustersService {
   269  	rs := &ProjectsLocationsVmwareAdminClustersService{s: s}
   270  	rs.Operations = NewProjectsLocationsVmwareAdminClustersOperationsService(s)
   271  	return rs
   272  }
   273  
   274  type ProjectsLocationsVmwareAdminClustersService struct {
   275  	s *Service
   276  
   277  	Operations *ProjectsLocationsVmwareAdminClustersOperationsService
   278  }
   279  
   280  func NewProjectsLocationsVmwareAdminClustersOperationsService(s *Service) *ProjectsLocationsVmwareAdminClustersOperationsService {
   281  	rs := &ProjectsLocationsVmwareAdminClustersOperationsService{s: s}
   282  	return rs
   283  }
   284  
   285  type ProjectsLocationsVmwareAdminClustersOperationsService struct {
   286  	s *Service
   287  }
   288  
   289  func NewProjectsLocationsVmwareClustersService(s *Service) *ProjectsLocationsVmwareClustersService {
   290  	rs := &ProjectsLocationsVmwareClustersService{s: s}
   291  	rs.Operations = NewProjectsLocationsVmwareClustersOperationsService(s)
   292  	rs.VmwareNodePools = NewProjectsLocationsVmwareClustersVmwareNodePoolsService(s)
   293  	return rs
   294  }
   295  
   296  type ProjectsLocationsVmwareClustersService struct {
   297  	s *Service
   298  
   299  	Operations *ProjectsLocationsVmwareClustersOperationsService
   300  
   301  	VmwareNodePools *ProjectsLocationsVmwareClustersVmwareNodePoolsService
   302  }
   303  
   304  func NewProjectsLocationsVmwareClustersOperationsService(s *Service) *ProjectsLocationsVmwareClustersOperationsService {
   305  	rs := &ProjectsLocationsVmwareClustersOperationsService{s: s}
   306  	return rs
   307  }
   308  
   309  type ProjectsLocationsVmwareClustersOperationsService struct {
   310  	s *Service
   311  }
   312  
   313  func NewProjectsLocationsVmwareClustersVmwareNodePoolsService(s *Service) *ProjectsLocationsVmwareClustersVmwareNodePoolsService {
   314  	rs := &ProjectsLocationsVmwareClustersVmwareNodePoolsService{s: s}
   315  	rs.Operations = NewProjectsLocationsVmwareClustersVmwareNodePoolsOperationsService(s)
   316  	return rs
   317  }
   318  
   319  type ProjectsLocationsVmwareClustersVmwareNodePoolsService struct {
   320  	s *Service
   321  
   322  	Operations *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsService
   323  }
   324  
   325  func NewProjectsLocationsVmwareClustersVmwareNodePoolsOperationsService(s *Service) *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsService {
   326  	rs := &ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsService{s: s}
   327  	return rs
   328  }
   329  
   330  type ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsService struct {
   331  	s *Service
   332  }
   333  
   334  // Authorization: Authorization defines the On-Prem cluster authorization
   335  // configuration to bootstrap onto the admin cluster.
   336  type Authorization struct {
   337  	// AdminUsers: For VMware and bare metal user clusters, users will be granted
   338  	// the cluster-admin role on the cluster, which provides full administrative
   339  	// access to the cluster. For bare metal admin clusters, users will be granted
   340  	// the cluster-view role, which limits users to read-only access.
   341  	AdminUsers []*ClusterUser `json:"adminUsers,omitempty"`
   342  	// ForceSendFields is a list of field names (e.g. "AdminUsers") to
   343  	// unconditionally include in API requests. By default, fields with empty or
   344  	// default values are omitted from API requests. See
   345  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   346  	// details.
   347  	ForceSendFields []string `json:"-"`
   348  	// NullFields is a list of field names (e.g. "AdminUsers") to include in API
   349  	// requests with the JSON null value. By default, fields with empty values are
   350  	// omitted from API requests. See
   351  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   352  	NullFields []string `json:"-"`
   353  }
   354  
   355  func (s *Authorization) MarshalJSON() ([]byte, error) {
   356  	type NoMethod Authorization
   357  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   358  }
   359  
   360  // BareMetalAdminApiServerArgument: BareMetalAdminApiServerArgument represents
   361  // an arg name->value pair. Only a subset of customized flags are supported.
   362  // Please refer to the API server documentation below to know the exact format:
   363  // https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/
   364  type BareMetalAdminApiServerArgument struct {
   365  	// Argument: Required. The argument name as it appears on the API Server
   366  	// command line please make sure to remove the leading dashes.
   367  	Argument string `json:"argument,omitempty"`
   368  	// Value: Required. The value of the arg as it will be passed to the API Server
   369  	// command line.
   370  	Value string `json:"value,omitempty"`
   371  	// ForceSendFields is a list of field names (e.g. "Argument") to
   372  	// unconditionally include in API requests. By default, fields with empty or
   373  	// default values are omitted from API requests. See
   374  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   375  	// details.
   376  	ForceSendFields []string `json:"-"`
   377  	// NullFields is a list of field names (e.g. "Argument") to include in API
   378  	// requests with the JSON null value. By default, fields with empty values are
   379  	// omitted from API requests. See
   380  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   381  	NullFields []string `json:"-"`
   382  }
   383  
   384  func (s *BareMetalAdminApiServerArgument) MarshalJSON() ([]byte, error) {
   385  	type NoMethod BareMetalAdminApiServerArgument
   386  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   387  }
   388  
   389  // BareMetalAdminCluster: Resource that represents a bare metal admin cluster.
   390  type BareMetalAdminCluster struct {
   391  	// Annotations: Annotations on the bare metal admin cluster. This field has the
   392  	// same restrictions as Kubernetes annotations. The total size of all keys and
   393  	// values combined is limited to 256k. Key can have 2 segments: prefix
   394  	// (optional) and name (required), separated by a slash (/). Prefix must be a
   395  	// DNS subdomain. Name must be 63 characters or less, begin and end with
   396  	// alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics
   397  	// between.
   398  	Annotations map[string]string `json:"annotations,omitempty"`
   399  	// BareMetalVersion: The Anthos clusters on bare metal version for the bare
   400  	// metal admin cluster.
   401  	BareMetalVersion string `json:"bareMetalVersion,omitempty"`
   402  	// BinaryAuthorization: Binary Authorization related configurations.
   403  	BinaryAuthorization *BinaryAuthorization `json:"binaryAuthorization,omitempty"`
   404  	// ClusterOperations: Cluster operations configuration.
   405  	ClusterOperations *BareMetalAdminClusterOperationsConfig `json:"clusterOperations,omitempty"`
   406  	// ControlPlane: Control plane configuration.
   407  	ControlPlane *BareMetalAdminControlPlaneConfig `json:"controlPlane,omitempty"`
   408  	// CreateTime: Output only. The time at which this bare metal admin cluster was
   409  	// created.
   410  	CreateTime string `json:"createTime,omitempty"`
   411  	// DeleteTime: Output only. The time at which this bare metal admin cluster was
   412  	// deleted. If the resource is not deleted, this must be empty
   413  	DeleteTime string `json:"deleteTime,omitempty"`
   414  	// Description: A human readable description of this bare metal admin cluster.
   415  	Description string `json:"description,omitempty"`
   416  	// Endpoint: Output only. The IP address name of bare metal admin cluster's API
   417  	// server.
   418  	Endpoint string `json:"endpoint,omitempty"`
   419  	// Etag: This checksum is computed by the server based on the value of other
   420  	// fields, and may be sent on update and delete requests to ensure the client
   421  	// has an up-to-date value before proceeding. Allows clients to perform
   422  	// consistent read-modify-writes through optimistic concurrency control.
   423  	Etag string `json:"etag,omitempty"`
   424  	// Fleet: Output only. Fleet configuration for the cluster.
   425  	Fleet *Fleet `json:"fleet,omitempty"`
   426  	// LoadBalancer: Load balancer configuration.
   427  	LoadBalancer *BareMetalAdminLoadBalancerConfig `json:"loadBalancer,omitempty"`
   428  	// LocalName: Output only. The object name of the bare metal cluster custom
   429  	// resource. This field is used to support conflicting names when enrolling
   430  	// existing clusters to the API. When used as a part of cluster enrollment,
   431  	// this field will differ from the ID in the resource name. For new clusters,
   432  	// this field will match the user provided cluster name and be visible in the
   433  	// last component of the resource name. It is not modifiable. All users should
   434  	// use this name to access their cluster using gkectl or kubectl and should
   435  	// expect to see the local name when viewing admin cluster controller logs.
   436  	LocalName string `json:"localName,omitempty"`
   437  	// MaintenanceConfig: Maintenance configuration.
   438  	MaintenanceConfig *BareMetalAdminMaintenanceConfig `json:"maintenanceConfig,omitempty"`
   439  	// MaintenanceStatus: Output only. MaintenanceStatus representing state of
   440  	// maintenance.
   441  	MaintenanceStatus *BareMetalAdminMaintenanceStatus `json:"maintenanceStatus,omitempty"`
   442  	// Name: Immutable. The bare metal admin cluster resource name.
   443  	Name string `json:"name,omitempty"`
   444  	// NetworkConfig: Network configuration.
   445  	NetworkConfig *BareMetalAdminNetworkConfig `json:"networkConfig,omitempty"`
   446  	// NodeAccessConfig: Node access related configurations.
   447  	NodeAccessConfig *BareMetalAdminNodeAccessConfig `json:"nodeAccessConfig,omitempty"`
   448  	// NodeConfig: Workload node configuration.
   449  	NodeConfig *BareMetalAdminWorkloadNodeConfig `json:"nodeConfig,omitempty"`
   450  	// OsEnvironmentConfig: OS environment related configurations.
   451  	OsEnvironmentConfig *BareMetalAdminOsEnvironmentConfig `json:"osEnvironmentConfig,omitempty"`
   452  	// Proxy: Proxy configuration.
   453  	Proxy *BareMetalAdminProxyConfig `json:"proxy,omitempty"`
   454  	// Reconciling: Output only. If set, there are currently changes in flight to
   455  	// the bare metal Admin Cluster.
   456  	Reconciling bool `json:"reconciling,omitempty"`
   457  	// SecurityConfig: Security related configuration.
   458  	SecurityConfig *BareMetalAdminSecurityConfig `json:"securityConfig,omitempty"`
   459  	// State: Output only. The current state of the bare metal admin cluster.
   460  	//
   461  	// Possible values:
   462  	//   "STATE_UNSPECIFIED" - Not set.
   463  	//   "PROVISIONING" - The PROVISIONING state indicates the cluster is being
   464  	// created.
   465  	//   "RUNNING" - The RUNNING state indicates the cluster has been created and
   466  	// is fully usable.
   467  	//   "RECONCILING" - The RECONCILING state indicates that the cluster is being
   468  	// updated. It remains available, but potentially with degraded performance.
   469  	//   "STOPPING" - The STOPPING state indicates the cluster is being deleted.
   470  	//   "ERROR" - The ERROR state indicates the cluster is in a broken
   471  	// unrecoverable state.
   472  	//   "DEGRADED" - The DEGRADED state indicates the cluster requires user action
   473  	// to restore full functionality.
   474  	State string `json:"state,omitempty"`
   475  	// Status: Output only. ResourceStatus representing detailed cluster status.
   476  	Status *ResourceStatus `json:"status,omitempty"`
   477  	// Storage: Storage configuration.
   478  	Storage *BareMetalAdminStorageConfig `json:"storage,omitempty"`
   479  	// Uid: Output only. The unique identifier of the bare metal admin cluster.
   480  	Uid string `json:"uid,omitempty"`
   481  	// UpdateTime: Output only. The time at which this bare metal admin cluster was
   482  	// last updated.
   483  	UpdateTime string `json:"updateTime,omitempty"`
   484  	// ValidationCheck: Output only. ValidationCheck representing the result of the
   485  	// preflight check.
   486  	ValidationCheck *ValidationCheck `json:"validationCheck,omitempty"`
   487  
   488  	// ServerResponse contains the HTTP response code and headers from the server.
   489  	googleapi.ServerResponse `json:"-"`
   490  	// ForceSendFields is a list of field names (e.g. "Annotations") to
   491  	// unconditionally include in API requests. By default, fields with empty or
   492  	// default values are omitted from API requests. See
   493  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   494  	// details.
   495  	ForceSendFields []string `json:"-"`
   496  	// NullFields is a list of field names (e.g. "Annotations") to include in API
   497  	// requests with the JSON null value. By default, fields with empty values are
   498  	// omitted from API requests. See
   499  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   500  	NullFields []string `json:"-"`
   501  }
   502  
   503  func (s *BareMetalAdminCluster) MarshalJSON() ([]byte, error) {
   504  	type NoMethod BareMetalAdminCluster
   505  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   506  }
   507  
   508  // BareMetalAdminClusterOperationsConfig: BareMetalAdminClusterOperationsConfig
   509  // specifies the admin cluster's observability infrastructure.
   510  type BareMetalAdminClusterOperationsConfig struct {
   511  	// EnableApplicationLogs: Whether collection of application logs/metrics should
   512  	// be enabled (in addition to system logs/metrics).
   513  	EnableApplicationLogs bool `json:"enableApplicationLogs,omitempty"`
   514  	// ForceSendFields is a list of field names (e.g. "EnableApplicationLogs") to
   515  	// unconditionally include in API requests. By default, fields with empty or
   516  	// default values are omitted from API requests. See
   517  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   518  	// details.
   519  	ForceSendFields []string `json:"-"`
   520  	// NullFields is a list of field names (e.g. "EnableApplicationLogs") to
   521  	// include in API requests with the JSON null value. By default, fields with
   522  	// empty values are omitted from API requests. See
   523  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   524  	NullFields []string `json:"-"`
   525  }
   526  
   527  func (s *BareMetalAdminClusterOperationsConfig) MarshalJSON() ([]byte, error) {
   528  	type NoMethod BareMetalAdminClusterOperationsConfig
   529  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   530  }
   531  
   532  // BareMetalAdminControlPlaneConfig: BareMetalAdminControlPlaneConfig specifies
   533  // the control plane configuration.
   534  type BareMetalAdminControlPlaneConfig struct {
   535  	// ApiServerArgs: Customizes the default API server args. Only a subset of
   536  	// customized flags are supported. Please refer to the API server documentation
   537  	// below to know the exact format:
   538  	// https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/
   539  	ApiServerArgs []*BareMetalAdminApiServerArgument `json:"apiServerArgs,omitempty"`
   540  	// ControlPlaneNodePoolConfig: Required. Configures the node pool running the
   541  	// control plane. If specified the corresponding NodePool will be created for
   542  	// the cluster's control plane. The NodePool will have the same name and
   543  	// namespace as the cluster.
   544  	ControlPlaneNodePoolConfig *BareMetalAdminControlPlaneNodePoolConfig `json:"controlPlaneNodePoolConfig,omitempty"`
   545  	// ForceSendFields is a list of field names (e.g. "ApiServerArgs") to
   546  	// unconditionally include in API requests. By default, fields with empty or
   547  	// default values are omitted from API requests. See
   548  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   549  	// details.
   550  	ForceSendFields []string `json:"-"`
   551  	// NullFields is a list of field names (e.g. "ApiServerArgs") to include in API
   552  	// requests with the JSON null value. By default, fields with empty values are
   553  	// omitted from API requests. See
   554  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   555  	NullFields []string `json:"-"`
   556  }
   557  
   558  func (s *BareMetalAdminControlPlaneConfig) MarshalJSON() ([]byte, error) {
   559  	type NoMethod BareMetalAdminControlPlaneConfig
   560  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   561  }
   562  
   563  // BareMetalAdminControlPlaneNodePoolConfig:
   564  // BareMetalAdminControlPlaneNodePoolConfig specifies the control plane node
   565  // pool configuration. We have a control plane specific node pool config so
   566  // that we can flexible about supporting control plane specific fields in the
   567  // future.
   568  type BareMetalAdminControlPlaneNodePoolConfig struct {
   569  	// NodePoolConfig: Required. The generic configuration for a node pool running
   570  	// the control plane.
   571  	NodePoolConfig *BareMetalNodePoolConfig `json:"nodePoolConfig,omitempty"`
   572  	// ForceSendFields is a list of field names (e.g. "NodePoolConfig") to
   573  	// unconditionally include in API requests. By default, fields with empty or
   574  	// default values are omitted from API requests. See
   575  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   576  	// details.
   577  	ForceSendFields []string `json:"-"`
   578  	// NullFields is a list of field names (e.g. "NodePoolConfig") to include in
   579  	// API requests with the JSON null value. By default, fields with empty values
   580  	// are omitted from API requests. See
   581  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   582  	NullFields []string `json:"-"`
   583  }
   584  
   585  func (s *BareMetalAdminControlPlaneNodePoolConfig) MarshalJSON() ([]byte, error) {
   586  	type NoMethod BareMetalAdminControlPlaneNodePoolConfig
   587  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   588  }
   589  
   590  // BareMetalAdminDrainedMachine: BareMetalAdminDrainedMachine represents the
   591  // machines that are drained.
   592  type BareMetalAdminDrainedMachine struct {
   593  	// NodeIp: Drained machine IP address.
   594  	NodeIp string `json:"nodeIp,omitempty"`
   595  	// ForceSendFields is a list of field names (e.g. "NodeIp") to unconditionally
   596  	// include in API requests. By default, fields with empty or default values are
   597  	// omitted from API requests. See
   598  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   599  	// details.
   600  	ForceSendFields []string `json:"-"`
   601  	// NullFields is a list of field names (e.g. "NodeIp") to include in API
   602  	// requests with the JSON null value. By default, fields with empty values are
   603  	// omitted from API requests. See
   604  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   605  	NullFields []string `json:"-"`
   606  }
   607  
   608  func (s *BareMetalAdminDrainedMachine) MarshalJSON() ([]byte, error) {
   609  	type NoMethod BareMetalAdminDrainedMachine
   610  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   611  }
   612  
   613  // BareMetalAdminDrainingMachine: BareMetalAdminDrainingMachine represents the
   614  // machines that are currently draining.
   615  type BareMetalAdminDrainingMachine struct {
   616  	// NodeIp: Draining machine IP address.
   617  	NodeIp string `json:"nodeIp,omitempty"`
   618  	// PodCount: The count of pods yet to drain.
   619  	PodCount int64 `json:"podCount,omitempty"`
   620  	// ForceSendFields is a list of field names (e.g. "NodeIp") to unconditionally
   621  	// include in API requests. By default, fields with empty or default values are
   622  	// omitted from API requests. See
   623  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   624  	// details.
   625  	ForceSendFields []string `json:"-"`
   626  	// NullFields is a list of field names (e.g. "NodeIp") to include in API
   627  	// requests with the JSON null value. By default, fields with empty values are
   628  	// omitted from API requests. See
   629  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   630  	NullFields []string `json:"-"`
   631  }
   632  
   633  func (s *BareMetalAdminDrainingMachine) MarshalJSON() ([]byte, error) {
   634  	type NoMethod BareMetalAdminDrainingMachine
   635  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   636  }
   637  
   638  // BareMetalAdminIslandModeCidrConfig: BareMetalAdminIslandModeCidrConfig
   639  // specifies the cluster CIDR configuration while running in island mode.
   640  type BareMetalAdminIslandModeCidrConfig struct {
   641  	// PodAddressCidrBlocks: Required. All pods in the cluster are assigned an
   642  	// RFC1918 IPv4 address from these ranges. This field cannot be changed after
   643  	// creation.
   644  	PodAddressCidrBlocks []string `json:"podAddressCidrBlocks,omitempty"`
   645  	// ServiceAddressCidrBlocks: Required. All services in the cluster are assigned
   646  	// an RFC1918 IPv4 address from these ranges. This field cannot be changed
   647  	// after creation.
   648  	ServiceAddressCidrBlocks []string `json:"serviceAddressCidrBlocks,omitempty"`
   649  	// ForceSendFields is a list of field names (e.g. "PodAddressCidrBlocks") to
   650  	// unconditionally include in API requests. By default, fields with empty or
   651  	// default values are omitted from API requests. See
   652  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   653  	// details.
   654  	ForceSendFields []string `json:"-"`
   655  	// NullFields is a list of field names (e.g. "PodAddressCidrBlocks") to include
   656  	// in API requests with the JSON null value. By default, fields with empty
   657  	// values are omitted from API requests. See
   658  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   659  	NullFields []string `json:"-"`
   660  }
   661  
   662  func (s *BareMetalAdminIslandModeCidrConfig) MarshalJSON() ([]byte, error) {
   663  	type NoMethod BareMetalAdminIslandModeCidrConfig
   664  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   665  }
   666  
   667  // BareMetalAdminLoadBalancerConfig: BareMetalAdminLoadBalancerConfig specifies
   668  // the load balancer configuration.
   669  type BareMetalAdminLoadBalancerConfig struct {
   670  	// ManualLbConfig: Manually configured load balancers.
   671  	ManualLbConfig *BareMetalAdminManualLbConfig `json:"manualLbConfig,omitempty"`
   672  	// PortConfig: Configures the ports that the load balancer will listen on.
   673  	PortConfig *BareMetalAdminPortConfig `json:"portConfig,omitempty"`
   674  	// VipConfig: The VIPs used by the load balancer.
   675  	VipConfig *BareMetalAdminVipConfig `json:"vipConfig,omitempty"`
   676  	// ForceSendFields is a list of field names (e.g. "ManualLbConfig") to
   677  	// unconditionally include in API requests. By default, fields with empty or
   678  	// default values are omitted from API requests. See
   679  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   680  	// details.
   681  	ForceSendFields []string `json:"-"`
   682  	// NullFields is a list of field names (e.g. "ManualLbConfig") to include in
   683  	// API requests with the JSON null value. By default, fields with empty values
   684  	// are omitted from API requests. See
   685  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   686  	NullFields []string `json:"-"`
   687  }
   688  
   689  func (s *BareMetalAdminLoadBalancerConfig) MarshalJSON() ([]byte, error) {
   690  	type NoMethod BareMetalAdminLoadBalancerConfig
   691  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   692  }
   693  
   694  // BareMetalAdminMachineDrainStatus: BareMetalAdminMachineDrainStatus
   695  // represents the status of bare metal node machines that are undergoing drain
   696  // operations.
   697  type BareMetalAdminMachineDrainStatus struct {
   698  	// DrainedMachines: The list of drained machines.
   699  	DrainedMachines []*BareMetalAdminDrainedMachine `json:"drainedMachines,omitempty"`
   700  	// DrainingMachines: The list of draning machines.
   701  	DrainingMachines []*BareMetalAdminDrainingMachine `json:"drainingMachines,omitempty"`
   702  	// ForceSendFields is a list of field names (e.g. "DrainedMachines") to
   703  	// unconditionally include in API requests. By default, fields with empty or
   704  	// default values are omitted from API requests. See
   705  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   706  	// details.
   707  	ForceSendFields []string `json:"-"`
   708  	// NullFields is a list of field names (e.g. "DrainedMachines") to include in
   709  	// API requests with the JSON null value. By default, fields with empty values
   710  	// are omitted from API requests. See
   711  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   712  	NullFields []string `json:"-"`
   713  }
   714  
   715  func (s *BareMetalAdminMachineDrainStatus) MarshalJSON() ([]byte, error) {
   716  	type NoMethod BareMetalAdminMachineDrainStatus
   717  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   718  }
   719  
   720  // BareMetalAdminMaintenanceConfig: BareMetalAdminMaintenanceConfig specifies
   721  // configurations to put bare metal Admin cluster CRs nodes in and out of
   722  // maintenance.
   723  type BareMetalAdminMaintenanceConfig struct {
   724  	// MaintenanceAddressCidrBlocks: Required. All IPv4 address from these ranges
   725  	// will be placed into maintenance mode. Nodes in maintenance mode will be
   726  	// cordoned and drained. When both of these are true, the
   727  	// "baremetal.cluster.gke.io/maintenance" annotation will be set on the node
   728  	// resource.
   729  	MaintenanceAddressCidrBlocks []string `json:"maintenanceAddressCidrBlocks,omitempty"`
   730  	// ForceSendFields is a list of field names (e.g.
   731  	// "MaintenanceAddressCidrBlocks") to unconditionally include in API requests.
   732  	// By default, fields with empty or default values are omitted from API
   733  	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
   734  	// for more details.
   735  	ForceSendFields []string `json:"-"`
   736  	// NullFields is a list of field names (e.g. "MaintenanceAddressCidrBlocks") to
   737  	// include in API requests with the JSON null value. By default, fields with
   738  	// empty values are omitted from API requests. See
   739  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   740  	NullFields []string `json:"-"`
   741  }
   742  
   743  func (s *BareMetalAdminMaintenanceConfig) MarshalJSON() ([]byte, error) {
   744  	type NoMethod BareMetalAdminMaintenanceConfig
   745  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   746  }
   747  
   748  // BareMetalAdminMaintenanceStatus: BareMetalAdminMaintenanceStatus represents
   749  // the maintenance status for bare metal Admin cluster CR's nodes.
   750  type BareMetalAdminMaintenanceStatus struct {
   751  	// MachineDrainStatus: Represents the status of draining and drained machine
   752  	// nodes. This is used to show the progress of cluster upgrade.
   753  	MachineDrainStatus *BareMetalAdminMachineDrainStatus `json:"machineDrainStatus,omitempty"`
   754  	// ForceSendFields is a list of field names (e.g. "MachineDrainStatus") to
   755  	// unconditionally include in API requests. By default, fields with empty or
   756  	// default values are omitted from API requests. See
   757  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   758  	// details.
   759  	ForceSendFields []string `json:"-"`
   760  	// NullFields is a list of field names (e.g. "MachineDrainStatus") to include
   761  	// in API requests with the JSON null value. By default, fields with empty
   762  	// values are omitted from API requests. See
   763  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   764  	NullFields []string `json:"-"`
   765  }
   766  
   767  func (s *BareMetalAdminMaintenanceStatus) MarshalJSON() ([]byte, error) {
   768  	type NoMethod BareMetalAdminMaintenanceStatus
   769  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   770  }
   771  
   772  // BareMetalAdminManualLbConfig: BareMetalAdminManualLbConfig represents
   773  // configuration parameters for a manual load balancer.
   774  type BareMetalAdminManualLbConfig struct {
   775  	// Enabled: Whether manual load balancing is enabled.
   776  	Enabled bool `json:"enabled,omitempty"`
   777  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
   778  	// include in API requests. By default, fields with empty or default values are
   779  	// omitted from API requests. See
   780  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   781  	// details.
   782  	ForceSendFields []string `json:"-"`
   783  	// NullFields is a list of field names (e.g. "Enabled") to include in API
   784  	// requests with the JSON null value. By default, fields with empty values are
   785  	// omitted from API requests. See
   786  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   787  	NullFields []string `json:"-"`
   788  }
   789  
   790  func (s *BareMetalAdminManualLbConfig) MarshalJSON() ([]byte, error) {
   791  	type NoMethod BareMetalAdminManualLbConfig
   792  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   793  }
   794  
   795  // BareMetalAdminNetworkConfig: BareMetalAdminNetworkConfig specifies the
   796  // cluster network configuration.
   797  type BareMetalAdminNetworkConfig struct {
   798  	// IslandModeCidr: Configuration for Island mode CIDR.
   799  	IslandModeCidr *BareMetalAdminIslandModeCidrConfig `json:"islandModeCidr,omitempty"`
   800  	// ForceSendFields is a list of field names (e.g. "IslandModeCidr") to
   801  	// unconditionally include in API requests. By default, fields with empty or
   802  	// default values are omitted from API requests. See
   803  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   804  	// details.
   805  	ForceSendFields []string `json:"-"`
   806  	// NullFields is a list of field names (e.g. "IslandModeCidr") to include in
   807  	// API requests with the JSON null value. By default, fields with empty values
   808  	// are omitted from API requests. See
   809  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   810  	NullFields []string `json:"-"`
   811  }
   812  
   813  func (s *BareMetalAdminNetworkConfig) MarshalJSON() ([]byte, error) {
   814  	type NoMethod BareMetalAdminNetworkConfig
   815  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   816  }
   817  
   818  // BareMetalAdminNodeAccessConfig: Specifies the node access related settings
   819  // for the bare metal admin cluster.
   820  type BareMetalAdminNodeAccessConfig struct {
   821  	// LoginUser: Required. LoginUser is the user name used to access node
   822  	// machines. It defaults to "root" if not set.
   823  	LoginUser string `json:"loginUser,omitempty"`
   824  	// ForceSendFields is a list of field names (e.g. "LoginUser") to
   825  	// unconditionally include in API requests. By default, fields with empty or
   826  	// default values are omitted from API requests. See
   827  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   828  	// details.
   829  	ForceSendFields []string `json:"-"`
   830  	// NullFields is a list of field names (e.g. "LoginUser") to include in API
   831  	// requests with the JSON null value. By default, fields with empty values are
   832  	// omitted from API requests. See
   833  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   834  	NullFields []string `json:"-"`
   835  }
   836  
   837  func (s *BareMetalAdminNodeAccessConfig) MarshalJSON() ([]byte, error) {
   838  	type NoMethod BareMetalAdminNodeAccessConfig
   839  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   840  }
   841  
   842  // BareMetalAdminOsEnvironmentConfig: Specifies operating system operation
   843  // settings for cluster provisioning.
   844  type BareMetalAdminOsEnvironmentConfig struct {
   845  	// PackageRepoExcluded: Whether the package repo should be added when
   846  	// initializing bare metal machines.
   847  	PackageRepoExcluded bool `json:"packageRepoExcluded,omitempty"`
   848  	// ForceSendFields is a list of field names (e.g. "PackageRepoExcluded") to
   849  	// unconditionally include in API requests. By default, fields with empty or
   850  	// default values are omitted from API requests. See
   851  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   852  	// details.
   853  	ForceSendFields []string `json:"-"`
   854  	// NullFields is a list of field names (e.g. "PackageRepoExcluded") to include
   855  	// in API requests with the JSON null value. By default, fields with empty
   856  	// values are omitted from API requests. See
   857  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   858  	NullFields []string `json:"-"`
   859  }
   860  
   861  func (s *BareMetalAdminOsEnvironmentConfig) MarshalJSON() ([]byte, error) {
   862  	type NoMethod BareMetalAdminOsEnvironmentConfig
   863  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   864  }
   865  
   866  // BareMetalAdminPortConfig: BareMetalAdminPortConfig is the specification of
   867  // load balancer ports.
   868  type BareMetalAdminPortConfig struct {
   869  	// ControlPlaneLoadBalancerPort: The port that control plane hosted load
   870  	// balancers will listen on.
   871  	ControlPlaneLoadBalancerPort int64 `json:"controlPlaneLoadBalancerPort,omitempty"`
   872  	// ForceSendFields is a list of field names (e.g.
   873  	// "ControlPlaneLoadBalancerPort") to unconditionally include in API requests.
   874  	// By default, fields with empty or default values are omitted from API
   875  	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
   876  	// for more details.
   877  	ForceSendFields []string `json:"-"`
   878  	// NullFields is a list of field names (e.g. "ControlPlaneLoadBalancerPort") to
   879  	// include in API requests with the JSON null value. By default, fields with
   880  	// empty values are omitted from API requests. See
   881  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   882  	NullFields []string `json:"-"`
   883  }
   884  
   885  func (s *BareMetalAdminPortConfig) MarshalJSON() ([]byte, error) {
   886  	type NoMethod BareMetalAdminPortConfig
   887  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   888  }
   889  
   890  // BareMetalAdminProxyConfig: BareMetalAdminProxyConfig specifies the cluster
   891  // proxy configuration.
   892  type BareMetalAdminProxyConfig struct {
   893  	// NoProxy: A list of IPs, hostnames, and domains that should skip the proxy.
   894  	// Examples: ["127.0.0.1", "example.com", ".corp", "localhost"].
   895  	NoProxy []string `json:"noProxy,omitempty"`
   896  	// Uri: Required. Specifies the address of your proxy server. Examples:
   897  	// `http://domain` WARNING: Do not provide credentials in the format
   898  	// `http://(username:password@)domain` these will be rejected by the server.
   899  	Uri string `json:"uri,omitempty"`
   900  	// ForceSendFields is a list of field names (e.g. "NoProxy") to unconditionally
   901  	// include in API requests. By default, fields with empty or default values are
   902  	// omitted from API requests. See
   903  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   904  	// details.
   905  	ForceSendFields []string `json:"-"`
   906  	// NullFields is a list of field names (e.g. "NoProxy") to include in API
   907  	// requests with the JSON null value. By default, fields with empty values are
   908  	// omitted from API requests. See
   909  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   910  	NullFields []string `json:"-"`
   911  }
   912  
   913  func (s *BareMetalAdminProxyConfig) MarshalJSON() ([]byte, error) {
   914  	type NoMethod BareMetalAdminProxyConfig
   915  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   916  }
   917  
   918  // BareMetalAdminSecurityConfig: Specifies the security related settings for
   919  // the bare metal admin cluster.
   920  type BareMetalAdminSecurityConfig struct {
   921  	// Authorization: Configures user access to the admin cluster.
   922  	Authorization *Authorization `json:"authorization,omitempty"`
   923  	// ForceSendFields is a list of field names (e.g. "Authorization") to
   924  	// unconditionally include in API requests. By default, fields with empty or
   925  	// default values are omitted from API requests. See
   926  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   927  	// details.
   928  	ForceSendFields []string `json:"-"`
   929  	// NullFields is a list of field names (e.g. "Authorization") to include in API
   930  	// requests with the JSON null value. By default, fields with empty values are
   931  	// omitted from API requests. See
   932  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   933  	NullFields []string `json:"-"`
   934  }
   935  
   936  func (s *BareMetalAdminSecurityConfig) MarshalJSON() ([]byte, error) {
   937  	type NoMethod BareMetalAdminSecurityConfig
   938  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   939  }
   940  
   941  // BareMetalAdminStorageConfig: BareMetalAdminStorageConfig specifies the
   942  // cluster storage configuration.
   943  type BareMetalAdminStorageConfig struct {
   944  	// LvpNodeMountsConfig: Required. Specifies the config for local
   945  	// PersistentVolumes backed by mounted node disks. These disks need to be
   946  	// formatted and mounted by the user, which can be done before or after cluster
   947  	// creation.
   948  	LvpNodeMountsConfig *BareMetalLvpConfig `json:"lvpNodeMountsConfig,omitempty"`
   949  	// LvpShareConfig: Required. Specifies the config for local PersistentVolumes
   950  	// backed by subdirectories in a shared filesystem. These subdirectores are
   951  	// automatically created during cluster creation.
   952  	LvpShareConfig *BareMetalLvpShareConfig `json:"lvpShareConfig,omitempty"`
   953  	// ForceSendFields is a list of field names (e.g. "LvpNodeMountsConfig") to
   954  	// unconditionally include in API requests. By default, fields with empty or
   955  	// default values are omitted from API requests. See
   956  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   957  	// details.
   958  	ForceSendFields []string `json:"-"`
   959  	// NullFields is a list of field names (e.g. "LvpNodeMountsConfig") to include
   960  	// in API requests with the JSON null value. By default, fields with empty
   961  	// values are omitted from API requests. See
   962  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   963  	NullFields []string `json:"-"`
   964  }
   965  
   966  func (s *BareMetalAdminStorageConfig) MarshalJSON() ([]byte, error) {
   967  	type NoMethod BareMetalAdminStorageConfig
   968  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   969  }
   970  
   971  // BareMetalAdminVipConfig: BareMetalAdminVipConfig for bare metal load
   972  // balancer configurations.
   973  type BareMetalAdminVipConfig struct {
   974  	// ControlPlaneVip: The VIP which you previously set aside for the Kubernetes
   975  	// API of this bare metal admin cluster.
   976  	ControlPlaneVip string `json:"controlPlaneVip,omitempty"`
   977  	// ForceSendFields is a list of field names (e.g. "ControlPlaneVip") to
   978  	// unconditionally include in API requests. By default, fields with empty or
   979  	// default values are omitted from API requests. See
   980  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   981  	// details.
   982  	ForceSendFields []string `json:"-"`
   983  	// NullFields is a list of field names (e.g. "ControlPlaneVip") to include in
   984  	// API requests with the JSON null value. By default, fields with empty values
   985  	// are omitted from API requests. See
   986  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   987  	NullFields []string `json:"-"`
   988  }
   989  
   990  func (s *BareMetalAdminVipConfig) MarshalJSON() ([]byte, error) {
   991  	type NoMethod BareMetalAdminVipConfig
   992  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   993  }
   994  
   995  // BareMetalAdminWorkloadNodeConfig: BareMetalAdminWorkloadNodeConfig specifies
   996  // the workload node configurations.
   997  type BareMetalAdminWorkloadNodeConfig struct {
   998  	// MaxPodsPerNode: The maximum number of pods a node can run. The size of the
   999  	// CIDR range assigned to the node will be derived from this parameter. By
  1000  	// default 110 Pods are created per Node. Upper bound is 250 for both HA and
  1001  	// non-HA admin cluster. Lower bound is 64 for non-HA admin cluster and 32 for
  1002  	// HA admin cluster.
  1003  	MaxPodsPerNode int64 `json:"maxPodsPerNode,omitempty,string"`
  1004  	// ForceSendFields is a list of field names (e.g. "MaxPodsPerNode") to
  1005  	// unconditionally include in API requests. By default, fields with empty or
  1006  	// default values are omitted from API requests. See
  1007  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1008  	// details.
  1009  	ForceSendFields []string `json:"-"`
  1010  	// NullFields is a list of field names (e.g. "MaxPodsPerNode") to include in
  1011  	// API requests with the JSON null value. By default, fields with empty values
  1012  	// are omitted from API requests. See
  1013  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1014  	NullFields []string `json:"-"`
  1015  }
  1016  
  1017  func (s *BareMetalAdminWorkloadNodeConfig) MarshalJSON() ([]byte, error) {
  1018  	type NoMethod BareMetalAdminWorkloadNodeConfig
  1019  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1020  }
  1021  
  1022  // BareMetalApiServerArgument: Represents an arg name->value pair. Only a
  1023  // subset of customized flags are supported. For the exact format, refer to the
  1024  // API server documentation
  1025  // (https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/).
  1026  type BareMetalApiServerArgument struct {
  1027  	// Argument: Required. The argument name as it appears on the API Server
  1028  	// command line, make sure to remove the leading dashes.
  1029  	Argument string `json:"argument,omitempty"`
  1030  	// Value: Required. The value of the arg as it will be passed to the API Server
  1031  	// command line.
  1032  	Value string `json:"value,omitempty"`
  1033  	// ForceSendFields is a list of field names (e.g. "Argument") to
  1034  	// unconditionally include in API requests. By default, fields with empty or
  1035  	// default values are omitted from API requests. See
  1036  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1037  	// details.
  1038  	ForceSendFields []string `json:"-"`
  1039  	// NullFields is a list of field names (e.g. "Argument") to include in API
  1040  	// requests with the JSON null value. By default, fields with empty values are
  1041  	// omitted from API requests. See
  1042  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1043  	NullFields []string `json:"-"`
  1044  }
  1045  
  1046  func (s *BareMetalApiServerArgument) MarshalJSON() ([]byte, error) {
  1047  	type NoMethod BareMetalApiServerArgument
  1048  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1049  }
  1050  
  1051  // BareMetalBgpLbConfig: BareMetalBgpLbConfig represents configuration
  1052  // parameters for a Border Gateway Protocol (BGP) load balancer.
  1053  type BareMetalBgpLbConfig struct {
  1054  	// AddressPools: Required. AddressPools is a list of non-overlapping IP pools
  1055  	// used by load balancer typed services. All addresses must be routable to load
  1056  	// balancer nodes. IngressVIP must be included in the pools.
  1057  	AddressPools []*BareMetalLoadBalancerAddressPool `json:"addressPools,omitempty"`
  1058  	// Asn: Required. BGP autonomous system number (ASN) of the cluster. This field
  1059  	// can be updated after cluster creation.
  1060  	Asn int64 `json:"asn,omitempty,string"`
  1061  	// BgpPeerConfigs: Required. The list of BGP peers that the cluster will
  1062  	// connect to. At least one peer must be configured for each control plane
  1063  	// node. Control plane nodes will connect to these peers to advertise the
  1064  	// control plane VIP. The Services load balancer also uses these peers by
  1065  	// default. This field can be updated after cluster creation.
  1066  	BgpPeerConfigs []*BareMetalBgpPeerConfig `json:"bgpPeerConfigs,omitempty"`
  1067  	// LoadBalancerNodePoolConfig: Specifies the node pool running data plane load
  1068  	// balancing. L2 connectivity is required among nodes in this pool. If missing,
  1069  	// the control plane node pool is used for data plane load balancing.
  1070  	LoadBalancerNodePoolConfig *BareMetalLoadBalancerNodePoolConfig `json:"loadBalancerNodePoolConfig,omitempty"`
  1071  	// ForceSendFields is a list of field names (e.g. "AddressPools") to
  1072  	// unconditionally include in API requests. By default, fields with empty or
  1073  	// default values are omitted from API requests. See
  1074  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1075  	// details.
  1076  	ForceSendFields []string `json:"-"`
  1077  	// NullFields is a list of field names (e.g. "AddressPools") to include in API
  1078  	// requests with the JSON null value. By default, fields with empty values are
  1079  	// omitted from API requests. See
  1080  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1081  	NullFields []string `json:"-"`
  1082  }
  1083  
  1084  func (s *BareMetalBgpLbConfig) MarshalJSON() ([]byte, error) {
  1085  	type NoMethod BareMetalBgpLbConfig
  1086  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1087  }
  1088  
  1089  // BareMetalBgpPeerConfig: BareMetalBgpPeerConfig represents configuration
  1090  // parameters for a Border Gateway Protocol (BGP) peer.
  1091  type BareMetalBgpPeerConfig struct {
  1092  	// Asn: Required. BGP autonomous system number (ASN) for the network that
  1093  	// contains the external peer device.
  1094  	Asn int64 `json:"asn,omitempty,string"`
  1095  	// ControlPlaneNodes: The IP address of the control plane node that connects to
  1096  	// the external peer. If you don't specify any control plane nodes, all control
  1097  	// plane nodes can connect to the external peer. If you specify one or more IP
  1098  	// addresses, only the nodes specified participate in peering sessions.
  1099  	ControlPlaneNodes []string `json:"controlPlaneNodes,omitempty"`
  1100  	// IpAddress: Required. The IP address of the external peer device.
  1101  	IpAddress string `json:"ipAddress,omitempty"`
  1102  	// ForceSendFields is a list of field names (e.g. "Asn") to unconditionally
  1103  	// include in API requests. By default, fields with empty or default values are
  1104  	// omitted from API requests. See
  1105  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1106  	// details.
  1107  	ForceSendFields []string `json:"-"`
  1108  	// NullFields is a list of field names (e.g. "Asn") to include in API requests
  1109  	// with the JSON null value. By default, fields with empty values are omitted
  1110  	// from API requests. See
  1111  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1112  	NullFields []string `json:"-"`
  1113  }
  1114  
  1115  func (s *BareMetalBgpPeerConfig) MarshalJSON() ([]byte, error) {
  1116  	type NoMethod BareMetalBgpPeerConfig
  1117  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1118  }
  1119  
  1120  // BareMetalCluster: Resource that represents a bare metal user cluster.
  1121  type BareMetalCluster struct {
  1122  	// AdminClusterMembership: Required. The admin cluster this bare metal user
  1123  	// cluster belongs to. This is the full resource name of the admin cluster's
  1124  	// fleet membership.
  1125  	AdminClusterMembership string `json:"adminClusterMembership,omitempty"`
  1126  	// AdminClusterName: Output only. The resource name of the bare metal admin
  1127  	// cluster managing this user cluster.
  1128  	AdminClusterName string `json:"adminClusterName,omitempty"`
  1129  	// Annotations: Annotations on the bare metal user cluster. This field has the
  1130  	// same restrictions as Kubernetes annotations. The total size of all keys and
  1131  	// values combined is limited to 256k. Key can have 2 segments: prefix
  1132  	// (optional) and name (required), separated by a slash (/). Prefix must be a
  1133  	// DNS subdomain. Name must be 63 characters or less, begin and end with
  1134  	// alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics
  1135  	// between.
  1136  	Annotations map[string]string `json:"annotations,omitempty"`
  1137  	// BareMetalVersion: Required. The Anthos clusters on bare metal version for
  1138  	// your user cluster.
  1139  	BareMetalVersion string `json:"bareMetalVersion,omitempty"`
  1140  	// BinaryAuthorization: Binary Authorization related configurations.
  1141  	BinaryAuthorization *BinaryAuthorization `json:"binaryAuthorization,omitempty"`
  1142  	// ClusterOperations: Cluster operations configuration.
  1143  	ClusterOperations *BareMetalClusterOperationsConfig `json:"clusterOperations,omitempty"`
  1144  	// ControlPlane: Required. Control plane configuration.
  1145  	ControlPlane *BareMetalControlPlaneConfig `json:"controlPlane,omitempty"`
  1146  	// CreateTime: Output only. The time when the bare metal user cluster was
  1147  	// created.
  1148  	CreateTime string `json:"createTime,omitempty"`
  1149  	// DeleteTime: Output only. The time when the bare metal user cluster was
  1150  	// deleted. If the resource is not deleted, this must be empty
  1151  	DeleteTime string `json:"deleteTime,omitempty"`
  1152  	// Description: A human readable description of this bare metal user cluster.
  1153  	Description string `json:"description,omitempty"`
  1154  	// Endpoint: Output only. The IP address of the bare metal user cluster's API
  1155  	// server.
  1156  	Endpoint string `json:"endpoint,omitempty"`
  1157  	// Etag: Output only. This checksum is computed by the server based on the
  1158  	// value of other fields, and may be sent on update and delete requests to
  1159  	// ensure the client has an up-to-date value before proceeding. Allows clients
  1160  	// to perform consistent read-modify-writes through optimistic concurrency
  1161  	// control.
  1162  	Etag string `json:"etag,omitempty"`
  1163  	// Fleet: Output only. Fleet configuration for the cluster.
  1164  	Fleet *Fleet `json:"fleet,omitempty"`
  1165  	// LoadBalancer: Required. Load balancer configuration.
  1166  	LoadBalancer *BareMetalLoadBalancerConfig `json:"loadBalancer,omitempty"`
  1167  	// LocalName: Output only. The object name of the bare metal user cluster
  1168  	// custom resource on the associated admin cluster. This field is used to
  1169  	// support conflicting names when enrolling existing clusters to the API. When
  1170  	// used as a part of cluster enrollment, this field will differ from the name
  1171  	// in the resource name. For new clusters, this field will match the user
  1172  	// provided cluster name and be visible in the last component of the resource
  1173  	// name. It is not modifiable. When the local name and cluster name differ, the
  1174  	// local name is used in the admin cluster controller logs. You use the cluster
  1175  	// name when accessing the cluster using bmctl and kubectl.
  1176  	LocalName string `json:"localName,omitempty"`
  1177  	// MaintenanceConfig: Maintenance configuration.
  1178  	MaintenanceConfig *BareMetalMaintenanceConfig `json:"maintenanceConfig,omitempty"`
  1179  	// MaintenanceStatus: Output only. Status of on-going maintenance tasks.
  1180  	MaintenanceStatus *BareMetalMaintenanceStatus `json:"maintenanceStatus,omitempty"`
  1181  	// Name: Immutable. The bare metal user cluster resource name.
  1182  	Name string `json:"name,omitempty"`
  1183  	// NetworkConfig: Required. Network configuration.
  1184  	NetworkConfig *BareMetalNetworkConfig `json:"networkConfig,omitempty"`
  1185  	// NodeAccessConfig: Node access related configurations.
  1186  	NodeAccessConfig *BareMetalNodeAccessConfig `json:"nodeAccessConfig,omitempty"`
  1187  	// NodeConfig: Workload node configuration.
  1188  	NodeConfig *BareMetalWorkloadNodeConfig `json:"nodeConfig,omitempty"`
  1189  	// OsEnvironmentConfig: OS environment related configurations.
  1190  	OsEnvironmentConfig *BareMetalOsEnvironmentConfig `json:"osEnvironmentConfig,omitempty"`
  1191  	// Proxy: Proxy configuration.
  1192  	Proxy *BareMetalProxyConfig `json:"proxy,omitempty"`
  1193  	// Reconciling: Output only. If set, there are currently changes in flight to
  1194  	// the bare metal user cluster.
  1195  	Reconciling bool `json:"reconciling,omitempty"`
  1196  	// SecurityConfig: Security related setting configuration.
  1197  	SecurityConfig *BareMetalSecurityConfig `json:"securityConfig,omitempty"`
  1198  	// State: Output only. The current state of the bare metal user cluster.
  1199  	//
  1200  	// Possible values:
  1201  	//   "STATE_UNSPECIFIED" - Not set.
  1202  	//   "PROVISIONING" - The PROVISIONING state indicates the cluster is being
  1203  	// created.
  1204  	//   "RUNNING" - The RUNNING state indicates the cluster has been created and
  1205  	// is fully usable.
  1206  	//   "RECONCILING" - The RECONCILING state indicates that the cluster is being
  1207  	// updated. It remains available, but potentially with degraded performance.
  1208  	//   "STOPPING" - The STOPPING state indicates the cluster is being deleted.
  1209  	//   "ERROR" - The ERROR state indicates the cluster is in a broken
  1210  	// unrecoverable state.
  1211  	//   "DEGRADED" - The DEGRADED state indicates the cluster requires user action
  1212  	// to restore full functionality.
  1213  	State string `json:"state,omitempty"`
  1214  	// Status: Output only. Detailed cluster status.
  1215  	Status *ResourceStatus `json:"status,omitempty"`
  1216  	// Storage: Required. Storage configuration.
  1217  	Storage *BareMetalStorageConfig `json:"storage,omitempty"`
  1218  	// Uid: Output only. The unique identifier of the bare metal user cluster.
  1219  	Uid string `json:"uid,omitempty"`
  1220  	// UpdateTime: Output only. The time when the bare metal user cluster was last
  1221  	// updated.
  1222  	UpdateTime string `json:"updateTime,omitempty"`
  1223  	// UpgradePolicy: The cluster upgrade policy.
  1224  	UpgradePolicy *BareMetalClusterUpgradePolicy `json:"upgradePolicy,omitempty"`
  1225  	// ValidationCheck: Output only. The result of the preflight check.
  1226  	ValidationCheck *ValidationCheck `json:"validationCheck,omitempty"`
  1227  
  1228  	// ServerResponse contains the HTTP response code and headers from the server.
  1229  	googleapi.ServerResponse `json:"-"`
  1230  	// ForceSendFields is a list of field names (e.g. "AdminClusterMembership") to
  1231  	// unconditionally include in API requests. By default, fields with empty or
  1232  	// default values are omitted from API requests. See
  1233  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1234  	// details.
  1235  	ForceSendFields []string `json:"-"`
  1236  	// NullFields is a list of field names (e.g. "AdminClusterMembership") to
  1237  	// include in API requests with the JSON null value. By default, fields with
  1238  	// empty values are omitted from API requests. See
  1239  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1240  	NullFields []string `json:"-"`
  1241  }
  1242  
  1243  func (s *BareMetalCluster) MarshalJSON() ([]byte, error) {
  1244  	type NoMethod BareMetalCluster
  1245  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1246  }
  1247  
  1248  // BareMetalClusterOperationsConfig: Specifies the bare metal user cluster's
  1249  // observability infrastructure.
  1250  type BareMetalClusterOperationsConfig struct {
  1251  	// EnableApplicationLogs: Whether collection of application logs/metrics should
  1252  	// be enabled (in addition to system logs/metrics).
  1253  	EnableApplicationLogs bool `json:"enableApplicationLogs,omitempty"`
  1254  	// ForceSendFields is a list of field names (e.g. "EnableApplicationLogs") to
  1255  	// unconditionally include in API requests. By default, fields with empty or
  1256  	// default values are omitted from API requests. See
  1257  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1258  	// details.
  1259  	ForceSendFields []string `json:"-"`
  1260  	// NullFields is a list of field names (e.g. "EnableApplicationLogs") to
  1261  	// include in API requests with the JSON null value. By default, fields with
  1262  	// empty values are omitted from API requests. See
  1263  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1264  	NullFields []string `json:"-"`
  1265  }
  1266  
  1267  func (s *BareMetalClusterOperationsConfig) MarshalJSON() ([]byte, error) {
  1268  	type NoMethod BareMetalClusterOperationsConfig
  1269  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1270  }
  1271  
  1272  // BareMetalClusterUpgradePolicy: BareMetalClusterUpgradePolicy defines the
  1273  // cluster upgrade policy.
  1274  type BareMetalClusterUpgradePolicy struct {
  1275  	// Policy: Specifies which upgrade policy to use.
  1276  	//
  1277  	// Possible values:
  1278  	//   "NODE_POOL_POLICY_UNSPECIFIED" - No upgrade policy selected.
  1279  	//   "SERIAL" - Upgrade worker node pools sequentially.
  1280  	//   "CONCURRENT" - Upgrade all worker node pools in parallel.
  1281  	Policy string `json:"policy,omitempty"`
  1282  	// ForceSendFields is a list of field names (e.g. "Policy") to unconditionally
  1283  	// include in API requests. By default, fields with empty or default values are
  1284  	// 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. "Policy") 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 *BareMetalClusterUpgradePolicy) MarshalJSON() ([]byte, error) {
  1296  	type NoMethod BareMetalClusterUpgradePolicy
  1297  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1298  }
  1299  
  1300  // BareMetalControlPlaneConfig: Specifies the control plane configuration.
  1301  type BareMetalControlPlaneConfig struct {
  1302  	// ApiServerArgs: Customizes the default API server args. Only a subset of
  1303  	// customized flags are supported. For the exact format, refer to the API
  1304  	// server documentation
  1305  	// (https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/).
  1306  	ApiServerArgs []*BareMetalApiServerArgument `json:"apiServerArgs,omitempty"`
  1307  	// ControlPlaneNodePoolConfig: Required. Configures the node pool running the
  1308  	// control plane.
  1309  	ControlPlaneNodePoolConfig *BareMetalControlPlaneNodePoolConfig `json:"controlPlaneNodePoolConfig,omitempty"`
  1310  	// ForceSendFields is a list of field names (e.g. "ApiServerArgs") 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. "ApiServerArgs") 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 *BareMetalControlPlaneConfig) MarshalJSON() ([]byte, error) {
  1324  	type NoMethod BareMetalControlPlaneConfig
  1325  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1326  }
  1327  
  1328  // BareMetalControlPlaneNodePoolConfig: Specifies the control plane node pool
  1329  // configuration.
  1330  type BareMetalControlPlaneNodePoolConfig struct {
  1331  	// NodePoolConfig: Required. The generic configuration for a node pool running
  1332  	// the control plane.
  1333  	NodePoolConfig *BareMetalNodePoolConfig `json:"nodePoolConfig,omitempty"`
  1334  	// ForceSendFields is a list of field names (e.g. "NodePoolConfig") to
  1335  	// unconditionally include in API requests. By default, fields with empty or
  1336  	// default values are omitted from API requests. See
  1337  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1338  	// details.
  1339  	ForceSendFields []string `json:"-"`
  1340  	// NullFields is a list of field names (e.g. "NodePoolConfig") to include in
  1341  	// API requests with the JSON null value. By default, fields with empty values
  1342  	// are omitted from API requests. See
  1343  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1344  	NullFields []string `json:"-"`
  1345  }
  1346  
  1347  func (s *BareMetalControlPlaneNodePoolConfig) MarshalJSON() ([]byte, error) {
  1348  	type NoMethod BareMetalControlPlaneNodePoolConfig
  1349  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1350  }
  1351  
  1352  // BareMetalDrainedMachine: Represents a machine that is currently drained.
  1353  type BareMetalDrainedMachine struct {
  1354  	// NodeIp: Drained machine IP address.
  1355  	NodeIp string `json:"nodeIp,omitempty"`
  1356  	// ForceSendFields is a list of field names (e.g. "NodeIp") to unconditionally
  1357  	// include in API requests. By default, fields with empty or default values are
  1358  	// omitted from API requests. See
  1359  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1360  	// details.
  1361  	ForceSendFields []string `json:"-"`
  1362  	// NullFields is a list of field names (e.g. "NodeIp") to include in API
  1363  	// requests with the JSON null value. By default, fields with empty values are
  1364  	// omitted from API requests. See
  1365  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1366  	NullFields []string `json:"-"`
  1367  }
  1368  
  1369  func (s *BareMetalDrainedMachine) MarshalJSON() ([]byte, error) {
  1370  	type NoMethod BareMetalDrainedMachine
  1371  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1372  }
  1373  
  1374  // BareMetalDrainingMachine: Represents a machine that is currently draining.
  1375  type BareMetalDrainingMachine struct {
  1376  	// NodeIp: Draining machine IP address.
  1377  	NodeIp string `json:"nodeIp,omitempty"`
  1378  	// PodCount: The count of pods yet to drain.
  1379  	PodCount int64 `json:"podCount,omitempty"`
  1380  	// ForceSendFields is a list of field names (e.g. "NodeIp") to unconditionally
  1381  	// include in API requests. By default, fields with empty or default values are
  1382  	// omitted from API requests. See
  1383  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1384  	// details.
  1385  	ForceSendFields []string `json:"-"`
  1386  	// NullFields is a list of field names (e.g. "NodeIp") to include in API
  1387  	// requests with the JSON null value. By default, fields with empty values are
  1388  	// omitted from API requests. See
  1389  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1390  	NullFields []string `json:"-"`
  1391  }
  1392  
  1393  func (s *BareMetalDrainingMachine) MarshalJSON() ([]byte, error) {
  1394  	type NoMethod BareMetalDrainingMachine
  1395  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1396  }
  1397  
  1398  // BareMetalIslandModeCidrConfig: Specifies the cluster CIDR configuration
  1399  // while running in island mode.
  1400  type BareMetalIslandModeCidrConfig struct {
  1401  	// PodAddressCidrBlocks: Required. All pods in the cluster are assigned an
  1402  	// RFC1918 IPv4 address from these ranges. This field cannot be changed after
  1403  	// creation.
  1404  	PodAddressCidrBlocks []string `json:"podAddressCidrBlocks,omitempty"`
  1405  	// ServiceAddressCidrBlocks: Required. All services in the cluster are assigned
  1406  	// an RFC1918 IPv4 address from these ranges. This field is mutable after
  1407  	// creation starting with version 1.15.
  1408  	ServiceAddressCidrBlocks []string `json:"serviceAddressCidrBlocks,omitempty"`
  1409  	// ForceSendFields is a list of field names (e.g. "PodAddressCidrBlocks") to
  1410  	// unconditionally include in API requests. By default, fields with empty or
  1411  	// default values are omitted from API requests. See
  1412  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1413  	// details.
  1414  	ForceSendFields []string `json:"-"`
  1415  	// NullFields is a list of field names (e.g. "PodAddressCidrBlocks") to include
  1416  	// in API requests with the JSON null value. By default, fields with empty
  1417  	// values are omitted from API requests. See
  1418  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1419  	NullFields []string `json:"-"`
  1420  }
  1421  
  1422  func (s *BareMetalIslandModeCidrConfig) MarshalJSON() ([]byte, error) {
  1423  	type NoMethod BareMetalIslandModeCidrConfig
  1424  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1425  }
  1426  
  1427  // BareMetalKubeletConfig: KubeletConfig defines the modifiable kubelet
  1428  // configurations for bare metal machines. Note: this list includes fields
  1429  // supported in GKE (see
  1430  // https://cloud.google.com/kubernetes-engine/docs/how-to/node-system-config#kubelet-options).
  1431  type BareMetalKubeletConfig struct {
  1432  	// RegistryBurst: The maximum size of bursty pulls, temporarily allows pulls to
  1433  	// burst to this number, while still not exceeding registry_pull_qps. The value
  1434  	// must not be a negative number. Updating this field may impact scalability by
  1435  	// changing the amount of traffic produced by image pulls. Defaults to 10.
  1436  	RegistryBurst int64 `json:"registryBurst,omitempty"`
  1437  	// RegistryPullQps: The limit of registry pulls per second. Setting this value
  1438  	// to 0 means no limit. Updating this field may impact scalability by changing
  1439  	// the amount of traffic produced by image pulls. Defaults to 5.
  1440  	RegistryPullQps int64 `json:"registryPullQps,omitempty"`
  1441  	// SerializeImagePullsDisabled: Prevents the Kubelet from pulling multiple
  1442  	// images at a time. We recommend *not* changing the default value on nodes
  1443  	// that run docker daemon with version < 1.9 or an Another Union File System
  1444  	// (Aufs) storage backend. Issue
  1445  	// https://github.com/kubernetes/kubernetes/issues/10959 has more details.
  1446  	SerializeImagePullsDisabled bool `json:"serializeImagePullsDisabled,omitempty"`
  1447  	// ForceSendFields is a list of field names (e.g. "RegistryBurst") to
  1448  	// unconditionally include in API requests. By default, fields with empty or
  1449  	// default values are omitted from API requests. See
  1450  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1451  	// details.
  1452  	ForceSendFields []string `json:"-"`
  1453  	// NullFields is a list of field names (e.g. "RegistryBurst") to include in API
  1454  	// requests with the JSON null value. By default, fields with empty values are
  1455  	// omitted from API requests. See
  1456  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1457  	NullFields []string `json:"-"`
  1458  }
  1459  
  1460  func (s *BareMetalKubeletConfig) MarshalJSON() ([]byte, error) {
  1461  	type NoMethod BareMetalKubeletConfig
  1462  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1463  }
  1464  
  1465  // BareMetalLoadBalancerAddressPool: Represents an IP pool used by the load
  1466  // balancer.
  1467  type BareMetalLoadBalancerAddressPool struct {
  1468  	// Addresses: Required. The addresses that are part of this pool. Each address
  1469  	// must be either in the CIDR form (1.2.3.0/24) or range form
  1470  	// (1.2.3.1-1.2.3.5).
  1471  	Addresses []string `json:"addresses,omitempty"`
  1472  	// AvoidBuggyIps: If true, avoid using IPs ending in .0 or .255. This avoids
  1473  	// buggy consumer devices mistakenly dropping IPv4 traffic for those special IP
  1474  	// addresses.
  1475  	AvoidBuggyIps bool `json:"avoidBuggyIps,omitempty"`
  1476  	// ManualAssign: If true, prevent IP addresses from being automatically
  1477  	// assigned.
  1478  	ManualAssign bool `json:"manualAssign,omitempty"`
  1479  	// Pool: Required. The name of the address pool.
  1480  	Pool string `json:"pool,omitempty"`
  1481  	// ForceSendFields is a list of field names (e.g. "Addresses") to
  1482  	// unconditionally include in API requests. By default, fields with empty or
  1483  	// default values are omitted from API requests. See
  1484  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1485  	// details.
  1486  	ForceSendFields []string `json:"-"`
  1487  	// NullFields is a list of field names (e.g. "Addresses") to include in API
  1488  	// requests with the JSON null value. By default, fields with empty values are
  1489  	// omitted from API requests. See
  1490  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1491  	NullFields []string `json:"-"`
  1492  }
  1493  
  1494  func (s *BareMetalLoadBalancerAddressPool) MarshalJSON() ([]byte, error) {
  1495  	type NoMethod BareMetalLoadBalancerAddressPool
  1496  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1497  }
  1498  
  1499  // BareMetalLoadBalancerConfig: Specifies the load balancer configuration.
  1500  type BareMetalLoadBalancerConfig struct {
  1501  	// BgpLbConfig: Configuration for BGP typed load balancers. When set
  1502  	// network_config.advanced_networking is automatically set to true.
  1503  	BgpLbConfig *BareMetalBgpLbConfig `json:"bgpLbConfig,omitempty"`
  1504  	// ManualLbConfig: Manually configured load balancers.
  1505  	ManualLbConfig *BareMetalManualLbConfig `json:"manualLbConfig,omitempty"`
  1506  	// MetalLbConfig: Configuration for MetalLB load balancers.
  1507  	MetalLbConfig *BareMetalMetalLbConfig `json:"metalLbConfig,omitempty"`
  1508  	// PortConfig: Configures the ports that the load balancer will listen on.
  1509  	PortConfig *BareMetalPortConfig `json:"portConfig,omitempty"`
  1510  	// VipConfig: The VIPs used by the load balancer.
  1511  	VipConfig *BareMetalVipConfig `json:"vipConfig,omitempty"`
  1512  	// ForceSendFields is a list of field names (e.g. "BgpLbConfig") to
  1513  	// unconditionally include in API requests. By default, fields with empty or
  1514  	// default values are omitted from API requests. See
  1515  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1516  	// details.
  1517  	ForceSendFields []string `json:"-"`
  1518  	// NullFields is a list of field names (e.g. "BgpLbConfig") to include in API
  1519  	// requests with the JSON null value. By default, fields with empty values are
  1520  	// omitted from API requests. See
  1521  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1522  	NullFields []string `json:"-"`
  1523  }
  1524  
  1525  func (s *BareMetalLoadBalancerConfig) MarshalJSON() ([]byte, error) {
  1526  	type NoMethod BareMetalLoadBalancerConfig
  1527  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1528  }
  1529  
  1530  // BareMetalLoadBalancerNodePoolConfig: Specifies the load balancer's node pool
  1531  // configuration.
  1532  type BareMetalLoadBalancerNodePoolConfig struct {
  1533  	// NodePoolConfig: The generic configuration for a node pool running a load
  1534  	// balancer.
  1535  	NodePoolConfig *BareMetalNodePoolConfig `json:"nodePoolConfig,omitempty"`
  1536  	// ForceSendFields is a list of field names (e.g. "NodePoolConfig") to
  1537  	// unconditionally include in API requests. By default, fields with empty or
  1538  	// default values are omitted from API requests. See
  1539  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1540  	// details.
  1541  	ForceSendFields []string `json:"-"`
  1542  	// NullFields is a list of field names (e.g. "NodePoolConfig") to include in
  1543  	// API requests with the JSON null value. By default, fields with empty values
  1544  	// are omitted from API requests. See
  1545  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1546  	NullFields []string `json:"-"`
  1547  }
  1548  
  1549  func (s *BareMetalLoadBalancerNodePoolConfig) MarshalJSON() ([]byte, error) {
  1550  	type NoMethod BareMetalLoadBalancerNodePoolConfig
  1551  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1552  }
  1553  
  1554  // BareMetalLvpConfig: Specifies the configs for local persistent volumes
  1555  // (PVs).
  1556  type BareMetalLvpConfig struct {
  1557  	// Path: Required. The host machine path.
  1558  	Path string `json:"path,omitempty"`
  1559  	// StorageClass: Required. The StorageClass name that PVs will be created with.
  1560  	StorageClass string `json:"storageClass,omitempty"`
  1561  	// ForceSendFields is a list of field names (e.g. "Path") to unconditionally
  1562  	// include in API requests. By default, fields with empty or default values are
  1563  	// omitted from API requests. See
  1564  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1565  	// details.
  1566  	ForceSendFields []string `json:"-"`
  1567  	// NullFields is a list of field names (e.g. "Path") to include in API requests
  1568  	// with the JSON null value. By default, fields with empty values are omitted
  1569  	// from API requests. See
  1570  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1571  	NullFields []string `json:"-"`
  1572  }
  1573  
  1574  func (s *BareMetalLvpConfig) MarshalJSON() ([]byte, error) {
  1575  	type NoMethod BareMetalLvpConfig
  1576  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1577  }
  1578  
  1579  // BareMetalLvpShareConfig: Specifies the configs for local persistent volumes
  1580  // under a shared file system.
  1581  type BareMetalLvpShareConfig struct {
  1582  	// LvpConfig: Required. Defines the machine path and storage class for the LVP
  1583  	// Share.
  1584  	LvpConfig *BareMetalLvpConfig `json:"lvpConfig,omitempty"`
  1585  	// SharedPathPvCount: The number of subdirectories to create under path.
  1586  	SharedPathPvCount int64 `json:"sharedPathPvCount,omitempty"`
  1587  	// ForceSendFields is a list of field names (e.g. "LvpConfig") to
  1588  	// unconditionally include in API requests. By default, fields with empty or
  1589  	// default values are omitted from API requests. See
  1590  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1591  	// details.
  1592  	ForceSendFields []string `json:"-"`
  1593  	// NullFields is a list of field names (e.g. "LvpConfig") to include in API
  1594  	// requests with the JSON null value. By default, fields with empty values are
  1595  	// omitted from API requests. See
  1596  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1597  	NullFields []string `json:"-"`
  1598  }
  1599  
  1600  func (s *BareMetalLvpShareConfig) MarshalJSON() ([]byte, error) {
  1601  	type NoMethod BareMetalLvpShareConfig
  1602  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1603  }
  1604  
  1605  // BareMetalMachineDrainStatus: Represents the status of node machines that are
  1606  // undergoing drain operations.
  1607  type BareMetalMachineDrainStatus struct {
  1608  	// DrainedMachines: The list of drained machines.
  1609  	DrainedMachines []*BareMetalDrainedMachine `json:"drainedMachines,omitempty"`
  1610  	// DrainingMachines: The list of draning machines.
  1611  	DrainingMachines []*BareMetalDrainingMachine `json:"drainingMachines,omitempty"`
  1612  	// ForceSendFields is a list of field names (e.g. "DrainedMachines") to
  1613  	// unconditionally include in API requests. By default, fields with empty or
  1614  	// default values are omitted from API requests. See
  1615  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1616  	// details.
  1617  	ForceSendFields []string `json:"-"`
  1618  	// NullFields is a list of field names (e.g. "DrainedMachines") to include in
  1619  	// API requests with the JSON null value. By default, fields with empty values
  1620  	// are omitted from API requests. See
  1621  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1622  	NullFields []string `json:"-"`
  1623  }
  1624  
  1625  func (s *BareMetalMachineDrainStatus) MarshalJSON() ([]byte, error) {
  1626  	type NoMethod BareMetalMachineDrainStatus
  1627  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1628  }
  1629  
  1630  // BareMetalMaintenanceConfig: Specifies configurations to put bare metal nodes
  1631  // in and out of maintenance.
  1632  type BareMetalMaintenanceConfig struct {
  1633  	// MaintenanceAddressCidrBlocks: Required. All IPv4 address from these ranges
  1634  	// will be placed into maintenance mode. Nodes in maintenance mode will be
  1635  	// cordoned and drained. When both of these are true, the
  1636  	// "baremetal.cluster.gke.io/maintenance" annotation will be set on the node
  1637  	// resource.
  1638  	MaintenanceAddressCidrBlocks []string `json:"maintenanceAddressCidrBlocks,omitempty"`
  1639  	// ForceSendFields is a list of field names (e.g.
  1640  	// "MaintenanceAddressCidrBlocks") to unconditionally include in API requests.
  1641  	// By default, fields with empty or default values are omitted from API
  1642  	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
  1643  	// for more details.
  1644  	ForceSendFields []string `json:"-"`
  1645  	// NullFields is a list of field names (e.g. "MaintenanceAddressCidrBlocks") to
  1646  	// include in API requests with the JSON null value. By default, fields with
  1647  	// empty values are omitted from API requests. See
  1648  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1649  	NullFields []string `json:"-"`
  1650  }
  1651  
  1652  func (s *BareMetalMaintenanceConfig) MarshalJSON() ([]byte, error) {
  1653  	type NoMethod BareMetalMaintenanceConfig
  1654  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1655  }
  1656  
  1657  // BareMetalMaintenanceStatus: Represents the maintenance status of the bare
  1658  // metal user cluster.
  1659  type BareMetalMaintenanceStatus struct {
  1660  	// MachineDrainStatus: The maintenance status of node machines.
  1661  	MachineDrainStatus *BareMetalMachineDrainStatus `json:"machineDrainStatus,omitempty"`
  1662  	// ForceSendFields is a list of field names (e.g. "MachineDrainStatus") to
  1663  	// unconditionally include in API requests. By default, fields with empty or
  1664  	// default values are omitted from API requests. See
  1665  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1666  	// details.
  1667  	ForceSendFields []string `json:"-"`
  1668  	// NullFields is a list of field names (e.g. "MachineDrainStatus") to include
  1669  	// in API requests with the JSON null value. By default, fields with empty
  1670  	// values are omitted from API requests. See
  1671  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1672  	NullFields []string `json:"-"`
  1673  }
  1674  
  1675  func (s *BareMetalMaintenanceStatus) MarshalJSON() ([]byte, error) {
  1676  	type NoMethod BareMetalMaintenanceStatus
  1677  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1678  }
  1679  
  1680  // BareMetalManualLbConfig: Represents configuration parameters for a manual
  1681  // load balancer.
  1682  type BareMetalManualLbConfig struct {
  1683  	// Enabled: Whether manual load balancing is enabled.
  1684  	Enabled bool `json:"enabled,omitempty"`
  1685  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  1686  	// include in API requests. By default, fields with empty or default values are
  1687  	// omitted from API requests. See
  1688  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1689  	// details.
  1690  	ForceSendFields []string `json:"-"`
  1691  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  1692  	// requests with the JSON null value. By default, fields with empty values are
  1693  	// omitted from API requests. See
  1694  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1695  	NullFields []string `json:"-"`
  1696  }
  1697  
  1698  func (s *BareMetalManualLbConfig) MarshalJSON() ([]byte, error) {
  1699  	type NoMethod BareMetalManualLbConfig
  1700  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1701  }
  1702  
  1703  // BareMetalMetalLbConfig: Represents configuration parameters for a MetalLB
  1704  // load balancer.
  1705  type BareMetalMetalLbConfig struct {
  1706  	// AddressPools: Required. AddressPools is a list of non-overlapping IP pools
  1707  	// used by load balancer typed services. All addresses must be routable to load
  1708  	// balancer nodes. IngressVIP must be included in the pools.
  1709  	AddressPools []*BareMetalLoadBalancerAddressPool `json:"addressPools,omitempty"`
  1710  	// LoadBalancerNodePoolConfig: Specifies the node pool running the load
  1711  	// balancer. L2 connectivity is required among nodes in this pool. If missing,
  1712  	// the control plane node pool is used as the load balancer pool.
  1713  	LoadBalancerNodePoolConfig *BareMetalLoadBalancerNodePoolConfig `json:"loadBalancerNodePoolConfig,omitempty"`
  1714  	// ForceSendFields is a list of field names (e.g. "AddressPools") to
  1715  	// unconditionally include in API requests. By default, fields with empty or
  1716  	// default values are omitted from API requests. See
  1717  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1718  	// details.
  1719  	ForceSendFields []string `json:"-"`
  1720  	// NullFields is a list of field names (e.g. "AddressPools") to include in API
  1721  	// requests with the JSON null value. By default, fields with empty values are
  1722  	// omitted from API requests. See
  1723  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1724  	NullFields []string `json:"-"`
  1725  }
  1726  
  1727  func (s *BareMetalMetalLbConfig) MarshalJSON() ([]byte, error) {
  1728  	type NoMethod BareMetalMetalLbConfig
  1729  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1730  }
  1731  
  1732  // BareMetalMultipleNetworkInterfacesConfig: Specifies the multiple networking
  1733  // interfaces cluster configuration.
  1734  type BareMetalMultipleNetworkInterfacesConfig struct {
  1735  	// Enabled: Whether to enable multiple network interfaces for your pods. When
  1736  	// set network_config.advanced_networking is automatically set to true.
  1737  	Enabled bool `json:"enabled,omitempty"`
  1738  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  1739  	// include in API requests. By default, fields with empty or default values are
  1740  	// omitted from API requests. See
  1741  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1742  	// details.
  1743  	ForceSendFields []string `json:"-"`
  1744  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  1745  	// requests with the JSON null value. By default, fields with empty values are
  1746  	// omitted from API requests. See
  1747  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1748  	NullFields []string `json:"-"`
  1749  }
  1750  
  1751  func (s *BareMetalMultipleNetworkInterfacesConfig) MarshalJSON() ([]byte, error) {
  1752  	type NoMethod BareMetalMultipleNetworkInterfacesConfig
  1753  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1754  }
  1755  
  1756  // BareMetalNetworkConfig: Specifies the cluster network configuration.
  1757  type BareMetalNetworkConfig struct {
  1758  	// AdvancedNetworking: Enables the use of advanced Anthos networking features,
  1759  	// such as Bundled Load Balancing with BGP or the egress NAT gateway. Setting
  1760  	// configuration for advanced networking features will automatically set this
  1761  	// flag.
  1762  	AdvancedNetworking bool `json:"advancedNetworking,omitempty"`
  1763  	// IslandModeCidr: Configuration for island mode CIDR. In an island-mode
  1764  	// network, nodes have unique IP addresses, but pods don't have unique
  1765  	// addresses across clusters. This doesn't cause problems because pods in one
  1766  	// cluster never directly communicate with pods in another cluster. Instead,
  1767  	// there are gateways that mediate between a pod in one cluster and a pod in
  1768  	// another cluster.
  1769  	IslandModeCidr *BareMetalIslandModeCidrConfig `json:"islandModeCidr,omitempty"`
  1770  	// MultipleNetworkInterfacesConfig: Configuration for multiple network
  1771  	// interfaces.
  1772  	MultipleNetworkInterfacesConfig *BareMetalMultipleNetworkInterfacesConfig `json:"multipleNetworkInterfacesConfig,omitempty"`
  1773  	// SrIovConfig: Configuration for SR-IOV.
  1774  	SrIovConfig *BareMetalSrIovConfig `json:"srIovConfig,omitempty"`
  1775  	// ForceSendFields is a list of field names (e.g. "AdvancedNetworking") to
  1776  	// unconditionally include in API requests. By default, fields with empty or
  1777  	// default values are omitted from API requests. See
  1778  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1779  	// details.
  1780  	ForceSendFields []string `json:"-"`
  1781  	// NullFields is a list of field names (e.g. "AdvancedNetworking") to include
  1782  	// in API requests with the JSON null value. By default, fields with empty
  1783  	// values are omitted from API requests. See
  1784  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1785  	NullFields []string `json:"-"`
  1786  }
  1787  
  1788  func (s *BareMetalNetworkConfig) MarshalJSON() ([]byte, error) {
  1789  	type NoMethod BareMetalNetworkConfig
  1790  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1791  }
  1792  
  1793  // BareMetalNodeAccessConfig: Specifies the node access related settings for
  1794  // the bare metal user cluster.
  1795  type BareMetalNodeAccessConfig struct {
  1796  	// LoginUser: LoginUser is the user name used to access node machines. It
  1797  	// defaults to "root" if not set.
  1798  	LoginUser string `json:"loginUser,omitempty"`
  1799  	// ForceSendFields is a list of field names (e.g. "LoginUser") to
  1800  	// unconditionally include in API requests. By default, fields with empty or
  1801  	// default values are omitted from API requests. See
  1802  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1803  	// details.
  1804  	ForceSendFields []string `json:"-"`
  1805  	// NullFields is a list of field names (e.g. "LoginUser") to include in API
  1806  	// requests with the JSON null value. By default, fields with empty values are
  1807  	// omitted from API requests. See
  1808  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1809  	NullFields []string `json:"-"`
  1810  }
  1811  
  1812  func (s *BareMetalNodeAccessConfig) MarshalJSON() ([]byte, error) {
  1813  	type NoMethod BareMetalNodeAccessConfig
  1814  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1815  }
  1816  
  1817  // BareMetalNodeConfig: BareMetalNodeConfig lists machine addresses to access
  1818  // Nodes.
  1819  type BareMetalNodeConfig struct {
  1820  	// Labels: The labels assigned to this node. An object containing a list of
  1821  	// key/value pairs. The labels here, unioned with the labels set on
  1822  	// BareMetalNodePoolConfig are the set of labels that will be applied to the
  1823  	// node. If there are any conflicts, the BareMetalNodeConfig labels take
  1824  	// precedence. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
  1825  	Labels map[string]string `json:"labels,omitempty"`
  1826  	// NodeIp: The default IPv4 address for SSH access and Kubernetes node.
  1827  	// Example: 192.168.0.1
  1828  	NodeIp string `json:"nodeIp,omitempty"`
  1829  	// ForceSendFields is a list of field names (e.g. "Labels") to unconditionally
  1830  	// include in API requests. By default, fields with empty or default values are
  1831  	// omitted from API requests. See
  1832  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1833  	// details.
  1834  	ForceSendFields []string `json:"-"`
  1835  	// NullFields is a list of field names (e.g. "Labels") to include in API
  1836  	// requests with the JSON null value. By default, fields with empty values are
  1837  	// omitted from API requests. See
  1838  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1839  	NullFields []string `json:"-"`
  1840  }
  1841  
  1842  func (s *BareMetalNodeConfig) MarshalJSON() ([]byte, error) {
  1843  	type NoMethod BareMetalNodeConfig
  1844  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1845  }
  1846  
  1847  // BareMetalNodePool: Resource that represents a bare metal node pool.
  1848  type BareMetalNodePool struct {
  1849  	// Annotations: Annotations on the bare metal node pool. This field has the
  1850  	// same restrictions as Kubernetes annotations. The total size of all keys and
  1851  	// values combined is limited to 256k. Key can have 2 segments: prefix
  1852  	// (optional) and name (required), separated by a slash (/). Prefix must be a
  1853  	// DNS subdomain. Name must be 63 characters or less, begin and end with
  1854  	// alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics
  1855  	// between.
  1856  	Annotations map[string]string `json:"annotations,omitempty"`
  1857  	// CreateTime: Output only. The time at which this bare metal node pool was
  1858  	// created.
  1859  	CreateTime string `json:"createTime,omitempty"`
  1860  	// DeleteTime: Output only. The time at which this bare metal node pool was
  1861  	// deleted. If the resource is not deleted, this must be empty
  1862  	DeleteTime string `json:"deleteTime,omitempty"`
  1863  	// DisplayName: The display name for the bare metal node pool.
  1864  	DisplayName string `json:"displayName,omitempty"`
  1865  	// Etag: This checksum is computed by the server based on the value of other
  1866  	// fields, and may be sent on update and delete requests to ensure the client
  1867  	// has an up-to-date value before proceeding. Allows clients to perform
  1868  	// consistent read-modify-writes through optimistic concurrency control.
  1869  	Etag string `json:"etag,omitempty"`
  1870  	// Name: Immutable. The bare metal node pool resource name.
  1871  	Name string `json:"name,omitempty"`
  1872  	// NodePoolConfig: Required. Node pool configuration.
  1873  	NodePoolConfig *BareMetalNodePoolConfig `json:"nodePoolConfig,omitempty"`
  1874  	// Reconciling: Output only. If set, there are currently changes in flight to
  1875  	// the bare metal node pool.
  1876  	Reconciling bool `json:"reconciling,omitempty"`
  1877  	// State: Output only. The current state of the bare metal node pool.
  1878  	//
  1879  	// Possible values:
  1880  	//   "STATE_UNSPECIFIED" - Not set.
  1881  	//   "PROVISIONING" - The PROVISIONING state indicates the bare metal node pool
  1882  	// is being created.
  1883  	//   "RUNNING" - The RUNNING state indicates the bare metal node pool has been
  1884  	// created and is fully usable.
  1885  	//   "RECONCILING" - The RECONCILING state indicates that the bare metal node
  1886  	// pool is being updated. It remains available, but potentially with degraded
  1887  	// performance.
  1888  	//   "STOPPING" - The STOPPING state indicates the bare metal node pool is
  1889  	// being deleted.
  1890  	//   "ERROR" - The ERROR state indicates the bare metal node pool is in a
  1891  	// broken unrecoverable state.
  1892  	//   "DEGRADED" - The DEGRADED state indicates the bare metal node pool
  1893  	// requires user action to restore full functionality.
  1894  	State string `json:"state,omitempty"`
  1895  	// Status: Output only. ResourceStatus representing the detailed node pool
  1896  	// status.
  1897  	Status *ResourceStatus `json:"status,omitempty"`
  1898  	// Uid: Output only. The unique identifier of the bare metal node pool.
  1899  	Uid string `json:"uid,omitempty"`
  1900  	// UpdateTime: Output only. The time at which this bare metal node pool was
  1901  	// last updated.
  1902  	UpdateTime string `json:"updateTime,omitempty"`
  1903  	// UpgradePolicy: The worker node pool upgrade policy.
  1904  	UpgradePolicy *BareMetalNodePoolUpgradePolicy `json:"upgradePolicy,omitempty"`
  1905  
  1906  	// ServerResponse contains the HTTP response code and headers from the server.
  1907  	googleapi.ServerResponse `json:"-"`
  1908  	// ForceSendFields is a list of field names (e.g. "Annotations") to
  1909  	// unconditionally include in API requests. By default, fields with empty or
  1910  	// default values are omitted from API requests. See
  1911  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1912  	// details.
  1913  	ForceSendFields []string `json:"-"`
  1914  	// NullFields is a list of field names (e.g. "Annotations") to include in API
  1915  	// requests with the JSON null value. By default, fields with empty values are
  1916  	// omitted from API requests. See
  1917  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1918  	NullFields []string `json:"-"`
  1919  }
  1920  
  1921  func (s *BareMetalNodePool) MarshalJSON() ([]byte, error) {
  1922  	type NoMethod BareMetalNodePool
  1923  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1924  }
  1925  
  1926  // BareMetalNodePoolConfig: BareMetalNodePoolConfig describes the configuration
  1927  // of all nodes within a given bare metal node pool.
  1928  type BareMetalNodePoolConfig struct {
  1929  	// KubeletConfig: The modifiable kubelet configurations for the bare metal
  1930  	// machines.
  1931  	KubeletConfig *BareMetalKubeletConfig `json:"kubeletConfig,omitempty"`
  1932  	// Labels: The labels assigned to nodes of this node pool. An object containing
  1933  	// a list of key/value pairs. Example: { "name": "wrench", "mass": "1.3kg",
  1934  	// "count": "3" }.
  1935  	Labels map[string]string `json:"labels,omitempty"`
  1936  	// NodeConfigs: Required. The list of machine addresses in the bare metal node
  1937  	// pool.
  1938  	NodeConfigs []*BareMetalNodeConfig `json:"nodeConfigs,omitempty"`
  1939  	// OperatingSystem: Specifies the nodes operating system (default: LINUX).
  1940  	//
  1941  	// Possible values:
  1942  	//   "OPERATING_SYSTEM_UNSPECIFIED" - No operating system runtime selected.
  1943  	//   "LINUX" - Linux operating system.
  1944  	OperatingSystem string `json:"operatingSystem,omitempty"`
  1945  	// Taints: The initial taints assigned to nodes of this node pool.
  1946  	Taints []*NodeTaint `json:"taints,omitempty"`
  1947  	// ForceSendFields is a list of field names (e.g. "KubeletConfig") to
  1948  	// unconditionally include in API requests. By default, fields with empty or
  1949  	// default values are omitted from API requests. See
  1950  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1951  	// details.
  1952  	ForceSendFields []string `json:"-"`
  1953  	// NullFields is a list of field names (e.g. "KubeletConfig") to include in API
  1954  	// requests with the JSON null value. By default, fields with empty values are
  1955  	// omitted from API requests. See
  1956  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1957  	NullFields []string `json:"-"`
  1958  }
  1959  
  1960  func (s *BareMetalNodePoolConfig) MarshalJSON() ([]byte, error) {
  1961  	type NoMethod BareMetalNodePoolConfig
  1962  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1963  }
  1964  
  1965  // BareMetalNodePoolUpgradePolicy: BareMetalNodePoolUpgradePolicy defines the
  1966  // node pool upgrade policy.
  1967  type BareMetalNodePoolUpgradePolicy struct {
  1968  	// ParallelUpgradeConfig: The parallel upgrade settings for worker node pools.
  1969  	ParallelUpgradeConfig *BareMetalParallelUpgradeConfig `json:"parallelUpgradeConfig,omitempty"`
  1970  	// ForceSendFields is a list of field names (e.g. "ParallelUpgradeConfig") to
  1971  	// unconditionally include in API requests. By default, fields with empty or
  1972  	// default values are omitted from API requests. See
  1973  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1974  	// details.
  1975  	ForceSendFields []string `json:"-"`
  1976  	// NullFields is a list of field names (e.g. "ParallelUpgradeConfig") to
  1977  	// include in API requests with the JSON null value. By default, fields with
  1978  	// empty values are omitted from API requests. See
  1979  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1980  	NullFields []string `json:"-"`
  1981  }
  1982  
  1983  func (s *BareMetalNodePoolUpgradePolicy) MarshalJSON() ([]byte, error) {
  1984  	type NoMethod BareMetalNodePoolUpgradePolicy
  1985  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1986  }
  1987  
  1988  // BareMetalOsEnvironmentConfig: Specifies operating system settings for
  1989  // cluster provisioning.
  1990  type BareMetalOsEnvironmentConfig struct {
  1991  	// PackageRepoExcluded: Whether the package repo should not be included when
  1992  	// initializing bare metal machines.
  1993  	PackageRepoExcluded bool `json:"packageRepoExcluded,omitempty"`
  1994  	// ForceSendFields is a list of field names (e.g. "PackageRepoExcluded") to
  1995  	// unconditionally include in API requests. By default, fields with empty or
  1996  	// default values are omitted from API requests. See
  1997  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1998  	// details.
  1999  	ForceSendFields []string `json:"-"`
  2000  	// NullFields is a list of field names (e.g. "PackageRepoExcluded") to include
  2001  	// in API requests with the JSON null value. By default, fields with empty
  2002  	// values are omitted from API requests. See
  2003  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2004  	NullFields []string `json:"-"`
  2005  }
  2006  
  2007  func (s *BareMetalOsEnvironmentConfig) MarshalJSON() ([]byte, error) {
  2008  	type NoMethod BareMetalOsEnvironmentConfig
  2009  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2010  }
  2011  
  2012  // BareMetalParallelUpgradeConfig: BareMetalParallelUpgradeConfig defines the
  2013  // parallel upgrade settings for worker node pools.
  2014  type BareMetalParallelUpgradeConfig struct {
  2015  	// ConcurrentNodes: The maximum number of nodes that can be upgraded at once.
  2016  	ConcurrentNodes int64 `json:"concurrentNodes,omitempty"`
  2017  	// MinimumAvailableNodes: The minimum number of nodes that should be healthy
  2018  	// and available during an upgrade. If set to the default value of 0, it is
  2019  	// possible that none of the nodes will be available during an upgrade.
  2020  	MinimumAvailableNodes int64 `json:"minimumAvailableNodes,omitempty"`
  2021  	// ForceSendFields is a list of field names (e.g. "ConcurrentNodes") to
  2022  	// unconditionally include in API requests. By default, fields with empty or
  2023  	// default values are omitted from API requests. See
  2024  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2025  	// details.
  2026  	ForceSendFields []string `json:"-"`
  2027  	// NullFields is a list of field names (e.g. "ConcurrentNodes") to include in
  2028  	// API requests with the JSON null value. By default, fields with empty values
  2029  	// are omitted from API requests. See
  2030  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2031  	NullFields []string `json:"-"`
  2032  }
  2033  
  2034  func (s *BareMetalParallelUpgradeConfig) MarshalJSON() ([]byte, error) {
  2035  	type NoMethod BareMetalParallelUpgradeConfig
  2036  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2037  }
  2038  
  2039  // BareMetalPortConfig: Specifies load balancer ports for the bare metal user
  2040  // cluster.
  2041  type BareMetalPortConfig struct {
  2042  	// ControlPlaneLoadBalancerPort: The port that control plane hosted load
  2043  	// balancers will listen on.
  2044  	ControlPlaneLoadBalancerPort int64 `json:"controlPlaneLoadBalancerPort,omitempty"`
  2045  	// ForceSendFields is a list of field names (e.g.
  2046  	// "ControlPlaneLoadBalancerPort") to unconditionally include in API requests.
  2047  	// By default, fields with empty or default values are omitted from API
  2048  	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
  2049  	// for more details.
  2050  	ForceSendFields []string `json:"-"`
  2051  	// NullFields is a list of field names (e.g. "ControlPlaneLoadBalancerPort") to
  2052  	// include in API requests with the JSON null value. By default, fields with
  2053  	// empty values are omitted 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 *BareMetalPortConfig) MarshalJSON() ([]byte, error) {
  2059  	type NoMethod BareMetalPortConfig
  2060  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2061  }
  2062  
  2063  // BareMetalProxyConfig: Specifies the cluster proxy configuration.
  2064  type BareMetalProxyConfig struct {
  2065  	// NoProxy: A list of IPs, hostnames, and domains that should skip the proxy.
  2066  	// Examples: ["127.0.0.1", "example.com", ".corp", "localhost"].
  2067  	NoProxy []string `json:"noProxy,omitempty"`
  2068  	// Uri: Required. Specifies the address of your proxy server. Examples:
  2069  	// `http://domain` Do not provide credentials in the format
  2070  	// `http://(username:password@)domain` these will be rejected by the server.
  2071  	Uri string `json:"uri,omitempty"`
  2072  	// ForceSendFields is a list of field names (e.g. "NoProxy") to unconditionally
  2073  	// include in API requests. By default, fields with empty or default values are
  2074  	// omitted from API requests. See
  2075  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2076  	// details.
  2077  	ForceSendFields []string `json:"-"`
  2078  	// NullFields is a list of field names (e.g. "NoProxy") to include in API
  2079  	// requests with the JSON null value. By default, fields with empty values are
  2080  	// omitted from API requests. See
  2081  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2082  	NullFields []string `json:"-"`
  2083  }
  2084  
  2085  func (s *BareMetalProxyConfig) MarshalJSON() ([]byte, error) {
  2086  	type NoMethod BareMetalProxyConfig
  2087  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2088  }
  2089  
  2090  // BareMetalSecurityConfig: Specifies the security related settings for the
  2091  // bare metal user cluster.
  2092  type BareMetalSecurityConfig struct {
  2093  	// Authorization: Configures user access to the user cluster.
  2094  	Authorization *Authorization `json:"authorization,omitempty"`
  2095  	// ForceSendFields is a list of field names (e.g. "Authorization") to
  2096  	// unconditionally include in API requests. By default, fields with empty or
  2097  	// default values are omitted from API requests. See
  2098  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2099  	// details.
  2100  	ForceSendFields []string `json:"-"`
  2101  	// NullFields is a list of field names (e.g. "Authorization") to include in API
  2102  	// requests with the JSON null value. By default, fields with empty values are
  2103  	// omitted from API requests. See
  2104  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2105  	NullFields []string `json:"-"`
  2106  }
  2107  
  2108  func (s *BareMetalSecurityConfig) MarshalJSON() ([]byte, error) {
  2109  	type NoMethod BareMetalSecurityConfig
  2110  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2111  }
  2112  
  2113  // BareMetalSrIovConfig: Specifies the SR-IOV networking operator config.
  2114  type BareMetalSrIovConfig struct {
  2115  	// Enabled: Whether to install the SR-IOV operator.
  2116  	Enabled bool `json:"enabled,omitempty"`
  2117  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  2118  	// include in API requests. By default, fields with empty or default values are
  2119  	// omitted from API requests. See
  2120  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2121  	// details.
  2122  	ForceSendFields []string `json:"-"`
  2123  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  2124  	// requests with the JSON null value. By default, fields with empty values are
  2125  	// omitted from API requests. See
  2126  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2127  	NullFields []string `json:"-"`
  2128  }
  2129  
  2130  func (s *BareMetalSrIovConfig) MarshalJSON() ([]byte, error) {
  2131  	type NoMethod BareMetalSrIovConfig
  2132  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2133  }
  2134  
  2135  // BareMetalStorageConfig: BareMetalStorageConfig specifies the cluster storage
  2136  // configuration.
  2137  type BareMetalStorageConfig struct {
  2138  	// LvpNodeMountsConfig: Required. Specifies the config for local
  2139  	// PersistentVolumes backed by mounted node disks. These disks need to be
  2140  	// formatted and mounted by the user, which can be done before or after cluster
  2141  	// creation.
  2142  	LvpNodeMountsConfig *BareMetalLvpConfig `json:"lvpNodeMountsConfig,omitempty"`
  2143  	// LvpShareConfig: Required. Specifies the config for local PersistentVolumes
  2144  	// backed by subdirectories in a shared filesystem. These subdirectores are
  2145  	// automatically created during cluster creation.
  2146  	LvpShareConfig *BareMetalLvpShareConfig `json:"lvpShareConfig,omitempty"`
  2147  	// ForceSendFields is a list of field names (e.g. "LvpNodeMountsConfig") to
  2148  	// unconditionally include in API requests. By default, fields with empty or
  2149  	// default values are omitted from API requests. See
  2150  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2151  	// details.
  2152  	ForceSendFields []string `json:"-"`
  2153  	// NullFields is a list of field names (e.g. "LvpNodeMountsConfig") to include
  2154  	// in API requests with the JSON null value. By default, fields with empty
  2155  	// values are omitted from API requests. See
  2156  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2157  	NullFields []string `json:"-"`
  2158  }
  2159  
  2160  func (s *BareMetalStorageConfig) MarshalJSON() ([]byte, error) {
  2161  	type NoMethod BareMetalStorageConfig
  2162  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2163  }
  2164  
  2165  // BareMetalVersionInfo: Contains information about a specific Anthos on bare
  2166  // metal version.
  2167  type BareMetalVersionInfo struct {
  2168  	// Dependencies: The list of upgrade dependencies for this version.
  2169  	Dependencies []*UpgradeDependency `json:"dependencies,omitempty"`
  2170  	// HasDependencies: If set, the cluster dependencies (e.g. the admin cluster,
  2171  	// other user clusters managed by the same admin cluster, version skew policy,
  2172  	// etc) must be upgraded before this version can be installed or upgraded to.
  2173  	HasDependencies bool `json:"hasDependencies,omitempty"`
  2174  	// Version: Version number e.g. 1.13.1.
  2175  	Version string `json:"version,omitempty"`
  2176  	// ForceSendFields is a list of field names (e.g. "Dependencies") to
  2177  	// unconditionally include in API requests. By default, fields with empty or
  2178  	// default values are omitted from API requests. See
  2179  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2180  	// details.
  2181  	ForceSendFields []string `json:"-"`
  2182  	// NullFields is a list of field names (e.g. "Dependencies") to include in API
  2183  	// requests with the JSON null value. By default, fields with empty values are
  2184  	// omitted from API requests. See
  2185  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2186  	NullFields []string `json:"-"`
  2187  }
  2188  
  2189  func (s *BareMetalVersionInfo) MarshalJSON() ([]byte, error) {
  2190  	type NoMethod BareMetalVersionInfo
  2191  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2192  }
  2193  
  2194  // BareMetalVipConfig: Specifies the VIP config for the bare metal load
  2195  // balancer.
  2196  type BareMetalVipConfig struct {
  2197  	// ControlPlaneVip: The VIP which you previously set aside for the Kubernetes
  2198  	// API of this bare metal user cluster.
  2199  	ControlPlaneVip string `json:"controlPlaneVip,omitempty"`
  2200  	// IngressVip: The VIP which you previously set aside for ingress traffic into
  2201  	// this bare metal user cluster.
  2202  	IngressVip string `json:"ingressVip,omitempty"`
  2203  	// ForceSendFields is a list of field names (e.g. "ControlPlaneVip") to
  2204  	// unconditionally include in API requests. By default, fields with empty or
  2205  	// default values are omitted from API requests. See
  2206  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2207  	// details.
  2208  	ForceSendFields []string `json:"-"`
  2209  	// NullFields is a list of field names (e.g. "ControlPlaneVip") to include in
  2210  	// API requests with the JSON null value. By default, fields with empty values
  2211  	// are omitted from API requests. See
  2212  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2213  	NullFields []string `json:"-"`
  2214  }
  2215  
  2216  func (s *BareMetalVipConfig) MarshalJSON() ([]byte, error) {
  2217  	type NoMethod BareMetalVipConfig
  2218  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2219  }
  2220  
  2221  // BareMetalWorkloadNodeConfig: Specifies the workload node configurations.
  2222  type BareMetalWorkloadNodeConfig struct {
  2223  	// ContainerRuntime: Specifies which container runtime will be used.
  2224  	//
  2225  	// Possible values:
  2226  	//   "CONTAINER_RUNTIME_UNSPECIFIED" - No container runtime selected.
  2227  	//   "CONTAINERD" - Containerd runtime.
  2228  	ContainerRuntime string `json:"containerRuntime,omitempty"`
  2229  	// MaxPodsPerNode: The maximum number of pods a node can run. The size of the
  2230  	// CIDR range assigned to the node will be derived from this parameter.
  2231  	MaxPodsPerNode int64 `json:"maxPodsPerNode,omitempty,string"`
  2232  	// ForceSendFields is a list of field names (e.g. "ContainerRuntime") to
  2233  	// unconditionally include in API requests. By default, fields with empty or
  2234  	// default values are omitted from API requests. See
  2235  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2236  	// details.
  2237  	ForceSendFields []string `json:"-"`
  2238  	// NullFields is a list of field names (e.g. "ContainerRuntime") to include in
  2239  	// API requests with the JSON null value. By default, fields with empty values
  2240  	// are omitted from API requests. See
  2241  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2242  	NullFields []string `json:"-"`
  2243  }
  2244  
  2245  func (s *BareMetalWorkloadNodeConfig) MarshalJSON() ([]byte, error) {
  2246  	type NoMethod BareMetalWorkloadNodeConfig
  2247  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2248  }
  2249  
  2250  // BinaryAuthorization: Configuration for Binary Authorization.
  2251  type BinaryAuthorization struct {
  2252  	// EvaluationMode: Mode of operation for binauthz policy evaluation. If
  2253  	// unspecified, defaults to DISABLED.
  2254  	//
  2255  	// Possible values:
  2256  	//   "EVALUATION_MODE_UNSPECIFIED" - Default value
  2257  	//   "DISABLED" - Disable BinaryAuthorization
  2258  	//   "PROJECT_SINGLETON_POLICY_ENFORCE" - Enforce Kubernetes admission requests
  2259  	// with BinaryAuthorization using the project's singleton policy.
  2260  	EvaluationMode string `json:"evaluationMode,omitempty"`
  2261  	// ForceSendFields is a list of field names (e.g. "EvaluationMode") to
  2262  	// unconditionally include in API requests. By default, fields with empty or
  2263  	// default values are omitted from API requests. See
  2264  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2265  	// details.
  2266  	ForceSendFields []string `json:"-"`
  2267  	// NullFields is a list of field names (e.g. "EvaluationMode") to include in
  2268  	// API requests with the JSON null value. By default, fields with empty values
  2269  	// are omitted from API requests. See
  2270  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2271  	NullFields []string `json:"-"`
  2272  }
  2273  
  2274  func (s *BinaryAuthorization) MarshalJSON() ([]byte, error) {
  2275  	type NoMethod BinaryAuthorization
  2276  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2277  }
  2278  
  2279  // Binding: Associates `members`, or principals, with a `role`.
  2280  type Binding struct {
  2281  	// Condition: The condition that is associated with this binding. If the
  2282  	// condition evaluates to `true`, then this binding applies to the current
  2283  	// request. If the condition evaluates to `false`, then this binding does not
  2284  	// apply to the current request. However, a different role binding might grant
  2285  	// the same role to one or more of the principals in this binding. To learn
  2286  	// which resources support conditions in their IAM policies, see the IAM
  2287  	// documentation
  2288  	// (https://cloud.google.com/iam/help/conditions/resource-policies).
  2289  	Condition *Expr `json:"condition,omitempty"`
  2290  	// Members: Specifies the principals requesting access for a Google Cloud
  2291  	// resource. `members` can have the following values: * `allUsers`: A special
  2292  	// identifier that represents anyone who is on the internet; with or without a
  2293  	// Google account. * `allAuthenticatedUsers`: A special identifier that
  2294  	// represents anyone who is authenticated with a Google account or a service
  2295  	// account. Does not include identities that come from external identity
  2296  	// providers (IdPs) through identity federation. * `user:{emailid}`: An email
  2297  	// address that represents a specific Google account. For example,
  2298  	// `alice@example.com` . * `serviceAccount:{emailid}`: An email address that
  2299  	// represents a Google service account. For example,
  2300  	// `my-other-app@appspot.gserviceaccount.com`. *
  2301  	// `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An
  2302  	// identifier for a Kubernetes service account
  2303  	// (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts).
  2304  	// For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. *
  2305  	// `group:{emailid}`: An email address that represents a Google group. For
  2306  	// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain
  2307  	// (primary) that represents all the users of that domain. For example,
  2308  	// `google.com` or `example.com`. *
  2309  	// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/sub
  2310  	// ject/{subject_attribute_value}`: A single identity in a workforce identity
  2311  	// pool. *
  2312  	// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/
  2313  	// group/{group_id}`: All workforce identities in a group. *
  2314  	// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/
  2315  	// attribute.{attribute_name}/{attribute_value}`: All workforce identities with
  2316  	// a specific attribute value. *
  2317  	// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/
  2318  	// *`: All identities in a workforce identity pool. *
  2319  	// `principal://iam.googleapis.com/projects/{project_number}/locations/global/wo
  2320  	// rkloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single
  2321  	// identity in a workload identity pool. *
  2322  	// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global
  2323  	// /workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool
  2324  	// group. *
  2325  	// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global
  2326  	// /workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}
  2327  	// `: All identities in a workload identity pool with a certain attribute. *
  2328  	// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global
  2329  	// /workloadIdentityPools/{pool_id}/*`: All identities in a workload identity
  2330  	// pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus
  2331  	// unique identifier) representing a user that has been recently deleted. For
  2332  	// example, `alice@example.com?uid=123456789012345678901`. If the user is
  2333  	// recovered, this value reverts to `user:{emailid}` and the recovered user
  2334  	// retains the role in the binding. *
  2335  	// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
  2336  	// unique identifier) representing a service account that has been recently
  2337  	// deleted. For example,
  2338  	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the
  2339  	// service account is undeleted, this value reverts to
  2340  	// `serviceAccount:{emailid}` and the undeleted service account retains the
  2341  	// role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email
  2342  	// address (plus unique identifier) representing a Google group that has been
  2343  	// recently deleted. For example,
  2344  	// `admins@example.com?uid=123456789012345678901`. If the group is recovered,
  2345  	// this value reverts to `group:{emailid}` and the recovered group retains the
  2346  	// role in the binding. *
  2347  	// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool
  2348  	// _id}/subject/{subject_attribute_value}`: Deleted single identity in a
  2349  	// workforce identity pool. For example,
  2350  	// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-po
  2351  	// ol-id/subject/my-subject-attribute-value`.
  2352  	Members []string `json:"members,omitempty"`
  2353  	// Role: Role that is assigned to the list of `members`, or principals. For
  2354  	// example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview
  2355  	// of the IAM roles and permissions, see the IAM documentation
  2356  	// (https://cloud.google.com/iam/docs/roles-overview). For a list of the
  2357  	// available pre-defined roles, see here
  2358  	// (https://cloud.google.com/iam/docs/understanding-roles).
  2359  	Role string `json:"role,omitempty"`
  2360  	// ForceSendFields is a list of field names (e.g. "Condition") to
  2361  	// unconditionally include in API requests. By default, fields with empty or
  2362  	// default values are omitted from API requests. See
  2363  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2364  	// details.
  2365  	ForceSendFields []string `json:"-"`
  2366  	// NullFields is a list of field names (e.g. "Condition") to include in API
  2367  	// requests with the JSON null value. By default, fields with empty values are
  2368  	// omitted from API requests. See
  2369  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2370  	NullFields []string `json:"-"`
  2371  }
  2372  
  2373  func (s *Binding) MarshalJSON() ([]byte, error) {
  2374  	type NoMethod Binding
  2375  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2376  }
  2377  
  2378  // CancelOperationRequest: The request message for Operations.CancelOperation.
  2379  type CancelOperationRequest struct {
  2380  }
  2381  
  2382  // ClusterUser: ClusterUser configures user principals for an RBAC policy.
  2383  type ClusterUser struct {
  2384  	// Username: Required. The name of the user, e.g. `my-gcp-id@gmail.com`.
  2385  	Username string `json:"username,omitempty"`
  2386  	// ForceSendFields is a list of field names (e.g. "Username") to
  2387  	// unconditionally include in API requests. By default, fields with empty or
  2388  	// default values are omitted from API requests. See
  2389  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2390  	// details.
  2391  	ForceSendFields []string `json:"-"`
  2392  	// NullFields is a list of field names (e.g. "Username") to include in API
  2393  	// requests with the JSON null value. By default, fields with empty values are
  2394  	// omitted from API requests. See
  2395  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2396  	NullFields []string `json:"-"`
  2397  }
  2398  
  2399  func (s *ClusterUser) MarshalJSON() ([]byte, error) {
  2400  	type NoMethod ClusterUser
  2401  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2402  }
  2403  
  2404  // Empty: A generic empty message that you can re-use to avoid defining
  2405  // duplicated empty messages in your APIs. A typical example is to use it as
  2406  // the request or the response type of an API method. For instance: service Foo
  2407  // { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
  2408  type Empty struct {
  2409  	// ServerResponse contains the HTTP response code and headers from the server.
  2410  	googleapi.ServerResponse `json:"-"`
  2411  }
  2412  
  2413  // EnrollBareMetalAdminClusterRequest: Message for enrolling an existing bare
  2414  // metal admin cluster to the GKE on-prem API.
  2415  type EnrollBareMetalAdminClusterRequest struct {
  2416  	// BareMetalAdminClusterId: User provided OnePlatform identifier that is used
  2417  	// as part of the resource name. This must be unique among all GKE on-prem
  2418  	// clusters within a project and location and will return a 409 if the cluster
  2419  	// already exists. (https://tools.ietf.org/html/rfc1123) format.
  2420  	BareMetalAdminClusterId string `json:"bareMetalAdminClusterId,omitempty"`
  2421  	// Membership: Required. This is the full resource name of this admin cluster's
  2422  	// fleet membership.
  2423  	Membership string `json:"membership,omitempty"`
  2424  	// ForceSendFields is a list of field names (e.g. "BareMetalAdminClusterId") to
  2425  	// unconditionally include in API requests. By default, fields with empty or
  2426  	// default values are omitted from API requests. See
  2427  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2428  	// details.
  2429  	ForceSendFields []string `json:"-"`
  2430  	// NullFields is a list of field names (e.g. "BareMetalAdminClusterId") to
  2431  	// include in API requests with the JSON null value. By default, fields with
  2432  	// empty values are omitted from API requests. See
  2433  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2434  	NullFields []string `json:"-"`
  2435  }
  2436  
  2437  func (s *EnrollBareMetalAdminClusterRequest) MarshalJSON() ([]byte, error) {
  2438  	type NoMethod EnrollBareMetalAdminClusterRequest
  2439  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2440  }
  2441  
  2442  // EnrollBareMetalClusterRequest: Message for enrolling an existing bare metal
  2443  // cluster to the Anthos On-Prem API.
  2444  type EnrollBareMetalClusterRequest struct {
  2445  	// AdminClusterMembership: Required. The admin cluster this bare metal user
  2446  	// cluster belongs to. This is the full resource name of the admin cluster's
  2447  	// fleet membership. In the future, references to other resource types might be
  2448  	// allowed if admin clusters are modeled as their own resources.
  2449  	AdminClusterMembership string `json:"adminClusterMembership,omitempty"`
  2450  	// BareMetalClusterId: User provided OnePlatform identifier that is used as
  2451  	// part of the resource name. This must be unique among all bare metal clusters
  2452  	// within a project and location and will return a 409 if the cluster already
  2453  	// exists. (https://tools.ietf.org/html/rfc1123) format.
  2454  	BareMetalClusterId string `json:"bareMetalClusterId,omitempty"`
  2455  	// LocalName: Optional. The object name of the bare metal cluster custom
  2456  	// resource on the associated admin cluster. This field is used to support
  2457  	// conflicting resource names when enrolling existing clusters to the API. When
  2458  	// not provided, this field will resolve to the bare_metal_cluster_id.
  2459  	// Otherwise, it must match the object name of the bare metal cluster custom
  2460  	// resource. It is not modifiable outside / beyond the enrollment operation.
  2461  	LocalName string `json:"localName,omitempty"`
  2462  	// ForceSendFields is a list of field names (e.g. "AdminClusterMembership") to
  2463  	// unconditionally include in API requests. By default, fields with empty or
  2464  	// default values are omitted from API requests. See
  2465  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2466  	// details.
  2467  	ForceSendFields []string `json:"-"`
  2468  	// NullFields is a list of field names (e.g. "AdminClusterMembership") to
  2469  	// include in API requests with the JSON null value. By default, fields with
  2470  	// empty values are omitted from API requests. See
  2471  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2472  	NullFields []string `json:"-"`
  2473  }
  2474  
  2475  func (s *EnrollBareMetalClusterRequest) MarshalJSON() ([]byte, error) {
  2476  	type NoMethod EnrollBareMetalClusterRequest
  2477  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2478  }
  2479  
  2480  // EnrollBareMetalNodePoolRequest: Message for enrolling an existing bare metal
  2481  // node pool to the GKE on-prem API.
  2482  type EnrollBareMetalNodePoolRequest struct {
  2483  	// BareMetalNodePoolId: User provided OnePlatform identifier that is used as
  2484  	// part of the resource name. (https://tools.ietf.org/html/rfc1123) format.
  2485  	BareMetalNodePoolId string `json:"bareMetalNodePoolId,omitempty"`
  2486  	// ValidateOnly: If set, only validate the request, but do not actually enroll
  2487  	// the node pool.
  2488  	ValidateOnly bool `json:"validateOnly,omitempty"`
  2489  	// ForceSendFields is a list of field names (e.g. "BareMetalNodePoolId") to
  2490  	// unconditionally include in API requests. By default, fields with empty or
  2491  	// default values are omitted from API requests. See
  2492  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2493  	// details.
  2494  	ForceSendFields []string `json:"-"`
  2495  	// NullFields is a list of field names (e.g. "BareMetalNodePoolId") to include
  2496  	// in API requests with the JSON null value. By default, fields with empty
  2497  	// values are omitted from API requests. See
  2498  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2499  	NullFields []string `json:"-"`
  2500  }
  2501  
  2502  func (s *EnrollBareMetalNodePoolRequest) MarshalJSON() ([]byte, error) {
  2503  	type NoMethod EnrollBareMetalNodePoolRequest
  2504  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2505  }
  2506  
  2507  // EnrollVmwareAdminClusterRequest: Message for enrolling an existing VMware
  2508  // admin cluster to the GKE on-prem API.
  2509  type EnrollVmwareAdminClusterRequest struct {
  2510  	// Membership: Required. This is the full resource name of this admin cluster's
  2511  	// fleet membership.
  2512  	Membership string `json:"membership,omitempty"`
  2513  	// VmwareAdminClusterId: User provided OnePlatform identifier that is used as
  2514  	// part of the resource name. This must be unique among all GKE on-prem
  2515  	// clusters within a project and location and will return a 409 if the cluster
  2516  	// already exists. (https://tools.ietf.org/html/rfc1123) format.
  2517  	VmwareAdminClusterId string `json:"vmwareAdminClusterId,omitempty"`
  2518  	// ForceSendFields is a list of field names (e.g. "Membership") to
  2519  	// unconditionally include in API requests. By default, fields with empty or
  2520  	// default values are omitted from API requests. See
  2521  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2522  	// details.
  2523  	ForceSendFields []string `json:"-"`
  2524  	// NullFields is a list of field names (e.g. "Membership") to include in API
  2525  	// requests with the JSON null value. By default, fields with empty values are
  2526  	// omitted from API requests. See
  2527  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2528  	NullFields []string `json:"-"`
  2529  }
  2530  
  2531  func (s *EnrollVmwareAdminClusterRequest) MarshalJSON() ([]byte, error) {
  2532  	type NoMethod EnrollVmwareAdminClusterRequest
  2533  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2534  }
  2535  
  2536  // EnrollVmwareClusterRequest: Message for enrolling an existing VMware cluster
  2537  // to the Anthos On-Prem API.
  2538  type EnrollVmwareClusterRequest struct {
  2539  	// AdminClusterMembership: Required. The admin cluster this VMware user cluster
  2540  	// belongs to. This is the full resource name of the admin cluster's fleet
  2541  	// membership. In the future, references to other resource types might be
  2542  	// allowed if admin clusters are modeled as their own resources.
  2543  	AdminClusterMembership string `json:"adminClusterMembership,omitempty"`
  2544  	// LocalName: Optional. The object name of the VMware OnPremUserCluster custom
  2545  	// resource on the associated admin cluster. This field is used to support
  2546  	// conflicting resource names when enrolling existing clusters to the API. When
  2547  	// not provided, this field will resolve to the vmware_cluster_id. Otherwise,
  2548  	// it must match the object name of the VMware OnPremUserCluster custom
  2549  	// resource. It is not modifiable outside / beyond the enrollment operation.
  2550  	LocalName string `json:"localName,omitempty"`
  2551  	// ValidateOnly: Validate the request without actually doing any updates.
  2552  	ValidateOnly bool `json:"validateOnly,omitempty"`
  2553  	// VmwareClusterId: User provided OnePlatform identifier that is used as part
  2554  	// of the resource name. This must be unique among all GKE on-prem clusters
  2555  	// within a project and location and will return a 409 if the cluster already
  2556  	// exists. (https://tools.ietf.org/html/rfc1123) format.
  2557  	VmwareClusterId string `json:"vmwareClusterId,omitempty"`
  2558  	// ForceSendFields is a list of field names (e.g. "AdminClusterMembership") to
  2559  	// unconditionally include in API requests. By default, fields with empty or
  2560  	// default values are omitted from API requests. See
  2561  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2562  	// details.
  2563  	ForceSendFields []string `json:"-"`
  2564  	// NullFields is a list of field names (e.g. "AdminClusterMembership") to
  2565  	// include in API requests with the JSON null value. By default, fields with
  2566  	// empty values are omitted from API requests. See
  2567  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2568  	NullFields []string `json:"-"`
  2569  }
  2570  
  2571  func (s *EnrollVmwareClusterRequest) MarshalJSON() ([]byte, error) {
  2572  	type NoMethod EnrollVmwareClusterRequest
  2573  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2574  }
  2575  
  2576  // EnrollVmwareNodePoolRequest: Message for enrolling a VMware node pool.
  2577  type EnrollVmwareNodePoolRequest struct {
  2578  	// VmwareNodePoolId: The target node pool id to be enrolled.
  2579  	VmwareNodePoolId string `json:"vmwareNodePoolId,omitempty"`
  2580  	// ForceSendFields is a list of field names (e.g. "VmwareNodePoolId") to
  2581  	// unconditionally include in API requests. By default, fields with empty or
  2582  	// default values are omitted from API requests. See
  2583  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2584  	// details.
  2585  	ForceSendFields []string `json:"-"`
  2586  	// NullFields is a list of field names (e.g. "VmwareNodePoolId") to include in
  2587  	// API requests with the JSON null value. By default, fields with empty values
  2588  	// are omitted from API requests. See
  2589  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2590  	NullFields []string `json:"-"`
  2591  }
  2592  
  2593  func (s *EnrollVmwareNodePoolRequest) MarshalJSON() ([]byte, error) {
  2594  	type NoMethod EnrollVmwareNodePoolRequest
  2595  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2596  }
  2597  
  2598  // Expr: Represents a textual expression in the Common Expression Language
  2599  // (CEL) syntax. CEL is a C-like expression language. The syntax and semantics
  2600  // of CEL are documented at https://github.com/google/cel-spec. Example
  2601  // (Comparison): title: "Summary size limit" description: "Determines if a
  2602  // summary is less than 100 chars" expression: "document.summary.size() < 100"
  2603  // Example (Equality): title: "Requestor is owner" description: "Determines if
  2604  // requestor is the document owner" expression: "document.owner ==
  2605  // request.auth.claims.email" Example (Logic): title: "Public documents"
  2606  // description: "Determine whether the document should be publicly visible"
  2607  // expression: "document.type != 'private' && document.type != 'internal'"
  2608  // Example (Data Manipulation): title: "Notification string" description:
  2609  // "Create a notification string with a timestamp." expression: "'New message
  2610  // received at ' + string(document.create_time)" The exact variables and
  2611  // functions that may be referenced within an expression are determined by the
  2612  // service that evaluates it. See the service documentation for additional
  2613  // information.
  2614  type Expr struct {
  2615  	// Description: Optional. Description of the expression. This is a longer text
  2616  	// which describes the expression, e.g. when hovered over it in a UI.
  2617  	Description string `json:"description,omitempty"`
  2618  	// Expression: Textual representation of an expression in Common Expression
  2619  	// Language syntax.
  2620  	Expression string `json:"expression,omitempty"`
  2621  	// Location: Optional. String indicating the location of the expression for
  2622  	// error reporting, e.g. a file name and a position in the file.
  2623  	Location string `json:"location,omitempty"`
  2624  	// Title: Optional. Title for the expression, i.e. a short string describing
  2625  	// its purpose. This can be used e.g. in UIs which allow to enter the
  2626  	// expression.
  2627  	Title string `json:"title,omitempty"`
  2628  	// ForceSendFields is a list of field names (e.g. "Description") to
  2629  	// unconditionally include in API requests. By default, fields with empty or
  2630  	// default values are omitted from API requests. See
  2631  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2632  	// details.
  2633  	ForceSendFields []string `json:"-"`
  2634  	// NullFields is a list of field names (e.g. "Description") to include in API
  2635  	// requests with the JSON null value. By default, fields with empty values are
  2636  	// omitted from API requests. See
  2637  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2638  	NullFields []string `json:"-"`
  2639  }
  2640  
  2641  func (s *Expr) MarshalJSON() ([]byte, error) {
  2642  	type NoMethod Expr
  2643  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2644  }
  2645  
  2646  // Fleet: Fleet related configuration. Fleets are a Google Cloud concept for
  2647  // logically organizing clusters, letting you use and manage multi-cluster
  2648  // capabilities and apply consistent policies across your systems. See Anthos
  2649  // Fleets (`https://cloud.google.com/anthos/multicluster-management/fleets`)
  2650  // for more details on Anthos multi-cluster capabilities using Fleets. ##
  2651  type Fleet struct {
  2652  	// Membership: Output only. The name of the managed fleet Membership resource
  2653  	// associated to this cluster. Membership names are formatted as
  2654  	// `projects//locations//memberships/`.
  2655  	Membership string `json:"membership,omitempty"`
  2656  	// ForceSendFields is a list of field names (e.g. "Membership") to
  2657  	// unconditionally include in API requests. By default, fields with empty or
  2658  	// default values are omitted from API requests. See
  2659  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2660  	// details.
  2661  	ForceSendFields []string `json:"-"`
  2662  	// NullFields is a list of field names (e.g. "Membership") to include in API
  2663  	// requests with the JSON null value. By default, fields with empty values are
  2664  	// omitted from API requests. See
  2665  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2666  	NullFields []string `json:"-"`
  2667  }
  2668  
  2669  func (s *Fleet) MarshalJSON() ([]byte, error) {
  2670  	type NoMethod Fleet
  2671  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2672  }
  2673  
  2674  // ListBareMetalAdminClustersResponse: Response message for listing bare metal
  2675  // admin clusters.
  2676  type ListBareMetalAdminClustersResponse struct {
  2677  	// BareMetalAdminClusters: The list of bare metal admin cluster.
  2678  	BareMetalAdminClusters []*BareMetalAdminCluster `json:"bareMetalAdminClusters,omitempty"`
  2679  	// NextPageToken: A token identifying a page of results the server should
  2680  	// return. If the token is not empty this means that more results are available
  2681  	// and should be retrieved by repeating the request with the provided page
  2682  	// token.
  2683  	NextPageToken string `json:"nextPageToken,omitempty"`
  2684  	// Unreachable: Locations that could not be reached.
  2685  	Unreachable []string `json:"unreachable,omitempty"`
  2686  
  2687  	// ServerResponse contains the HTTP response code and headers from the server.
  2688  	googleapi.ServerResponse `json:"-"`
  2689  	// ForceSendFields is a list of field names (e.g. "BareMetalAdminClusters") to
  2690  	// unconditionally include in API requests. By default, fields with empty or
  2691  	// default values are omitted from API requests. See
  2692  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2693  	// details.
  2694  	ForceSendFields []string `json:"-"`
  2695  	// NullFields is a list of field names (e.g. "BareMetalAdminClusters") to
  2696  	// include in API requests with the JSON null value. By default, fields with
  2697  	// empty values are omitted from API requests. See
  2698  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2699  	NullFields []string `json:"-"`
  2700  }
  2701  
  2702  func (s *ListBareMetalAdminClustersResponse) MarshalJSON() ([]byte, error) {
  2703  	type NoMethod ListBareMetalAdminClustersResponse
  2704  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2705  }
  2706  
  2707  // ListBareMetalClustersResponse: Response message for listing bare metal
  2708  // Clusters.
  2709  type ListBareMetalClustersResponse struct {
  2710  	// BareMetalClusters: The list of bare metal Clusters.
  2711  	BareMetalClusters []*BareMetalCluster `json:"bareMetalClusters,omitempty"`
  2712  	// NextPageToken: A token identifying a page of results the server should
  2713  	// return. If the token is not empty this means that more results are available
  2714  	// and should be retrieved by repeating the request with the provided page
  2715  	// token.
  2716  	NextPageToken string `json:"nextPageToken,omitempty"`
  2717  	// Unreachable: Locations that could not be reached.
  2718  	Unreachable []string `json:"unreachable,omitempty"`
  2719  
  2720  	// ServerResponse contains the HTTP response code and headers from the server.
  2721  	googleapi.ServerResponse `json:"-"`
  2722  	// ForceSendFields is a list of field names (e.g. "BareMetalClusters") to
  2723  	// unconditionally include in API requests. By default, fields with empty or
  2724  	// default values are omitted from API requests. See
  2725  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2726  	// details.
  2727  	ForceSendFields []string `json:"-"`
  2728  	// NullFields is a list of field names (e.g. "BareMetalClusters") to include in
  2729  	// API requests with the JSON null value. By default, fields with empty values
  2730  	// are omitted from API requests. See
  2731  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2732  	NullFields []string `json:"-"`
  2733  }
  2734  
  2735  func (s *ListBareMetalClustersResponse) MarshalJSON() ([]byte, error) {
  2736  	type NoMethod ListBareMetalClustersResponse
  2737  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2738  }
  2739  
  2740  // ListBareMetalNodePoolsResponse: Response message for listing bare metal node
  2741  // pools.
  2742  type ListBareMetalNodePoolsResponse struct {
  2743  	// BareMetalNodePools: The node pools from the specified parent resource.
  2744  	BareMetalNodePools []*BareMetalNodePool `json:"bareMetalNodePools,omitempty"`
  2745  	// NextPageToken: A token, which can be sent as `page_token` to retrieve the
  2746  	// next page. If this field is omitted, there are no subsequent pages.
  2747  	NextPageToken string `json:"nextPageToken,omitempty"`
  2748  	// Unreachable: Locations that could not be reached.
  2749  	Unreachable []string `json:"unreachable,omitempty"`
  2750  
  2751  	// ServerResponse contains the HTTP response code and headers from the server.
  2752  	googleapi.ServerResponse `json:"-"`
  2753  	// ForceSendFields is a list of field names (e.g. "BareMetalNodePools") to
  2754  	// unconditionally include in API requests. By default, fields with empty or
  2755  	// default values are omitted from API requests. See
  2756  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2757  	// details.
  2758  	ForceSendFields []string `json:"-"`
  2759  	// NullFields is a list of field names (e.g. "BareMetalNodePools") to include
  2760  	// in API requests with the JSON null value. By default, fields with empty
  2761  	// values are omitted from API requests. See
  2762  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2763  	NullFields []string `json:"-"`
  2764  }
  2765  
  2766  func (s *ListBareMetalNodePoolsResponse) MarshalJSON() ([]byte, error) {
  2767  	type NoMethod ListBareMetalNodePoolsResponse
  2768  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2769  }
  2770  
  2771  // ListLocationsResponse: The response message for Locations.ListLocations.
  2772  type ListLocationsResponse struct {
  2773  	// Locations: A list of locations that matches the specified filter in the
  2774  	// request.
  2775  	Locations []*Location `json:"locations,omitempty"`
  2776  	// NextPageToken: The standard List next-page token.
  2777  	NextPageToken string `json:"nextPageToken,omitempty"`
  2778  
  2779  	// ServerResponse contains the HTTP response code and headers from the server.
  2780  	googleapi.ServerResponse `json:"-"`
  2781  	// ForceSendFields is a list of field names (e.g. "Locations") to
  2782  	// unconditionally include in API requests. By default, fields with empty or
  2783  	// default values are omitted from API requests. See
  2784  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2785  	// details.
  2786  	ForceSendFields []string `json:"-"`
  2787  	// NullFields is a list of field names (e.g. "Locations") to include in API
  2788  	// requests with the JSON null value. By default, fields with empty values are
  2789  	// omitted from API requests. See
  2790  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2791  	NullFields []string `json:"-"`
  2792  }
  2793  
  2794  func (s *ListLocationsResponse) MarshalJSON() ([]byte, error) {
  2795  	type NoMethod ListLocationsResponse
  2796  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2797  }
  2798  
  2799  // ListOperationsResponse: The response message for Operations.ListOperations.
  2800  type ListOperationsResponse struct {
  2801  	// NextPageToken: The standard List next-page token.
  2802  	NextPageToken string `json:"nextPageToken,omitempty"`
  2803  	// Operations: A list of operations that matches the specified filter in the
  2804  	// request.
  2805  	Operations []*Operation `json:"operations,omitempty"`
  2806  
  2807  	// ServerResponse contains the HTTP response code and headers from the server.
  2808  	googleapi.ServerResponse `json:"-"`
  2809  	// ForceSendFields is a list of field names (e.g. "NextPageToken") 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. "NextPageToken") 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 *ListOperationsResponse) MarshalJSON() ([]byte, error) {
  2823  	type NoMethod ListOperationsResponse
  2824  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2825  }
  2826  
  2827  // ListVmwareAdminClustersResponse: Response message for listing VMware admin
  2828  // clusters.
  2829  type ListVmwareAdminClustersResponse struct {
  2830  	// NextPageToken: A token identifying a page of results the server should
  2831  	// return. If the token is not empty this means that more results are available
  2832  	// and should be retrieved by repeating the request with the provided page
  2833  	// token.
  2834  	NextPageToken string `json:"nextPageToken,omitempty"`
  2835  	// Unreachable: Locations that could not be reached.
  2836  	Unreachable []string `json:"unreachable,omitempty"`
  2837  	// VmwareAdminClusters: The list of VMware admin cluster.
  2838  	VmwareAdminClusters []*VmwareAdminCluster `json:"vmwareAdminClusters,omitempty"`
  2839  
  2840  	// ServerResponse contains the HTTP response code and headers from the server.
  2841  	googleapi.ServerResponse `json:"-"`
  2842  	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
  2843  	// unconditionally include in API requests. By default, fields with empty or
  2844  	// default values are omitted from API requests. See
  2845  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2846  	// details.
  2847  	ForceSendFields []string `json:"-"`
  2848  	// NullFields is a list of field names (e.g. "NextPageToken") to include in API
  2849  	// requests with the JSON null value. By default, fields with empty values are
  2850  	// omitted from API requests. See
  2851  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2852  	NullFields []string `json:"-"`
  2853  }
  2854  
  2855  func (s *ListVmwareAdminClustersResponse) MarshalJSON() ([]byte, error) {
  2856  	type NoMethod ListVmwareAdminClustersResponse
  2857  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2858  }
  2859  
  2860  // ListVmwareClustersResponse: Response message for listing VMware Clusters.
  2861  type ListVmwareClustersResponse struct {
  2862  	// NextPageToken: A token identifying a page of results the server should
  2863  	// return. If the token is not empty this means that more results are available
  2864  	// and should be retrieved by repeating the request with the provided page
  2865  	// token.
  2866  	NextPageToken string `json:"nextPageToken,omitempty"`
  2867  	// Unreachable: Locations that could not be reached.
  2868  	Unreachable []string `json:"unreachable,omitempty"`
  2869  	// VmwareClusters: The list of VMware Cluster.
  2870  	VmwareClusters []*VmwareCluster `json:"vmwareClusters,omitempty"`
  2871  
  2872  	// ServerResponse contains the HTTP response code and headers from the server.
  2873  	googleapi.ServerResponse `json:"-"`
  2874  	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
  2875  	// unconditionally include in API requests. By default, fields with empty or
  2876  	// default values are omitted from API requests. See
  2877  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2878  	// details.
  2879  	ForceSendFields []string `json:"-"`
  2880  	// NullFields is a list of field names (e.g. "NextPageToken") to include in API
  2881  	// requests with the JSON null value. By default, fields with empty values are
  2882  	// omitted from API requests. See
  2883  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2884  	NullFields []string `json:"-"`
  2885  }
  2886  
  2887  func (s *ListVmwareClustersResponse) MarshalJSON() ([]byte, error) {
  2888  	type NoMethod ListVmwareClustersResponse
  2889  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2890  }
  2891  
  2892  // ListVmwareNodePoolsResponse: Response message for listing VMware node pools.
  2893  type ListVmwareNodePoolsResponse struct {
  2894  	// NextPageToken: A token, which can be sent as `page_token` to retrieve the
  2895  	// next page. If this field is omitted, there are no subsequent pages.
  2896  	NextPageToken string `json:"nextPageToken,omitempty"`
  2897  	// Unreachable: Locations that could not be reached.
  2898  	Unreachable []string `json:"unreachable,omitempty"`
  2899  	// VmwareNodePools: The node pools from the specified parent resource.
  2900  	VmwareNodePools []*VmwareNodePool `json:"vmwareNodePools,omitempty"`
  2901  
  2902  	// ServerResponse contains the HTTP response code and headers from the server.
  2903  	googleapi.ServerResponse `json:"-"`
  2904  	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
  2905  	// unconditionally include in API requests. By default, fields with empty or
  2906  	// default values are omitted from API requests. See
  2907  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2908  	// details.
  2909  	ForceSendFields []string `json:"-"`
  2910  	// NullFields is a list of field names (e.g. "NextPageToken") to include in API
  2911  	// requests with the JSON null value. By default, fields with empty values are
  2912  	// omitted from API requests. See
  2913  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2914  	NullFields []string `json:"-"`
  2915  }
  2916  
  2917  func (s *ListVmwareNodePoolsResponse) MarshalJSON() ([]byte, error) {
  2918  	type NoMethod ListVmwareNodePoolsResponse
  2919  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2920  }
  2921  
  2922  // Location: A resource that represents a Google Cloud location.
  2923  type Location struct {
  2924  	// DisplayName: The friendly name for this location, typically a nearby city
  2925  	// name. For example, "Tokyo".
  2926  	DisplayName string `json:"displayName,omitempty"`
  2927  	// Labels: Cross-service attributes for the location. For example
  2928  	// {"cloud.googleapis.com/region": "us-east1"}
  2929  	Labels map[string]string `json:"labels,omitempty"`
  2930  	// LocationId: The canonical id for this location. For example: "us-east1".
  2931  	LocationId string `json:"locationId,omitempty"`
  2932  	// Metadata: Service-specific metadata. For example the available capacity at
  2933  	// the given location.
  2934  	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
  2935  	// Name: Resource name for the location, which may vary between
  2936  	// implementations. For example:
  2937  	// "projects/example-project/locations/us-east1"
  2938  	Name string `json:"name,omitempty"`
  2939  
  2940  	// ServerResponse contains the HTTP response code and headers from the server.
  2941  	googleapi.ServerResponse `json:"-"`
  2942  	// ForceSendFields is a list of field names (e.g. "DisplayName") to
  2943  	// unconditionally include in API requests. By default, fields with empty or
  2944  	// default values are omitted from API requests. See
  2945  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2946  	// details.
  2947  	ForceSendFields []string `json:"-"`
  2948  	// NullFields is a list of field names (e.g. "DisplayName") to include in API
  2949  	// requests with the JSON null value. By default, fields with empty values are
  2950  	// omitted from API requests. See
  2951  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2952  	NullFields []string `json:"-"`
  2953  }
  2954  
  2955  func (s *Location) MarshalJSON() ([]byte, error) {
  2956  	type NoMethod Location
  2957  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2958  }
  2959  
  2960  // Metric: Progress metric is (string, int|float|string) pair.
  2961  type Metric struct {
  2962  	// DoubleValue: For metrics with floating point value.
  2963  	DoubleValue float64 `json:"doubleValue,omitempty"`
  2964  	// IntValue: For metrics with integer value.
  2965  	IntValue int64 `json:"intValue,omitempty,string"`
  2966  	// Metric: Required. The metric name.
  2967  	//
  2968  	// Possible values:
  2969  	//   "METRIC_ID_UNSPECIFIED" - Not set.
  2970  	//   "NODES_TOTAL" - The total number of nodes being actuated.
  2971  	//   "NODES_DRAINING" - The number of nodes draining.
  2972  	//   "NODES_UPGRADING" - The number of nodes actively upgrading.
  2973  	//   "NODES_PENDING_UPGRADE" - The number of nodes to be upgraded.
  2974  	//   "NODES_UPGRADED" - The number of nodes upgraded.
  2975  	//   "NODES_FAILED" - The number of nodes to fail actuation.
  2976  	//   "NODES_HEALTHY" - The number of nodes healthy.
  2977  	//   "NODES_RECONCILING" - The number of nodes reconciling.
  2978  	//   "NODES_IN_MAINTENANCE" - The number of nodes in maintenance mode.
  2979  	//   "PREFLIGHTS_COMPLETED" - The number of completed preflight checks.
  2980  	//   "PREFLIGHTS_RUNNING" - The number of preflight checks running.
  2981  	//   "PREFLIGHTS_FAILED" - The number of preflight checks failed.
  2982  	//   "PREFLIGHTS_TOTAL" - The total number of preflight checks.
  2983  	Metric string `json:"metric,omitempty"`
  2984  	// StringValue: For metrics with custom values (ratios, visual progress, etc.).
  2985  	StringValue string `json:"stringValue,omitempty"`
  2986  	// ForceSendFields is a list of field names (e.g. "DoubleValue") to
  2987  	// unconditionally include in API requests. By default, fields with empty or
  2988  	// default values are omitted from API requests. See
  2989  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2990  	// details.
  2991  	ForceSendFields []string `json:"-"`
  2992  	// NullFields is a list of field names (e.g. "DoubleValue") to include in API
  2993  	// requests with the JSON null value. By default, fields with empty values are
  2994  	// omitted from API requests. See
  2995  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2996  	NullFields []string `json:"-"`
  2997  }
  2998  
  2999  func (s *Metric) MarshalJSON() ([]byte, error) {
  3000  	type NoMethod Metric
  3001  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3002  }
  3003  
  3004  func (s *Metric) UnmarshalJSON(data []byte) error {
  3005  	type NoMethod Metric
  3006  	var s1 struct {
  3007  		DoubleValue gensupport.JSONFloat64 `json:"doubleValue"`
  3008  		*NoMethod
  3009  	}
  3010  	s1.NoMethod = (*NoMethod)(s)
  3011  	if err := json.Unmarshal(data, &s1); err != nil {
  3012  		return err
  3013  	}
  3014  	s.DoubleValue = float64(s1.DoubleValue)
  3015  	return nil
  3016  }
  3017  
  3018  // NodeTaint: NodeTaint applied to every Kubernetes node in a node pool.
  3019  // Kubernetes taints can be used together with tolerations to control how
  3020  // workloads are scheduled to your nodes. Node taints are permanent.
  3021  type NodeTaint struct {
  3022  	// Effect: The taint effect.
  3023  	//
  3024  	// Possible values:
  3025  	//   "EFFECT_UNSPECIFIED" - Not set.
  3026  	//   "NO_SCHEDULE" - Do not allow new pods to schedule onto the node unless
  3027  	// they tolerate the taint, but allow all pods submitted to Kubelet without
  3028  	// going through the scheduler to start, and allow all already-running pods to
  3029  	// continue running. Enforced by the scheduler.
  3030  	//   "PREFER_NO_SCHEDULE" - Like TaintEffectNoSchedule, but the scheduler tries
  3031  	// not to schedule new pods onto the node, rather than prohibiting new pods
  3032  	// from scheduling onto the node entirely. Enforced by the scheduler.
  3033  	//   "NO_EXECUTE" - Evict any already-running pods that do not tolerate the
  3034  	// taint. Currently enforced by NodeController.
  3035  	Effect string `json:"effect,omitempty"`
  3036  	// Key: Key associated with the effect.
  3037  	Key string `json:"key,omitempty"`
  3038  	// Value: Value associated with the effect.
  3039  	Value string `json:"value,omitempty"`
  3040  	// ForceSendFields is a list of field names (e.g. "Effect") to unconditionally
  3041  	// include in API requests. By default, fields with empty or default values are
  3042  	// omitted from API requests. See
  3043  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3044  	// details.
  3045  	ForceSendFields []string `json:"-"`
  3046  	// NullFields is a list of field names (e.g. "Effect") to include in API
  3047  	// requests with the JSON null value. By default, fields with empty values are
  3048  	// omitted from API requests. See
  3049  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3050  	NullFields []string `json:"-"`
  3051  }
  3052  
  3053  func (s *NodeTaint) MarshalJSON() ([]byte, error) {
  3054  	type NoMethod NodeTaint
  3055  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3056  }
  3057  
  3058  // Operation: This resource represents a long-running operation that is the
  3059  // result of a network API call.
  3060  type Operation struct {
  3061  	// Done: If the value is `false`, it means the operation is still in progress.
  3062  	// If `true`, the operation is completed, and either `error` or `response` is
  3063  	// available.
  3064  	Done bool `json:"done,omitempty"`
  3065  	// Error: The error result of the operation in case of failure or cancellation.
  3066  	Error *Status `json:"error,omitempty"`
  3067  	// Metadata: Service-specific metadata associated with the operation. It
  3068  	// typically contains progress information and common metadata such as create
  3069  	// time. Some services might not provide such metadata. Any method that returns
  3070  	// a long-running operation should document the metadata type, if any.
  3071  	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
  3072  	// Name: The server-assigned name, which is only unique within the same service
  3073  	// that originally returns it. If you use the default HTTP mapping, the `name`
  3074  	// should be a resource name ending with `operations/{unique_id}`.
  3075  	Name string `json:"name,omitempty"`
  3076  	// Response: The normal, successful response of the operation. If the original
  3077  	// method returns no data on success, such as `Delete`, the response is
  3078  	// `google.protobuf.Empty`. If the original method is standard
  3079  	// `Get`/`Create`/`Update`, the response should be the resource. For other
  3080  	// methods, the response should have the type `XxxResponse`, where `Xxx` is the
  3081  	// original method name. For example, if the original method name is
  3082  	// `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
  3083  	Response googleapi.RawMessage `json:"response,omitempty"`
  3084  
  3085  	// ServerResponse contains the HTTP response code and headers from the server.
  3086  	googleapi.ServerResponse `json:"-"`
  3087  	// ForceSendFields is a list of field names (e.g. "Done") to unconditionally
  3088  	// include in API requests. By default, fields with empty or default values are
  3089  	// omitted from API requests. See
  3090  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3091  	// details.
  3092  	ForceSendFields []string `json:"-"`
  3093  	// NullFields is a list of field names (e.g. "Done") to include in API requests
  3094  	// with the JSON null value. By default, fields with empty values are omitted
  3095  	// from API requests. See
  3096  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3097  	NullFields []string `json:"-"`
  3098  }
  3099  
  3100  func (s *Operation) MarshalJSON() ([]byte, error) {
  3101  	type NoMethod Operation
  3102  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3103  }
  3104  
  3105  // OperationMetadata: Represents the metadata of the long-running operation.
  3106  type OperationMetadata struct {
  3107  	// ApiVersion: Output only. API version used to start the operation.
  3108  	ApiVersion string `json:"apiVersion,omitempty"`
  3109  	// ControlPlaneDisconnected: Output only. Denotes if the local managing
  3110  	// cluster's control plane is currently disconnected. This is expected to occur
  3111  	// temporarily during self-managed cluster upgrades.
  3112  	ControlPlaneDisconnected bool `json:"controlPlaneDisconnected,omitempty"`
  3113  	// CreateTime: Output only. The time the operation was created.
  3114  	CreateTime string `json:"createTime,omitempty"`
  3115  	// EndTime: Output only. The time the operation finished running.
  3116  	EndTime string `json:"endTime,omitempty"`
  3117  	// Progress: Output only. Detailed progress information for the operation.
  3118  	Progress *OperationProgress `json:"progress,omitempty"`
  3119  	// RequestedCancellation: Output only. Identifies whether the user has
  3120  	// requested cancellation of the operation. Operations that have successfully
  3121  	// been cancelled have [Operation.error] value with a [google.rpc.Status.code]
  3122  	// of 1, corresponding to `Code.CANCELLED`.
  3123  	RequestedCancellation bool `json:"requestedCancellation,omitempty"`
  3124  	// StatusMessage: Output only. Human-readable status of the operation, if any.
  3125  	StatusMessage string `json:"statusMessage,omitempty"`
  3126  	// Target: Output only. Server-defined resource path for the target of the
  3127  	// operation.
  3128  	Target string `json:"target,omitempty"`
  3129  	// Type: Output only. Type of operation being executed.
  3130  	//
  3131  	// Possible values:
  3132  	//   "OPERATION_TYPE_UNSPECIFIED" - Not set.
  3133  	//   "CREATE" - The resource is being created.
  3134  	//   "DELETE" - The resource is being deleted.
  3135  	//   "UPDATE" - The resource is being updated.
  3136  	//   "UPGRADE" - The resource is being upgraded.
  3137  	//   "PLATFORM_UPGRADE" - The platform is being upgraded.
  3138  	Type string `json:"type,omitempty"`
  3139  	// Verb: Output only. Name of the verb executed by the operation.
  3140  	Verb string `json:"verb,omitempty"`
  3141  	// ForceSendFields is a list of field names (e.g. "ApiVersion") to
  3142  	// unconditionally include in API requests. By default, fields with empty or
  3143  	// default values are omitted from API requests. See
  3144  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3145  	// details.
  3146  	ForceSendFields []string `json:"-"`
  3147  	// NullFields is a list of field names (e.g. "ApiVersion") to include in API
  3148  	// requests with the JSON null value. By default, fields with empty values are
  3149  	// omitted from API requests. See
  3150  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3151  	NullFields []string `json:"-"`
  3152  }
  3153  
  3154  func (s *OperationMetadata) MarshalJSON() ([]byte, error) {
  3155  	type NoMethod OperationMetadata
  3156  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3157  }
  3158  
  3159  // OperationProgress: Information about operation progress.
  3160  type OperationProgress struct {
  3161  	// Stages: The stages of the operation.
  3162  	Stages []*OperationStage `json:"stages,omitempty"`
  3163  	// ForceSendFields is a list of field names (e.g. "Stages") to unconditionally
  3164  	// include in API requests. By default, fields with empty or default values are
  3165  	// omitted from API requests. See
  3166  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3167  	// details.
  3168  	ForceSendFields []string `json:"-"`
  3169  	// NullFields is a list of field names (e.g. "Stages") to include in API
  3170  	// requests with the JSON null value. By default, fields with empty values are
  3171  	// omitted from API requests. See
  3172  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3173  	NullFields []string `json:"-"`
  3174  }
  3175  
  3176  func (s *OperationProgress) MarshalJSON() ([]byte, error) {
  3177  	type NoMethod OperationProgress
  3178  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3179  }
  3180  
  3181  // OperationStage: Information about a particular stage of an operation.
  3182  type OperationStage struct {
  3183  	// EndTime: Time the stage ended.
  3184  	EndTime string `json:"endTime,omitempty"`
  3185  	// Metrics: Progress metric bundle.
  3186  	Metrics []*Metric `json:"metrics,omitempty"`
  3187  	// Stage: The high-level stage of the operation.
  3188  	//
  3189  	// Possible values:
  3190  	//   "STAGE_UNSPECIFIED" - Not set.
  3191  	//   "PREFLIGHT_CHECK" - Preflight checks are running.
  3192  	//   "CONFIGURE" - Resource is being configured.
  3193  	//   "DEPLOY" - Resource is being deployed.
  3194  	//   "HEALTH_CHECK" - Waiting for the resource to become healthy.
  3195  	//   "UPDATE" - Resource is being updated.
  3196  	Stage string `json:"stage,omitempty"`
  3197  	// StartTime: Time the stage started.
  3198  	StartTime string `json:"startTime,omitempty"`
  3199  	// State: Output only. State of the stage.
  3200  	//
  3201  	// Possible values:
  3202  	//   "STATE_UNSPECIFIED" - Not set.
  3203  	//   "PENDING" - The stage is pending.
  3204  	//   "RUNNING" - The stage is running
  3205  	//   "SUCCEEDED" - The stage has completed successfully.
  3206  	//   "FAILED" - The stage has failed.
  3207  	State string `json:"state,omitempty"`
  3208  	// ForceSendFields is a list of field names (e.g. "EndTime") to unconditionally
  3209  	// include in API requests. By default, fields with empty or default values are
  3210  	// omitted from API requests. See
  3211  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3212  	// details.
  3213  	ForceSendFields []string `json:"-"`
  3214  	// NullFields is a list of field names (e.g. "EndTime") to include in API
  3215  	// requests with the JSON null value. By default, fields with empty values are
  3216  	// omitted from API requests. See
  3217  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3218  	NullFields []string `json:"-"`
  3219  }
  3220  
  3221  func (s *OperationStage) MarshalJSON() ([]byte, error) {
  3222  	type NoMethod OperationStage
  3223  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3224  }
  3225  
  3226  // Policy: An Identity and Access Management (IAM) policy, which specifies
  3227  // access controls for Google Cloud resources. A `Policy` is a collection of
  3228  // `bindings`. A `binding` binds one or more `members`, or principals, to a
  3229  // single `role`. Principals can be user accounts, service accounts, Google
  3230  // groups, and domains (such as G Suite). A `role` is a named list of
  3231  // permissions; each `role` can be an IAM predefined role or a user-created
  3232  // custom role. For some types of Google Cloud resources, a `binding` can also
  3233  // specify a `condition`, which is a logical expression that allows access to a
  3234  // resource only if the expression evaluates to `true`. A condition can add
  3235  // constraints based on attributes of the request, the resource, or both. To
  3236  // learn which resources support conditions in their IAM policies, see the IAM
  3237  // documentation
  3238  // (https://cloud.google.com/iam/help/conditions/resource-policies). **JSON
  3239  // example:** ``` { "bindings": [ { "role":
  3240  // "roles/resourcemanager.organizationAdmin", "members": [
  3241  // "user:mike@example.com", "group:admins@example.com", "domain:google.com",
  3242  // "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role":
  3243  // "roles/resourcemanager.organizationViewer", "members": [
  3244  // "user:eve@example.com" ], "condition": { "title": "expirable access",
  3245  // "description": "Does not grant access after Sep 2020", "expression":
  3246  // "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag":
  3247  // "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ``` bindings: -
  3248  // members: - user:mike@example.com - group:admins@example.com -
  3249  // domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
  3250  // role: roles/resourcemanager.organizationAdmin - members: -
  3251  // user:eve@example.com role: roles/resourcemanager.organizationViewer
  3252  // condition: title: expirable access description: Does not grant access after
  3253  // Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
  3254  // etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features,
  3255  // see the IAM documentation (https://cloud.google.com/iam/docs/).
  3256  type Policy struct {
  3257  	// Bindings: Associates a list of `members`, or principals, with a `role`.
  3258  	// Optionally, may specify a `condition` that determines how and when the
  3259  	// `bindings` are applied. Each of the `bindings` must contain at least one
  3260  	// principal. The `bindings` in a `Policy` can refer to up to 1,500 principals;
  3261  	// up to 250 of these principals can be Google groups. Each occurrence of a
  3262  	// principal counts towards these limits. For example, if the `bindings` grant
  3263  	// 50 different roles to `user:alice@example.com`, and not to any other
  3264  	// principal, then you can add another 1,450 principals to the `bindings` in
  3265  	// the `Policy`.
  3266  	Bindings []*Binding `json:"bindings,omitempty"`
  3267  	// Etag: `etag` is used for optimistic concurrency control as a way to help
  3268  	// prevent simultaneous updates of a policy from overwriting each other. It is
  3269  	// strongly suggested that systems make use of the `etag` in the
  3270  	// read-modify-write cycle to perform policy updates in order to avoid race
  3271  	// conditions: An `etag` is returned in the response to `getIamPolicy`, and
  3272  	// systems are expected to put that etag in the request to `setIamPolicy` to
  3273  	// ensure that their change will be applied to the same version of the policy.
  3274  	// **Important:** If you use IAM Conditions, you must include the `etag` field
  3275  	// whenever you call `setIamPolicy`. If you omit this field, then IAM allows
  3276  	// you to overwrite a version `3` policy with a version `1` policy, and all of
  3277  	// the conditions in the version `3` policy are lost.
  3278  	Etag string `json:"etag,omitempty"`
  3279  	// Version: Specifies the format of the policy. Valid values are `0`, `1`, and
  3280  	// `3`. Requests that specify an invalid value are rejected. Any operation that
  3281  	// affects conditional role bindings must specify version `3`. This requirement
  3282  	// applies to the following operations: * Getting a policy that includes a
  3283  	// conditional role binding * Adding a conditional role binding to a policy *
  3284  	// Changing a conditional role binding in a policy * Removing any role binding,
  3285  	// with or without a condition, from a policy that includes conditions
  3286  	// **Important:** If you use IAM Conditions, you must include the `etag` field
  3287  	// whenever you call `setIamPolicy`. If you omit this field, then IAM allows
  3288  	// you to overwrite a version `3` policy with a version `1` policy, and all of
  3289  	// the conditions in the version `3` policy are lost. If a policy does not
  3290  	// include any conditions, operations on that policy may specify any valid
  3291  	// version or leave the field unset. To learn which resources support
  3292  	// conditions in their IAM policies, see the IAM documentation
  3293  	// (https://cloud.google.com/iam/help/conditions/resource-policies).
  3294  	Version int64 `json:"version,omitempty"`
  3295  
  3296  	// ServerResponse contains the HTTP response code and headers from the server.
  3297  	googleapi.ServerResponse `json:"-"`
  3298  	// ForceSendFields is a list of field names (e.g. "Bindings") to
  3299  	// unconditionally include in API requests. By default, fields with empty or
  3300  	// default values are omitted from API requests. See
  3301  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3302  	// details.
  3303  	ForceSendFields []string `json:"-"`
  3304  	// NullFields is a list of field names (e.g. "Bindings") to include in API
  3305  	// requests with the JSON null value. By default, fields with empty values are
  3306  	// omitted from API requests. See
  3307  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3308  	NullFields []string `json:"-"`
  3309  }
  3310  
  3311  func (s *Policy) MarshalJSON() ([]byte, error) {
  3312  	type NoMethod Policy
  3313  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3314  }
  3315  
  3316  // QueryBareMetalAdminVersionConfigResponse: Response message for querying bare
  3317  // metal admin cluster version config.
  3318  type QueryBareMetalAdminVersionConfigResponse struct {
  3319  	// Versions: List of available versions to install or to upgrade to.
  3320  	Versions []*BareMetalVersionInfo `json:"versions,omitempty"`
  3321  
  3322  	// ServerResponse contains the HTTP response code and headers from the server.
  3323  	googleapi.ServerResponse `json:"-"`
  3324  	// ForceSendFields is a list of field names (e.g. "Versions") to
  3325  	// unconditionally include in API requests. By default, fields with empty or
  3326  	// default values are omitted from API requests. See
  3327  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3328  	// details.
  3329  	ForceSendFields []string `json:"-"`
  3330  	// NullFields is a list of field names (e.g. "Versions") to include in API
  3331  	// requests with the JSON null value. By default, fields with empty values are
  3332  	// omitted from API requests. See
  3333  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3334  	NullFields []string `json:"-"`
  3335  }
  3336  
  3337  func (s *QueryBareMetalAdminVersionConfigResponse) MarshalJSON() ([]byte, error) {
  3338  	type NoMethod QueryBareMetalAdminVersionConfigResponse
  3339  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3340  }
  3341  
  3342  // QueryBareMetalVersionConfigResponse: Response message for querying bare
  3343  // metal admin cluster version config.
  3344  type QueryBareMetalVersionConfigResponse struct {
  3345  	// Versions: List of available versions to install or to upgrade to.
  3346  	Versions []*BareMetalVersionInfo `json:"versions,omitempty"`
  3347  
  3348  	// ServerResponse contains the HTTP response code and headers from the server.
  3349  	googleapi.ServerResponse `json:"-"`
  3350  	// ForceSendFields is a list of field names (e.g. "Versions") to
  3351  	// unconditionally include in API requests. By default, fields with empty or
  3352  	// default values are omitted from API requests. See
  3353  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3354  	// details.
  3355  	ForceSendFields []string `json:"-"`
  3356  	// NullFields is a list of field names (e.g. "Versions") to include in API
  3357  	// requests with the JSON null value. By default, fields with empty values are
  3358  	// omitted from API requests. See
  3359  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3360  	NullFields []string `json:"-"`
  3361  }
  3362  
  3363  func (s *QueryBareMetalVersionConfigResponse) MarshalJSON() ([]byte, error) {
  3364  	type NoMethod QueryBareMetalVersionConfigResponse
  3365  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3366  }
  3367  
  3368  // QueryVmwareVersionConfigResponse: Response message for querying VMware user
  3369  // cluster version config.
  3370  type QueryVmwareVersionConfigResponse struct {
  3371  	// Versions: List of available versions to install or to upgrade to.
  3372  	Versions []*VmwareVersionInfo `json:"versions,omitempty"`
  3373  
  3374  	// ServerResponse contains the HTTP response code and headers from the server.
  3375  	googleapi.ServerResponse `json:"-"`
  3376  	// ForceSendFields is a list of field names (e.g. "Versions") to
  3377  	// unconditionally include in API requests. By default, fields with empty or
  3378  	// default values are omitted from API requests. See
  3379  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3380  	// details.
  3381  	ForceSendFields []string `json:"-"`
  3382  	// NullFields is a list of field names (e.g. "Versions") to include in API
  3383  	// requests with the JSON null value. By default, fields with empty values are
  3384  	// omitted from API requests. See
  3385  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3386  	NullFields []string `json:"-"`
  3387  }
  3388  
  3389  func (s *QueryVmwareVersionConfigResponse) MarshalJSON() ([]byte, error) {
  3390  	type NoMethod QueryVmwareVersionConfigResponse
  3391  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3392  }
  3393  
  3394  // ResourceCondition: ResourceCondition provides a standard mechanism for
  3395  // higher-level status reporting from controller.
  3396  type ResourceCondition struct {
  3397  	// LastTransitionTime: Last time the condition transit from one status to
  3398  	// another.
  3399  	LastTransitionTime string `json:"lastTransitionTime,omitempty"`
  3400  	// Message: Human-readable message indicating details about last transition.
  3401  	Message string `json:"message,omitempty"`
  3402  	// Reason: Machine-readable message indicating details about last transition.
  3403  	Reason string `json:"reason,omitempty"`
  3404  	// State: state of the condition.
  3405  	//
  3406  	// Possible values:
  3407  	//   "STATE_UNSPECIFIED" - Not set.
  3408  	//   "STATE_TRUE" - Resource is in the condition.
  3409  	//   "STATE_FALSE" - Resource is not in the condition.
  3410  	//   "STATE_UNKNOWN" - Kubernetes controller can't decide if the resource is in
  3411  	// the condition or not.
  3412  	State string `json:"state,omitempty"`
  3413  	// Type: Type of the condition. (e.g., ClusterRunning, NodePoolRunning or
  3414  	// ServerSidePreflightReady)
  3415  	Type string `json:"type,omitempty"`
  3416  	// ForceSendFields is a list of field names (e.g. "LastTransitionTime") to
  3417  	// unconditionally include in API requests. By default, fields with empty or
  3418  	// default values are omitted from API requests. See
  3419  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3420  	// details.
  3421  	ForceSendFields []string `json:"-"`
  3422  	// NullFields is a list of field names (e.g. "LastTransitionTime") to include
  3423  	// in API requests with the JSON null value. By default, fields with empty
  3424  	// values are omitted from API requests. See
  3425  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3426  	NullFields []string `json:"-"`
  3427  }
  3428  
  3429  func (s *ResourceCondition) MarshalJSON() ([]byte, error) {
  3430  	type NoMethod ResourceCondition
  3431  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3432  }
  3433  
  3434  // ResourceStatus: ResourceStatus describes why a cluster or node pool has a
  3435  // certain status. (e.g., ERROR or DEGRADED).
  3436  type ResourceStatus struct {
  3437  	// Conditions: ResourceCondition provide a standard mechanism for higher-level
  3438  	// status reporting from controller.
  3439  	Conditions []*ResourceCondition `json:"conditions,omitempty"`
  3440  	// ErrorMessage: Human-friendly representation of the error message from
  3441  	// controller. The error message can be temporary as the controller controller
  3442  	// creates a cluster or node pool. If the error message persists for a longer
  3443  	// period of time, it can be used to surface error message to indicate real
  3444  	// problems requiring user intervention.
  3445  	ErrorMessage string `json:"errorMessage,omitempty"`
  3446  	// ForceSendFields is a list of field names (e.g. "Conditions") to
  3447  	// unconditionally include in API requests. By default, fields with empty or
  3448  	// default values are omitted from API requests. See
  3449  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3450  	// details.
  3451  	ForceSendFields []string `json:"-"`
  3452  	// NullFields is a list of field names (e.g. "Conditions") to include in API
  3453  	// requests with the JSON null value. By default, fields with empty values are
  3454  	// omitted from API requests. See
  3455  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3456  	NullFields []string `json:"-"`
  3457  }
  3458  
  3459  func (s *ResourceStatus) MarshalJSON() ([]byte, error) {
  3460  	type NoMethod ResourceStatus
  3461  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3462  }
  3463  
  3464  // SetIamPolicyRequest: Request message for `SetIamPolicy` method.
  3465  type SetIamPolicyRequest struct {
  3466  	// Policy: REQUIRED: The complete policy to be applied to the `resource`. The
  3467  	// size of the policy is limited to a few 10s of KB. An empty policy is a valid
  3468  	// policy but certain Google Cloud services (such as Projects) might reject
  3469  	// them.
  3470  	Policy *Policy `json:"policy,omitempty"`
  3471  	// ForceSendFields is a list of field names (e.g. "Policy") to unconditionally
  3472  	// include in API requests. By default, fields with empty or default values are
  3473  	// omitted from API requests. See
  3474  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3475  	// details.
  3476  	ForceSendFields []string `json:"-"`
  3477  	// NullFields is a list of field names (e.g. "Policy") to include in API
  3478  	// requests with the JSON null value. By default, fields with empty values are
  3479  	// omitted from API requests. See
  3480  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3481  	NullFields []string `json:"-"`
  3482  }
  3483  
  3484  func (s *SetIamPolicyRequest) MarshalJSON() ([]byte, error) {
  3485  	type NoMethod SetIamPolicyRequest
  3486  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3487  }
  3488  
  3489  // Status: The `Status` type defines a logical error model that is suitable for
  3490  // different programming environments, including REST APIs and RPC APIs. It is
  3491  // used by gRPC (https://github.com/grpc). Each `Status` message contains three
  3492  // pieces of data: error code, error message, and error details. You can find
  3493  // out more about this error model and how to work with it in the API Design
  3494  // Guide (https://cloud.google.com/apis/design/errors).
  3495  type Status struct {
  3496  	// Code: The status code, which should be an enum value of google.rpc.Code.
  3497  	Code int64 `json:"code,omitempty"`
  3498  	// Details: A list of messages that carry the error details. There is a common
  3499  	// set of message types for APIs to use.
  3500  	Details []googleapi.RawMessage `json:"details,omitempty"`
  3501  	// Message: A developer-facing error message, which should be in English. Any
  3502  	// user-facing error message should be localized and sent in the
  3503  	// google.rpc.Status.details field, or localized by the client.
  3504  	Message string `json:"message,omitempty"`
  3505  	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
  3506  	// include in API requests. By default, fields with empty or default values are
  3507  	// omitted from API requests. See
  3508  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3509  	// details.
  3510  	ForceSendFields []string `json:"-"`
  3511  	// NullFields is a list of field names (e.g. "Code") to include in API requests
  3512  	// with the JSON null value. By default, fields with empty values are omitted
  3513  	// from API requests. See
  3514  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3515  	NullFields []string `json:"-"`
  3516  }
  3517  
  3518  func (s *Status) MarshalJSON() ([]byte, error) {
  3519  	type NoMethod Status
  3520  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3521  }
  3522  
  3523  // TestIamPermissionsRequest: Request message for `TestIamPermissions` method.
  3524  type TestIamPermissionsRequest struct {
  3525  	// Permissions: The set of permissions to check for the `resource`. Permissions
  3526  	// with wildcards (such as `*` or `storage.*`) are not allowed. For more
  3527  	// information see IAM Overview
  3528  	// (https://cloud.google.com/iam/docs/overview#permissions).
  3529  	Permissions []string `json:"permissions,omitempty"`
  3530  	// ForceSendFields is a list of field names (e.g. "Permissions") to
  3531  	// unconditionally include in API requests. By default, fields with empty or
  3532  	// default values are omitted from API requests. See
  3533  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3534  	// details.
  3535  	ForceSendFields []string `json:"-"`
  3536  	// NullFields is a list of field names (e.g. "Permissions") to include in API
  3537  	// requests with the JSON null value. By default, fields with empty values are
  3538  	// omitted from API requests. See
  3539  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3540  	NullFields []string `json:"-"`
  3541  }
  3542  
  3543  func (s *TestIamPermissionsRequest) MarshalJSON() ([]byte, error) {
  3544  	type NoMethod TestIamPermissionsRequest
  3545  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3546  }
  3547  
  3548  // TestIamPermissionsResponse: Response message for `TestIamPermissions`
  3549  // method.
  3550  type TestIamPermissionsResponse struct {
  3551  	// Permissions: A subset of `TestPermissionsRequest.permissions` that the
  3552  	// caller is allowed.
  3553  	Permissions []string `json:"permissions,omitempty"`
  3554  
  3555  	// ServerResponse contains the HTTP response code and headers from the server.
  3556  	googleapi.ServerResponse `json:"-"`
  3557  	// ForceSendFields is a list of field names (e.g. "Permissions") to
  3558  	// unconditionally include in API requests. By default, fields with empty or
  3559  	// default values are omitted from API requests. See
  3560  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3561  	// details.
  3562  	ForceSendFields []string `json:"-"`
  3563  	// NullFields is a list of field names (e.g. "Permissions") to include in API
  3564  	// requests with the JSON null value. By default, fields with empty values are
  3565  	// omitted from API requests. See
  3566  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3567  	NullFields []string `json:"-"`
  3568  }
  3569  
  3570  func (s *TestIamPermissionsResponse) MarshalJSON() ([]byte, error) {
  3571  	type NoMethod TestIamPermissionsResponse
  3572  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3573  }
  3574  
  3575  // UpgradeDependency: UpgradeDependency represents a dependency when upgrading
  3576  // a resource.
  3577  type UpgradeDependency struct {
  3578  	// CurrentVersion: Current version of the dependency e.g. 1.15.0.
  3579  	CurrentVersion string `json:"currentVersion,omitempty"`
  3580  	// Membership: Membership names are formatted as
  3581  	// `projects//locations//memberships/`.
  3582  	Membership string `json:"membership,omitempty"`
  3583  	// ResourceName: Resource name of the dependency.
  3584  	ResourceName string `json:"resourceName,omitempty"`
  3585  	// TargetVersion: Target version of the dependency e.g. 1.16.1. This is the
  3586  	// version the dependency needs to be upgraded to before a resource can be
  3587  	// upgraded.
  3588  	TargetVersion string `json:"targetVersion,omitempty"`
  3589  	// ForceSendFields is a list of field names (e.g. "CurrentVersion") to
  3590  	// unconditionally include in API requests. By default, fields with empty or
  3591  	// default values are omitted from API requests. See
  3592  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3593  	// details.
  3594  	ForceSendFields []string `json:"-"`
  3595  	// NullFields is a list of field names (e.g. "CurrentVersion") to include in
  3596  	// API requests with the JSON null value. By default, fields with empty values
  3597  	// are omitted from API requests. See
  3598  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3599  	NullFields []string `json:"-"`
  3600  }
  3601  
  3602  func (s *UpgradeDependency) MarshalJSON() ([]byte, error) {
  3603  	type NoMethod UpgradeDependency
  3604  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3605  }
  3606  
  3607  // ValidationCheck: ValidationCheck represents the result of preflight check.
  3608  type ValidationCheck struct {
  3609  	// Option: Options used for the validation check
  3610  	//
  3611  	// Possible values:
  3612  	//   "OPTIONS_UNSPECIFIED" - Default value. Standard preflight validation check
  3613  	// will be used.
  3614  	//   "SKIP_VALIDATION_CHECK_BLOCKING" - Prevent failed preflight checks from
  3615  	// failing.
  3616  	//   "SKIP_VALIDATION_ALL" - Skip all preflight check validations.
  3617  	Option string `json:"option,omitempty"`
  3618  	// Scenario: Output only. The scenario when the preflight checks were run.
  3619  	//
  3620  	// Possible values:
  3621  	//   "SCENARIO_UNSPECIFIED" - Default value. This value is unused.
  3622  	//   "CREATE" - The validation check occurred during a create flow.
  3623  	//   "UPDATE" - The validation check occurred during an update flow.
  3624  	Scenario string `json:"scenario,omitempty"`
  3625  	// Status: Output only. The detailed validation check status.
  3626  	Status *ValidationCheckStatus `json:"status,omitempty"`
  3627  	// ForceSendFields is a list of field names (e.g. "Option") to unconditionally
  3628  	// include in API requests. By default, fields with empty or default values are
  3629  	// omitted from API requests. See
  3630  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3631  	// details.
  3632  	ForceSendFields []string `json:"-"`
  3633  	// NullFields is a list of field names (e.g. "Option") to include in API
  3634  	// requests with the JSON null value. By default, fields with empty values are
  3635  	// omitted from API requests. See
  3636  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3637  	NullFields []string `json:"-"`
  3638  }
  3639  
  3640  func (s *ValidationCheck) MarshalJSON() ([]byte, error) {
  3641  	type NoMethod ValidationCheck
  3642  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3643  }
  3644  
  3645  // ValidationCheckResult: ValidationCheckResult defines the details about the
  3646  // validation check.
  3647  type ValidationCheckResult struct {
  3648  	// Category: The category of the validation.
  3649  	Category string `json:"category,omitempty"`
  3650  	// Description: The description of the validation check.
  3651  	Description string `json:"description,omitempty"`
  3652  	// Details: Detailed failure information, which might be unformatted.
  3653  	Details string `json:"details,omitempty"`
  3654  	// Reason: A human-readable message of the check failure.
  3655  	Reason string `json:"reason,omitempty"`
  3656  	// State: The validation check state.
  3657  	//
  3658  	// Possible values:
  3659  	//   "STATE_UNKNOWN" - The default value. The check result is unknown.
  3660  	//   "STATE_FAILURE" - The check failed.
  3661  	//   "STATE_SKIPPED" - The check was skipped.
  3662  	//   "STATE_FATAL" - The check itself failed to complete.
  3663  	//   "STATE_WARNING" - The check encountered a warning.
  3664  	State string `json:"state,omitempty"`
  3665  	// ForceSendFields is a list of field names (e.g. "Category") to
  3666  	// unconditionally include in API requests. By default, fields with empty or
  3667  	// default values are omitted from API requests. See
  3668  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3669  	// details.
  3670  	ForceSendFields []string `json:"-"`
  3671  	// NullFields is a list of field names (e.g. "Category") to include in API
  3672  	// requests with the JSON null value. By default, fields with empty values are
  3673  	// omitted from API requests. See
  3674  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3675  	NullFields []string `json:"-"`
  3676  }
  3677  
  3678  func (s *ValidationCheckResult) MarshalJSON() ([]byte, error) {
  3679  	type NoMethod ValidationCheckResult
  3680  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3681  }
  3682  
  3683  // ValidationCheckStatus: ValidationCheckStatus defines the detailed validation
  3684  // check status.
  3685  type ValidationCheckStatus struct {
  3686  	// Result: Individual checks which failed as part of the Preflight check
  3687  	// execution.
  3688  	Result []*ValidationCheckResult `json:"result,omitempty"`
  3689  	// ForceSendFields is a list of field names (e.g. "Result") to unconditionally
  3690  	// include in API requests. By default, fields with empty or default values are
  3691  	// omitted from API requests. See
  3692  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3693  	// details.
  3694  	ForceSendFields []string `json:"-"`
  3695  	// NullFields is a list of field names (e.g. "Result") to include in API
  3696  	// requests with the JSON null value. By default, fields with empty values are
  3697  	// omitted from API requests. See
  3698  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3699  	NullFields []string `json:"-"`
  3700  }
  3701  
  3702  func (s *ValidationCheckStatus) MarshalJSON() ([]byte, error) {
  3703  	type NoMethod ValidationCheckStatus
  3704  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3705  }
  3706  
  3707  // VmwareAAGConfig: Specifies anti affinity group config for the VMware user
  3708  // cluster.
  3709  type VmwareAAGConfig struct {
  3710  	// AagConfigDisabled: Spread nodes across at least three physical hosts
  3711  	// (requires at least three hosts). Enabled by default.
  3712  	AagConfigDisabled bool `json:"aagConfigDisabled,omitempty"`
  3713  	// ForceSendFields is a list of field names (e.g. "AagConfigDisabled") to
  3714  	// unconditionally include in API requests. By default, fields with empty or
  3715  	// default values are omitted from API requests. See
  3716  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3717  	// details.
  3718  	ForceSendFields []string `json:"-"`
  3719  	// NullFields is a list of field names (e.g. "AagConfigDisabled") to include in
  3720  	// API requests with the JSON null value. By default, fields with empty values
  3721  	// are omitted from API requests. See
  3722  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3723  	NullFields []string `json:"-"`
  3724  }
  3725  
  3726  func (s *VmwareAAGConfig) MarshalJSON() ([]byte, error) {
  3727  	type NoMethod VmwareAAGConfig
  3728  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3729  }
  3730  
  3731  // VmwareAddressPool: Represents an IP pool used by the load balancer.
  3732  type VmwareAddressPool struct {
  3733  	// Addresses: Required. The addresses that are part of this pool. Each address
  3734  	// must be either in the CIDR form (1.2.3.0/24) or range form
  3735  	// (1.2.3.1-1.2.3.5).
  3736  	Addresses []string `json:"addresses,omitempty"`
  3737  	// AvoidBuggyIps: If true, avoid using IPs ending in .0 or .255. This avoids
  3738  	// buggy consumer devices mistakenly dropping IPv4 traffic for those special IP
  3739  	// addresses.
  3740  	AvoidBuggyIps bool `json:"avoidBuggyIps,omitempty"`
  3741  	// ManualAssign: If true, prevent IP addresses from being automatically
  3742  	// assigned.
  3743  	ManualAssign bool `json:"manualAssign,omitempty"`
  3744  	// Pool: Required. The name of the address pool.
  3745  	Pool string `json:"pool,omitempty"`
  3746  	// ForceSendFields is a list of field names (e.g. "Addresses") to
  3747  	// unconditionally include in API requests. By default, fields with empty or
  3748  	// default values are omitted from API requests. See
  3749  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3750  	// details.
  3751  	ForceSendFields []string `json:"-"`
  3752  	// NullFields is a list of field names (e.g. "Addresses") to include in API
  3753  	// requests with the JSON null value. By default, fields with empty values are
  3754  	// omitted from API requests. See
  3755  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3756  	NullFields []string `json:"-"`
  3757  }
  3758  
  3759  func (s *VmwareAddressPool) MarshalJSON() ([]byte, error) {
  3760  	type NoMethod VmwareAddressPool
  3761  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3762  }
  3763  
  3764  // VmwareAdminAddonNodeConfig: VmwareAdminAddonNodeConfig contains add-on node
  3765  // configurations for VMware admin cluster.
  3766  type VmwareAdminAddonNodeConfig struct {
  3767  	// AutoResizeConfig: VmwareAutoResizeConfig config specifies auto resize
  3768  	// config.
  3769  	AutoResizeConfig *VmwareAutoResizeConfig `json:"autoResizeConfig,omitempty"`
  3770  	// ForceSendFields is a list of field names (e.g. "AutoResizeConfig") to
  3771  	// unconditionally include in API requests. By default, fields with empty or
  3772  	// default values are omitted from API requests. See
  3773  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3774  	// details.
  3775  	ForceSendFields []string `json:"-"`
  3776  	// NullFields is a list of field names (e.g. "AutoResizeConfig") to include in
  3777  	// API requests with the JSON null value. By default, fields with empty values
  3778  	// are omitted from API requests. See
  3779  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3780  	NullFields []string `json:"-"`
  3781  }
  3782  
  3783  func (s *VmwareAdminAddonNodeConfig) MarshalJSON() ([]byte, error) {
  3784  	type NoMethod VmwareAdminAddonNodeConfig
  3785  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3786  }
  3787  
  3788  // VmwareAdminAuthorizationConfig: VmwareAdminAuthorizationConfig represents
  3789  // configuration for admin cluster authorization.
  3790  type VmwareAdminAuthorizationConfig struct {
  3791  	// ViewerUsers: For VMware admin clusters, users will be granted the
  3792  	// cluster-viewer role on the cluster.
  3793  	ViewerUsers []*ClusterUser `json:"viewerUsers,omitempty"`
  3794  	// ForceSendFields is a list of field names (e.g. "ViewerUsers") to
  3795  	// unconditionally include in API requests. By default, fields with empty or
  3796  	// default values are omitted from API requests. See
  3797  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3798  	// details.
  3799  	ForceSendFields []string `json:"-"`
  3800  	// NullFields is a list of field names (e.g. "ViewerUsers") to include in API
  3801  	// requests with the JSON null value. By default, fields with empty values are
  3802  	// omitted from API requests. See
  3803  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3804  	NullFields []string `json:"-"`
  3805  }
  3806  
  3807  func (s *VmwareAdminAuthorizationConfig) MarshalJSON() ([]byte, error) {
  3808  	type NoMethod VmwareAdminAuthorizationConfig
  3809  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3810  }
  3811  
  3812  // VmwareAdminCluster: Resource that represents a VMware admin cluster.
  3813  type VmwareAdminCluster struct {
  3814  	// AddonNode: The VMware admin cluster addon node configuration.
  3815  	AddonNode *VmwareAdminAddonNodeConfig `json:"addonNode,omitempty"`
  3816  	// Annotations: Annotations on the VMware admin cluster. This field has the
  3817  	// same restrictions as Kubernetes annotations. The total size of all keys and
  3818  	// values combined is limited to 256k. Key can have 2 segments: prefix
  3819  	// (optional) and name (required), separated by a slash (/). Prefix must be a
  3820  	// DNS subdomain. Name must be 63 characters or less, begin and end with
  3821  	// alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics
  3822  	// between.
  3823  	Annotations map[string]string `json:"annotations,omitempty"`
  3824  	// AntiAffinityGroups: The VMware admin cluster anti affinity group
  3825  	// configuration.
  3826  	AntiAffinityGroups *VmwareAAGConfig `json:"antiAffinityGroups,omitempty"`
  3827  	// Authorization: The VMware admin cluster authorization configuration.
  3828  	Authorization *VmwareAdminAuthorizationConfig `json:"authorization,omitempty"`
  3829  	// AutoRepairConfig: The VMware admin cluster auto repair configuration.
  3830  	AutoRepairConfig *VmwareAutoRepairConfig `json:"autoRepairConfig,omitempty"`
  3831  	// BootstrapClusterMembership: The bootstrap cluster this VMware admin cluster
  3832  	// belongs to.
  3833  	BootstrapClusterMembership string `json:"bootstrapClusterMembership,omitempty"`
  3834  	// ControlPlaneNode: The VMware admin cluster control plane node configuration.
  3835  	ControlPlaneNode *VmwareAdminControlPlaneNodeConfig `json:"controlPlaneNode,omitempty"`
  3836  	// CreateTime: Output only. The time at which VMware admin cluster was created.
  3837  	CreateTime string `json:"createTime,omitempty"`
  3838  	// Description: A human readable description of this VMware admin cluster.
  3839  	Description string `json:"description,omitempty"`
  3840  	// Endpoint: Output only. The DNS name of VMware admin cluster's API server.
  3841  	Endpoint string `json:"endpoint,omitempty"`
  3842  	// Etag: This checksum is computed by the server based on the value of other
  3843  	// fields, and may be sent on update and delete requests to ensure the client
  3844  	// has an up-to-date value before proceeding. Allows clients to perform
  3845  	// consistent read-modify-writes through optimistic concurrency control.
  3846  	Etag string `json:"etag,omitempty"`
  3847  	// Fleet: Output only. Fleet configuration for the cluster.
  3848  	Fleet *Fleet `json:"fleet,omitempty"`
  3849  	// ImageType: The OS image type for the VMware admin cluster.
  3850  	ImageType string `json:"imageType,omitempty"`
  3851  	// LoadBalancer: The VMware admin cluster load balancer configuration.
  3852  	LoadBalancer *VmwareAdminLoadBalancerConfig `json:"loadBalancer,omitempty"`
  3853  	// LocalName: Output only. The object name of the VMware OnPremAdminCluster
  3854  	// custom resource. This field is used to support conflicting names when
  3855  	// enrolling existing clusters to the API. When used as a part of cluster
  3856  	// enrollment, this field will differ from the ID in the resource name. For new
  3857  	// clusters, this field will match the user provided cluster name and be
  3858  	// visible in the last component of the resource name. It is not modifiable.
  3859  	// All users should use this name to access their cluster using gkectl or
  3860  	// kubectl and should expect to see the local name when viewing admin cluster
  3861  	// controller logs.
  3862  	LocalName string `json:"localName,omitempty"`
  3863  	// Name: Immutable. The VMware admin cluster resource name.
  3864  	Name string `json:"name,omitempty"`
  3865  	// NetworkConfig: The VMware admin cluster network configuration.
  3866  	NetworkConfig *VmwareAdminNetworkConfig `json:"networkConfig,omitempty"`
  3867  	// OnPremVersion: The Anthos clusters on the VMware version for the admin
  3868  	// cluster.
  3869  	OnPremVersion string `json:"onPremVersion,omitempty"`
  3870  	// PlatformConfig: The VMware platform configuration.
  3871  	PlatformConfig *VmwarePlatformConfig `json:"platformConfig,omitempty"`
  3872  	// PreparedSecrets: Output only. The VMware admin cluster prepared secrets
  3873  	// configuration. It should always be enabled by the Central API, instead of
  3874  	// letting users set it.
  3875  	PreparedSecrets *VmwareAdminPreparedSecretsConfig `json:"preparedSecrets,omitempty"`
  3876  	// Reconciling: Output only. If set, there are currently changes in flight to
  3877  	// the VMware admin cluster.
  3878  	Reconciling bool `json:"reconciling,omitempty"`
  3879  	// State: Output only. The current state of VMware admin cluster.
  3880  	//
  3881  	// Possible values:
  3882  	//   "STATE_UNSPECIFIED" - Not set.
  3883  	//   "PROVISIONING" - The PROVISIONING state indicates the cluster is being
  3884  	// created.
  3885  	//   "RUNNING" - The RUNNING state indicates the cluster has been created and
  3886  	// is fully usable.
  3887  	//   "RECONCILING" - The RECONCILING state indicates that the cluster is being
  3888  	// updated. It remains available, but potentially with degraded performance.
  3889  	//   "STOPPING" - The STOPPING state indicates the cluster is being deleted.
  3890  	//   "ERROR" - The ERROR state indicates the cluster is in a broken
  3891  	// unrecoverable state.
  3892  	//   "DEGRADED" - The DEGRADED state indicates the cluster requires user action
  3893  	// to restore full functionality.
  3894  	State string `json:"state,omitempty"`
  3895  	// Status: Output only. ResourceStatus representing detailed cluster state.
  3896  	Status *ResourceStatus `json:"status,omitempty"`
  3897  	// Uid: Output only. The unique identifier of the VMware admin cluster.
  3898  	Uid string `json:"uid,omitempty"`
  3899  	// UpdateTime: Output only. The time at which VMware admin cluster was last
  3900  	// updated.
  3901  	UpdateTime string `json:"updateTime,omitempty"`
  3902  	// Vcenter: The VMware admin cluster VCenter configuration.
  3903  	Vcenter *VmwareAdminVCenterConfig `json:"vcenter,omitempty"`
  3904  
  3905  	// ServerResponse contains the HTTP response code and headers from the server.
  3906  	googleapi.ServerResponse `json:"-"`
  3907  	// ForceSendFields is a list of field names (e.g. "AddonNode") to
  3908  	// unconditionally include in API requests. By default, fields with empty or
  3909  	// default values are omitted from API requests. See
  3910  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3911  	// details.
  3912  	ForceSendFields []string `json:"-"`
  3913  	// NullFields is a list of field names (e.g. "AddonNode") to include in API
  3914  	// requests with the JSON null value. By default, fields with empty values are
  3915  	// omitted from API requests. See
  3916  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3917  	NullFields []string `json:"-"`
  3918  }
  3919  
  3920  func (s *VmwareAdminCluster) MarshalJSON() ([]byte, error) {
  3921  	type NoMethod VmwareAdminCluster
  3922  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3923  }
  3924  
  3925  // VmwareAdminControlPlaneNodeConfig: VmwareAdminControlPlaneNodeConfig
  3926  // contains control plane node configuration for VMware admin cluster.
  3927  type VmwareAdminControlPlaneNodeConfig struct {
  3928  	// Cpus: The number of vCPUs for the control-plane node of the admin cluster.
  3929  	Cpus int64 `json:"cpus,omitempty,string"`
  3930  	// Memory: The number of mebibytes of memory for the control-plane node of the
  3931  	// admin cluster.
  3932  	Memory int64 `json:"memory,omitempty,string"`
  3933  	// Replicas: The number of control plane nodes for this VMware admin cluster.
  3934  	// (default: 1 replica).
  3935  	Replicas int64 `json:"replicas,omitempty,string"`
  3936  	// ForceSendFields is a list of field names (e.g. "Cpus") to unconditionally
  3937  	// include in API requests. By default, fields with empty or default values are
  3938  	// omitted from API requests. See
  3939  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3940  	// details.
  3941  	ForceSendFields []string `json:"-"`
  3942  	// NullFields is a list of field names (e.g. "Cpus") to include in API requests
  3943  	// with the JSON null value. By default, fields with empty values are omitted
  3944  	// from API requests. See
  3945  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3946  	NullFields []string `json:"-"`
  3947  }
  3948  
  3949  func (s *VmwareAdminControlPlaneNodeConfig) MarshalJSON() ([]byte, error) {
  3950  	type NoMethod VmwareAdminControlPlaneNodeConfig
  3951  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3952  }
  3953  
  3954  // VmwareAdminF5BigIpConfig: VmwareAdminF5BigIpConfig represents configuration
  3955  // parameters for an F5 BIG-IP load balancer.
  3956  type VmwareAdminF5BigIpConfig struct {
  3957  	// Address: The load balancer's IP address.
  3958  	Address string `json:"address,omitempty"`
  3959  	// Partition: The preexisting partition to be used by the load balancer. This
  3960  	// partition is usually created for the admin cluster for example:
  3961  	// 'my-f5-admin-partition'.
  3962  	Partition string `json:"partition,omitempty"`
  3963  	// SnatPool: The pool name. Only necessary, if using SNAT.
  3964  	SnatPool string `json:"snatPool,omitempty"`
  3965  	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
  3966  	// include in API requests. By default, fields with empty or default values are
  3967  	// omitted from API requests. See
  3968  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3969  	// details.
  3970  	ForceSendFields []string `json:"-"`
  3971  	// NullFields is a list of field names (e.g. "Address") to include in API
  3972  	// requests with the JSON null value. By default, fields with empty values are
  3973  	// omitted from API requests. See
  3974  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3975  	NullFields []string `json:"-"`
  3976  }
  3977  
  3978  func (s *VmwareAdminF5BigIpConfig) MarshalJSON() ([]byte, error) {
  3979  	type NoMethod VmwareAdminF5BigIpConfig
  3980  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3981  }
  3982  
  3983  // VmwareAdminHAControlPlaneConfig: Specifies HA admin control plane config.
  3984  type VmwareAdminHAControlPlaneConfig struct {
  3985  	// ControlPlaneIpBlock: Static IP addresses for the admin control plane nodes.
  3986  	ControlPlaneIpBlock *VmwareIpBlock `json:"controlPlaneIpBlock,omitempty"`
  3987  	// ForceSendFields is a list of field names (e.g. "ControlPlaneIpBlock") to
  3988  	// unconditionally include in API requests. By default, fields with empty or
  3989  	// default values are omitted from API requests. See
  3990  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3991  	// details.
  3992  	ForceSendFields []string `json:"-"`
  3993  	// NullFields is a list of field names (e.g. "ControlPlaneIpBlock") to include
  3994  	// in API requests with the JSON null value. By default, fields with empty
  3995  	// values are omitted from API requests. See
  3996  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3997  	NullFields []string `json:"-"`
  3998  }
  3999  
  4000  func (s *VmwareAdminHAControlPlaneConfig) MarshalJSON() ([]byte, error) {
  4001  	type NoMethod VmwareAdminHAControlPlaneConfig
  4002  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4003  }
  4004  
  4005  // VmwareAdminLoadBalancerConfig: VmwareAdminLoadBalancerConfig contains load
  4006  // balancer configuration for VMware admin cluster.
  4007  type VmwareAdminLoadBalancerConfig struct {
  4008  	// F5Config: Configuration for F5 Big IP typed load balancers.
  4009  	F5Config *VmwareAdminF5BigIpConfig `json:"f5Config,omitempty"`
  4010  	// ManualLbConfig: Manually configured load balancers.
  4011  	ManualLbConfig *VmwareAdminManualLbConfig `json:"manualLbConfig,omitempty"`
  4012  	// MetalLbConfig: MetalLB load balancers.
  4013  	MetalLbConfig *VmwareAdminMetalLbConfig `json:"metalLbConfig,omitempty"`
  4014  	// SeesawConfig: Output only. Configuration for Seesaw typed load balancers.
  4015  	SeesawConfig *VmwareAdminSeesawConfig `json:"seesawConfig,omitempty"`
  4016  	// VipConfig: The VIPs used by the load balancer.
  4017  	VipConfig *VmwareAdminVipConfig `json:"vipConfig,omitempty"`
  4018  	// ForceSendFields is a list of field names (e.g. "F5Config") to
  4019  	// unconditionally include in API requests. By default, fields with empty or
  4020  	// default values are omitted from API requests. See
  4021  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4022  	// details.
  4023  	ForceSendFields []string `json:"-"`
  4024  	// NullFields is a list of field names (e.g. "F5Config") to include in API
  4025  	// requests with the JSON null value. By default, fields with empty values are
  4026  	// omitted from API requests. See
  4027  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4028  	NullFields []string `json:"-"`
  4029  }
  4030  
  4031  func (s *VmwareAdminLoadBalancerConfig) MarshalJSON() ([]byte, error) {
  4032  	type NoMethod VmwareAdminLoadBalancerConfig
  4033  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4034  }
  4035  
  4036  type VmwareAdminManualLbConfig struct {
  4037  	// AddonsNodePort: NodePort for add-ons server in the admin cluster.
  4038  	AddonsNodePort int64 `json:"addonsNodePort,omitempty"`
  4039  	// ControlPlaneNodePort: NodePort for control plane service. The Kubernetes API
  4040  	// server in the admin cluster is implemented as a Service of type NodePort
  4041  	// (ex. 30968).
  4042  	ControlPlaneNodePort int64 `json:"controlPlaneNodePort,omitempty"`
  4043  	// IngressHttpNodePort: NodePort for ingress service's http. The ingress
  4044  	// service in the admin cluster is implemented as a Service of type NodePort
  4045  	// (ex. 32527).
  4046  	IngressHttpNodePort int64 `json:"ingressHttpNodePort,omitempty"`
  4047  	// IngressHttpsNodePort: NodePort for ingress service's https. The ingress
  4048  	// service in the admin cluster is implemented as a Service of type NodePort
  4049  	// (ex. 30139).
  4050  	IngressHttpsNodePort int64 `json:"ingressHttpsNodePort,omitempty"`
  4051  	// KonnectivityServerNodePort: NodePort for konnectivity server service running
  4052  	// as a sidecar in each kube-apiserver pod (ex. 30564).
  4053  	KonnectivityServerNodePort int64 `json:"konnectivityServerNodePort,omitempty"`
  4054  	// ForceSendFields is a list of field names (e.g. "AddonsNodePort") to
  4055  	// unconditionally include in API requests. By default, fields with empty or
  4056  	// default values are omitted from API requests. See
  4057  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4058  	// details.
  4059  	ForceSendFields []string `json:"-"`
  4060  	// NullFields is a list of field names (e.g. "AddonsNodePort") to include in
  4061  	// API requests with the JSON null value. By default, fields with empty values
  4062  	// are omitted from API requests. See
  4063  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4064  	NullFields []string `json:"-"`
  4065  }
  4066  
  4067  func (s *VmwareAdminManualLbConfig) MarshalJSON() ([]byte, error) {
  4068  	type NoMethod VmwareAdminManualLbConfig
  4069  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4070  }
  4071  
  4072  // VmwareAdminMetalLbConfig: VmwareAdminMetalLbConfig represents configuration
  4073  // parameters for a MetalLB load balancer. For admin clusters, currently no
  4074  // configurations is needed.
  4075  type VmwareAdminMetalLbConfig struct {
  4076  }
  4077  
  4078  // VmwareAdminNetworkConfig: VmwareAdminNetworkConfig contains network
  4079  // configuration for VMware admin cluster.
  4080  type VmwareAdminNetworkConfig struct {
  4081  	// DhcpIpConfig: Configuration settings for a DHCP IP configuration.
  4082  	DhcpIpConfig *VmwareDhcpIpConfig `json:"dhcpIpConfig,omitempty"`
  4083  	// HaControlPlaneConfig: Configuration for HA admin cluster control plane.
  4084  	HaControlPlaneConfig *VmwareAdminHAControlPlaneConfig `json:"haControlPlaneConfig,omitempty"`
  4085  	// HostConfig: Represents common network settings irrespective of the host's IP
  4086  	// address.
  4087  	HostConfig *VmwareHostConfig `json:"hostConfig,omitempty"`
  4088  	// PodAddressCidrBlocks: Required. All pods in the cluster are assigned an
  4089  	// RFC1918 IPv4 address from these ranges. Only a single range is supported.
  4090  	// This field cannot be changed after creation.
  4091  	PodAddressCidrBlocks []string `json:"podAddressCidrBlocks,omitempty"`
  4092  	// ServiceAddressCidrBlocks: Required. All services in the cluster are assigned
  4093  	// an RFC1918 IPv4 address from these ranges. Only a single range is supported.
  4094  	// This field cannot be changed after creation.
  4095  	ServiceAddressCidrBlocks []string `json:"serviceAddressCidrBlocks,omitempty"`
  4096  	// StaticIpConfig: Configuration settings for a static IP configuration.
  4097  	StaticIpConfig *VmwareStaticIpConfig `json:"staticIpConfig,omitempty"`
  4098  	// VcenterNetwork: vcenter_network specifies vCenter network name.
  4099  	VcenterNetwork string `json:"vcenterNetwork,omitempty"`
  4100  	// ForceSendFields is a list of field names (e.g. "DhcpIpConfig") to
  4101  	// unconditionally include in API requests. By default, fields with empty or
  4102  	// default values are omitted from API requests. See
  4103  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4104  	// details.
  4105  	ForceSendFields []string `json:"-"`
  4106  	// NullFields is a list of field names (e.g. "DhcpIpConfig") to include in API
  4107  	// requests with the JSON null value. By default, fields with empty values are
  4108  	// omitted from API requests. See
  4109  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4110  	NullFields []string `json:"-"`
  4111  }
  4112  
  4113  func (s *VmwareAdminNetworkConfig) MarshalJSON() ([]byte, error) {
  4114  	type NoMethod VmwareAdminNetworkConfig
  4115  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4116  }
  4117  
  4118  // VmwareAdminPreparedSecretsConfig: VmwareAdminPreparedSecretsConfig
  4119  // represents configuration for admin cluster prepared secrets.
  4120  type VmwareAdminPreparedSecretsConfig struct {
  4121  	// Enabled: Whether prepared secrets is enabled.
  4122  	Enabled bool `json:"enabled,omitempty"`
  4123  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  4124  	// include in API requests. By default, fields with empty or default values are
  4125  	// omitted from API requests. See
  4126  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4127  	// details.
  4128  	ForceSendFields []string `json:"-"`
  4129  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  4130  	// requests with the JSON null value. By default, fields with empty values are
  4131  	// omitted from API requests. See
  4132  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4133  	NullFields []string `json:"-"`
  4134  }
  4135  
  4136  func (s *VmwareAdminPreparedSecretsConfig) MarshalJSON() ([]byte, error) {
  4137  	type NoMethod VmwareAdminPreparedSecretsConfig
  4138  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4139  }
  4140  
  4141  // VmwareAdminSeesawConfig: VmwareSeesawConfig represents configuration
  4142  // parameters for an already existing Seesaw load balancer. IMPORTANT: Please
  4143  // note that the Anthos On-Prem API will not generate or update Seesaw
  4144  // configurations it can only bind a pre-existing configuration to a new user
  4145  // cluster. IMPORTANT: When attempting to create a user cluster with a
  4146  // pre-existing Seesaw load balancer you will need to follow some preparation
  4147  // steps before calling the 'CreateVmwareCluster' API method. First you will
  4148  // need to create the user cluster's namespace via kubectl. The namespace will
  4149  // need to use the following naming convention : -gke-onprem-mgmt or
  4150  // -gke-onprem-mgmt depending on whether you used the
  4151  // 'VmwareCluster.local_name' to disambiguate collisions; for more context see
  4152  // the documentation of 'VmwareCluster.local_name'. Once the namespace is
  4153  // created you will need to create a secret resource via kubectl. This secret
  4154  // will contain copies of your Seesaw credentials. The Secret must be called
  4155  // 'user-cluster-creds' and contain Seesaw's SSH and Cert credentials. The
  4156  // credentials must be keyed with the following names:
  4157  // 'seesaw-ssh-private-key', 'seesaw-ssh-public-key', 'seesaw-ssh-ca-key',
  4158  // 'seesaw-ssh-ca-cert'.
  4159  type VmwareAdminSeesawConfig struct {
  4160  	// EnableHa: Enable two load balancer VMs to achieve a highly-available Seesaw
  4161  	// load balancer.
  4162  	EnableHa bool `json:"enableHa,omitempty"`
  4163  	// Group: In general the following format should be used for the Seesaw group
  4164  	// name: seesaw-for-[cluster_name].
  4165  	Group string `json:"group,omitempty"`
  4166  	// IpBlocks: The IP Blocks to be used by the Seesaw load balancer
  4167  	IpBlocks []*VmwareIpBlock `json:"ipBlocks,omitempty"`
  4168  	// MasterIp: MasterIP is the IP announced by the master of Seesaw group.
  4169  	MasterIp string `json:"masterIp,omitempty"`
  4170  	// StackdriverName: Name to be used by Stackdriver.
  4171  	StackdriverName string `json:"stackdriverName,omitempty"`
  4172  	// Vms: Names of the VMs created for this Seesaw group.
  4173  	Vms []string `json:"vms,omitempty"`
  4174  	// ForceSendFields is a list of field names (e.g. "EnableHa") to
  4175  	// unconditionally include in API requests. By default, fields with empty or
  4176  	// default values are omitted from API requests. See
  4177  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4178  	// details.
  4179  	ForceSendFields []string `json:"-"`
  4180  	// NullFields is a list of field names (e.g. "EnableHa") to include in API
  4181  	// requests with the JSON null value. By default, fields with empty values are
  4182  	// omitted from API requests. See
  4183  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4184  	NullFields []string `json:"-"`
  4185  }
  4186  
  4187  func (s *VmwareAdminSeesawConfig) MarshalJSON() ([]byte, error) {
  4188  	type NoMethod VmwareAdminSeesawConfig
  4189  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4190  }
  4191  
  4192  // VmwareAdminVCenterConfig: VmwareAdminVCenterConfig contains VCenter
  4193  // configuration for VMware admin cluster.
  4194  type VmwareAdminVCenterConfig struct {
  4195  	// Address: The vCenter IP address.
  4196  	Address string `json:"address,omitempty"`
  4197  	// CaCertData: Contains the vCenter CA certificate public key for SSL
  4198  	// verification.
  4199  	CaCertData string `json:"caCertData,omitempty"`
  4200  	// Cluster: The name of the vCenter cluster for the admin cluster.
  4201  	Cluster string `json:"cluster,omitempty"`
  4202  	// DataDisk: The name of the virtual machine disk (VMDK) for the admin cluster.
  4203  	DataDisk string `json:"dataDisk,omitempty"`
  4204  	// Datacenter: The name of the vCenter datacenter for the admin cluster.
  4205  	Datacenter string `json:"datacenter,omitempty"`
  4206  	// Datastore: The name of the vCenter datastore for the admin cluster.
  4207  	Datastore string `json:"datastore,omitempty"`
  4208  	// Folder: The name of the vCenter folder for the admin cluster.
  4209  	Folder string `json:"folder,omitempty"`
  4210  	// ResourcePool: The name of the vCenter resource pool for the admin cluster.
  4211  	ResourcePool string `json:"resourcePool,omitempty"`
  4212  	// StoragePolicyName: The name of the vCenter storage policy for the user
  4213  	// cluster.
  4214  	StoragePolicyName string `json:"storagePolicyName,omitempty"`
  4215  	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
  4216  	// include in API requests. By default, fields with empty or default values are
  4217  	// omitted from API requests. See
  4218  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4219  	// details.
  4220  	ForceSendFields []string `json:"-"`
  4221  	// NullFields is a list of field names (e.g. "Address") to include in API
  4222  	// requests with the JSON null value. By default, fields with empty values are
  4223  	// omitted from API requests. See
  4224  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4225  	NullFields []string `json:"-"`
  4226  }
  4227  
  4228  func (s *VmwareAdminVCenterConfig) MarshalJSON() ([]byte, error) {
  4229  	type NoMethod VmwareAdminVCenterConfig
  4230  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4231  }
  4232  
  4233  // VmwareAdminVipConfig: VmwareAdminVipConfig for VMware load balancer
  4234  // configurations.
  4235  type VmwareAdminVipConfig struct {
  4236  	// AddonsVip: The VIP to configure the load balancer for add-ons.
  4237  	AddonsVip string `json:"addonsVip,omitempty"`
  4238  	// ControlPlaneVip: The VIP which you previously set aside for the Kubernetes
  4239  	// API of the admin cluster.
  4240  	ControlPlaneVip string `json:"controlPlaneVip,omitempty"`
  4241  	// ForceSendFields is a list of field names (e.g. "AddonsVip") to
  4242  	// unconditionally include in API requests. By default, fields with empty or
  4243  	// default values are omitted from API requests. See
  4244  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4245  	// details.
  4246  	ForceSendFields []string `json:"-"`
  4247  	// NullFields is a list of field names (e.g. "AddonsVip") to include in API
  4248  	// requests with the JSON null value. By default, fields with empty values are
  4249  	// omitted from API requests. See
  4250  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4251  	NullFields []string `json:"-"`
  4252  }
  4253  
  4254  func (s *VmwareAdminVipConfig) MarshalJSON() ([]byte, error) {
  4255  	type NoMethod VmwareAdminVipConfig
  4256  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4257  }
  4258  
  4259  // VmwareAutoRepairConfig: Specifies config to enable/disable auto repair. The
  4260  // cluster-health-controller is deployed only if Enabled is true.
  4261  type VmwareAutoRepairConfig struct {
  4262  	// Enabled: Whether auto repair is enabled.
  4263  	Enabled bool `json:"enabled,omitempty"`
  4264  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  4265  	// include in API requests. By default, fields with empty or default values are
  4266  	// omitted from API requests. See
  4267  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4268  	// details.
  4269  	ForceSendFields []string `json:"-"`
  4270  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  4271  	// requests with the JSON null value. By default, fields with empty values are
  4272  	// omitted from API requests. See
  4273  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4274  	NullFields []string `json:"-"`
  4275  }
  4276  
  4277  func (s *VmwareAutoRepairConfig) MarshalJSON() ([]byte, error) {
  4278  	type NoMethod VmwareAutoRepairConfig
  4279  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4280  }
  4281  
  4282  // VmwareAutoResizeConfig: Represents auto resizing configurations for the
  4283  // VMware user cluster.
  4284  type VmwareAutoResizeConfig struct {
  4285  	// Enabled: Whether to enable controle plane node auto resizing.
  4286  	Enabled bool `json:"enabled,omitempty"`
  4287  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  4288  	// include in API requests. By default, fields with empty or default values are
  4289  	// omitted from API requests. See
  4290  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4291  	// details.
  4292  	ForceSendFields []string `json:"-"`
  4293  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  4294  	// requests with the JSON null value. By default, fields with empty values are
  4295  	// omitted from API requests. See
  4296  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4297  	NullFields []string `json:"-"`
  4298  }
  4299  
  4300  func (s *VmwareAutoResizeConfig) MarshalJSON() ([]byte, error) {
  4301  	type NoMethod VmwareAutoResizeConfig
  4302  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4303  }
  4304  
  4305  // VmwareBundleConfig: VmwareBundleConfig represents configuration for the
  4306  // bundle.
  4307  type VmwareBundleConfig struct {
  4308  	// Status: Output only. Resource status for the bundle.
  4309  	Status *ResourceStatus `json:"status,omitempty"`
  4310  	// Version: The version of the bundle.
  4311  	Version string `json:"version,omitempty"`
  4312  	// ForceSendFields is a list of field names (e.g. "Status") to unconditionally
  4313  	// include in API requests. By default, fields with empty or default values are
  4314  	// omitted from API requests. See
  4315  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4316  	// details.
  4317  	ForceSendFields []string `json:"-"`
  4318  	// NullFields is a list of field names (e.g. "Status") to include in API
  4319  	// requests with the JSON null value. By default, fields with empty values are
  4320  	// omitted from API requests. See
  4321  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4322  	NullFields []string `json:"-"`
  4323  }
  4324  
  4325  func (s *VmwareBundleConfig) MarshalJSON() ([]byte, error) {
  4326  	type NoMethod VmwareBundleConfig
  4327  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4328  }
  4329  
  4330  // VmwareCluster: Resource that represents a VMware user cluster. ##
  4331  type VmwareCluster struct {
  4332  	// AdminClusterMembership: Required. The admin cluster this VMware user cluster
  4333  	// belongs to. This is the full resource name of the admin cluster's fleet
  4334  	// membership. In the future, references to other resource types might be
  4335  	// allowed if admin clusters are modeled as their own resources.
  4336  	AdminClusterMembership string `json:"adminClusterMembership,omitempty"`
  4337  	// AdminClusterName: Output only. The resource name of the VMware admin cluster
  4338  	// hosting this user cluster.
  4339  	AdminClusterName string `json:"adminClusterName,omitempty"`
  4340  	// Annotations: Annotations on the VMware user cluster. This field has the same
  4341  	// restrictions as Kubernetes annotations. The total size of all keys and
  4342  	// values combined is limited to 256k. Key can have 2 segments: prefix
  4343  	// (optional) and name (required), separated by a slash (/). Prefix must be a
  4344  	// DNS subdomain. Name must be 63 characters or less, begin and end with
  4345  	// alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics
  4346  	// between.
  4347  	Annotations map[string]string `json:"annotations,omitempty"`
  4348  	// AntiAffinityGroups: AAGConfig specifies whether to spread VMware user
  4349  	// cluster nodes across at least three physical hosts in the datacenter.
  4350  	AntiAffinityGroups *VmwareAAGConfig `json:"antiAffinityGroups,omitempty"`
  4351  	// Authorization: RBAC policy that will be applied and managed by the Anthos
  4352  	// On-Prem API.
  4353  	Authorization *Authorization `json:"authorization,omitempty"`
  4354  	// AutoRepairConfig: Configuration for auto repairing.
  4355  	AutoRepairConfig *VmwareAutoRepairConfig `json:"autoRepairConfig,omitempty"`
  4356  	// BinaryAuthorization: Binary Authorization related configurations.
  4357  	BinaryAuthorization *BinaryAuthorization `json:"binaryAuthorization,omitempty"`
  4358  	// ControlPlaneNode: VMware user cluster control plane nodes must have either 1
  4359  	// or 3 replicas.
  4360  	ControlPlaneNode *VmwareControlPlaneNodeConfig `json:"controlPlaneNode,omitempty"`
  4361  	// CreateTime: Output only. The time at which VMware user cluster was created.
  4362  	CreateTime string `json:"createTime,omitempty"`
  4363  	// DataplaneV2: VmwareDataplaneV2Config specifies configuration for Dataplane
  4364  	// V2.
  4365  	DataplaneV2 *VmwareDataplaneV2Config `json:"dataplaneV2,omitempty"`
  4366  	// DeleteTime: Output only. The time at which VMware user cluster was deleted.
  4367  	DeleteTime string `json:"deleteTime,omitempty"`
  4368  	// Description: A human readable description of this VMware user cluster.
  4369  	Description string `json:"description,omitempty"`
  4370  	// DisableBundledIngress: Disable bundled ingress.
  4371  	DisableBundledIngress bool `json:"disableBundledIngress,omitempty"`
  4372  	// EnableControlPlaneV2: Enable control plane V2. Default to false.
  4373  	EnableControlPlaneV2 bool `json:"enableControlPlaneV2,omitempty"`
  4374  	// Endpoint: Output only. The DNS name of VMware user cluster's API server.
  4375  	Endpoint string `json:"endpoint,omitempty"`
  4376  	// Etag: This checksum is computed by the server based on the value of other
  4377  	// fields, and may be sent on update and delete requests to ensure the client
  4378  	// has an up-to-date value before proceeding. Allows clients to perform
  4379  	// consistent read-modify-writes through optimistic concurrency control.
  4380  	Etag string `json:"etag,omitempty"`
  4381  	// Fleet: Output only. Fleet configuration for the cluster.
  4382  	Fleet *Fleet `json:"fleet,omitempty"`
  4383  	// LoadBalancer: Load balancer configuration.
  4384  	LoadBalancer *VmwareLoadBalancerConfig `json:"loadBalancer,omitempty"`
  4385  	// LocalName: Output only. The object name of the VMware OnPremUserCluster
  4386  	// custom resource on the associated admin cluster. This field is used to
  4387  	// support conflicting names when enrolling existing clusters to the API. When
  4388  	// used as a part of cluster enrollment, this field will differ from the ID in
  4389  	// the resource name. For new clusters, this field will match the user provided
  4390  	// cluster name and be visible in the last component of the resource name. It
  4391  	// is not modifiable. All users should use this name to access their cluster
  4392  	// using gkectl or kubectl and should expect to see the local name when viewing
  4393  	// admin cluster controller logs.
  4394  	LocalName string `json:"localName,omitempty"`
  4395  	// Name: Immutable. The VMware user cluster resource name.
  4396  	Name string `json:"name,omitempty"`
  4397  	// NetworkConfig: The VMware user cluster network configuration.
  4398  	NetworkConfig *VmwareNetworkConfig `json:"networkConfig,omitempty"`
  4399  	// OnPremVersion: Required. The Anthos clusters on the VMware version for your
  4400  	// user cluster.
  4401  	OnPremVersion string `json:"onPremVersion,omitempty"`
  4402  	// Reconciling: Output only. If set, there are currently changes in flight to
  4403  	// the VMware user cluster.
  4404  	Reconciling bool `json:"reconciling,omitempty"`
  4405  	// State: Output only. The current state of VMware user cluster.
  4406  	//
  4407  	// Possible values:
  4408  	//   "STATE_UNSPECIFIED" - Not set.
  4409  	//   "PROVISIONING" - The PROVISIONING state indicates the cluster is being
  4410  	// created.
  4411  	//   "RUNNING" - The RUNNING state indicates the cluster has been created and
  4412  	// is fully usable.
  4413  	//   "RECONCILING" - The RECONCILING state indicates that the cluster is being
  4414  	// updated. It remains available, but potentially with degraded performance.
  4415  	//   "STOPPING" - The STOPPING state indicates the cluster is being deleted.
  4416  	//   "ERROR" - The ERROR state indicates the cluster is in a broken
  4417  	// unrecoverable state.
  4418  	//   "DEGRADED" - The DEGRADED state indicates the cluster requires user action
  4419  	// to restore full functionality.
  4420  	State string `json:"state,omitempty"`
  4421  	// Status: Output only. ResourceStatus representing detailed cluster state.
  4422  	Status *ResourceStatus `json:"status,omitempty"`
  4423  	// Storage: Storage configuration.
  4424  	Storage *VmwareStorageConfig `json:"storage,omitempty"`
  4425  	// Uid: Output only. The unique identifier of the VMware user cluster.
  4426  	Uid string `json:"uid,omitempty"`
  4427  	// UpdateTime: Output only. The time at which VMware user cluster was last
  4428  	// updated.
  4429  	UpdateTime string `json:"updateTime,omitempty"`
  4430  	// UpgradePolicy: Specifies upgrade policy for the cluster.
  4431  	UpgradePolicy *VmwareClusterUpgradePolicy `json:"upgradePolicy,omitempty"`
  4432  	// ValidationCheck: Output only. ValidationCheck represents the result of the
  4433  	// preflight check job.
  4434  	ValidationCheck *ValidationCheck `json:"validationCheck,omitempty"`
  4435  	// Vcenter: VmwareVCenterConfig specifies vCenter config for the user cluster.
  4436  	// If unspecified, it is inherited from the admin cluster.
  4437  	Vcenter *VmwareVCenterConfig `json:"vcenter,omitempty"`
  4438  	// VmTrackingEnabled: Enable VM tracking.
  4439  	VmTrackingEnabled bool `json:"vmTrackingEnabled,omitempty"`
  4440  
  4441  	// ServerResponse contains the HTTP response code and headers from the server.
  4442  	googleapi.ServerResponse `json:"-"`
  4443  	// ForceSendFields is a list of field names (e.g. "AdminClusterMembership") to
  4444  	// unconditionally include in API requests. By default, fields with empty or
  4445  	// default values are omitted from API requests. See
  4446  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4447  	// details.
  4448  	ForceSendFields []string `json:"-"`
  4449  	// NullFields is a list of field names (e.g. "AdminClusterMembership") to
  4450  	// include in API requests with the JSON null value. By default, fields with
  4451  	// empty values are omitted from API requests. See
  4452  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4453  	NullFields []string `json:"-"`
  4454  }
  4455  
  4456  func (s *VmwareCluster) MarshalJSON() ([]byte, error) {
  4457  	type NoMethod VmwareCluster
  4458  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4459  }
  4460  
  4461  // VmwareClusterUpgradePolicy: VmwareClusterUpgradePolicy defines the cluster
  4462  // upgrade policy.
  4463  type VmwareClusterUpgradePolicy struct {
  4464  	// ControlPlaneOnly: Controls whether the upgrade applies to the control plane
  4465  	// only.
  4466  	ControlPlaneOnly bool `json:"controlPlaneOnly,omitempty"`
  4467  	// ForceSendFields is a list of field names (e.g. "ControlPlaneOnly") to
  4468  	// unconditionally include in API requests. By default, fields with empty or
  4469  	// default values are omitted from API requests. See
  4470  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4471  	// details.
  4472  	ForceSendFields []string `json:"-"`
  4473  	// NullFields is a list of field names (e.g. "ControlPlaneOnly") to include in
  4474  	// API requests with the JSON null value. By default, fields with empty values
  4475  	// are omitted from API requests. See
  4476  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4477  	NullFields []string `json:"-"`
  4478  }
  4479  
  4480  func (s *VmwareClusterUpgradePolicy) MarshalJSON() ([]byte, error) {
  4481  	type NoMethod VmwareClusterUpgradePolicy
  4482  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4483  }
  4484  
  4485  // VmwareControlPlaneNodeConfig: Specifies control plane node config for the
  4486  // VMware user cluster.
  4487  type VmwareControlPlaneNodeConfig struct {
  4488  	// AutoResizeConfig: AutoResizeConfig provides auto resizing configurations.
  4489  	AutoResizeConfig *VmwareAutoResizeConfig `json:"autoResizeConfig,omitempty"`
  4490  	// Cpus: The number of CPUs for each admin cluster node that serve as control
  4491  	// planes for this VMware user cluster. (default: 4 CPUs)
  4492  	Cpus int64 `json:"cpus,omitempty,string"`
  4493  	// Memory: The megabytes of memory for each admin cluster node that serves as a
  4494  	// control plane for this VMware user cluster (default: 8192 MB memory).
  4495  	Memory int64 `json:"memory,omitempty,string"`
  4496  	// Replicas: The number of control plane nodes for this VMware user cluster.
  4497  	// (default: 1 replica).
  4498  	Replicas int64 `json:"replicas,omitempty,string"`
  4499  	// VsphereConfig: Vsphere-specific config.
  4500  	VsphereConfig *VmwareControlPlaneVsphereConfig `json:"vsphereConfig,omitempty"`
  4501  	// ForceSendFields is a list of field names (e.g. "AutoResizeConfig") to
  4502  	// unconditionally include in API requests. By default, fields with empty or
  4503  	// default values are omitted from API requests. See
  4504  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4505  	// details.
  4506  	ForceSendFields []string `json:"-"`
  4507  	// NullFields is a list of field names (e.g. "AutoResizeConfig") to include in
  4508  	// API requests with the JSON null value. By default, fields with empty values
  4509  	// are omitted from API requests. See
  4510  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4511  	NullFields []string `json:"-"`
  4512  }
  4513  
  4514  func (s *VmwareControlPlaneNodeConfig) MarshalJSON() ([]byte, error) {
  4515  	type NoMethod VmwareControlPlaneNodeConfig
  4516  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4517  }
  4518  
  4519  // VmwareControlPlaneV2Config: Specifies control plane V2 config.
  4520  type VmwareControlPlaneV2Config struct {
  4521  	// ControlPlaneIpBlock: Static IP addresses for the control plane nodes.
  4522  	ControlPlaneIpBlock *VmwareIpBlock `json:"controlPlaneIpBlock,omitempty"`
  4523  	// ForceSendFields is a list of field names (e.g. "ControlPlaneIpBlock") to
  4524  	// unconditionally include in API requests. By default, fields with empty or
  4525  	// default values are omitted from API requests. See
  4526  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4527  	// details.
  4528  	ForceSendFields []string `json:"-"`
  4529  	// NullFields is a list of field names (e.g. "ControlPlaneIpBlock") to include
  4530  	// in API requests with the JSON null value. By default, fields with empty
  4531  	// values are omitted from API requests. See
  4532  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4533  	NullFields []string `json:"-"`
  4534  }
  4535  
  4536  func (s *VmwareControlPlaneV2Config) MarshalJSON() ([]byte, error) {
  4537  	type NoMethod VmwareControlPlaneV2Config
  4538  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4539  }
  4540  
  4541  // VmwareControlPlaneVsphereConfig: Specifies control plane node config.
  4542  type VmwareControlPlaneVsphereConfig struct {
  4543  	// Datastore: The Vsphere datastore used by the control plane Node.
  4544  	Datastore string `json:"datastore,omitempty"`
  4545  	// StoragePolicyName: The Vsphere storage policy used by the control plane
  4546  	// Node.
  4547  	StoragePolicyName string `json:"storagePolicyName,omitempty"`
  4548  	// ForceSendFields is a list of field names (e.g. "Datastore") to
  4549  	// unconditionally include in API requests. By default, fields with empty or
  4550  	// default values are omitted from API requests. See
  4551  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4552  	// details.
  4553  	ForceSendFields []string `json:"-"`
  4554  	// NullFields is a list of field names (e.g. "Datastore") to include in API
  4555  	// requests with the JSON null value. By default, fields with empty values are
  4556  	// omitted from API requests. See
  4557  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4558  	NullFields []string `json:"-"`
  4559  }
  4560  
  4561  func (s *VmwareControlPlaneVsphereConfig) MarshalJSON() ([]byte, error) {
  4562  	type NoMethod VmwareControlPlaneVsphereConfig
  4563  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4564  }
  4565  
  4566  // VmwareDataplaneV2Config: Contains configurations for Dataplane V2, which is
  4567  // optimized dataplane for Kubernetes networking. For more information, see:
  4568  // https://cloud.google.com/kubernetes-engine/docs/concepts/dataplane-v2
  4569  type VmwareDataplaneV2Config struct {
  4570  	// AdvancedNetworking: Enable advanced networking which requires
  4571  	// dataplane_v2_enabled to be set true.
  4572  	AdvancedNetworking bool `json:"advancedNetworking,omitempty"`
  4573  	// DataplaneV2Enabled: Enables Dataplane V2.
  4574  	DataplaneV2Enabled bool `json:"dataplaneV2Enabled,omitempty"`
  4575  	// ForwardMode: Configure ForwardMode for Dataplane v2.
  4576  	ForwardMode string `json:"forwardMode,omitempty"`
  4577  	// WindowsDataplaneV2Enabled: Enable Dataplane V2 for clusters with Windows
  4578  	// nodes.
  4579  	WindowsDataplaneV2Enabled bool `json:"windowsDataplaneV2Enabled,omitempty"`
  4580  	// ForceSendFields is a list of field names (e.g. "AdvancedNetworking") to
  4581  	// unconditionally include in API requests. By default, fields with empty or
  4582  	// default values are omitted from API requests. See
  4583  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4584  	// details.
  4585  	ForceSendFields []string `json:"-"`
  4586  	// NullFields is a list of field names (e.g. "AdvancedNetworking") to include
  4587  	// in API requests with the JSON null value. By default, fields with empty
  4588  	// values are omitted from API requests. See
  4589  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4590  	NullFields []string `json:"-"`
  4591  }
  4592  
  4593  func (s *VmwareDataplaneV2Config) MarshalJSON() ([]byte, error) {
  4594  	type NoMethod VmwareDataplaneV2Config
  4595  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4596  }
  4597  
  4598  // VmwareDhcpIpConfig: Represents the network configuration required for the
  4599  // VMware user clusters with DHCP IP configurations.
  4600  type VmwareDhcpIpConfig struct {
  4601  	// Enabled: enabled is a flag to mark if DHCP IP allocation is used for VMware
  4602  	// user clusters.
  4603  	Enabled bool `json:"enabled,omitempty"`
  4604  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  4605  	// include in API requests. By default, fields with empty or default values are
  4606  	// omitted from API requests. See
  4607  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4608  	// details.
  4609  	ForceSendFields []string `json:"-"`
  4610  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  4611  	// requests with the JSON null value. By default, fields with empty values are
  4612  	// omitted from API requests. See
  4613  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4614  	NullFields []string `json:"-"`
  4615  }
  4616  
  4617  func (s *VmwareDhcpIpConfig) MarshalJSON() ([]byte, error) {
  4618  	type NoMethod VmwareDhcpIpConfig
  4619  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4620  }
  4621  
  4622  // VmwareF5BigIpConfig: Represents configuration parameters for an F5 BIG-IP
  4623  // load balancer.
  4624  type VmwareF5BigIpConfig struct {
  4625  	// Address: The load balancer's IP address.
  4626  	Address string `json:"address,omitempty"`
  4627  	// Partition: The preexisting partition to be used by the load balancer. This
  4628  	// partition is usually created for the admin cluster for example:
  4629  	// 'my-f5-admin-partition'.
  4630  	Partition string `json:"partition,omitempty"`
  4631  	// SnatPool: The pool name. Only necessary, if using SNAT.
  4632  	SnatPool string `json:"snatPool,omitempty"`
  4633  	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
  4634  	// include in API requests. By default, fields with empty or default values are
  4635  	// omitted from API requests. See
  4636  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4637  	// details.
  4638  	ForceSendFields []string `json:"-"`
  4639  	// NullFields is a list of field names (e.g. "Address") to include in API
  4640  	// requests with the JSON null value. By default, fields with empty values are
  4641  	// omitted from API requests. See
  4642  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4643  	NullFields []string `json:"-"`
  4644  }
  4645  
  4646  func (s *VmwareF5BigIpConfig) MarshalJSON() ([]byte, error) {
  4647  	type NoMethod VmwareF5BigIpConfig
  4648  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4649  }
  4650  
  4651  // VmwareHostConfig: Represents the common parameters for all the hosts
  4652  // irrespective of their IP address.
  4653  type VmwareHostConfig struct {
  4654  	// DnsSearchDomains: DNS search domains.
  4655  	DnsSearchDomains []string `json:"dnsSearchDomains,omitempty"`
  4656  	// DnsServers: DNS servers.
  4657  	DnsServers []string `json:"dnsServers,omitempty"`
  4658  	// NtpServers: NTP servers.
  4659  	NtpServers []string `json:"ntpServers,omitempty"`
  4660  	// ForceSendFields is a list of field names (e.g. "DnsSearchDomains") to
  4661  	// unconditionally include in API requests. By default, fields with empty or
  4662  	// default values are omitted from API requests. See
  4663  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4664  	// details.
  4665  	ForceSendFields []string `json:"-"`
  4666  	// NullFields is a list of field names (e.g. "DnsSearchDomains") to include in
  4667  	// API requests with the JSON null value. By default, fields with empty values
  4668  	// are omitted from API requests. See
  4669  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4670  	NullFields []string `json:"-"`
  4671  }
  4672  
  4673  func (s *VmwareHostConfig) MarshalJSON() ([]byte, error) {
  4674  	type NoMethod VmwareHostConfig
  4675  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4676  }
  4677  
  4678  // VmwareHostIp: Represents VMware user cluster node's network configuration.
  4679  type VmwareHostIp struct {
  4680  	// Hostname: Hostname of the machine. VM's name will be used if this field is
  4681  	// empty.
  4682  	Hostname string `json:"hostname,omitempty"`
  4683  	// Ip: IP could be an IP address (like 1.2.3.4) or a CIDR (like 1.2.3.0/24).
  4684  	Ip string `json:"ip,omitempty"`
  4685  	// ForceSendFields is a list of field names (e.g. "Hostname") to
  4686  	// unconditionally include in API requests. By default, fields with empty or
  4687  	// default values are omitted from API requests. See
  4688  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4689  	// details.
  4690  	ForceSendFields []string `json:"-"`
  4691  	// NullFields is a list of field names (e.g. "Hostname") to include in API
  4692  	// requests with the JSON null value. By default, fields with empty values are
  4693  	// omitted from API requests. See
  4694  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4695  	NullFields []string `json:"-"`
  4696  }
  4697  
  4698  func (s *VmwareHostIp) MarshalJSON() ([]byte, error) {
  4699  	type NoMethod VmwareHostIp
  4700  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4701  }
  4702  
  4703  // VmwareIpBlock: Represents a collection of IP addresses to assign to nodes.
  4704  type VmwareIpBlock struct {
  4705  	// Gateway: The network gateway used by the VMware user cluster.
  4706  	Gateway string `json:"gateway,omitempty"`
  4707  	// Ips: The node's network configurations used by the VMware user cluster.
  4708  	Ips []*VmwareHostIp `json:"ips,omitempty"`
  4709  	// Netmask: The netmask used by the VMware user cluster.
  4710  	Netmask string `json:"netmask,omitempty"`
  4711  	// ForceSendFields is a list of field names (e.g. "Gateway") to unconditionally
  4712  	// include in API requests. By default, fields with empty or default values are
  4713  	// omitted from API requests. See
  4714  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4715  	// details.
  4716  	ForceSendFields []string `json:"-"`
  4717  	// NullFields is a list of field names (e.g. "Gateway") to include in API
  4718  	// requests with the JSON null value. By default, fields with empty values are
  4719  	// omitted from API requests. See
  4720  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4721  	NullFields []string `json:"-"`
  4722  }
  4723  
  4724  func (s *VmwareIpBlock) MarshalJSON() ([]byte, error) {
  4725  	type NoMethod VmwareIpBlock
  4726  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4727  }
  4728  
  4729  // VmwareLoadBalancerConfig: Specifies the locad balancer config for the VMware
  4730  // user cluster.
  4731  type VmwareLoadBalancerConfig struct {
  4732  	// F5Config: Configuration for F5 Big IP typed load balancers.
  4733  	F5Config *VmwareF5BigIpConfig `json:"f5Config,omitempty"`
  4734  	// ManualLbConfig: Manually configured load balancers.
  4735  	ManualLbConfig *VmwareManualLbConfig `json:"manualLbConfig,omitempty"`
  4736  	// MetalLbConfig: Configuration for MetalLB typed load balancers.
  4737  	MetalLbConfig *VmwareMetalLbConfig `json:"metalLbConfig,omitempty"`
  4738  	// SeesawConfig: Output only. Configuration for Seesaw typed load balancers.
  4739  	SeesawConfig *VmwareSeesawConfig `json:"seesawConfig,omitempty"`
  4740  	// VipConfig: The VIPs used by the load balancer.
  4741  	VipConfig *VmwareVipConfig `json:"vipConfig,omitempty"`
  4742  	// ForceSendFields is a list of field names (e.g. "F5Config") to
  4743  	// unconditionally include in API requests. By default, fields with empty or
  4744  	// default values are omitted from API requests. See
  4745  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4746  	// details.
  4747  	ForceSendFields []string `json:"-"`
  4748  	// NullFields is a list of field names (e.g. "F5Config") to include in API
  4749  	// requests with the JSON null value. By default, fields with empty values are
  4750  	// omitted from API requests. See
  4751  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4752  	NullFields []string `json:"-"`
  4753  }
  4754  
  4755  func (s *VmwareLoadBalancerConfig) MarshalJSON() ([]byte, error) {
  4756  	type NoMethod VmwareLoadBalancerConfig
  4757  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4758  }
  4759  
  4760  // VmwareManualLbConfig: Represents configuration parameters for an already
  4761  // existing manual load balancer. Given the nature of manual load balancers it
  4762  // is expected that said load balancer will be fully managed by users.
  4763  // IMPORTANT: Please note that the Anthos On-Prem API will not generate or
  4764  // update ManualLB configurations it can only bind a pre-existing configuration
  4765  // to a new VMware user cluster.
  4766  type VmwareManualLbConfig struct {
  4767  	// ControlPlaneNodePort: NodePort for control plane service. The Kubernetes API
  4768  	// server in the admin cluster is implemented as a Service of type NodePort
  4769  	// (ex. 30968).
  4770  	ControlPlaneNodePort int64 `json:"controlPlaneNodePort,omitempty"`
  4771  	// IngressHttpNodePort: NodePort for ingress service's http. The ingress
  4772  	// service in the admin cluster is implemented as a Service of type NodePort
  4773  	// (ex. 32527).
  4774  	IngressHttpNodePort int64 `json:"ingressHttpNodePort,omitempty"`
  4775  	// IngressHttpsNodePort: NodePort for ingress service's https. The ingress
  4776  	// service in the admin cluster is implemented as a Service of type NodePort
  4777  	// (ex. 30139).
  4778  	IngressHttpsNodePort int64 `json:"ingressHttpsNodePort,omitempty"`
  4779  	// KonnectivityServerNodePort: NodePort for konnectivity server service running
  4780  	// as a sidecar in each kube-apiserver pod (ex. 30564).
  4781  	KonnectivityServerNodePort int64 `json:"konnectivityServerNodePort,omitempty"`
  4782  	// ForceSendFields is a list of field names (e.g. "ControlPlaneNodePort") to
  4783  	// unconditionally include in API requests. By default, fields with empty or
  4784  	// default values are omitted from API requests. See
  4785  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4786  	// details.
  4787  	ForceSendFields []string `json:"-"`
  4788  	// NullFields is a list of field names (e.g. "ControlPlaneNodePort") to include
  4789  	// in API requests with the JSON null value. By default, fields with empty
  4790  	// values are omitted from API requests. See
  4791  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4792  	NullFields []string `json:"-"`
  4793  }
  4794  
  4795  func (s *VmwareManualLbConfig) MarshalJSON() ([]byte, error) {
  4796  	type NoMethod VmwareManualLbConfig
  4797  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4798  }
  4799  
  4800  // VmwareMetalLbConfig: Represents configuration parameters for the MetalLB
  4801  // load balancer.
  4802  type VmwareMetalLbConfig struct {
  4803  	// AddressPools: Required. AddressPools is a list of non-overlapping IP pools
  4804  	// used by load balancer typed services. All addresses must be routable to load
  4805  	// balancer nodes. IngressVIP must be included in the pools.
  4806  	AddressPools []*VmwareAddressPool `json:"addressPools,omitempty"`
  4807  	// ForceSendFields is a list of field names (e.g. "AddressPools") to
  4808  	// unconditionally include in API requests. By default, fields with empty or
  4809  	// default values are omitted from API requests. See
  4810  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4811  	// details.
  4812  	ForceSendFields []string `json:"-"`
  4813  	// NullFields is a list of field names (e.g. "AddressPools") to include in API
  4814  	// requests with the JSON null value. By default, fields with empty values are
  4815  	// omitted from API requests. See
  4816  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4817  	NullFields []string `json:"-"`
  4818  }
  4819  
  4820  func (s *VmwareMetalLbConfig) MarshalJSON() ([]byte, error) {
  4821  	type NoMethod VmwareMetalLbConfig
  4822  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4823  }
  4824  
  4825  // VmwareNetworkConfig: Specifies network config for the VMware user cluster.
  4826  type VmwareNetworkConfig struct {
  4827  	// ControlPlaneV2Config: Configuration for control plane V2 mode.
  4828  	ControlPlaneV2Config *VmwareControlPlaneV2Config `json:"controlPlaneV2Config,omitempty"`
  4829  	// DhcpIpConfig: Configuration settings for a DHCP IP configuration.
  4830  	DhcpIpConfig *VmwareDhcpIpConfig `json:"dhcpIpConfig,omitempty"`
  4831  	// HostConfig: Represents common network settings irrespective of the host's IP
  4832  	// address.
  4833  	HostConfig *VmwareHostConfig `json:"hostConfig,omitempty"`
  4834  	// PodAddressCidrBlocks: Required. All pods in the cluster are assigned an
  4835  	// RFC1918 IPv4 address from these ranges. Only a single range is supported.
  4836  	// This field cannot be changed after creation.
  4837  	PodAddressCidrBlocks []string `json:"podAddressCidrBlocks,omitempty"`
  4838  	// ServiceAddressCidrBlocks: Required. All services in the cluster are assigned
  4839  	// an RFC1918 IPv4 address from these ranges. Only a single range is supported.
  4840  	// This field cannot be changed after creation.
  4841  	ServiceAddressCidrBlocks []string `json:"serviceAddressCidrBlocks,omitempty"`
  4842  	// StaticIpConfig: Configuration settings for a static IP configuration.
  4843  	StaticIpConfig *VmwareStaticIpConfig `json:"staticIpConfig,omitempty"`
  4844  	// VcenterNetwork: vcenter_network specifies vCenter network name. Inherited
  4845  	// from the admin cluster.
  4846  	VcenterNetwork string `json:"vcenterNetwork,omitempty"`
  4847  	// ForceSendFields is a list of field names (e.g. "ControlPlaneV2Config") to
  4848  	// unconditionally include in API requests. By default, fields with empty or
  4849  	// default values are omitted from API requests. See
  4850  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4851  	// details.
  4852  	ForceSendFields []string `json:"-"`
  4853  	// NullFields is a list of field names (e.g. "ControlPlaneV2Config") to include
  4854  	// in API requests with the JSON null value. By default, fields with empty
  4855  	// values are omitted from API requests. See
  4856  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4857  	NullFields []string `json:"-"`
  4858  }
  4859  
  4860  func (s *VmwareNetworkConfig) MarshalJSON() ([]byte, error) {
  4861  	type NoMethod VmwareNetworkConfig
  4862  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4863  }
  4864  
  4865  // VmwareNodeConfig: Parameters that describe the configuration of all nodes
  4866  // within a given node pool.
  4867  type VmwareNodeConfig struct {
  4868  	// BootDiskSizeGb: VMware disk size to be used during creation.
  4869  	BootDiskSizeGb int64 `json:"bootDiskSizeGb,omitempty,string"`
  4870  	// Cpus: The number of CPUs for each node in the node pool.
  4871  	Cpus int64 `json:"cpus,omitempty,string"`
  4872  	// EnableLoadBalancer: Allow node pool traffic to be load balanced. Only works
  4873  	// for clusters with MetalLB load balancers.
  4874  	EnableLoadBalancer bool `json:"enableLoadBalancer,omitempty"`
  4875  	// Image: The OS image name in vCenter, only valid when using Windows.
  4876  	Image string `json:"image,omitempty"`
  4877  	// ImageType: Required. The OS image to be used for each node in a node pool.
  4878  	// Currently `cos`, `cos_cgv2`, `ubuntu`, `ubuntu_cgv2`, `ubuntu_containerd`
  4879  	// and `windows` are supported.
  4880  	ImageType string `json:"imageType,omitempty"`
  4881  	// Labels: The map of Kubernetes labels (key/value pairs) to be applied to each
  4882  	// node. These will added in addition to any default label(s) that Kubernetes
  4883  	// may apply to the node. In case of conflict in label keys, the applied set
  4884  	// may differ depending on the Kubernetes version -- it's best to assume the
  4885  	// behavior is undefined and conflicts should be avoided. For more information,
  4886  	// including usage and the valid values, see:
  4887  	// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  4888  	Labels map[string]string `json:"labels,omitempty"`
  4889  	// MemoryMb: The megabytes of memory for each node in the node pool.
  4890  	MemoryMb int64 `json:"memoryMb,omitempty,string"`
  4891  	// Replicas: The number of nodes in the node pool.
  4892  	Replicas int64 `json:"replicas,omitempty,string"`
  4893  	// Taints: The initial taints assigned to nodes of this node pool.
  4894  	Taints []*NodeTaint `json:"taints,omitempty"`
  4895  	// VsphereConfig: Specifies the vSphere config for node pool.
  4896  	VsphereConfig *VmwareVsphereConfig `json:"vsphereConfig,omitempty"`
  4897  	// ForceSendFields is a list of field names (e.g. "BootDiskSizeGb") to
  4898  	// unconditionally include in API requests. By default, fields with empty or
  4899  	// default values are omitted from API requests. See
  4900  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4901  	// details.
  4902  	ForceSendFields []string `json:"-"`
  4903  	// NullFields is a list of field names (e.g. "BootDiskSizeGb") to include in
  4904  	// API requests with the JSON null value. By default, fields with empty values
  4905  	// are omitted from API requests. See
  4906  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4907  	NullFields []string `json:"-"`
  4908  }
  4909  
  4910  func (s *VmwareNodeConfig) MarshalJSON() ([]byte, error) {
  4911  	type NoMethod VmwareNodeConfig
  4912  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4913  }
  4914  
  4915  // VmwareNodePool: Resource VmwareNodePool represents a VMware node pool. ##
  4916  type VmwareNodePool struct {
  4917  	// Annotations: Annotations on the node pool. This field has the same
  4918  	// restrictions as Kubernetes annotations. The total size of all keys and
  4919  	// values combined is limited to 256k. Key can have 2 segments: prefix
  4920  	// (optional) and name (required), separated by a slash (/). Prefix must be a
  4921  	// DNS subdomain. Name must be 63 characters or less, begin and end with
  4922  	// alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics
  4923  	// between.
  4924  	Annotations map[string]string `json:"annotations,omitempty"`
  4925  	// Config: Required. The node configuration of the node pool.
  4926  	Config *VmwareNodeConfig `json:"config,omitempty"`
  4927  	// CreateTime: Output only. The time at which this node pool was created.
  4928  	CreateTime string `json:"createTime,omitempty"`
  4929  	// DeleteTime: Output only. The time at which this node pool was deleted. If
  4930  	// the resource is not deleted, this must be empty
  4931  	DeleteTime string `json:"deleteTime,omitempty"`
  4932  	// DisplayName: The display name for the node pool.
  4933  	DisplayName string `json:"displayName,omitempty"`
  4934  	// Etag: This checksum is computed by the server based on the value of other
  4935  	// fields, and may be sent on update and delete requests to ensure the client
  4936  	// has an up-to-date value before proceeding. Allows clients to perform
  4937  	// consistent read-modify-writes through optimistic concurrency control.
  4938  	Etag string `json:"etag,omitempty"`
  4939  	// Name: Immutable. The resource name of this node pool.
  4940  	Name string `json:"name,omitempty"`
  4941  	// NodePoolAutoscaling: Node pool autoscaling config for the node pool.
  4942  	NodePoolAutoscaling *VmwareNodePoolAutoscalingConfig `json:"nodePoolAutoscaling,omitempty"`
  4943  	// OnPremVersion: Anthos version for the node pool. Defaults to the user
  4944  	// cluster version.
  4945  	OnPremVersion string `json:"onPremVersion,omitempty"`
  4946  	// Reconciling: Output only. If set, there are currently changes in flight to
  4947  	// the node pool.
  4948  	Reconciling bool `json:"reconciling,omitempty"`
  4949  	// State: Output only. The current state of the node pool.
  4950  	//
  4951  	// Possible values:
  4952  	//   "STATE_UNSPECIFIED" - Not set.
  4953  	//   "PROVISIONING" - The PROVISIONING state indicates the node pool is being
  4954  	// created.
  4955  	//   "RUNNING" - The RUNNING state indicates the node pool has been created and
  4956  	// is fully usable.
  4957  	//   "RECONCILING" - The RECONCILING state indicates that the node pool is
  4958  	// being updated. It remains available, but potentially with degraded
  4959  	// performance.
  4960  	//   "STOPPING" - The STOPPING state indicates the cluster is being deleted
  4961  	//   "ERROR" - The ERROR state indicates the node pool is in a broken
  4962  	// unrecoverable state.
  4963  	//   "DEGRADED" - The DEGRADED state indicates the node pool requires user
  4964  	// action to restore full functionality.
  4965  	State string `json:"state,omitempty"`
  4966  	// Status: Output only. ResourceStatus representing the detailed VMware node
  4967  	// pool state.
  4968  	Status *ResourceStatus `json:"status,omitempty"`
  4969  	// Uid: Output only. The unique identifier of the node pool.
  4970  	Uid string `json:"uid,omitempty"`
  4971  	// UpdateTime: Output only. The time at which this node pool was last updated.
  4972  	UpdateTime string `json:"updateTime,omitempty"`
  4973  
  4974  	// ServerResponse contains the HTTP response code and headers from the server.
  4975  	googleapi.ServerResponse `json:"-"`
  4976  	// ForceSendFields is a list of field names (e.g. "Annotations") to
  4977  	// unconditionally include in API requests. By default, fields with empty or
  4978  	// default values are omitted from API requests. See
  4979  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4980  	// details.
  4981  	ForceSendFields []string `json:"-"`
  4982  	// NullFields is a list of field names (e.g. "Annotations") to include in API
  4983  	// requests with the JSON null value. By default, fields with empty values are
  4984  	// omitted from API requests. See
  4985  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4986  	NullFields []string `json:"-"`
  4987  }
  4988  
  4989  func (s *VmwareNodePool) MarshalJSON() ([]byte, error) {
  4990  	type NoMethod VmwareNodePool
  4991  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4992  }
  4993  
  4994  // VmwareNodePoolAutoscalingConfig: NodePoolAutoscaling config for the NodePool
  4995  // to allow for the kubernetes to scale NodePool.
  4996  type VmwareNodePoolAutoscalingConfig struct {
  4997  	// MaxReplicas: Maximum number of replicas in the NodePool.
  4998  	MaxReplicas int64 `json:"maxReplicas,omitempty"`
  4999  	// MinReplicas: Minimum number of replicas in the NodePool.
  5000  	MinReplicas int64 `json:"minReplicas,omitempty"`
  5001  	// ForceSendFields is a list of field names (e.g. "MaxReplicas") to
  5002  	// unconditionally include in API requests. By default, fields with empty or
  5003  	// default values are omitted from API requests. See
  5004  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5005  	// details.
  5006  	ForceSendFields []string `json:"-"`
  5007  	// NullFields is a list of field names (e.g. "MaxReplicas") to include in API
  5008  	// requests with the JSON null value. By default, fields with empty values are
  5009  	// omitted from API requests. See
  5010  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5011  	NullFields []string `json:"-"`
  5012  }
  5013  
  5014  func (s *VmwareNodePoolAutoscalingConfig) MarshalJSON() ([]byte, error) {
  5015  	type NoMethod VmwareNodePoolAutoscalingConfig
  5016  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5017  }
  5018  
  5019  // VmwarePlatformConfig: VmwarePlatformConfig represents configuration for the
  5020  // VMware platform.
  5021  type VmwarePlatformConfig struct {
  5022  	// Bundles: Output only. The list of bundles installed in the admin cluster.
  5023  	Bundles []*VmwareBundleConfig `json:"bundles,omitempty"`
  5024  	// PlatformVersion: Output only. The platform version e.g. 1.13.2.
  5025  	PlatformVersion string `json:"platformVersion,omitempty"`
  5026  	// RequiredPlatformVersion: Input only. The required platform version e.g.
  5027  	// 1.13.1. If the current platform version is lower than the target version,
  5028  	// the platform version will be updated to the target version. If the target
  5029  	// version is not installed in the platform (bundle versions), download the
  5030  	// target version bundle.
  5031  	RequiredPlatformVersion string `json:"requiredPlatformVersion,omitempty"`
  5032  	// Status: Output only. Resource status for the platform.
  5033  	Status *ResourceStatus `json:"status,omitempty"`
  5034  	// ForceSendFields is a list of field names (e.g. "Bundles") to unconditionally
  5035  	// include in API requests. By default, fields with empty or default values are
  5036  	// omitted from API requests. See
  5037  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5038  	// details.
  5039  	ForceSendFields []string `json:"-"`
  5040  	// NullFields is a list of field names (e.g. "Bundles") to include in API
  5041  	// requests with the JSON null value. By default, fields with empty values are
  5042  	// omitted from API requests. See
  5043  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5044  	NullFields []string `json:"-"`
  5045  }
  5046  
  5047  func (s *VmwarePlatformConfig) MarshalJSON() ([]byte, error) {
  5048  	type NoMethod VmwarePlatformConfig
  5049  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5050  }
  5051  
  5052  // VmwareSeesawConfig: VmwareSeesawConfig represents configuration parameters
  5053  // for an already existing Seesaw load balancer. IMPORTANT: Please note that
  5054  // the Anthos On-Prem API will not generate or update Seesaw configurations it
  5055  // can only bind a pre-existing configuration to a new user cluster. IMPORTANT:
  5056  // When attempting to create a user cluster with a pre-existing Seesaw load
  5057  // balancer you will need to follow some preparation steps before calling the
  5058  // 'CreateVmwareCluster' API method. First you will need to create the user
  5059  // cluster's namespace via kubectl. The namespace will need to use the
  5060  // following naming convention : -gke-onprem-mgmt or -gke-onprem-mgmt depending
  5061  // on whether you used the 'VmwareCluster.local_name' to disambiguate
  5062  // collisions; for more context see the documentation of
  5063  // 'VmwareCluster.local_name'. Once the namespace is created you will need to
  5064  // create a secret resource via kubectl. This secret will contain copies of
  5065  // your Seesaw credentials. The Secret must be called 'user-cluster-creds' and
  5066  // contain Seesaw's SSH and Cert credentials. The credentials must be keyed
  5067  // with the following names: 'seesaw-ssh-private-key', 'seesaw-ssh-public-key',
  5068  // 'seesaw-ssh-ca-key', 'seesaw-ssh-ca-cert'.
  5069  type VmwareSeesawConfig struct {
  5070  	// EnableHa: Enable two load balancer VMs to achieve a highly-available Seesaw
  5071  	// load balancer.
  5072  	EnableHa bool `json:"enableHa,omitempty"`
  5073  	// Group: Required. In general the following format should be used for the
  5074  	// Seesaw group name: seesaw-for-[cluster_name].
  5075  	Group string `json:"group,omitempty"`
  5076  	// IpBlocks: Required. The IP Blocks to be used by the Seesaw load balancer
  5077  	IpBlocks []*VmwareIpBlock `json:"ipBlocks,omitempty"`
  5078  	// MasterIp: Required. MasterIP is the IP announced by the master of Seesaw
  5079  	// group.
  5080  	MasterIp string `json:"masterIp,omitempty"`
  5081  	// StackdriverName: Name to be used by Stackdriver.
  5082  	StackdriverName string `json:"stackdriverName,omitempty"`
  5083  	// Vms: Names of the VMs created for this Seesaw group.
  5084  	Vms []string `json:"vms,omitempty"`
  5085  	// ForceSendFields is a list of field names (e.g. "EnableHa") to
  5086  	// unconditionally include in API requests. By default, fields with empty or
  5087  	// default values are omitted from API requests. See
  5088  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5089  	// details.
  5090  	ForceSendFields []string `json:"-"`
  5091  	// NullFields is a list of field names (e.g. "EnableHa") to include in API
  5092  	// requests with the JSON null value. By default, fields with empty values are
  5093  	// omitted from API requests. See
  5094  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5095  	NullFields []string `json:"-"`
  5096  }
  5097  
  5098  func (s *VmwareSeesawConfig) MarshalJSON() ([]byte, error) {
  5099  	type NoMethod VmwareSeesawConfig
  5100  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5101  }
  5102  
  5103  // VmwareStaticIpConfig: Represents the network configuration required for the
  5104  // VMware user clusters with Static IP configurations.
  5105  type VmwareStaticIpConfig struct {
  5106  	// IpBlocks: Represents the configuration values for static IP allocation to
  5107  	// nodes.
  5108  	IpBlocks []*VmwareIpBlock `json:"ipBlocks,omitempty"`
  5109  	// ForceSendFields is a list of field names (e.g. "IpBlocks") to
  5110  	// unconditionally include in API requests. By default, fields with empty or
  5111  	// default values are omitted from API requests. See
  5112  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5113  	// details.
  5114  	ForceSendFields []string `json:"-"`
  5115  	// NullFields is a list of field names (e.g. "IpBlocks") to include in API
  5116  	// requests with the JSON null value. By default, fields with empty values are
  5117  	// omitted from API requests. See
  5118  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5119  	NullFields []string `json:"-"`
  5120  }
  5121  
  5122  func (s *VmwareStaticIpConfig) MarshalJSON() ([]byte, error) {
  5123  	type NoMethod VmwareStaticIpConfig
  5124  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5125  }
  5126  
  5127  // VmwareStorageConfig: Specifies vSphere CSI components deployment config in
  5128  // the VMware user cluster.
  5129  type VmwareStorageConfig struct {
  5130  	// VsphereCsiDisabled: Whether or not to deploy vSphere CSI components in the
  5131  	// VMware user cluster. Enabled by default.
  5132  	VsphereCsiDisabled bool `json:"vsphereCsiDisabled,omitempty"`
  5133  	// ForceSendFields is a list of field names (e.g. "VsphereCsiDisabled") to
  5134  	// unconditionally include in API requests. By default, fields with empty or
  5135  	// default values are omitted from API requests. See
  5136  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5137  	// details.
  5138  	ForceSendFields []string `json:"-"`
  5139  	// NullFields is a list of field names (e.g. "VsphereCsiDisabled") to include
  5140  	// in API requests with the JSON null value. By default, fields with empty
  5141  	// values are omitted from API requests. See
  5142  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5143  	NullFields []string `json:"-"`
  5144  }
  5145  
  5146  func (s *VmwareStorageConfig) MarshalJSON() ([]byte, error) {
  5147  	type NoMethod VmwareStorageConfig
  5148  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5149  }
  5150  
  5151  // VmwareVCenterConfig: Represents configuration for the VMware VCenter for the
  5152  // user cluster.
  5153  type VmwareVCenterConfig struct {
  5154  	// Address: Output only. The vCenter IP address.
  5155  	Address string `json:"address,omitempty"`
  5156  	// CaCertData: Contains the vCenter CA certificate public key for SSL
  5157  	// verification.
  5158  	CaCertData string `json:"caCertData,omitempty"`
  5159  	// Cluster: The name of the vCenter cluster for the user cluster.
  5160  	Cluster string `json:"cluster,omitempty"`
  5161  	// Datacenter: The name of the vCenter datacenter for the user cluster.
  5162  	Datacenter string `json:"datacenter,omitempty"`
  5163  	// Datastore: The name of the vCenter datastore for the user cluster.
  5164  	Datastore string `json:"datastore,omitempty"`
  5165  	// Folder: The name of the vCenter folder for the user cluster.
  5166  	Folder string `json:"folder,omitempty"`
  5167  	// ResourcePool: The name of the vCenter resource pool for the user cluster.
  5168  	ResourcePool string `json:"resourcePool,omitempty"`
  5169  	// StoragePolicyName: The name of the vCenter storage policy for the user
  5170  	// cluster.
  5171  	StoragePolicyName string `json:"storagePolicyName,omitempty"`
  5172  	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
  5173  	// include in API requests. By default, fields with empty or default values are
  5174  	// omitted from API requests. See
  5175  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5176  	// details.
  5177  	ForceSendFields []string `json:"-"`
  5178  	// NullFields is a list of field names (e.g. "Address") to include in API
  5179  	// requests with the JSON null value. By default, fields with empty values are
  5180  	// omitted from API requests. See
  5181  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5182  	NullFields []string `json:"-"`
  5183  }
  5184  
  5185  func (s *VmwareVCenterConfig) MarshalJSON() ([]byte, error) {
  5186  	type NoMethod VmwareVCenterConfig
  5187  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5188  }
  5189  
  5190  // VmwareVersionInfo: Contains information about a specific Anthos on VMware
  5191  // version.
  5192  type VmwareVersionInfo struct {
  5193  	// Dependencies: The list of upgrade dependencies for this version.
  5194  	Dependencies []*UpgradeDependency `json:"dependencies,omitempty"`
  5195  	// HasDependencies: If set, the cluster dependencies (e.g. the admin cluster,
  5196  	// other user clusters managed by the same admin cluster) must be upgraded
  5197  	// before this version can be installed or upgraded to.
  5198  	HasDependencies bool `json:"hasDependencies,omitempty"`
  5199  	// IsInstalled: If set, the version is installed in the admin cluster.
  5200  	// Otherwise, the version bundle must be downloaded and installed before a user
  5201  	// cluster can be created at or upgraded to this version.
  5202  	IsInstalled bool `json:"isInstalled,omitempty"`
  5203  	// Version: Version number e.g. 1.13.1-gke.1000.
  5204  	Version string `json:"version,omitempty"`
  5205  	// ForceSendFields is a list of field names (e.g. "Dependencies") to
  5206  	// unconditionally include in API requests. By default, fields with empty or
  5207  	// default values are omitted from API requests. See
  5208  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5209  	// details.
  5210  	ForceSendFields []string `json:"-"`
  5211  	// NullFields is a list of field names (e.g. "Dependencies") to include in API
  5212  	// requests with the JSON null value. By default, fields with empty values are
  5213  	// omitted from API requests. See
  5214  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5215  	NullFields []string `json:"-"`
  5216  }
  5217  
  5218  func (s *VmwareVersionInfo) MarshalJSON() ([]byte, error) {
  5219  	type NoMethod VmwareVersionInfo
  5220  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5221  }
  5222  
  5223  // VmwareVipConfig: Specifies the VIP config for the VMware user cluster load
  5224  // balancer.
  5225  type VmwareVipConfig struct {
  5226  	// ControlPlaneVip: The VIP which you previously set aside for the Kubernetes
  5227  	// API of this cluster.
  5228  	ControlPlaneVip string `json:"controlPlaneVip,omitempty"`
  5229  	// IngressVip: The VIP which you previously set aside for ingress traffic into
  5230  	// this cluster.
  5231  	IngressVip string `json:"ingressVip,omitempty"`
  5232  	// ForceSendFields is a list of field names (e.g. "ControlPlaneVip") to
  5233  	// unconditionally include in API requests. By default, fields with empty or
  5234  	// default values are omitted from API requests. See
  5235  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5236  	// details.
  5237  	ForceSendFields []string `json:"-"`
  5238  	// NullFields is a list of field names (e.g. "ControlPlaneVip") to include in
  5239  	// API requests with the JSON null value. By default, fields with empty values
  5240  	// are omitted from API requests. See
  5241  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5242  	NullFields []string `json:"-"`
  5243  }
  5244  
  5245  func (s *VmwareVipConfig) MarshalJSON() ([]byte, error) {
  5246  	type NoMethod VmwareVipConfig
  5247  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5248  }
  5249  
  5250  // VmwareVsphereConfig: VmwareVsphereConfig represents configuration for the
  5251  // VMware VCenter for node pool.
  5252  type VmwareVsphereConfig struct {
  5253  	// Datastore: The name of the vCenter datastore. Inherited from the user
  5254  	// cluster.
  5255  	Datastore string `json:"datastore,omitempty"`
  5256  	// HostGroups: Vsphere host groups to apply to all VMs in the node pool
  5257  	HostGroups []string `json:"hostGroups,omitempty"`
  5258  	// Tags: Tags to apply to VMs.
  5259  	Tags []*VmwareVsphereTag `json:"tags,omitempty"`
  5260  	// ForceSendFields is a list of field names (e.g. "Datastore") to
  5261  	// unconditionally include in API requests. By default, fields with empty or
  5262  	// default values are omitted from API requests. See
  5263  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5264  	// details.
  5265  	ForceSendFields []string `json:"-"`
  5266  	// NullFields is a list of field names (e.g. "Datastore") to include in API
  5267  	// requests with the JSON null value. By default, fields with empty values are
  5268  	// omitted from API requests. See
  5269  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5270  	NullFields []string `json:"-"`
  5271  }
  5272  
  5273  func (s *VmwareVsphereConfig) MarshalJSON() ([]byte, error) {
  5274  	type NoMethod VmwareVsphereConfig
  5275  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5276  }
  5277  
  5278  // VmwareVsphereTag: VmwareVsphereTag describes a vSphere tag to be placed on
  5279  // VMs in the node pool. For more information, see
  5280  // https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vcenterhost.doc/GUID-E8E854DD-AA97-4E0C-8419-CE84F93C4058.html
  5281  type VmwareVsphereTag struct {
  5282  	// Category: The Vsphere tag category.
  5283  	Category string `json:"category,omitempty"`
  5284  	// Tag: The Vsphere tag name.
  5285  	Tag string `json:"tag,omitempty"`
  5286  	// ForceSendFields is a list of field names (e.g. "Category") to
  5287  	// unconditionally include in API requests. By default, fields with empty or
  5288  	// default values are omitted from API requests. See
  5289  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5290  	// details.
  5291  	ForceSendFields []string `json:"-"`
  5292  	// NullFields is a list of field names (e.g. "Category") to include in API
  5293  	// requests with the JSON null value. By default, fields with empty values are
  5294  	// omitted from API requests. See
  5295  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5296  	NullFields []string `json:"-"`
  5297  }
  5298  
  5299  func (s *VmwareVsphereTag) MarshalJSON() ([]byte, error) {
  5300  	type NoMethod VmwareVsphereTag
  5301  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5302  }
  5303  
  5304  type ProjectsLocationsGetCall struct {
  5305  	s            *Service
  5306  	name         string
  5307  	urlParams_   gensupport.URLParams
  5308  	ifNoneMatch_ string
  5309  	ctx_         context.Context
  5310  	header_      http.Header
  5311  }
  5312  
  5313  // Get: Gets information about a location.
  5314  //
  5315  // - name: Resource name for the location.
  5316  func (r *ProjectsLocationsService) Get(name string) *ProjectsLocationsGetCall {
  5317  	c := &ProjectsLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  5318  	c.name = name
  5319  	return c
  5320  }
  5321  
  5322  // Fields allows partial responses to be retrieved. See
  5323  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  5324  // details.
  5325  func (c *ProjectsLocationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsGetCall {
  5326  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  5327  	return c
  5328  }
  5329  
  5330  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  5331  // object's ETag matches the given value. This is useful for getting updates
  5332  // only after the object has changed since the last request.
  5333  func (c *ProjectsLocationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsGetCall {
  5334  	c.ifNoneMatch_ = entityTag
  5335  	return c
  5336  }
  5337  
  5338  // Context sets the context to be used in this call's Do method.
  5339  func (c *ProjectsLocationsGetCall) Context(ctx context.Context) *ProjectsLocationsGetCall {
  5340  	c.ctx_ = ctx
  5341  	return c
  5342  }
  5343  
  5344  // Header returns a http.Header that can be modified by the caller to add
  5345  // headers to the request.
  5346  func (c *ProjectsLocationsGetCall) Header() http.Header {
  5347  	if c.header_ == nil {
  5348  		c.header_ = make(http.Header)
  5349  	}
  5350  	return c.header_
  5351  }
  5352  
  5353  func (c *ProjectsLocationsGetCall) doRequest(alt string) (*http.Response, error) {
  5354  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  5355  	if c.ifNoneMatch_ != "" {
  5356  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  5357  	}
  5358  	var body io.Reader = nil
  5359  	c.urlParams_.Set("alt", alt)
  5360  	c.urlParams_.Set("prettyPrint", "false")
  5361  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  5362  	urls += "?" + c.urlParams_.Encode()
  5363  	req, err := http.NewRequest("GET", urls, body)
  5364  	if err != nil {
  5365  		return nil, err
  5366  	}
  5367  	req.Header = reqHeaders
  5368  	googleapi.Expand(req.URL, map[string]string{
  5369  		"name": c.name,
  5370  	})
  5371  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  5372  }
  5373  
  5374  // Do executes the "gkeonprem.projects.locations.get" call.
  5375  // Any non-2xx status code is an error. Response headers are in either
  5376  // *Location.ServerResponse.Header or (if a response was returned at all) in
  5377  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  5378  // whether the returned error was because http.StatusNotModified was returned.
  5379  func (c *ProjectsLocationsGetCall) Do(opts ...googleapi.CallOption) (*Location, error) {
  5380  	gensupport.SetOptions(c.urlParams_, opts...)
  5381  	res, err := c.doRequest("json")
  5382  	if res != nil && res.StatusCode == http.StatusNotModified {
  5383  		if res.Body != nil {
  5384  			res.Body.Close()
  5385  		}
  5386  		return nil, gensupport.WrapError(&googleapi.Error{
  5387  			Code:   res.StatusCode,
  5388  			Header: res.Header,
  5389  		})
  5390  	}
  5391  	if err != nil {
  5392  		return nil, err
  5393  	}
  5394  	defer googleapi.CloseBody(res)
  5395  	if err := googleapi.CheckResponse(res); err != nil {
  5396  		return nil, gensupport.WrapError(err)
  5397  	}
  5398  	ret := &Location{
  5399  		ServerResponse: googleapi.ServerResponse{
  5400  			Header:         res.Header,
  5401  			HTTPStatusCode: res.StatusCode,
  5402  		},
  5403  	}
  5404  	target := &ret
  5405  	if err := gensupport.DecodeResponse(target, res); err != nil {
  5406  		return nil, err
  5407  	}
  5408  	return ret, nil
  5409  }
  5410  
  5411  type ProjectsLocationsListCall struct {
  5412  	s            *Service
  5413  	name         string
  5414  	urlParams_   gensupport.URLParams
  5415  	ifNoneMatch_ string
  5416  	ctx_         context.Context
  5417  	header_      http.Header
  5418  }
  5419  
  5420  // List: Lists information about the supported locations for this service.
  5421  //
  5422  // - name: The resource that owns the locations collection, if applicable.
  5423  func (r *ProjectsLocationsService) List(name string) *ProjectsLocationsListCall {
  5424  	c := &ProjectsLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  5425  	c.name = name
  5426  	return c
  5427  }
  5428  
  5429  // Filter sets the optional parameter "filter": A filter to narrow down results
  5430  // to a preferred subset. The filtering language accepts strings like
  5431  // "displayName=tokyo", and is documented in more detail in AIP-160
  5432  // (https://google.aip.dev/160).
  5433  func (c *ProjectsLocationsListCall) Filter(filter string) *ProjectsLocationsListCall {
  5434  	c.urlParams_.Set("filter", filter)
  5435  	return c
  5436  }
  5437  
  5438  // PageSize sets the optional parameter "pageSize": The maximum number of
  5439  // results to return. If not set, the service selects a default.
  5440  func (c *ProjectsLocationsListCall) PageSize(pageSize int64) *ProjectsLocationsListCall {
  5441  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  5442  	return c
  5443  }
  5444  
  5445  // PageToken sets the optional parameter "pageToken": A page token received
  5446  // from the `next_page_token` field in the response. Send that page token to
  5447  // receive the subsequent page.
  5448  func (c *ProjectsLocationsListCall) PageToken(pageToken string) *ProjectsLocationsListCall {
  5449  	c.urlParams_.Set("pageToken", pageToken)
  5450  	return c
  5451  }
  5452  
  5453  // Fields allows partial responses to be retrieved. See
  5454  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  5455  // details.
  5456  func (c *ProjectsLocationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsListCall {
  5457  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  5458  	return c
  5459  }
  5460  
  5461  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  5462  // object's ETag matches the given value. This is useful for getting updates
  5463  // only after the object has changed since the last request.
  5464  func (c *ProjectsLocationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsListCall {
  5465  	c.ifNoneMatch_ = entityTag
  5466  	return c
  5467  }
  5468  
  5469  // Context sets the context to be used in this call's Do method.
  5470  func (c *ProjectsLocationsListCall) Context(ctx context.Context) *ProjectsLocationsListCall {
  5471  	c.ctx_ = ctx
  5472  	return c
  5473  }
  5474  
  5475  // Header returns a http.Header that can be modified by the caller to add
  5476  // headers to the request.
  5477  func (c *ProjectsLocationsListCall) Header() http.Header {
  5478  	if c.header_ == nil {
  5479  		c.header_ = make(http.Header)
  5480  	}
  5481  	return c.header_
  5482  }
  5483  
  5484  func (c *ProjectsLocationsListCall) doRequest(alt string) (*http.Response, error) {
  5485  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  5486  	if c.ifNoneMatch_ != "" {
  5487  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  5488  	}
  5489  	var body io.Reader = nil
  5490  	c.urlParams_.Set("alt", alt)
  5491  	c.urlParams_.Set("prettyPrint", "false")
  5492  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/locations")
  5493  	urls += "?" + c.urlParams_.Encode()
  5494  	req, err := http.NewRequest("GET", urls, body)
  5495  	if err != nil {
  5496  		return nil, err
  5497  	}
  5498  	req.Header = reqHeaders
  5499  	googleapi.Expand(req.URL, map[string]string{
  5500  		"name": c.name,
  5501  	})
  5502  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  5503  }
  5504  
  5505  // Do executes the "gkeonprem.projects.locations.list" call.
  5506  // Any non-2xx status code is an error. Response headers are in either
  5507  // *ListLocationsResponse.ServerResponse.Header or (if a response was returned
  5508  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  5509  // check whether the returned error was because http.StatusNotModified was
  5510  // returned.
  5511  func (c *ProjectsLocationsListCall) Do(opts ...googleapi.CallOption) (*ListLocationsResponse, error) {
  5512  	gensupport.SetOptions(c.urlParams_, opts...)
  5513  	res, err := c.doRequest("json")
  5514  	if res != nil && res.StatusCode == http.StatusNotModified {
  5515  		if res.Body != nil {
  5516  			res.Body.Close()
  5517  		}
  5518  		return nil, gensupport.WrapError(&googleapi.Error{
  5519  			Code:   res.StatusCode,
  5520  			Header: res.Header,
  5521  		})
  5522  	}
  5523  	if err != nil {
  5524  		return nil, err
  5525  	}
  5526  	defer googleapi.CloseBody(res)
  5527  	if err := googleapi.CheckResponse(res); err != nil {
  5528  		return nil, gensupport.WrapError(err)
  5529  	}
  5530  	ret := &ListLocationsResponse{
  5531  		ServerResponse: googleapi.ServerResponse{
  5532  			Header:         res.Header,
  5533  			HTTPStatusCode: res.StatusCode,
  5534  		},
  5535  	}
  5536  	target := &ret
  5537  	if err := gensupport.DecodeResponse(target, res); err != nil {
  5538  		return nil, err
  5539  	}
  5540  	return ret, nil
  5541  }
  5542  
  5543  // Pages invokes f for each page of results.
  5544  // A non-nil error returned from f will halt the iteration.
  5545  // The provided context supersedes any context provided to the Context method.
  5546  func (c *ProjectsLocationsListCall) Pages(ctx context.Context, f func(*ListLocationsResponse) error) error {
  5547  	c.ctx_ = ctx
  5548  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  5549  	for {
  5550  		x, err := c.Do()
  5551  		if err != nil {
  5552  			return err
  5553  		}
  5554  		if err := f(x); err != nil {
  5555  			return err
  5556  		}
  5557  		if x.NextPageToken == "" {
  5558  			return nil
  5559  		}
  5560  		c.PageToken(x.NextPageToken)
  5561  	}
  5562  }
  5563  
  5564  type ProjectsLocationsBareMetalAdminClustersCreateCall struct {
  5565  	s                     *Service
  5566  	parent                string
  5567  	baremetaladmincluster *BareMetalAdminCluster
  5568  	urlParams_            gensupport.URLParams
  5569  	ctx_                  context.Context
  5570  	header_               http.Header
  5571  }
  5572  
  5573  // Create: Creates a new bare metal admin cluster in a given project and
  5574  // location. The API needs to be combined with creating a bootstrap cluster to
  5575  // work. See:
  5576  // https://cloud.google.com/anthos/clusters/docs/bare-metal/latest/installing/creating-clusters/create-admin-cluster-api#prepare_bootstrap_environment
  5577  //
  5578  //   - parent: The parent of the project and location where the cluster is
  5579  //     created in. Format: "projects/{project}/locations/{location}".
  5580  func (r *ProjectsLocationsBareMetalAdminClustersService) Create(parent string, baremetaladmincluster *BareMetalAdminCluster) *ProjectsLocationsBareMetalAdminClustersCreateCall {
  5581  	c := &ProjectsLocationsBareMetalAdminClustersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  5582  	c.parent = parent
  5583  	c.baremetaladmincluster = baremetaladmincluster
  5584  	return c
  5585  }
  5586  
  5587  // BareMetalAdminClusterId sets the optional parameter
  5588  // "bareMetalAdminClusterId": Required. User provided identifier that is used
  5589  // as part of the resource name; must conform to RFC-1034 and additionally
  5590  // restrict to lower-cased letters. This comes out roughly to: /^a-z+[a-z0-9]$/
  5591  func (c *ProjectsLocationsBareMetalAdminClustersCreateCall) BareMetalAdminClusterId(bareMetalAdminClusterId string) *ProjectsLocationsBareMetalAdminClustersCreateCall {
  5592  	c.urlParams_.Set("bareMetalAdminClusterId", bareMetalAdminClusterId)
  5593  	return c
  5594  }
  5595  
  5596  // ValidateOnly sets the optional parameter "validateOnly": Validate the
  5597  // request without actually doing any updates.
  5598  func (c *ProjectsLocationsBareMetalAdminClustersCreateCall) ValidateOnly(validateOnly bool) *ProjectsLocationsBareMetalAdminClustersCreateCall {
  5599  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
  5600  	return c
  5601  }
  5602  
  5603  // Fields allows partial responses to be retrieved. See
  5604  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  5605  // details.
  5606  func (c *ProjectsLocationsBareMetalAdminClustersCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalAdminClustersCreateCall {
  5607  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  5608  	return c
  5609  }
  5610  
  5611  // Context sets the context to be used in this call's Do method.
  5612  func (c *ProjectsLocationsBareMetalAdminClustersCreateCall) Context(ctx context.Context) *ProjectsLocationsBareMetalAdminClustersCreateCall {
  5613  	c.ctx_ = ctx
  5614  	return c
  5615  }
  5616  
  5617  // Header returns a http.Header that can be modified by the caller to add
  5618  // headers to the request.
  5619  func (c *ProjectsLocationsBareMetalAdminClustersCreateCall) Header() http.Header {
  5620  	if c.header_ == nil {
  5621  		c.header_ = make(http.Header)
  5622  	}
  5623  	return c.header_
  5624  }
  5625  
  5626  func (c *ProjectsLocationsBareMetalAdminClustersCreateCall) doRequest(alt string) (*http.Response, error) {
  5627  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  5628  	var body io.Reader = nil
  5629  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.baremetaladmincluster)
  5630  	if err != nil {
  5631  		return nil, err
  5632  	}
  5633  	c.urlParams_.Set("alt", alt)
  5634  	c.urlParams_.Set("prettyPrint", "false")
  5635  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/bareMetalAdminClusters")
  5636  	urls += "?" + c.urlParams_.Encode()
  5637  	req, err := http.NewRequest("POST", urls, body)
  5638  	if err != nil {
  5639  		return nil, err
  5640  	}
  5641  	req.Header = reqHeaders
  5642  	googleapi.Expand(req.URL, map[string]string{
  5643  		"parent": c.parent,
  5644  	})
  5645  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  5646  }
  5647  
  5648  // Do executes the "gkeonprem.projects.locations.bareMetalAdminClusters.create" call.
  5649  // Any non-2xx status code is an error. Response headers are in either
  5650  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  5651  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  5652  // whether the returned error was because http.StatusNotModified was returned.
  5653  func (c *ProjectsLocationsBareMetalAdminClustersCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  5654  	gensupport.SetOptions(c.urlParams_, opts...)
  5655  	res, err := c.doRequest("json")
  5656  	if res != nil && res.StatusCode == http.StatusNotModified {
  5657  		if res.Body != nil {
  5658  			res.Body.Close()
  5659  		}
  5660  		return nil, gensupport.WrapError(&googleapi.Error{
  5661  			Code:   res.StatusCode,
  5662  			Header: res.Header,
  5663  		})
  5664  	}
  5665  	if err != nil {
  5666  		return nil, err
  5667  	}
  5668  	defer googleapi.CloseBody(res)
  5669  	if err := googleapi.CheckResponse(res); err != nil {
  5670  		return nil, gensupport.WrapError(err)
  5671  	}
  5672  	ret := &Operation{
  5673  		ServerResponse: googleapi.ServerResponse{
  5674  			Header:         res.Header,
  5675  			HTTPStatusCode: res.StatusCode,
  5676  		},
  5677  	}
  5678  	target := &ret
  5679  	if err := gensupport.DecodeResponse(target, res); err != nil {
  5680  		return nil, err
  5681  	}
  5682  	return ret, nil
  5683  }
  5684  
  5685  type ProjectsLocationsBareMetalAdminClustersEnrollCall struct {
  5686  	s                                  *Service
  5687  	parent                             string
  5688  	enrollbaremetaladminclusterrequest *EnrollBareMetalAdminClusterRequest
  5689  	urlParams_                         gensupport.URLParams
  5690  	ctx_                               context.Context
  5691  	header_                            http.Header
  5692  }
  5693  
  5694  // Enroll: Enrolls an existing bare metal admin cluster to the Anthos On-Prem
  5695  // API within a given project and location. Through enrollment, an existing
  5696  // admin cluster will become Anthos On-Prem API managed. The corresponding GCP
  5697  // resources will be created and all future modifications to the cluster will
  5698  // be expected to be performed through the API.
  5699  //
  5700  //   - parent: The parent of the project and location where the cluster is
  5701  //     enrolled in. Format: "projects/{project}/locations/{location}".
  5702  func (r *ProjectsLocationsBareMetalAdminClustersService) Enroll(parent string, enrollbaremetaladminclusterrequest *EnrollBareMetalAdminClusterRequest) *ProjectsLocationsBareMetalAdminClustersEnrollCall {
  5703  	c := &ProjectsLocationsBareMetalAdminClustersEnrollCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  5704  	c.parent = parent
  5705  	c.enrollbaremetaladminclusterrequest = enrollbaremetaladminclusterrequest
  5706  	return c
  5707  }
  5708  
  5709  // Fields allows partial responses to be retrieved. See
  5710  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  5711  // details.
  5712  func (c *ProjectsLocationsBareMetalAdminClustersEnrollCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalAdminClustersEnrollCall {
  5713  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  5714  	return c
  5715  }
  5716  
  5717  // Context sets the context to be used in this call's Do method.
  5718  func (c *ProjectsLocationsBareMetalAdminClustersEnrollCall) Context(ctx context.Context) *ProjectsLocationsBareMetalAdminClustersEnrollCall {
  5719  	c.ctx_ = ctx
  5720  	return c
  5721  }
  5722  
  5723  // Header returns a http.Header that can be modified by the caller to add
  5724  // headers to the request.
  5725  func (c *ProjectsLocationsBareMetalAdminClustersEnrollCall) Header() http.Header {
  5726  	if c.header_ == nil {
  5727  		c.header_ = make(http.Header)
  5728  	}
  5729  	return c.header_
  5730  }
  5731  
  5732  func (c *ProjectsLocationsBareMetalAdminClustersEnrollCall) doRequest(alt string) (*http.Response, error) {
  5733  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  5734  	var body io.Reader = nil
  5735  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.enrollbaremetaladminclusterrequest)
  5736  	if err != nil {
  5737  		return nil, err
  5738  	}
  5739  	c.urlParams_.Set("alt", alt)
  5740  	c.urlParams_.Set("prettyPrint", "false")
  5741  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/bareMetalAdminClusters:enroll")
  5742  	urls += "?" + c.urlParams_.Encode()
  5743  	req, err := http.NewRequest("POST", urls, body)
  5744  	if err != nil {
  5745  		return nil, err
  5746  	}
  5747  	req.Header = reqHeaders
  5748  	googleapi.Expand(req.URL, map[string]string{
  5749  		"parent": c.parent,
  5750  	})
  5751  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  5752  }
  5753  
  5754  // Do executes the "gkeonprem.projects.locations.bareMetalAdminClusters.enroll" call.
  5755  // Any non-2xx status code is an error. Response headers are in either
  5756  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  5757  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  5758  // whether the returned error was because http.StatusNotModified was returned.
  5759  func (c *ProjectsLocationsBareMetalAdminClustersEnrollCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  5760  	gensupport.SetOptions(c.urlParams_, opts...)
  5761  	res, err := c.doRequest("json")
  5762  	if res != nil && res.StatusCode == http.StatusNotModified {
  5763  		if res.Body != nil {
  5764  			res.Body.Close()
  5765  		}
  5766  		return nil, gensupport.WrapError(&googleapi.Error{
  5767  			Code:   res.StatusCode,
  5768  			Header: res.Header,
  5769  		})
  5770  	}
  5771  	if err != nil {
  5772  		return nil, err
  5773  	}
  5774  	defer googleapi.CloseBody(res)
  5775  	if err := googleapi.CheckResponse(res); err != nil {
  5776  		return nil, gensupport.WrapError(err)
  5777  	}
  5778  	ret := &Operation{
  5779  		ServerResponse: googleapi.ServerResponse{
  5780  			Header:         res.Header,
  5781  			HTTPStatusCode: res.StatusCode,
  5782  		},
  5783  	}
  5784  	target := &ret
  5785  	if err := gensupport.DecodeResponse(target, res); err != nil {
  5786  		return nil, err
  5787  	}
  5788  	return ret, nil
  5789  }
  5790  
  5791  type ProjectsLocationsBareMetalAdminClustersGetCall struct {
  5792  	s            *Service
  5793  	name         string
  5794  	urlParams_   gensupport.URLParams
  5795  	ifNoneMatch_ string
  5796  	ctx_         context.Context
  5797  	header_      http.Header
  5798  }
  5799  
  5800  // Get: Gets details of a single bare metal admin cluster.
  5801  //
  5802  //   - name: Name of the bare metal admin cluster to get. Format:
  5803  //     "projects/{project}/locations/{location}/bareMetalAdminClusters/{bare_metal
  5804  //     _admin_cluster}".
  5805  func (r *ProjectsLocationsBareMetalAdminClustersService) Get(name string) *ProjectsLocationsBareMetalAdminClustersGetCall {
  5806  	c := &ProjectsLocationsBareMetalAdminClustersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  5807  	c.name = name
  5808  	return c
  5809  }
  5810  
  5811  // View sets the optional parameter "view": View for bare metal admin cluster.
  5812  // When `BASIC` is specified, only the cluster resource name and membership are
  5813  // returned. The default/unset value `CLUSTER_VIEW_UNSPECIFIED` is the same as
  5814  // `FULL', which returns the complete cluster configuration details.
  5815  //
  5816  // Possible values:
  5817  //
  5818  //	"CLUSTER_VIEW_UNSPECIFIED" - If the value is not set, the default `FULL`
  5819  //
  5820  // view is used.
  5821  //
  5822  //	"BASIC" - Includes basic information of a cluster resource including
  5823  //
  5824  // cluster resource name and membership.
  5825  //
  5826  //	"FULL" - Includes the complete configuration for bare metal admin cluster
  5827  //
  5828  // resource. This is the default value for GetBareMetalAdminClusterRequest
  5829  // method.
  5830  func (c *ProjectsLocationsBareMetalAdminClustersGetCall) View(view string) *ProjectsLocationsBareMetalAdminClustersGetCall {
  5831  	c.urlParams_.Set("view", view)
  5832  	return c
  5833  }
  5834  
  5835  // Fields allows partial responses to be retrieved. See
  5836  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  5837  // details.
  5838  func (c *ProjectsLocationsBareMetalAdminClustersGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalAdminClustersGetCall {
  5839  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  5840  	return c
  5841  }
  5842  
  5843  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  5844  // object's ETag matches the given value. This is useful for getting updates
  5845  // only after the object has changed since the last request.
  5846  func (c *ProjectsLocationsBareMetalAdminClustersGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsBareMetalAdminClustersGetCall {
  5847  	c.ifNoneMatch_ = entityTag
  5848  	return c
  5849  }
  5850  
  5851  // Context sets the context to be used in this call's Do method.
  5852  func (c *ProjectsLocationsBareMetalAdminClustersGetCall) Context(ctx context.Context) *ProjectsLocationsBareMetalAdminClustersGetCall {
  5853  	c.ctx_ = ctx
  5854  	return c
  5855  }
  5856  
  5857  // Header returns a http.Header that can be modified by the caller to add
  5858  // headers to the request.
  5859  func (c *ProjectsLocationsBareMetalAdminClustersGetCall) Header() http.Header {
  5860  	if c.header_ == nil {
  5861  		c.header_ = make(http.Header)
  5862  	}
  5863  	return c.header_
  5864  }
  5865  
  5866  func (c *ProjectsLocationsBareMetalAdminClustersGetCall) doRequest(alt string) (*http.Response, error) {
  5867  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  5868  	if c.ifNoneMatch_ != "" {
  5869  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  5870  	}
  5871  	var body io.Reader = nil
  5872  	c.urlParams_.Set("alt", alt)
  5873  	c.urlParams_.Set("prettyPrint", "false")
  5874  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  5875  	urls += "?" + c.urlParams_.Encode()
  5876  	req, err := http.NewRequest("GET", urls, body)
  5877  	if err != nil {
  5878  		return nil, err
  5879  	}
  5880  	req.Header = reqHeaders
  5881  	googleapi.Expand(req.URL, map[string]string{
  5882  		"name": c.name,
  5883  	})
  5884  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  5885  }
  5886  
  5887  // Do executes the "gkeonprem.projects.locations.bareMetalAdminClusters.get" call.
  5888  // Any non-2xx status code is an error. Response headers are in either
  5889  // *BareMetalAdminCluster.ServerResponse.Header or (if a response was returned
  5890  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  5891  // check whether the returned error was because http.StatusNotModified was
  5892  // returned.
  5893  func (c *ProjectsLocationsBareMetalAdminClustersGetCall) Do(opts ...googleapi.CallOption) (*BareMetalAdminCluster, error) {
  5894  	gensupport.SetOptions(c.urlParams_, opts...)
  5895  	res, err := c.doRequest("json")
  5896  	if res != nil && res.StatusCode == http.StatusNotModified {
  5897  		if res.Body != nil {
  5898  			res.Body.Close()
  5899  		}
  5900  		return nil, gensupport.WrapError(&googleapi.Error{
  5901  			Code:   res.StatusCode,
  5902  			Header: res.Header,
  5903  		})
  5904  	}
  5905  	if err != nil {
  5906  		return nil, err
  5907  	}
  5908  	defer googleapi.CloseBody(res)
  5909  	if err := googleapi.CheckResponse(res); err != nil {
  5910  		return nil, gensupport.WrapError(err)
  5911  	}
  5912  	ret := &BareMetalAdminCluster{
  5913  		ServerResponse: googleapi.ServerResponse{
  5914  			Header:         res.Header,
  5915  			HTTPStatusCode: res.StatusCode,
  5916  		},
  5917  	}
  5918  	target := &ret
  5919  	if err := gensupport.DecodeResponse(target, res); err != nil {
  5920  		return nil, err
  5921  	}
  5922  	return ret, nil
  5923  }
  5924  
  5925  type ProjectsLocationsBareMetalAdminClustersGetIamPolicyCall struct {
  5926  	s            *Service
  5927  	resource     string
  5928  	urlParams_   gensupport.URLParams
  5929  	ifNoneMatch_ string
  5930  	ctx_         context.Context
  5931  	header_      http.Header
  5932  }
  5933  
  5934  // GetIamPolicy: Gets the access control policy for a resource. Returns an
  5935  // empty policy if the resource exists and does not have a policy set.
  5936  //
  5937  //   - resource: REQUIRED: The resource for which the policy is being requested.
  5938  //     See Resource names (https://cloud.google.com/apis/design/resource_names)
  5939  //     for the appropriate value for this field.
  5940  func (r *ProjectsLocationsBareMetalAdminClustersService) GetIamPolicy(resource string) *ProjectsLocationsBareMetalAdminClustersGetIamPolicyCall {
  5941  	c := &ProjectsLocationsBareMetalAdminClustersGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  5942  	c.resource = resource
  5943  	return c
  5944  }
  5945  
  5946  // OptionsRequestedPolicyVersion sets the optional parameter
  5947  // "options.requestedPolicyVersion": The maximum policy version that will be
  5948  // used to format the policy. Valid values are 0, 1, and 3. Requests specifying
  5949  // an invalid value will be rejected. Requests for policies with any
  5950  // conditional role bindings must specify version 3. Policies with no
  5951  // conditional role bindings may specify any valid value or leave the field
  5952  // unset. The policy in the response might use the policy version that you
  5953  // specified, or it might use a lower policy version. For example, if you
  5954  // specify version 3, but the policy has no conditional role bindings, the
  5955  // response uses version 1. To learn which resources support conditions in
  5956  // their IAM policies, see the IAM documentation
  5957  // (https://cloud.google.com/iam/help/conditions/resource-policies).
  5958  func (c *ProjectsLocationsBareMetalAdminClustersGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsBareMetalAdminClustersGetIamPolicyCall {
  5959  	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
  5960  	return c
  5961  }
  5962  
  5963  // Fields allows partial responses to be retrieved. See
  5964  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  5965  // details.
  5966  func (c *ProjectsLocationsBareMetalAdminClustersGetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalAdminClustersGetIamPolicyCall {
  5967  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  5968  	return c
  5969  }
  5970  
  5971  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  5972  // object's ETag matches the given value. This is useful for getting updates
  5973  // only after the object has changed since the last request.
  5974  func (c *ProjectsLocationsBareMetalAdminClustersGetIamPolicyCall) IfNoneMatch(entityTag string) *ProjectsLocationsBareMetalAdminClustersGetIamPolicyCall {
  5975  	c.ifNoneMatch_ = entityTag
  5976  	return c
  5977  }
  5978  
  5979  // Context sets the context to be used in this call's Do method.
  5980  func (c *ProjectsLocationsBareMetalAdminClustersGetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsBareMetalAdminClustersGetIamPolicyCall {
  5981  	c.ctx_ = ctx
  5982  	return c
  5983  }
  5984  
  5985  // Header returns a http.Header that can be modified by the caller to add
  5986  // headers to the request.
  5987  func (c *ProjectsLocationsBareMetalAdminClustersGetIamPolicyCall) Header() http.Header {
  5988  	if c.header_ == nil {
  5989  		c.header_ = make(http.Header)
  5990  	}
  5991  	return c.header_
  5992  }
  5993  
  5994  func (c *ProjectsLocationsBareMetalAdminClustersGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
  5995  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  5996  	if c.ifNoneMatch_ != "" {
  5997  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  5998  	}
  5999  	var body io.Reader = nil
  6000  	c.urlParams_.Set("alt", alt)
  6001  	c.urlParams_.Set("prettyPrint", "false")
  6002  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:getIamPolicy")
  6003  	urls += "?" + c.urlParams_.Encode()
  6004  	req, err := http.NewRequest("GET", urls, body)
  6005  	if err != nil {
  6006  		return nil, err
  6007  	}
  6008  	req.Header = reqHeaders
  6009  	googleapi.Expand(req.URL, map[string]string{
  6010  		"resource": c.resource,
  6011  	})
  6012  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  6013  }
  6014  
  6015  // Do executes the "gkeonprem.projects.locations.bareMetalAdminClusters.getIamPolicy" call.
  6016  // Any non-2xx status code is an error. Response headers are in either
  6017  // *Policy.ServerResponse.Header or (if a response was returned at all) in
  6018  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  6019  // whether the returned error was because http.StatusNotModified was returned.
  6020  func (c *ProjectsLocationsBareMetalAdminClustersGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
  6021  	gensupport.SetOptions(c.urlParams_, opts...)
  6022  	res, err := c.doRequest("json")
  6023  	if res != nil && res.StatusCode == http.StatusNotModified {
  6024  		if res.Body != nil {
  6025  			res.Body.Close()
  6026  		}
  6027  		return nil, gensupport.WrapError(&googleapi.Error{
  6028  			Code:   res.StatusCode,
  6029  			Header: res.Header,
  6030  		})
  6031  	}
  6032  	if err != nil {
  6033  		return nil, err
  6034  	}
  6035  	defer googleapi.CloseBody(res)
  6036  	if err := googleapi.CheckResponse(res); err != nil {
  6037  		return nil, gensupport.WrapError(err)
  6038  	}
  6039  	ret := &Policy{
  6040  		ServerResponse: googleapi.ServerResponse{
  6041  			Header:         res.Header,
  6042  			HTTPStatusCode: res.StatusCode,
  6043  		},
  6044  	}
  6045  	target := &ret
  6046  	if err := gensupport.DecodeResponse(target, res); err != nil {
  6047  		return nil, err
  6048  	}
  6049  	return ret, nil
  6050  }
  6051  
  6052  type ProjectsLocationsBareMetalAdminClustersListCall struct {
  6053  	s            *Service
  6054  	parent       string
  6055  	urlParams_   gensupport.URLParams
  6056  	ifNoneMatch_ string
  6057  	ctx_         context.Context
  6058  	header_      http.Header
  6059  }
  6060  
  6061  // List: Lists bare metal admin clusters in a given project and location.
  6062  //
  6063  //   - parent: The parent of the project and location where the clusters are
  6064  //     listed in. Format: "projects/{project}/locations/{location}".
  6065  func (r *ProjectsLocationsBareMetalAdminClustersService) List(parent string) *ProjectsLocationsBareMetalAdminClustersListCall {
  6066  	c := &ProjectsLocationsBareMetalAdminClustersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  6067  	c.parent = parent
  6068  	return c
  6069  }
  6070  
  6071  // PageSize sets the optional parameter "pageSize": Requested page size. Server
  6072  // may return fewer items than requested. If unspecified, at most 50 clusters
  6073  // will be returned. The maximum value is 1000; values above 1000 will be
  6074  // coerced to 1000.
  6075  func (c *ProjectsLocationsBareMetalAdminClustersListCall) PageSize(pageSize int64) *ProjectsLocationsBareMetalAdminClustersListCall {
  6076  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  6077  	return c
  6078  }
  6079  
  6080  // PageToken sets the optional parameter "pageToken": A token identifying a
  6081  // page of results the server should return.
  6082  func (c *ProjectsLocationsBareMetalAdminClustersListCall) PageToken(pageToken string) *ProjectsLocationsBareMetalAdminClustersListCall {
  6083  	c.urlParams_.Set("pageToken", pageToken)
  6084  	return c
  6085  }
  6086  
  6087  // View sets the optional parameter "view": View for bare metal admin clusters.
  6088  // When `BASIC` is specified, only the admin cluster resource name and
  6089  // membership are returned. The default/unset value `CLUSTER_VIEW_UNSPECIFIED`
  6090  // is the same as `FULL', which returns the complete admin cluster
  6091  // configuration details.
  6092  //
  6093  // Possible values:
  6094  //
  6095  //	"CLUSTER_VIEW_UNSPECIFIED" - If the value is not set, the default `FULL`
  6096  //
  6097  // view is used.
  6098  //
  6099  //	"BASIC" - Includes basic information of a admin cluster resource including
  6100  //
  6101  // admin cluster resource name and membership.
  6102  //
  6103  //	"FULL" - Includes the complete configuration for bare metal admin cluster
  6104  //
  6105  // resource. This is the default value for ListBareMetalAdminClustersRequest
  6106  // method.
  6107  func (c *ProjectsLocationsBareMetalAdminClustersListCall) View(view string) *ProjectsLocationsBareMetalAdminClustersListCall {
  6108  	c.urlParams_.Set("view", view)
  6109  	return c
  6110  }
  6111  
  6112  // Fields allows partial responses to be retrieved. See
  6113  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  6114  // details.
  6115  func (c *ProjectsLocationsBareMetalAdminClustersListCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalAdminClustersListCall {
  6116  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  6117  	return c
  6118  }
  6119  
  6120  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  6121  // object's ETag matches the given value. This is useful for getting updates
  6122  // only after the object has changed since the last request.
  6123  func (c *ProjectsLocationsBareMetalAdminClustersListCall) IfNoneMatch(entityTag string) *ProjectsLocationsBareMetalAdminClustersListCall {
  6124  	c.ifNoneMatch_ = entityTag
  6125  	return c
  6126  }
  6127  
  6128  // Context sets the context to be used in this call's Do method.
  6129  func (c *ProjectsLocationsBareMetalAdminClustersListCall) Context(ctx context.Context) *ProjectsLocationsBareMetalAdminClustersListCall {
  6130  	c.ctx_ = ctx
  6131  	return c
  6132  }
  6133  
  6134  // Header returns a http.Header that can be modified by the caller to add
  6135  // headers to the request.
  6136  func (c *ProjectsLocationsBareMetalAdminClustersListCall) Header() http.Header {
  6137  	if c.header_ == nil {
  6138  		c.header_ = make(http.Header)
  6139  	}
  6140  	return c.header_
  6141  }
  6142  
  6143  func (c *ProjectsLocationsBareMetalAdminClustersListCall) doRequest(alt string) (*http.Response, error) {
  6144  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  6145  	if c.ifNoneMatch_ != "" {
  6146  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  6147  	}
  6148  	var body io.Reader = nil
  6149  	c.urlParams_.Set("alt", alt)
  6150  	c.urlParams_.Set("prettyPrint", "false")
  6151  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/bareMetalAdminClusters")
  6152  	urls += "?" + c.urlParams_.Encode()
  6153  	req, err := http.NewRequest("GET", urls, body)
  6154  	if err != nil {
  6155  		return nil, err
  6156  	}
  6157  	req.Header = reqHeaders
  6158  	googleapi.Expand(req.URL, map[string]string{
  6159  		"parent": c.parent,
  6160  	})
  6161  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  6162  }
  6163  
  6164  // Do executes the "gkeonprem.projects.locations.bareMetalAdminClusters.list" call.
  6165  // Any non-2xx status code is an error. Response headers are in either
  6166  // *ListBareMetalAdminClustersResponse.ServerResponse.Header or (if a response
  6167  // was returned at all) in error.(*googleapi.Error).Header. Use
  6168  // googleapi.IsNotModified to check whether the returned error was because
  6169  // http.StatusNotModified was returned.
  6170  func (c *ProjectsLocationsBareMetalAdminClustersListCall) Do(opts ...googleapi.CallOption) (*ListBareMetalAdminClustersResponse, error) {
  6171  	gensupport.SetOptions(c.urlParams_, opts...)
  6172  	res, err := c.doRequest("json")
  6173  	if res != nil && res.StatusCode == http.StatusNotModified {
  6174  		if res.Body != nil {
  6175  			res.Body.Close()
  6176  		}
  6177  		return nil, gensupport.WrapError(&googleapi.Error{
  6178  			Code:   res.StatusCode,
  6179  			Header: res.Header,
  6180  		})
  6181  	}
  6182  	if err != nil {
  6183  		return nil, err
  6184  	}
  6185  	defer googleapi.CloseBody(res)
  6186  	if err := googleapi.CheckResponse(res); err != nil {
  6187  		return nil, gensupport.WrapError(err)
  6188  	}
  6189  	ret := &ListBareMetalAdminClustersResponse{
  6190  		ServerResponse: googleapi.ServerResponse{
  6191  			Header:         res.Header,
  6192  			HTTPStatusCode: res.StatusCode,
  6193  		},
  6194  	}
  6195  	target := &ret
  6196  	if err := gensupport.DecodeResponse(target, res); err != nil {
  6197  		return nil, err
  6198  	}
  6199  	return ret, nil
  6200  }
  6201  
  6202  // Pages invokes f for each page of results.
  6203  // A non-nil error returned from f will halt the iteration.
  6204  // The provided context supersedes any context provided to the Context method.
  6205  func (c *ProjectsLocationsBareMetalAdminClustersListCall) Pages(ctx context.Context, f func(*ListBareMetalAdminClustersResponse) error) error {
  6206  	c.ctx_ = ctx
  6207  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  6208  	for {
  6209  		x, err := c.Do()
  6210  		if err != nil {
  6211  			return err
  6212  		}
  6213  		if err := f(x); err != nil {
  6214  			return err
  6215  		}
  6216  		if x.NextPageToken == "" {
  6217  			return nil
  6218  		}
  6219  		c.PageToken(x.NextPageToken)
  6220  	}
  6221  }
  6222  
  6223  type ProjectsLocationsBareMetalAdminClustersPatchCall struct {
  6224  	s                     *Service
  6225  	name                  string
  6226  	baremetaladmincluster *BareMetalAdminCluster
  6227  	urlParams_            gensupport.URLParams
  6228  	ctx_                  context.Context
  6229  	header_               http.Header
  6230  }
  6231  
  6232  // Patch: Updates the parameters of a single bare metal admin cluster.
  6233  //
  6234  // - name: Immutable. The bare metal admin cluster resource name.
  6235  func (r *ProjectsLocationsBareMetalAdminClustersService) Patch(name string, baremetaladmincluster *BareMetalAdminCluster) *ProjectsLocationsBareMetalAdminClustersPatchCall {
  6236  	c := &ProjectsLocationsBareMetalAdminClustersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  6237  	c.name = name
  6238  	c.baremetaladmincluster = baremetaladmincluster
  6239  	return c
  6240  }
  6241  
  6242  // UpdateMask sets the optional parameter "updateMask": Required. Field mask is
  6243  // used to specify the fields to be overwritten in the BareMetalAdminCluster
  6244  // resource by the update. The fields specified in the update_mask are relative
  6245  // to the resource, not the full request. A field will be overwritten if it is
  6246  // in the mask. If the user does not provide a mask then all populated fields
  6247  // in the BareMetalAdminCluster message will be updated. Empty fields will be
  6248  // ignored unless a field mask is used.
  6249  func (c *ProjectsLocationsBareMetalAdminClustersPatchCall) UpdateMask(updateMask string) *ProjectsLocationsBareMetalAdminClustersPatchCall {
  6250  	c.urlParams_.Set("updateMask", updateMask)
  6251  	return c
  6252  }
  6253  
  6254  // ValidateOnly sets the optional parameter "validateOnly": Validate the
  6255  // request without actually doing any updates.
  6256  func (c *ProjectsLocationsBareMetalAdminClustersPatchCall) ValidateOnly(validateOnly bool) *ProjectsLocationsBareMetalAdminClustersPatchCall {
  6257  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
  6258  	return c
  6259  }
  6260  
  6261  // Fields allows partial responses to be retrieved. See
  6262  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  6263  // details.
  6264  func (c *ProjectsLocationsBareMetalAdminClustersPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalAdminClustersPatchCall {
  6265  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  6266  	return c
  6267  }
  6268  
  6269  // Context sets the context to be used in this call's Do method.
  6270  func (c *ProjectsLocationsBareMetalAdminClustersPatchCall) Context(ctx context.Context) *ProjectsLocationsBareMetalAdminClustersPatchCall {
  6271  	c.ctx_ = ctx
  6272  	return c
  6273  }
  6274  
  6275  // Header returns a http.Header that can be modified by the caller to add
  6276  // headers to the request.
  6277  func (c *ProjectsLocationsBareMetalAdminClustersPatchCall) Header() http.Header {
  6278  	if c.header_ == nil {
  6279  		c.header_ = make(http.Header)
  6280  	}
  6281  	return c.header_
  6282  }
  6283  
  6284  func (c *ProjectsLocationsBareMetalAdminClustersPatchCall) doRequest(alt string) (*http.Response, error) {
  6285  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  6286  	var body io.Reader = nil
  6287  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.baremetaladmincluster)
  6288  	if err != nil {
  6289  		return nil, err
  6290  	}
  6291  	c.urlParams_.Set("alt", alt)
  6292  	c.urlParams_.Set("prettyPrint", "false")
  6293  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  6294  	urls += "?" + c.urlParams_.Encode()
  6295  	req, err := http.NewRequest("PATCH", urls, body)
  6296  	if err != nil {
  6297  		return nil, err
  6298  	}
  6299  	req.Header = reqHeaders
  6300  	googleapi.Expand(req.URL, map[string]string{
  6301  		"name": c.name,
  6302  	})
  6303  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  6304  }
  6305  
  6306  // Do executes the "gkeonprem.projects.locations.bareMetalAdminClusters.patch" call.
  6307  // Any non-2xx status code is an error. Response headers are in either
  6308  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  6309  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  6310  // whether the returned error was because http.StatusNotModified was returned.
  6311  func (c *ProjectsLocationsBareMetalAdminClustersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  6312  	gensupport.SetOptions(c.urlParams_, opts...)
  6313  	res, err := c.doRequest("json")
  6314  	if res != nil && res.StatusCode == http.StatusNotModified {
  6315  		if res.Body != nil {
  6316  			res.Body.Close()
  6317  		}
  6318  		return nil, gensupport.WrapError(&googleapi.Error{
  6319  			Code:   res.StatusCode,
  6320  			Header: res.Header,
  6321  		})
  6322  	}
  6323  	if err != nil {
  6324  		return nil, err
  6325  	}
  6326  	defer googleapi.CloseBody(res)
  6327  	if err := googleapi.CheckResponse(res); err != nil {
  6328  		return nil, gensupport.WrapError(err)
  6329  	}
  6330  	ret := &Operation{
  6331  		ServerResponse: googleapi.ServerResponse{
  6332  			Header:         res.Header,
  6333  			HTTPStatusCode: res.StatusCode,
  6334  		},
  6335  	}
  6336  	target := &ret
  6337  	if err := gensupport.DecodeResponse(target, res); err != nil {
  6338  		return nil, err
  6339  	}
  6340  	return ret, nil
  6341  }
  6342  
  6343  type ProjectsLocationsBareMetalAdminClustersQueryVersionConfigCall struct {
  6344  	s          *Service
  6345  	parent     string
  6346  	urlParams_ gensupport.URLParams
  6347  	ctx_       context.Context
  6348  	header_    http.Header
  6349  }
  6350  
  6351  // QueryVersionConfig: Queries the bare metal admin cluster version config.
  6352  //
  6353  //   - parent: The parent of the project and location to query for version
  6354  //     config. Format: "projects/{project}/locations/{location}".
  6355  func (r *ProjectsLocationsBareMetalAdminClustersService) QueryVersionConfig(parent string) *ProjectsLocationsBareMetalAdminClustersQueryVersionConfigCall {
  6356  	c := &ProjectsLocationsBareMetalAdminClustersQueryVersionConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  6357  	c.parent = parent
  6358  	return c
  6359  }
  6360  
  6361  // UpgradeConfigClusterName sets the optional parameter
  6362  // "upgradeConfig.clusterName": The admin cluster resource name. This is the
  6363  // full resource name of the admin cluster resource. Format:
  6364  // "projects/{project}/locations/{location}/bareMetalAdminClusters/{bare_metal_a
  6365  // dmin_cluster}"
  6366  func (c *ProjectsLocationsBareMetalAdminClustersQueryVersionConfigCall) UpgradeConfigClusterName(upgradeConfigClusterName string) *ProjectsLocationsBareMetalAdminClustersQueryVersionConfigCall {
  6367  	c.urlParams_.Set("upgradeConfig.clusterName", upgradeConfigClusterName)
  6368  	return c
  6369  }
  6370  
  6371  // Fields allows partial responses to be retrieved. See
  6372  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  6373  // details.
  6374  func (c *ProjectsLocationsBareMetalAdminClustersQueryVersionConfigCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalAdminClustersQueryVersionConfigCall {
  6375  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  6376  	return c
  6377  }
  6378  
  6379  // Context sets the context to be used in this call's Do method.
  6380  func (c *ProjectsLocationsBareMetalAdminClustersQueryVersionConfigCall) Context(ctx context.Context) *ProjectsLocationsBareMetalAdminClustersQueryVersionConfigCall {
  6381  	c.ctx_ = ctx
  6382  	return c
  6383  }
  6384  
  6385  // Header returns a http.Header that can be modified by the caller to add
  6386  // headers to the request.
  6387  func (c *ProjectsLocationsBareMetalAdminClustersQueryVersionConfigCall) Header() http.Header {
  6388  	if c.header_ == nil {
  6389  		c.header_ = make(http.Header)
  6390  	}
  6391  	return c.header_
  6392  }
  6393  
  6394  func (c *ProjectsLocationsBareMetalAdminClustersQueryVersionConfigCall) doRequest(alt string) (*http.Response, error) {
  6395  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  6396  	var body io.Reader = nil
  6397  	c.urlParams_.Set("alt", alt)
  6398  	c.urlParams_.Set("prettyPrint", "false")
  6399  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/bareMetalAdminClusters:queryVersionConfig")
  6400  	urls += "?" + c.urlParams_.Encode()
  6401  	req, err := http.NewRequest("POST", urls, body)
  6402  	if err != nil {
  6403  		return nil, err
  6404  	}
  6405  	req.Header = reqHeaders
  6406  	googleapi.Expand(req.URL, map[string]string{
  6407  		"parent": c.parent,
  6408  	})
  6409  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  6410  }
  6411  
  6412  // Do executes the "gkeonprem.projects.locations.bareMetalAdminClusters.queryVersionConfig" call.
  6413  // Any non-2xx status code is an error. Response headers are in either
  6414  // *QueryBareMetalAdminVersionConfigResponse.ServerResponse.Header or (if a
  6415  // response was returned at all) in error.(*googleapi.Error).Header. Use
  6416  // googleapi.IsNotModified to check whether the returned error was because
  6417  // http.StatusNotModified was returned.
  6418  func (c *ProjectsLocationsBareMetalAdminClustersQueryVersionConfigCall) Do(opts ...googleapi.CallOption) (*QueryBareMetalAdminVersionConfigResponse, error) {
  6419  	gensupport.SetOptions(c.urlParams_, opts...)
  6420  	res, err := c.doRequest("json")
  6421  	if res != nil && res.StatusCode == http.StatusNotModified {
  6422  		if res.Body != nil {
  6423  			res.Body.Close()
  6424  		}
  6425  		return nil, gensupport.WrapError(&googleapi.Error{
  6426  			Code:   res.StatusCode,
  6427  			Header: res.Header,
  6428  		})
  6429  	}
  6430  	if err != nil {
  6431  		return nil, err
  6432  	}
  6433  	defer googleapi.CloseBody(res)
  6434  	if err := googleapi.CheckResponse(res); err != nil {
  6435  		return nil, gensupport.WrapError(err)
  6436  	}
  6437  	ret := &QueryBareMetalAdminVersionConfigResponse{
  6438  		ServerResponse: googleapi.ServerResponse{
  6439  			Header:         res.Header,
  6440  			HTTPStatusCode: res.StatusCode,
  6441  		},
  6442  	}
  6443  	target := &ret
  6444  	if err := gensupport.DecodeResponse(target, res); err != nil {
  6445  		return nil, err
  6446  	}
  6447  	return ret, nil
  6448  }
  6449  
  6450  type ProjectsLocationsBareMetalAdminClustersSetIamPolicyCall struct {
  6451  	s                   *Service
  6452  	resource            string
  6453  	setiampolicyrequest *SetIamPolicyRequest
  6454  	urlParams_          gensupport.URLParams
  6455  	ctx_                context.Context
  6456  	header_             http.Header
  6457  }
  6458  
  6459  // SetIamPolicy: Sets the access control policy on the specified resource.
  6460  // Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`,
  6461  // and `PERMISSION_DENIED` errors.
  6462  //
  6463  //   - resource: REQUIRED: The resource for which the policy is being specified.
  6464  //     See Resource names (https://cloud.google.com/apis/design/resource_names)
  6465  //     for the appropriate value for this field.
  6466  func (r *ProjectsLocationsBareMetalAdminClustersService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *ProjectsLocationsBareMetalAdminClustersSetIamPolicyCall {
  6467  	c := &ProjectsLocationsBareMetalAdminClustersSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  6468  	c.resource = resource
  6469  	c.setiampolicyrequest = setiampolicyrequest
  6470  	return c
  6471  }
  6472  
  6473  // Fields allows partial responses to be retrieved. See
  6474  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  6475  // details.
  6476  func (c *ProjectsLocationsBareMetalAdminClustersSetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalAdminClustersSetIamPolicyCall {
  6477  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  6478  	return c
  6479  }
  6480  
  6481  // Context sets the context to be used in this call's Do method.
  6482  func (c *ProjectsLocationsBareMetalAdminClustersSetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsBareMetalAdminClustersSetIamPolicyCall {
  6483  	c.ctx_ = ctx
  6484  	return c
  6485  }
  6486  
  6487  // Header returns a http.Header that can be modified by the caller to add
  6488  // headers to the request.
  6489  func (c *ProjectsLocationsBareMetalAdminClustersSetIamPolicyCall) Header() http.Header {
  6490  	if c.header_ == nil {
  6491  		c.header_ = make(http.Header)
  6492  	}
  6493  	return c.header_
  6494  }
  6495  
  6496  func (c *ProjectsLocationsBareMetalAdminClustersSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
  6497  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  6498  	var body io.Reader = nil
  6499  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest)
  6500  	if err != nil {
  6501  		return nil, err
  6502  	}
  6503  	c.urlParams_.Set("alt", alt)
  6504  	c.urlParams_.Set("prettyPrint", "false")
  6505  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:setIamPolicy")
  6506  	urls += "?" + c.urlParams_.Encode()
  6507  	req, err := http.NewRequest("POST", urls, body)
  6508  	if err != nil {
  6509  		return nil, err
  6510  	}
  6511  	req.Header = reqHeaders
  6512  	googleapi.Expand(req.URL, map[string]string{
  6513  		"resource": c.resource,
  6514  	})
  6515  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  6516  }
  6517  
  6518  // Do executes the "gkeonprem.projects.locations.bareMetalAdminClusters.setIamPolicy" call.
  6519  // Any non-2xx status code is an error. Response headers are in either
  6520  // *Policy.ServerResponse.Header or (if a response was returned at all) in
  6521  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  6522  // whether the returned error was because http.StatusNotModified was returned.
  6523  func (c *ProjectsLocationsBareMetalAdminClustersSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
  6524  	gensupport.SetOptions(c.urlParams_, opts...)
  6525  	res, err := c.doRequest("json")
  6526  	if res != nil && res.StatusCode == http.StatusNotModified {
  6527  		if res.Body != nil {
  6528  			res.Body.Close()
  6529  		}
  6530  		return nil, gensupport.WrapError(&googleapi.Error{
  6531  			Code:   res.StatusCode,
  6532  			Header: res.Header,
  6533  		})
  6534  	}
  6535  	if err != nil {
  6536  		return nil, err
  6537  	}
  6538  	defer googleapi.CloseBody(res)
  6539  	if err := googleapi.CheckResponse(res); err != nil {
  6540  		return nil, gensupport.WrapError(err)
  6541  	}
  6542  	ret := &Policy{
  6543  		ServerResponse: googleapi.ServerResponse{
  6544  			Header:         res.Header,
  6545  			HTTPStatusCode: res.StatusCode,
  6546  		},
  6547  	}
  6548  	target := &ret
  6549  	if err := gensupport.DecodeResponse(target, res); err != nil {
  6550  		return nil, err
  6551  	}
  6552  	return ret, nil
  6553  }
  6554  
  6555  type ProjectsLocationsBareMetalAdminClustersTestIamPermissionsCall struct {
  6556  	s                         *Service
  6557  	resource                  string
  6558  	testiampermissionsrequest *TestIamPermissionsRequest
  6559  	urlParams_                gensupport.URLParams
  6560  	ctx_                      context.Context
  6561  	header_                   http.Header
  6562  }
  6563  
  6564  // TestIamPermissions: Returns permissions that a caller has on the specified
  6565  // resource. If the resource does not exist, this will return an empty set of
  6566  // permissions, not a `NOT_FOUND` error. Note: This operation is designed to be
  6567  // used for building permission-aware UIs and command-line tools, not for
  6568  // authorization checking. This operation may "fail open" without warning.
  6569  //
  6570  //   - resource: REQUIRED: The resource for which the policy detail is being
  6571  //     requested. See Resource names
  6572  //     (https://cloud.google.com/apis/design/resource_names) for the appropriate
  6573  //     value for this field.
  6574  func (r *ProjectsLocationsBareMetalAdminClustersService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *ProjectsLocationsBareMetalAdminClustersTestIamPermissionsCall {
  6575  	c := &ProjectsLocationsBareMetalAdminClustersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  6576  	c.resource = resource
  6577  	c.testiampermissionsrequest = testiampermissionsrequest
  6578  	return c
  6579  }
  6580  
  6581  // Fields allows partial responses to be retrieved. See
  6582  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  6583  // details.
  6584  func (c *ProjectsLocationsBareMetalAdminClustersTestIamPermissionsCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalAdminClustersTestIamPermissionsCall {
  6585  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  6586  	return c
  6587  }
  6588  
  6589  // Context sets the context to be used in this call's Do method.
  6590  func (c *ProjectsLocationsBareMetalAdminClustersTestIamPermissionsCall) Context(ctx context.Context) *ProjectsLocationsBareMetalAdminClustersTestIamPermissionsCall {
  6591  	c.ctx_ = ctx
  6592  	return c
  6593  }
  6594  
  6595  // Header returns a http.Header that can be modified by the caller to add
  6596  // headers to the request.
  6597  func (c *ProjectsLocationsBareMetalAdminClustersTestIamPermissionsCall) Header() http.Header {
  6598  	if c.header_ == nil {
  6599  		c.header_ = make(http.Header)
  6600  	}
  6601  	return c.header_
  6602  }
  6603  
  6604  func (c *ProjectsLocationsBareMetalAdminClustersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
  6605  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  6606  	var body io.Reader = nil
  6607  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest)
  6608  	if err != nil {
  6609  		return nil, err
  6610  	}
  6611  	c.urlParams_.Set("alt", alt)
  6612  	c.urlParams_.Set("prettyPrint", "false")
  6613  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:testIamPermissions")
  6614  	urls += "?" + c.urlParams_.Encode()
  6615  	req, err := http.NewRequest("POST", urls, body)
  6616  	if err != nil {
  6617  		return nil, err
  6618  	}
  6619  	req.Header = reqHeaders
  6620  	googleapi.Expand(req.URL, map[string]string{
  6621  		"resource": c.resource,
  6622  	})
  6623  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  6624  }
  6625  
  6626  // Do executes the "gkeonprem.projects.locations.bareMetalAdminClusters.testIamPermissions" call.
  6627  // Any non-2xx status code is an error. Response headers are in either
  6628  // *TestIamPermissionsResponse.ServerResponse.Header or (if a response was
  6629  // returned at all) in error.(*googleapi.Error).Header. Use
  6630  // googleapi.IsNotModified to check whether the returned error was because
  6631  // http.StatusNotModified was returned.
  6632  func (c *ProjectsLocationsBareMetalAdminClustersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) {
  6633  	gensupport.SetOptions(c.urlParams_, opts...)
  6634  	res, err := c.doRequest("json")
  6635  	if res != nil && res.StatusCode == http.StatusNotModified {
  6636  		if res.Body != nil {
  6637  			res.Body.Close()
  6638  		}
  6639  		return nil, gensupport.WrapError(&googleapi.Error{
  6640  			Code:   res.StatusCode,
  6641  			Header: res.Header,
  6642  		})
  6643  	}
  6644  	if err != nil {
  6645  		return nil, err
  6646  	}
  6647  	defer googleapi.CloseBody(res)
  6648  	if err := googleapi.CheckResponse(res); err != nil {
  6649  		return nil, gensupport.WrapError(err)
  6650  	}
  6651  	ret := &TestIamPermissionsResponse{
  6652  		ServerResponse: googleapi.ServerResponse{
  6653  			Header:         res.Header,
  6654  			HTTPStatusCode: res.StatusCode,
  6655  		},
  6656  	}
  6657  	target := &ret
  6658  	if err := gensupport.DecodeResponse(target, res); err != nil {
  6659  		return nil, err
  6660  	}
  6661  	return ret, nil
  6662  }
  6663  
  6664  type ProjectsLocationsBareMetalAdminClustersUnenrollCall struct {
  6665  	s          *Service
  6666  	name       string
  6667  	urlParams_ gensupport.URLParams
  6668  	ctx_       context.Context
  6669  	header_    http.Header
  6670  }
  6671  
  6672  // Unenroll: Unenrolls an existing bare metal admin cluster from the Anthos
  6673  // On-Prem API within a given project and location. Unenrollment removes the
  6674  // Cloud reference to the cluster without modifying the underlying OnPrem
  6675  // Resources. Clusters will continue to run; however, they will no longer be
  6676  // accessible through the Anthos On-Prem API or its clients.
  6677  //
  6678  //   - name: Name of the bare metal admin cluster to be unenrolled. Format:
  6679  //     "projects/{project}/locations/{location}/bareMetalAdminClusters/{cluster}".
  6680  func (r *ProjectsLocationsBareMetalAdminClustersService) Unenroll(name string) *ProjectsLocationsBareMetalAdminClustersUnenrollCall {
  6681  	c := &ProjectsLocationsBareMetalAdminClustersUnenrollCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  6682  	c.name = name
  6683  	return c
  6684  }
  6685  
  6686  // AllowMissing sets the optional parameter "allowMissing": If set to true, and
  6687  // the bare metal admin cluster is not found, the request will succeed but no
  6688  // action will be taken on the server and return a completed LRO.
  6689  func (c *ProjectsLocationsBareMetalAdminClustersUnenrollCall) AllowMissing(allowMissing bool) *ProjectsLocationsBareMetalAdminClustersUnenrollCall {
  6690  	c.urlParams_.Set("allowMissing", fmt.Sprint(allowMissing))
  6691  	return c
  6692  }
  6693  
  6694  // Etag sets the optional parameter "etag": The current etag of the bare metal
  6695  // admin cluster. If an etag is provided and does not match the current etag of
  6696  // the cluster, deletion will be blocked and an ABORTED error will be returned.
  6697  func (c *ProjectsLocationsBareMetalAdminClustersUnenrollCall) Etag(etag string) *ProjectsLocationsBareMetalAdminClustersUnenrollCall {
  6698  	c.urlParams_.Set("etag", etag)
  6699  	return c
  6700  }
  6701  
  6702  // IgnoreErrors sets the optional parameter "ignoreErrors": If set to true, the
  6703  // unenrollment of a bare metal admin cluster resource will succeed even if
  6704  // errors occur during unenrollment. This parameter can be used when you want
  6705  // to unenroll admin cluster resource and the on-prem admin cluster is
  6706  // disconnected / unreachable. WARNING: Using this parameter when your admin
  6707  // cluster still exists may result in a deleted GCP admin cluster but existing
  6708  // resourcelink in on-prem admin cluster and membership.
  6709  func (c *ProjectsLocationsBareMetalAdminClustersUnenrollCall) IgnoreErrors(ignoreErrors bool) *ProjectsLocationsBareMetalAdminClustersUnenrollCall {
  6710  	c.urlParams_.Set("ignoreErrors", fmt.Sprint(ignoreErrors))
  6711  	return c
  6712  }
  6713  
  6714  // ValidateOnly sets the optional parameter "validateOnly": Validate the
  6715  // request without actually doing any updates.
  6716  func (c *ProjectsLocationsBareMetalAdminClustersUnenrollCall) ValidateOnly(validateOnly bool) *ProjectsLocationsBareMetalAdminClustersUnenrollCall {
  6717  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
  6718  	return c
  6719  }
  6720  
  6721  // Fields allows partial responses to be retrieved. See
  6722  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  6723  // details.
  6724  func (c *ProjectsLocationsBareMetalAdminClustersUnenrollCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalAdminClustersUnenrollCall {
  6725  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  6726  	return c
  6727  }
  6728  
  6729  // Context sets the context to be used in this call's Do method.
  6730  func (c *ProjectsLocationsBareMetalAdminClustersUnenrollCall) Context(ctx context.Context) *ProjectsLocationsBareMetalAdminClustersUnenrollCall {
  6731  	c.ctx_ = ctx
  6732  	return c
  6733  }
  6734  
  6735  // Header returns a http.Header that can be modified by the caller to add
  6736  // headers to the request.
  6737  func (c *ProjectsLocationsBareMetalAdminClustersUnenrollCall) Header() http.Header {
  6738  	if c.header_ == nil {
  6739  		c.header_ = make(http.Header)
  6740  	}
  6741  	return c.header_
  6742  }
  6743  
  6744  func (c *ProjectsLocationsBareMetalAdminClustersUnenrollCall) doRequest(alt string) (*http.Response, error) {
  6745  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  6746  	var body io.Reader = nil
  6747  	c.urlParams_.Set("alt", alt)
  6748  	c.urlParams_.Set("prettyPrint", "false")
  6749  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:unenroll")
  6750  	urls += "?" + c.urlParams_.Encode()
  6751  	req, err := http.NewRequest("DELETE", urls, body)
  6752  	if err != nil {
  6753  		return nil, err
  6754  	}
  6755  	req.Header = reqHeaders
  6756  	googleapi.Expand(req.URL, map[string]string{
  6757  		"name": c.name,
  6758  	})
  6759  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  6760  }
  6761  
  6762  // Do executes the "gkeonprem.projects.locations.bareMetalAdminClusters.unenroll" call.
  6763  // Any non-2xx status code is an error. Response headers are in either
  6764  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  6765  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  6766  // whether the returned error was because http.StatusNotModified was returned.
  6767  func (c *ProjectsLocationsBareMetalAdminClustersUnenrollCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  6768  	gensupport.SetOptions(c.urlParams_, opts...)
  6769  	res, err := c.doRequest("json")
  6770  	if res != nil && res.StatusCode == http.StatusNotModified {
  6771  		if res.Body != nil {
  6772  			res.Body.Close()
  6773  		}
  6774  		return nil, gensupport.WrapError(&googleapi.Error{
  6775  			Code:   res.StatusCode,
  6776  			Header: res.Header,
  6777  		})
  6778  	}
  6779  	if err != nil {
  6780  		return nil, err
  6781  	}
  6782  	defer googleapi.CloseBody(res)
  6783  	if err := googleapi.CheckResponse(res); err != nil {
  6784  		return nil, gensupport.WrapError(err)
  6785  	}
  6786  	ret := &Operation{
  6787  		ServerResponse: googleapi.ServerResponse{
  6788  			Header:         res.Header,
  6789  			HTTPStatusCode: res.StatusCode,
  6790  		},
  6791  	}
  6792  	target := &ret
  6793  	if err := gensupport.DecodeResponse(target, res); err != nil {
  6794  		return nil, err
  6795  	}
  6796  	return ret, nil
  6797  }
  6798  
  6799  type ProjectsLocationsBareMetalAdminClustersOperationsGetCall struct {
  6800  	s            *Service
  6801  	name         string
  6802  	urlParams_   gensupport.URLParams
  6803  	ifNoneMatch_ string
  6804  	ctx_         context.Context
  6805  	header_      http.Header
  6806  }
  6807  
  6808  // Get: Gets the latest state of a long-running operation. Clients can use this
  6809  // method to poll the operation result at intervals as recommended by the API
  6810  // service.
  6811  //
  6812  // - name: The name of the operation resource.
  6813  func (r *ProjectsLocationsBareMetalAdminClustersOperationsService) Get(name string) *ProjectsLocationsBareMetalAdminClustersOperationsGetCall {
  6814  	c := &ProjectsLocationsBareMetalAdminClustersOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  6815  	c.name = name
  6816  	return c
  6817  }
  6818  
  6819  // Fields allows partial responses to be retrieved. See
  6820  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  6821  // details.
  6822  func (c *ProjectsLocationsBareMetalAdminClustersOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalAdminClustersOperationsGetCall {
  6823  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  6824  	return c
  6825  }
  6826  
  6827  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  6828  // object's ETag matches the given value. This is useful for getting updates
  6829  // only after the object has changed since the last request.
  6830  func (c *ProjectsLocationsBareMetalAdminClustersOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsBareMetalAdminClustersOperationsGetCall {
  6831  	c.ifNoneMatch_ = entityTag
  6832  	return c
  6833  }
  6834  
  6835  // Context sets the context to be used in this call's Do method.
  6836  func (c *ProjectsLocationsBareMetalAdminClustersOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsBareMetalAdminClustersOperationsGetCall {
  6837  	c.ctx_ = ctx
  6838  	return c
  6839  }
  6840  
  6841  // Header returns a http.Header that can be modified by the caller to add
  6842  // headers to the request.
  6843  func (c *ProjectsLocationsBareMetalAdminClustersOperationsGetCall) Header() http.Header {
  6844  	if c.header_ == nil {
  6845  		c.header_ = make(http.Header)
  6846  	}
  6847  	return c.header_
  6848  }
  6849  
  6850  func (c *ProjectsLocationsBareMetalAdminClustersOperationsGetCall) doRequest(alt string) (*http.Response, error) {
  6851  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  6852  	if c.ifNoneMatch_ != "" {
  6853  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  6854  	}
  6855  	var body io.Reader = nil
  6856  	c.urlParams_.Set("alt", alt)
  6857  	c.urlParams_.Set("prettyPrint", "false")
  6858  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  6859  	urls += "?" + c.urlParams_.Encode()
  6860  	req, err := http.NewRequest("GET", urls, body)
  6861  	if err != nil {
  6862  		return nil, err
  6863  	}
  6864  	req.Header = reqHeaders
  6865  	googleapi.Expand(req.URL, map[string]string{
  6866  		"name": c.name,
  6867  	})
  6868  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  6869  }
  6870  
  6871  // Do executes the "gkeonprem.projects.locations.bareMetalAdminClusters.operations.get" call.
  6872  // Any non-2xx status code is an error. Response headers are in either
  6873  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  6874  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  6875  // whether the returned error was because http.StatusNotModified was returned.
  6876  func (c *ProjectsLocationsBareMetalAdminClustersOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  6877  	gensupport.SetOptions(c.urlParams_, opts...)
  6878  	res, err := c.doRequest("json")
  6879  	if res != nil && res.StatusCode == http.StatusNotModified {
  6880  		if res.Body != nil {
  6881  			res.Body.Close()
  6882  		}
  6883  		return nil, gensupport.WrapError(&googleapi.Error{
  6884  			Code:   res.StatusCode,
  6885  			Header: res.Header,
  6886  		})
  6887  	}
  6888  	if err != nil {
  6889  		return nil, err
  6890  	}
  6891  	defer googleapi.CloseBody(res)
  6892  	if err := googleapi.CheckResponse(res); err != nil {
  6893  		return nil, gensupport.WrapError(err)
  6894  	}
  6895  	ret := &Operation{
  6896  		ServerResponse: googleapi.ServerResponse{
  6897  			Header:         res.Header,
  6898  			HTTPStatusCode: res.StatusCode,
  6899  		},
  6900  	}
  6901  	target := &ret
  6902  	if err := gensupport.DecodeResponse(target, res); err != nil {
  6903  		return nil, err
  6904  	}
  6905  	return ret, nil
  6906  }
  6907  
  6908  type ProjectsLocationsBareMetalAdminClustersOperationsListCall struct {
  6909  	s            *Service
  6910  	name         string
  6911  	urlParams_   gensupport.URLParams
  6912  	ifNoneMatch_ string
  6913  	ctx_         context.Context
  6914  	header_      http.Header
  6915  }
  6916  
  6917  // List: Lists operations that match the specified filter in the request. If
  6918  // the server doesn't support this method, it returns `UNIMPLEMENTED`.
  6919  //
  6920  // - name: The name of the operation's parent resource.
  6921  func (r *ProjectsLocationsBareMetalAdminClustersOperationsService) List(name string) *ProjectsLocationsBareMetalAdminClustersOperationsListCall {
  6922  	c := &ProjectsLocationsBareMetalAdminClustersOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  6923  	c.name = name
  6924  	return c
  6925  }
  6926  
  6927  // Filter sets the optional parameter "filter": The standard list filter.
  6928  func (c *ProjectsLocationsBareMetalAdminClustersOperationsListCall) Filter(filter string) *ProjectsLocationsBareMetalAdminClustersOperationsListCall {
  6929  	c.urlParams_.Set("filter", filter)
  6930  	return c
  6931  }
  6932  
  6933  // PageSize sets the optional parameter "pageSize": The standard list page
  6934  // size.
  6935  func (c *ProjectsLocationsBareMetalAdminClustersOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsBareMetalAdminClustersOperationsListCall {
  6936  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  6937  	return c
  6938  }
  6939  
  6940  // PageToken sets the optional parameter "pageToken": The standard list page
  6941  // token.
  6942  func (c *ProjectsLocationsBareMetalAdminClustersOperationsListCall) PageToken(pageToken string) *ProjectsLocationsBareMetalAdminClustersOperationsListCall {
  6943  	c.urlParams_.Set("pageToken", pageToken)
  6944  	return c
  6945  }
  6946  
  6947  // Fields allows partial responses to be retrieved. See
  6948  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  6949  // details.
  6950  func (c *ProjectsLocationsBareMetalAdminClustersOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalAdminClustersOperationsListCall {
  6951  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  6952  	return c
  6953  }
  6954  
  6955  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  6956  // object's ETag matches the given value. This is useful for getting updates
  6957  // only after the object has changed since the last request.
  6958  func (c *ProjectsLocationsBareMetalAdminClustersOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsBareMetalAdminClustersOperationsListCall {
  6959  	c.ifNoneMatch_ = entityTag
  6960  	return c
  6961  }
  6962  
  6963  // Context sets the context to be used in this call's Do method.
  6964  func (c *ProjectsLocationsBareMetalAdminClustersOperationsListCall) Context(ctx context.Context) *ProjectsLocationsBareMetalAdminClustersOperationsListCall {
  6965  	c.ctx_ = ctx
  6966  	return c
  6967  }
  6968  
  6969  // Header returns a http.Header that can be modified by the caller to add
  6970  // headers to the request.
  6971  func (c *ProjectsLocationsBareMetalAdminClustersOperationsListCall) Header() http.Header {
  6972  	if c.header_ == nil {
  6973  		c.header_ = make(http.Header)
  6974  	}
  6975  	return c.header_
  6976  }
  6977  
  6978  func (c *ProjectsLocationsBareMetalAdminClustersOperationsListCall) doRequest(alt string) (*http.Response, error) {
  6979  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  6980  	if c.ifNoneMatch_ != "" {
  6981  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  6982  	}
  6983  	var body io.Reader = nil
  6984  	c.urlParams_.Set("alt", alt)
  6985  	c.urlParams_.Set("prettyPrint", "false")
  6986  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/operations")
  6987  	urls += "?" + c.urlParams_.Encode()
  6988  	req, err := http.NewRequest("GET", urls, body)
  6989  	if err != nil {
  6990  		return nil, err
  6991  	}
  6992  	req.Header = reqHeaders
  6993  	googleapi.Expand(req.URL, map[string]string{
  6994  		"name": c.name,
  6995  	})
  6996  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  6997  }
  6998  
  6999  // Do executes the "gkeonprem.projects.locations.bareMetalAdminClusters.operations.list" call.
  7000  // Any non-2xx status code is an error. Response headers are in either
  7001  // *ListOperationsResponse.ServerResponse.Header or (if a response was returned
  7002  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  7003  // check whether the returned error was because http.StatusNotModified was
  7004  // returned.
  7005  func (c *ProjectsLocationsBareMetalAdminClustersOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
  7006  	gensupport.SetOptions(c.urlParams_, opts...)
  7007  	res, err := c.doRequest("json")
  7008  	if res != nil && res.StatusCode == http.StatusNotModified {
  7009  		if res.Body != nil {
  7010  			res.Body.Close()
  7011  		}
  7012  		return nil, gensupport.WrapError(&googleapi.Error{
  7013  			Code:   res.StatusCode,
  7014  			Header: res.Header,
  7015  		})
  7016  	}
  7017  	if err != nil {
  7018  		return nil, err
  7019  	}
  7020  	defer googleapi.CloseBody(res)
  7021  	if err := googleapi.CheckResponse(res); err != nil {
  7022  		return nil, gensupport.WrapError(err)
  7023  	}
  7024  	ret := &ListOperationsResponse{
  7025  		ServerResponse: googleapi.ServerResponse{
  7026  			Header:         res.Header,
  7027  			HTTPStatusCode: res.StatusCode,
  7028  		},
  7029  	}
  7030  	target := &ret
  7031  	if err := gensupport.DecodeResponse(target, res); err != nil {
  7032  		return nil, err
  7033  	}
  7034  	return ret, nil
  7035  }
  7036  
  7037  // Pages invokes f for each page of results.
  7038  // A non-nil error returned from f will halt the iteration.
  7039  // The provided context supersedes any context provided to the Context method.
  7040  func (c *ProjectsLocationsBareMetalAdminClustersOperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
  7041  	c.ctx_ = ctx
  7042  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  7043  	for {
  7044  		x, err := c.Do()
  7045  		if err != nil {
  7046  			return err
  7047  		}
  7048  		if err := f(x); err != nil {
  7049  			return err
  7050  		}
  7051  		if x.NextPageToken == "" {
  7052  			return nil
  7053  		}
  7054  		c.PageToken(x.NextPageToken)
  7055  	}
  7056  }
  7057  
  7058  type ProjectsLocationsBareMetalClustersCreateCall struct {
  7059  	s                *Service
  7060  	parent           string
  7061  	baremetalcluster *BareMetalCluster
  7062  	urlParams_       gensupport.URLParams
  7063  	ctx_             context.Context
  7064  	header_          http.Header
  7065  }
  7066  
  7067  // Create: Creates a new bare metal cluster in a given project and location.
  7068  //
  7069  //   - parent: The parent of the project and location where the cluster is
  7070  //     created in. Format: "projects/{project}/locations/{location}".
  7071  func (r *ProjectsLocationsBareMetalClustersService) Create(parent string, baremetalcluster *BareMetalCluster) *ProjectsLocationsBareMetalClustersCreateCall {
  7072  	c := &ProjectsLocationsBareMetalClustersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  7073  	c.parent = parent
  7074  	c.baremetalcluster = baremetalcluster
  7075  	return c
  7076  }
  7077  
  7078  // BareMetalClusterId sets the optional parameter "bareMetalClusterId":
  7079  // Required. User provided identifier that is used as part of the resource
  7080  // name; must conform to RFC-1034 and additionally restrict to lower-cased
  7081  // letters. This comes out roughly to: /^a-z+[a-z0-9]$/
  7082  func (c *ProjectsLocationsBareMetalClustersCreateCall) BareMetalClusterId(bareMetalClusterId string) *ProjectsLocationsBareMetalClustersCreateCall {
  7083  	c.urlParams_.Set("bareMetalClusterId", bareMetalClusterId)
  7084  	return c
  7085  }
  7086  
  7087  // ValidateOnly sets the optional parameter "validateOnly": Validate the
  7088  // request without actually doing any updates.
  7089  func (c *ProjectsLocationsBareMetalClustersCreateCall) ValidateOnly(validateOnly bool) *ProjectsLocationsBareMetalClustersCreateCall {
  7090  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
  7091  	return c
  7092  }
  7093  
  7094  // Fields allows partial responses to be retrieved. See
  7095  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  7096  // details.
  7097  func (c *ProjectsLocationsBareMetalClustersCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersCreateCall {
  7098  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  7099  	return c
  7100  }
  7101  
  7102  // Context sets the context to be used in this call's Do method.
  7103  func (c *ProjectsLocationsBareMetalClustersCreateCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersCreateCall {
  7104  	c.ctx_ = ctx
  7105  	return c
  7106  }
  7107  
  7108  // Header returns a http.Header that can be modified by the caller to add
  7109  // headers to the request.
  7110  func (c *ProjectsLocationsBareMetalClustersCreateCall) Header() http.Header {
  7111  	if c.header_ == nil {
  7112  		c.header_ = make(http.Header)
  7113  	}
  7114  	return c.header_
  7115  }
  7116  
  7117  func (c *ProjectsLocationsBareMetalClustersCreateCall) doRequest(alt string) (*http.Response, error) {
  7118  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  7119  	var body io.Reader = nil
  7120  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.baremetalcluster)
  7121  	if err != nil {
  7122  		return nil, err
  7123  	}
  7124  	c.urlParams_.Set("alt", alt)
  7125  	c.urlParams_.Set("prettyPrint", "false")
  7126  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/bareMetalClusters")
  7127  	urls += "?" + c.urlParams_.Encode()
  7128  	req, err := http.NewRequest("POST", urls, body)
  7129  	if err != nil {
  7130  		return nil, err
  7131  	}
  7132  	req.Header = reqHeaders
  7133  	googleapi.Expand(req.URL, map[string]string{
  7134  		"parent": c.parent,
  7135  	})
  7136  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  7137  }
  7138  
  7139  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.create" call.
  7140  // Any non-2xx status code is an error. Response headers are in either
  7141  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  7142  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  7143  // whether the returned error was because http.StatusNotModified was returned.
  7144  func (c *ProjectsLocationsBareMetalClustersCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  7145  	gensupport.SetOptions(c.urlParams_, opts...)
  7146  	res, err := c.doRequest("json")
  7147  	if res != nil && res.StatusCode == http.StatusNotModified {
  7148  		if res.Body != nil {
  7149  			res.Body.Close()
  7150  		}
  7151  		return nil, gensupport.WrapError(&googleapi.Error{
  7152  			Code:   res.StatusCode,
  7153  			Header: res.Header,
  7154  		})
  7155  	}
  7156  	if err != nil {
  7157  		return nil, err
  7158  	}
  7159  	defer googleapi.CloseBody(res)
  7160  	if err := googleapi.CheckResponse(res); err != nil {
  7161  		return nil, gensupport.WrapError(err)
  7162  	}
  7163  	ret := &Operation{
  7164  		ServerResponse: googleapi.ServerResponse{
  7165  			Header:         res.Header,
  7166  			HTTPStatusCode: res.StatusCode,
  7167  		},
  7168  	}
  7169  	target := &ret
  7170  	if err := gensupport.DecodeResponse(target, res); err != nil {
  7171  		return nil, err
  7172  	}
  7173  	return ret, nil
  7174  }
  7175  
  7176  type ProjectsLocationsBareMetalClustersDeleteCall struct {
  7177  	s          *Service
  7178  	name       string
  7179  	urlParams_ gensupport.URLParams
  7180  	ctx_       context.Context
  7181  	header_    http.Header
  7182  }
  7183  
  7184  // Delete: Deletes a single bare metal Cluster.
  7185  //
  7186  //   - name: Name of the bare metal user cluster to be deleted. Format:
  7187  //     "projects/{project}/locations/{location}/bareMetalClusters/{bare_metal_clus
  7188  //     ter}".
  7189  func (r *ProjectsLocationsBareMetalClustersService) Delete(name string) *ProjectsLocationsBareMetalClustersDeleteCall {
  7190  	c := &ProjectsLocationsBareMetalClustersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  7191  	c.name = name
  7192  	return c
  7193  }
  7194  
  7195  // AllowMissing sets the optional parameter "allowMissing": If set to true, and
  7196  // the bare metal cluster is not found, the request will succeed but no action
  7197  // will be taken on the server and return a completed LRO.
  7198  func (c *ProjectsLocationsBareMetalClustersDeleteCall) AllowMissing(allowMissing bool) *ProjectsLocationsBareMetalClustersDeleteCall {
  7199  	c.urlParams_.Set("allowMissing", fmt.Sprint(allowMissing))
  7200  	return c
  7201  }
  7202  
  7203  // Etag sets the optional parameter "etag": The current etag of the bare metal
  7204  // Cluster. If an etag is provided and does not match the current etag of the
  7205  // cluster, deletion will be blocked and an ABORTED error will be returned.
  7206  func (c *ProjectsLocationsBareMetalClustersDeleteCall) Etag(etag string) *ProjectsLocationsBareMetalClustersDeleteCall {
  7207  	c.urlParams_.Set("etag", etag)
  7208  	return c
  7209  }
  7210  
  7211  // Force sets the optional parameter "force": If set to true, any node pools
  7212  // from the cluster will also be deleted.
  7213  func (c *ProjectsLocationsBareMetalClustersDeleteCall) Force(force bool) *ProjectsLocationsBareMetalClustersDeleteCall {
  7214  	c.urlParams_.Set("force", fmt.Sprint(force))
  7215  	return c
  7216  }
  7217  
  7218  // IgnoreErrors sets the optional parameter "ignoreErrors": If set to true, the
  7219  // deletion of a bare metal user cluster resource will succeed even if errors
  7220  // occur during deletion. This parameter can be used when you want to delete
  7221  // GCP's cluster resource and the on-prem admin cluster that hosts your user
  7222  // cluster is disconnected / unreachable or deleted. WARNING: Using this
  7223  // parameter when your user cluster still exists may result in a deleted GCP
  7224  // user cluster but an existing on-prem user cluster.
  7225  func (c *ProjectsLocationsBareMetalClustersDeleteCall) IgnoreErrors(ignoreErrors bool) *ProjectsLocationsBareMetalClustersDeleteCall {
  7226  	c.urlParams_.Set("ignoreErrors", fmt.Sprint(ignoreErrors))
  7227  	return c
  7228  }
  7229  
  7230  // ValidateOnly sets the optional parameter "validateOnly": Validate the
  7231  // request without actually doing any updates.
  7232  func (c *ProjectsLocationsBareMetalClustersDeleteCall) ValidateOnly(validateOnly bool) *ProjectsLocationsBareMetalClustersDeleteCall {
  7233  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
  7234  	return c
  7235  }
  7236  
  7237  // Fields allows partial responses to be retrieved. See
  7238  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  7239  // details.
  7240  func (c *ProjectsLocationsBareMetalClustersDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersDeleteCall {
  7241  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  7242  	return c
  7243  }
  7244  
  7245  // Context sets the context to be used in this call's Do method.
  7246  func (c *ProjectsLocationsBareMetalClustersDeleteCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersDeleteCall {
  7247  	c.ctx_ = ctx
  7248  	return c
  7249  }
  7250  
  7251  // Header returns a http.Header that can be modified by the caller to add
  7252  // headers to the request.
  7253  func (c *ProjectsLocationsBareMetalClustersDeleteCall) Header() http.Header {
  7254  	if c.header_ == nil {
  7255  		c.header_ = make(http.Header)
  7256  	}
  7257  	return c.header_
  7258  }
  7259  
  7260  func (c *ProjectsLocationsBareMetalClustersDeleteCall) doRequest(alt string) (*http.Response, error) {
  7261  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  7262  	var body io.Reader = nil
  7263  	c.urlParams_.Set("alt", alt)
  7264  	c.urlParams_.Set("prettyPrint", "false")
  7265  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  7266  	urls += "?" + c.urlParams_.Encode()
  7267  	req, err := http.NewRequest("DELETE", urls, body)
  7268  	if err != nil {
  7269  		return nil, err
  7270  	}
  7271  	req.Header = reqHeaders
  7272  	googleapi.Expand(req.URL, map[string]string{
  7273  		"name": c.name,
  7274  	})
  7275  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  7276  }
  7277  
  7278  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.delete" call.
  7279  // Any non-2xx status code is an error. Response headers are in either
  7280  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  7281  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  7282  // whether the returned error was because http.StatusNotModified was returned.
  7283  func (c *ProjectsLocationsBareMetalClustersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  7284  	gensupport.SetOptions(c.urlParams_, opts...)
  7285  	res, err := c.doRequest("json")
  7286  	if res != nil && res.StatusCode == http.StatusNotModified {
  7287  		if res.Body != nil {
  7288  			res.Body.Close()
  7289  		}
  7290  		return nil, gensupport.WrapError(&googleapi.Error{
  7291  			Code:   res.StatusCode,
  7292  			Header: res.Header,
  7293  		})
  7294  	}
  7295  	if err != nil {
  7296  		return nil, err
  7297  	}
  7298  	defer googleapi.CloseBody(res)
  7299  	if err := googleapi.CheckResponse(res); err != nil {
  7300  		return nil, gensupport.WrapError(err)
  7301  	}
  7302  	ret := &Operation{
  7303  		ServerResponse: googleapi.ServerResponse{
  7304  			Header:         res.Header,
  7305  			HTTPStatusCode: res.StatusCode,
  7306  		},
  7307  	}
  7308  	target := &ret
  7309  	if err := gensupport.DecodeResponse(target, res); err != nil {
  7310  		return nil, err
  7311  	}
  7312  	return ret, nil
  7313  }
  7314  
  7315  type ProjectsLocationsBareMetalClustersEnrollCall struct {
  7316  	s                             *Service
  7317  	parent                        string
  7318  	enrollbaremetalclusterrequest *EnrollBareMetalClusterRequest
  7319  	urlParams_                    gensupport.URLParams
  7320  	ctx_                          context.Context
  7321  	header_                       http.Header
  7322  }
  7323  
  7324  // Enroll: Enrolls an existing bare metal user cluster and its node pools to
  7325  // the Anthos On-Prem API within a given project and location. Through
  7326  // enrollment, an existing cluster will become Anthos On-Prem API managed. The
  7327  // corresponding GCP resources will be created and all future modifications to
  7328  // the cluster and/or its node pools will be expected to be performed through
  7329  // the API.
  7330  //
  7331  //   - parent: The parent of the project and location where the cluster is
  7332  //     enrolled in. Format: "projects/{project}/locations/{location}".
  7333  func (r *ProjectsLocationsBareMetalClustersService) Enroll(parent string, enrollbaremetalclusterrequest *EnrollBareMetalClusterRequest) *ProjectsLocationsBareMetalClustersEnrollCall {
  7334  	c := &ProjectsLocationsBareMetalClustersEnrollCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  7335  	c.parent = parent
  7336  	c.enrollbaremetalclusterrequest = enrollbaremetalclusterrequest
  7337  	return c
  7338  }
  7339  
  7340  // Fields allows partial responses to be retrieved. See
  7341  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  7342  // details.
  7343  func (c *ProjectsLocationsBareMetalClustersEnrollCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersEnrollCall {
  7344  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  7345  	return c
  7346  }
  7347  
  7348  // Context sets the context to be used in this call's Do method.
  7349  func (c *ProjectsLocationsBareMetalClustersEnrollCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersEnrollCall {
  7350  	c.ctx_ = ctx
  7351  	return c
  7352  }
  7353  
  7354  // Header returns a http.Header that can be modified by the caller to add
  7355  // headers to the request.
  7356  func (c *ProjectsLocationsBareMetalClustersEnrollCall) Header() http.Header {
  7357  	if c.header_ == nil {
  7358  		c.header_ = make(http.Header)
  7359  	}
  7360  	return c.header_
  7361  }
  7362  
  7363  func (c *ProjectsLocationsBareMetalClustersEnrollCall) doRequest(alt string) (*http.Response, error) {
  7364  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  7365  	var body io.Reader = nil
  7366  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.enrollbaremetalclusterrequest)
  7367  	if err != nil {
  7368  		return nil, err
  7369  	}
  7370  	c.urlParams_.Set("alt", alt)
  7371  	c.urlParams_.Set("prettyPrint", "false")
  7372  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/bareMetalClusters:enroll")
  7373  	urls += "?" + c.urlParams_.Encode()
  7374  	req, err := http.NewRequest("POST", urls, body)
  7375  	if err != nil {
  7376  		return nil, err
  7377  	}
  7378  	req.Header = reqHeaders
  7379  	googleapi.Expand(req.URL, map[string]string{
  7380  		"parent": c.parent,
  7381  	})
  7382  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  7383  }
  7384  
  7385  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.enroll" call.
  7386  // Any non-2xx status code is an error. Response headers are in either
  7387  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  7388  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  7389  // whether the returned error was because http.StatusNotModified was returned.
  7390  func (c *ProjectsLocationsBareMetalClustersEnrollCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  7391  	gensupport.SetOptions(c.urlParams_, opts...)
  7392  	res, err := c.doRequest("json")
  7393  	if res != nil && res.StatusCode == http.StatusNotModified {
  7394  		if res.Body != nil {
  7395  			res.Body.Close()
  7396  		}
  7397  		return nil, gensupport.WrapError(&googleapi.Error{
  7398  			Code:   res.StatusCode,
  7399  			Header: res.Header,
  7400  		})
  7401  	}
  7402  	if err != nil {
  7403  		return nil, err
  7404  	}
  7405  	defer googleapi.CloseBody(res)
  7406  	if err := googleapi.CheckResponse(res); err != nil {
  7407  		return nil, gensupport.WrapError(err)
  7408  	}
  7409  	ret := &Operation{
  7410  		ServerResponse: googleapi.ServerResponse{
  7411  			Header:         res.Header,
  7412  			HTTPStatusCode: res.StatusCode,
  7413  		},
  7414  	}
  7415  	target := &ret
  7416  	if err := gensupport.DecodeResponse(target, res); err != nil {
  7417  		return nil, err
  7418  	}
  7419  	return ret, nil
  7420  }
  7421  
  7422  type ProjectsLocationsBareMetalClustersGetCall struct {
  7423  	s            *Service
  7424  	name         string
  7425  	urlParams_   gensupport.URLParams
  7426  	ifNoneMatch_ string
  7427  	ctx_         context.Context
  7428  	header_      http.Header
  7429  }
  7430  
  7431  // Get: Gets details of a single bare metal Cluster.
  7432  //
  7433  //   - name: Name of the bare metal user cluster to get. Format:
  7434  //     "projects/{project}/locations/{location}/bareMetalClusters/{bare_metal_clus
  7435  //     ter}".
  7436  func (r *ProjectsLocationsBareMetalClustersService) Get(name string) *ProjectsLocationsBareMetalClustersGetCall {
  7437  	c := &ProjectsLocationsBareMetalClustersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  7438  	c.name = name
  7439  	return c
  7440  }
  7441  
  7442  // View sets the optional parameter "view": View for bare metal user cluster.
  7443  // When `BASIC` is specified, only the cluster resource name and admin cluster
  7444  // membership are returned. The default/unset value `CLUSTER_VIEW_UNSPECIFIED`
  7445  // is the same as `FULL', which returns the complete cluster configuration
  7446  // details.
  7447  //
  7448  // Possible values:
  7449  //
  7450  //	"CLUSTER_VIEW_UNSPECIFIED" - If the value is not set, the default `FULL`
  7451  //
  7452  // view is used.
  7453  //
  7454  //	"BASIC" - Includes basic information of a cluster resource including
  7455  //
  7456  // cluster resource name and admin cluster membership.
  7457  //
  7458  //	"FULL" - Includes the complete configuration for bare metal cluster
  7459  //
  7460  // resource. This is the default value for GetBareMetalClusterRequest method.
  7461  func (c *ProjectsLocationsBareMetalClustersGetCall) View(view string) *ProjectsLocationsBareMetalClustersGetCall {
  7462  	c.urlParams_.Set("view", view)
  7463  	return c
  7464  }
  7465  
  7466  // Fields allows partial responses to be retrieved. See
  7467  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  7468  // details.
  7469  func (c *ProjectsLocationsBareMetalClustersGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersGetCall {
  7470  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  7471  	return c
  7472  }
  7473  
  7474  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  7475  // object's ETag matches the given value. This is useful for getting updates
  7476  // only after the object has changed since the last request.
  7477  func (c *ProjectsLocationsBareMetalClustersGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsBareMetalClustersGetCall {
  7478  	c.ifNoneMatch_ = entityTag
  7479  	return c
  7480  }
  7481  
  7482  // Context sets the context to be used in this call's Do method.
  7483  func (c *ProjectsLocationsBareMetalClustersGetCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersGetCall {
  7484  	c.ctx_ = ctx
  7485  	return c
  7486  }
  7487  
  7488  // Header returns a http.Header that can be modified by the caller to add
  7489  // headers to the request.
  7490  func (c *ProjectsLocationsBareMetalClustersGetCall) Header() http.Header {
  7491  	if c.header_ == nil {
  7492  		c.header_ = make(http.Header)
  7493  	}
  7494  	return c.header_
  7495  }
  7496  
  7497  func (c *ProjectsLocationsBareMetalClustersGetCall) doRequest(alt string) (*http.Response, error) {
  7498  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  7499  	if c.ifNoneMatch_ != "" {
  7500  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  7501  	}
  7502  	var body io.Reader = nil
  7503  	c.urlParams_.Set("alt", alt)
  7504  	c.urlParams_.Set("prettyPrint", "false")
  7505  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  7506  	urls += "?" + c.urlParams_.Encode()
  7507  	req, err := http.NewRequest("GET", urls, body)
  7508  	if err != nil {
  7509  		return nil, err
  7510  	}
  7511  	req.Header = reqHeaders
  7512  	googleapi.Expand(req.URL, map[string]string{
  7513  		"name": c.name,
  7514  	})
  7515  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  7516  }
  7517  
  7518  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.get" call.
  7519  // Any non-2xx status code is an error. Response headers are in either
  7520  // *BareMetalCluster.ServerResponse.Header or (if a response was returned at
  7521  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  7522  // check whether the returned error was because http.StatusNotModified was
  7523  // returned.
  7524  func (c *ProjectsLocationsBareMetalClustersGetCall) Do(opts ...googleapi.CallOption) (*BareMetalCluster, error) {
  7525  	gensupport.SetOptions(c.urlParams_, opts...)
  7526  	res, err := c.doRequest("json")
  7527  	if res != nil && res.StatusCode == http.StatusNotModified {
  7528  		if res.Body != nil {
  7529  			res.Body.Close()
  7530  		}
  7531  		return nil, gensupport.WrapError(&googleapi.Error{
  7532  			Code:   res.StatusCode,
  7533  			Header: res.Header,
  7534  		})
  7535  	}
  7536  	if err != nil {
  7537  		return nil, err
  7538  	}
  7539  	defer googleapi.CloseBody(res)
  7540  	if err := googleapi.CheckResponse(res); err != nil {
  7541  		return nil, gensupport.WrapError(err)
  7542  	}
  7543  	ret := &BareMetalCluster{
  7544  		ServerResponse: googleapi.ServerResponse{
  7545  			Header:         res.Header,
  7546  			HTTPStatusCode: res.StatusCode,
  7547  		},
  7548  	}
  7549  	target := &ret
  7550  	if err := gensupport.DecodeResponse(target, res); err != nil {
  7551  		return nil, err
  7552  	}
  7553  	return ret, nil
  7554  }
  7555  
  7556  type ProjectsLocationsBareMetalClustersGetIamPolicyCall struct {
  7557  	s            *Service
  7558  	resource     string
  7559  	urlParams_   gensupport.URLParams
  7560  	ifNoneMatch_ string
  7561  	ctx_         context.Context
  7562  	header_      http.Header
  7563  }
  7564  
  7565  // GetIamPolicy: Gets the access control policy for a resource. Returns an
  7566  // empty policy if the resource exists and does not have a policy set.
  7567  //
  7568  //   - resource: REQUIRED: The resource for which the policy is being requested.
  7569  //     See Resource names (https://cloud.google.com/apis/design/resource_names)
  7570  //     for the appropriate value for this field.
  7571  func (r *ProjectsLocationsBareMetalClustersService) GetIamPolicy(resource string) *ProjectsLocationsBareMetalClustersGetIamPolicyCall {
  7572  	c := &ProjectsLocationsBareMetalClustersGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  7573  	c.resource = resource
  7574  	return c
  7575  }
  7576  
  7577  // OptionsRequestedPolicyVersion sets the optional parameter
  7578  // "options.requestedPolicyVersion": The maximum policy version that will be
  7579  // used to format the policy. Valid values are 0, 1, and 3. Requests specifying
  7580  // an invalid value will be rejected. Requests for policies with any
  7581  // conditional role bindings must specify version 3. Policies with no
  7582  // conditional role bindings may specify any valid value or leave the field
  7583  // unset. The policy in the response might use the policy version that you
  7584  // specified, or it might use a lower policy version. For example, if you
  7585  // specify version 3, but the policy has no conditional role bindings, the
  7586  // response uses version 1. To learn which resources support conditions in
  7587  // their IAM policies, see the IAM documentation
  7588  // (https://cloud.google.com/iam/help/conditions/resource-policies).
  7589  func (c *ProjectsLocationsBareMetalClustersGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsBareMetalClustersGetIamPolicyCall {
  7590  	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
  7591  	return c
  7592  }
  7593  
  7594  // Fields allows partial responses to be retrieved. See
  7595  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  7596  // details.
  7597  func (c *ProjectsLocationsBareMetalClustersGetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersGetIamPolicyCall {
  7598  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  7599  	return c
  7600  }
  7601  
  7602  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  7603  // object's ETag matches the given value. This is useful for getting updates
  7604  // only after the object has changed since the last request.
  7605  func (c *ProjectsLocationsBareMetalClustersGetIamPolicyCall) IfNoneMatch(entityTag string) *ProjectsLocationsBareMetalClustersGetIamPolicyCall {
  7606  	c.ifNoneMatch_ = entityTag
  7607  	return c
  7608  }
  7609  
  7610  // Context sets the context to be used in this call's Do method.
  7611  func (c *ProjectsLocationsBareMetalClustersGetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersGetIamPolicyCall {
  7612  	c.ctx_ = ctx
  7613  	return c
  7614  }
  7615  
  7616  // Header returns a http.Header that can be modified by the caller to add
  7617  // headers to the request.
  7618  func (c *ProjectsLocationsBareMetalClustersGetIamPolicyCall) Header() http.Header {
  7619  	if c.header_ == nil {
  7620  		c.header_ = make(http.Header)
  7621  	}
  7622  	return c.header_
  7623  }
  7624  
  7625  func (c *ProjectsLocationsBareMetalClustersGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
  7626  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  7627  	if c.ifNoneMatch_ != "" {
  7628  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  7629  	}
  7630  	var body io.Reader = nil
  7631  	c.urlParams_.Set("alt", alt)
  7632  	c.urlParams_.Set("prettyPrint", "false")
  7633  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:getIamPolicy")
  7634  	urls += "?" + c.urlParams_.Encode()
  7635  	req, err := http.NewRequest("GET", urls, body)
  7636  	if err != nil {
  7637  		return nil, err
  7638  	}
  7639  	req.Header = reqHeaders
  7640  	googleapi.Expand(req.URL, map[string]string{
  7641  		"resource": c.resource,
  7642  	})
  7643  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  7644  }
  7645  
  7646  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.getIamPolicy" call.
  7647  // Any non-2xx status code is an error. Response headers are in either
  7648  // *Policy.ServerResponse.Header or (if a response was returned at all) in
  7649  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  7650  // whether the returned error was because http.StatusNotModified was returned.
  7651  func (c *ProjectsLocationsBareMetalClustersGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
  7652  	gensupport.SetOptions(c.urlParams_, opts...)
  7653  	res, err := c.doRequest("json")
  7654  	if res != nil && res.StatusCode == http.StatusNotModified {
  7655  		if res.Body != nil {
  7656  			res.Body.Close()
  7657  		}
  7658  		return nil, gensupport.WrapError(&googleapi.Error{
  7659  			Code:   res.StatusCode,
  7660  			Header: res.Header,
  7661  		})
  7662  	}
  7663  	if err != nil {
  7664  		return nil, err
  7665  	}
  7666  	defer googleapi.CloseBody(res)
  7667  	if err := googleapi.CheckResponse(res); err != nil {
  7668  		return nil, gensupport.WrapError(err)
  7669  	}
  7670  	ret := &Policy{
  7671  		ServerResponse: googleapi.ServerResponse{
  7672  			Header:         res.Header,
  7673  			HTTPStatusCode: res.StatusCode,
  7674  		},
  7675  	}
  7676  	target := &ret
  7677  	if err := gensupport.DecodeResponse(target, res); err != nil {
  7678  		return nil, err
  7679  	}
  7680  	return ret, nil
  7681  }
  7682  
  7683  type ProjectsLocationsBareMetalClustersListCall struct {
  7684  	s            *Service
  7685  	parent       string
  7686  	urlParams_   gensupport.URLParams
  7687  	ifNoneMatch_ string
  7688  	ctx_         context.Context
  7689  	header_      http.Header
  7690  }
  7691  
  7692  // List: Lists bare metal clusters in a given project and location.
  7693  //
  7694  //   - parent: The parent of the project and location where the clusters are
  7695  //     listed in. Format: "projects/{project}/locations/{location}".
  7696  func (r *ProjectsLocationsBareMetalClustersService) List(parent string) *ProjectsLocationsBareMetalClustersListCall {
  7697  	c := &ProjectsLocationsBareMetalClustersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  7698  	c.parent = parent
  7699  	return c
  7700  }
  7701  
  7702  // Filter sets the optional parameter "filter": A resource filtering expression
  7703  // following https://google.aip.dev/160. When non-empty, only resource's whose
  7704  // attributes field matches the filter are returned.
  7705  func (c *ProjectsLocationsBareMetalClustersListCall) Filter(filter string) *ProjectsLocationsBareMetalClustersListCall {
  7706  	c.urlParams_.Set("filter", filter)
  7707  	return c
  7708  }
  7709  
  7710  // PageSize sets the optional parameter "pageSize": Requested page size. Server
  7711  // may return fewer items than requested. If unspecified, at most 50 clusters
  7712  // will be returned. The maximum value is 1000; values above 1000 will be
  7713  // coerced to 1000.
  7714  func (c *ProjectsLocationsBareMetalClustersListCall) PageSize(pageSize int64) *ProjectsLocationsBareMetalClustersListCall {
  7715  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  7716  	return c
  7717  }
  7718  
  7719  // PageToken sets the optional parameter "pageToken": A token identifying a
  7720  // page of results the server should return.
  7721  func (c *ProjectsLocationsBareMetalClustersListCall) PageToken(pageToken string) *ProjectsLocationsBareMetalClustersListCall {
  7722  	c.urlParams_.Set("pageToken", pageToken)
  7723  	return c
  7724  }
  7725  
  7726  // View sets the optional parameter "view": View for bare metal Clusters. When
  7727  // `BASIC` is specified, only the cluster resource name and admin cluster
  7728  // membership are returned. The default/unset value `CLUSTER_VIEW_UNSPECIFIED`
  7729  // is the same as `FULL', which returns the complete cluster configuration
  7730  // details.
  7731  //
  7732  // Possible values:
  7733  //
  7734  //	"CLUSTER_VIEW_UNSPECIFIED" - If the value is not set, the default `FULL`
  7735  //
  7736  // view is used.
  7737  //
  7738  //	"BASIC" - Includes basic information of a cluster resource including
  7739  //
  7740  // cluster resource name and admin cluster membership.
  7741  //
  7742  //	"FULL" - Includes the complete configuration for bare metal cluster
  7743  //
  7744  // resource. This is the default value for ListBareMetalClustersRequest method.
  7745  func (c *ProjectsLocationsBareMetalClustersListCall) View(view string) *ProjectsLocationsBareMetalClustersListCall {
  7746  	c.urlParams_.Set("view", view)
  7747  	return c
  7748  }
  7749  
  7750  // Fields allows partial responses to be retrieved. See
  7751  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  7752  // details.
  7753  func (c *ProjectsLocationsBareMetalClustersListCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersListCall {
  7754  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  7755  	return c
  7756  }
  7757  
  7758  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  7759  // object's ETag matches the given value. This is useful for getting updates
  7760  // only after the object has changed since the last request.
  7761  func (c *ProjectsLocationsBareMetalClustersListCall) IfNoneMatch(entityTag string) *ProjectsLocationsBareMetalClustersListCall {
  7762  	c.ifNoneMatch_ = entityTag
  7763  	return c
  7764  }
  7765  
  7766  // Context sets the context to be used in this call's Do method.
  7767  func (c *ProjectsLocationsBareMetalClustersListCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersListCall {
  7768  	c.ctx_ = ctx
  7769  	return c
  7770  }
  7771  
  7772  // Header returns a http.Header that can be modified by the caller to add
  7773  // headers to the request.
  7774  func (c *ProjectsLocationsBareMetalClustersListCall) Header() http.Header {
  7775  	if c.header_ == nil {
  7776  		c.header_ = make(http.Header)
  7777  	}
  7778  	return c.header_
  7779  }
  7780  
  7781  func (c *ProjectsLocationsBareMetalClustersListCall) doRequest(alt string) (*http.Response, error) {
  7782  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  7783  	if c.ifNoneMatch_ != "" {
  7784  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  7785  	}
  7786  	var body io.Reader = nil
  7787  	c.urlParams_.Set("alt", alt)
  7788  	c.urlParams_.Set("prettyPrint", "false")
  7789  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/bareMetalClusters")
  7790  	urls += "?" + c.urlParams_.Encode()
  7791  	req, err := http.NewRequest("GET", urls, body)
  7792  	if err != nil {
  7793  		return nil, err
  7794  	}
  7795  	req.Header = reqHeaders
  7796  	googleapi.Expand(req.URL, map[string]string{
  7797  		"parent": c.parent,
  7798  	})
  7799  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  7800  }
  7801  
  7802  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.list" call.
  7803  // Any non-2xx status code is an error. Response headers are in either
  7804  // *ListBareMetalClustersResponse.ServerResponse.Header or (if a response was
  7805  // returned at all) in error.(*googleapi.Error).Header. Use
  7806  // googleapi.IsNotModified to check whether the returned error was because
  7807  // http.StatusNotModified was returned.
  7808  func (c *ProjectsLocationsBareMetalClustersListCall) Do(opts ...googleapi.CallOption) (*ListBareMetalClustersResponse, error) {
  7809  	gensupport.SetOptions(c.urlParams_, opts...)
  7810  	res, err := c.doRequest("json")
  7811  	if res != nil && res.StatusCode == http.StatusNotModified {
  7812  		if res.Body != nil {
  7813  			res.Body.Close()
  7814  		}
  7815  		return nil, gensupport.WrapError(&googleapi.Error{
  7816  			Code:   res.StatusCode,
  7817  			Header: res.Header,
  7818  		})
  7819  	}
  7820  	if err != nil {
  7821  		return nil, err
  7822  	}
  7823  	defer googleapi.CloseBody(res)
  7824  	if err := googleapi.CheckResponse(res); err != nil {
  7825  		return nil, gensupport.WrapError(err)
  7826  	}
  7827  	ret := &ListBareMetalClustersResponse{
  7828  		ServerResponse: googleapi.ServerResponse{
  7829  			Header:         res.Header,
  7830  			HTTPStatusCode: res.StatusCode,
  7831  		},
  7832  	}
  7833  	target := &ret
  7834  	if err := gensupport.DecodeResponse(target, res); err != nil {
  7835  		return nil, err
  7836  	}
  7837  	return ret, nil
  7838  }
  7839  
  7840  // Pages invokes f for each page of results.
  7841  // A non-nil error returned from f will halt the iteration.
  7842  // The provided context supersedes any context provided to the Context method.
  7843  func (c *ProjectsLocationsBareMetalClustersListCall) Pages(ctx context.Context, f func(*ListBareMetalClustersResponse) error) error {
  7844  	c.ctx_ = ctx
  7845  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  7846  	for {
  7847  		x, err := c.Do()
  7848  		if err != nil {
  7849  			return err
  7850  		}
  7851  		if err := f(x); err != nil {
  7852  			return err
  7853  		}
  7854  		if x.NextPageToken == "" {
  7855  			return nil
  7856  		}
  7857  		c.PageToken(x.NextPageToken)
  7858  	}
  7859  }
  7860  
  7861  type ProjectsLocationsBareMetalClustersPatchCall struct {
  7862  	s                *Service
  7863  	name             string
  7864  	baremetalcluster *BareMetalCluster
  7865  	urlParams_       gensupport.URLParams
  7866  	ctx_             context.Context
  7867  	header_          http.Header
  7868  }
  7869  
  7870  // Patch: Updates the parameters of a single bare metal Cluster.
  7871  //
  7872  // - name: Immutable. The bare metal user cluster resource name.
  7873  func (r *ProjectsLocationsBareMetalClustersService) Patch(name string, baremetalcluster *BareMetalCluster) *ProjectsLocationsBareMetalClustersPatchCall {
  7874  	c := &ProjectsLocationsBareMetalClustersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  7875  	c.name = name
  7876  	c.baremetalcluster = baremetalcluster
  7877  	return c
  7878  }
  7879  
  7880  // AllowMissing sets the optional parameter "allowMissing": If set to true, and
  7881  // the bare metal cluster is not found, the request will create a new bare
  7882  // metal cluster with the provided configuration. The user must have both
  7883  // create and update permission to call Update with allow_missing set to true.
  7884  func (c *ProjectsLocationsBareMetalClustersPatchCall) AllowMissing(allowMissing bool) *ProjectsLocationsBareMetalClustersPatchCall {
  7885  	c.urlParams_.Set("allowMissing", fmt.Sprint(allowMissing))
  7886  	return c
  7887  }
  7888  
  7889  // UpdateMask sets the optional parameter "updateMask": Required. Field mask is
  7890  // used to specify the fields to be overwritten in the BareMetalCluster
  7891  // resource by the update. The fields specified in the update_mask are relative
  7892  // to the resource, not the full request. A field will be overwritten if it is
  7893  // in the mask. If the user does not provide a mask then all populated fields
  7894  // in the BareMetalCluster message will be updated. Empty fields will be
  7895  // ignored unless a field mask is used.
  7896  func (c *ProjectsLocationsBareMetalClustersPatchCall) UpdateMask(updateMask string) *ProjectsLocationsBareMetalClustersPatchCall {
  7897  	c.urlParams_.Set("updateMask", updateMask)
  7898  	return c
  7899  }
  7900  
  7901  // ValidateOnly sets the optional parameter "validateOnly": Validate the
  7902  // request without actually doing any updates.
  7903  func (c *ProjectsLocationsBareMetalClustersPatchCall) ValidateOnly(validateOnly bool) *ProjectsLocationsBareMetalClustersPatchCall {
  7904  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
  7905  	return c
  7906  }
  7907  
  7908  // Fields allows partial responses to be retrieved. See
  7909  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  7910  // details.
  7911  func (c *ProjectsLocationsBareMetalClustersPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersPatchCall {
  7912  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  7913  	return c
  7914  }
  7915  
  7916  // Context sets the context to be used in this call's Do method.
  7917  func (c *ProjectsLocationsBareMetalClustersPatchCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersPatchCall {
  7918  	c.ctx_ = ctx
  7919  	return c
  7920  }
  7921  
  7922  // Header returns a http.Header that can be modified by the caller to add
  7923  // headers to the request.
  7924  func (c *ProjectsLocationsBareMetalClustersPatchCall) Header() http.Header {
  7925  	if c.header_ == nil {
  7926  		c.header_ = make(http.Header)
  7927  	}
  7928  	return c.header_
  7929  }
  7930  
  7931  func (c *ProjectsLocationsBareMetalClustersPatchCall) doRequest(alt string) (*http.Response, error) {
  7932  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  7933  	var body io.Reader = nil
  7934  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.baremetalcluster)
  7935  	if err != nil {
  7936  		return nil, err
  7937  	}
  7938  	c.urlParams_.Set("alt", alt)
  7939  	c.urlParams_.Set("prettyPrint", "false")
  7940  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  7941  	urls += "?" + c.urlParams_.Encode()
  7942  	req, err := http.NewRequest("PATCH", urls, body)
  7943  	if err != nil {
  7944  		return nil, err
  7945  	}
  7946  	req.Header = reqHeaders
  7947  	googleapi.Expand(req.URL, map[string]string{
  7948  		"name": c.name,
  7949  	})
  7950  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  7951  }
  7952  
  7953  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.patch" call.
  7954  // Any non-2xx status code is an error. Response headers are in either
  7955  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  7956  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  7957  // whether the returned error was because http.StatusNotModified was returned.
  7958  func (c *ProjectsLocationsBareMetalClustersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  7959  	gensupport.SetOptions(c.urlParams_, opts...)
  7960  	res, err := c.doRequest("json")
  7961  	if res != nil && res.StatusCode == http.StatusNotModified {
  7962  		if res.Body != nil {
  7963  			res.Body.Close()
  7964  		}
  7965  		return nil, gensupport.WrapError(&googleapi.Error{
  7966  			Code:   res.StatusCode,
  7967  			Header: res.Header,
  7968  		})
  7969  	}
  7970  	if err != nil {
  7971  		return nil, err
  7972  	}
  7973  	defer googleapi.CloseBody(res)
  7974  	if err := googleapi.CheckResponse(res); err != nil {
  7975  		return nil, gensupport.WrapError(err)
  7976  	}
  7977  	ret := &Operation{
  7978  		ServerResponse: googleapi.ServerResponse{
  7979  			Header:         res.Header,
  7980  			HTTPStatusCode: res.StatusCode,
  7981  		},
  7982  	}
  7983  	target := &ret
  7984  	if err := gensupport.DecodeResponse(target, res); err != nil {
  7985  		return nil, err
  7986  	}
  7987  	return ret, nil
  7988  }
  7989  
  7990  type ProjectsLocationsBareMetalClustersQueryVersionConfigCall struct {
  7991  	s          *Service
  7992  	parent     string
  7993  	urlParams_ gensupport.URLParams
  7994  	ctx_       context.Context
  7995  	header_    http.Header
  7996  }
  7997  
  7998  // QueryVersionConfig: Queries the bare metal user cluster version config.
  7999  //
  8000  //   - parent: The parent of the project and location to query for version
  8001  //     config. Format: "projects/{project}/locations/{location}".
  8002  func (r *ProjectsLocationsBareMetalClustersService) QueryVersionConfig(parent string) *ProjectsLocationsBareMetalClustersQueryVersionConfigCall {
  8003  	c := &ProjectsLocationsBareMetalClustersQueryVersionConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8004  	c.parent = parent
  8005  	return c
  8006  }
  8007  
  8008  // CreateConfigAdminClusterMembership sets the optional parameter
  8009  // "createConfig.adminClusterMembership": The admin cluster membership. This is
  8010  // the full resource name of the admin cluster's fleet membership. Format:
  8011  // "projects/{project}/locations/{location}/memberships/{membership}"
  8012  func (c *ProjectsLocationsBareMetalClustersQueryVersionConfigCall) CreateConfigAdminClusterMembership(createConfigAdminClusterMembership string) *ProjectsLocationsBareMetalClustersQueryVersionConfigCall {
  8013  	c.urlParams_.Set("createConfig.adminClusterMembership", createConfigAdminClusterMembership)
  8014  	return c
  8015  }
  8016  
  8017  // CreateConfigAdminClusterName sets the optional parameter
  8018  // "createConfig.adminClusterName": The admin cluster resource name. This is
  8019  // the full resource name of the admin cluster resource. Format:
  8020  // "projects/{project}/locations/{location}/bareMetalAdminClusters/{bare_metal_a
  8021  // dmin_cluster}"
  8022  func (c *ProjectsLocationsBareMetalClustersQueryVersionConfigCall) CreateConfigAdminClusterName(createConfigAdminClusterName string) *ProjectsLocationsBareMetalClustersQueryVersionConfigCall {
  8023  	c.urlParams_.Set("createConfig.adminClusterName", createConfigAdminClusterName)
  8024  	return c
  8025  }
  8026  
  8027  // UpgradeConfigClusterName sets the optional parameter
  8028  // "upgradeConfig.clusterName": The user cluster resource name. This is the
  8029  // full resource name of the user cluster resource. Format:
  8030  // "projects/{project}/locations/{location}/bareMetalClusters/{bare_metal_cluste
  8031  // r}"
  8032  func (c *ProjectsLocationsBareMetalClustersQueryVersionConfigCall) UpgradeConfigClusterName(upgradeConfigClusterName string) *ProjectsLocationsBareMetalClustersQueryVersionConfigCall {
  8033  	c.urlParams_.Set("upgradeConfig.clusterName", upgradeConfigClusterName)
  8034  	return c
  8035  }
  8036  
  8037  // Fields allows partial responses to be retrieved. See
  8038  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8039  // details.
  8040  func (c *ProjectsLocationsBareMetalClustersQueryVersionConfigCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersQueryVersionConfigCall {
  8041  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8042  	return c
  8043  }
  8044  
  8045  // Context sets the context to be used in this call's Do method.
  8046  func (c *ProjectsLocationsBareMetalClustersQueryVersionConfigCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersQueryVersionConfigCall {
  8047  	c.ctx_ = ctx
  8048  	return c
  8049  }
  8050  
  8051  // Header returns a http.Header that can be modified by the caller to add
  8052  // headers to the request.
  8053  func (c *ProjectsLocationsBareMetalClustersQueryVersionConfigCall) Header() http.Header {
  8054  	if c.header_ == nil {
  8055  		c.header_ = make(http.Header)
  8056  	}
  8057  	return c.header_
  8058  }
  8059  
  8060  func (c *ProjectsLocationsBareMetalClustersQueryVersionConfigCall) doRequest(alt string) (*http.Response, error) {
  8061  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  8062  	var body io.Reader = nil
  8063  	c.urlParams_.Set("alt", alt)
  8064  	c.urlParams_.Set("prettyPrint", "false")
  8065  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/bareMetalClusters:queryVersionConfig")
  8066  	urls += "?" + c.urlParams_.Encode()
  8067  	req, err := http.NewRequest("POST", urls, body)
  8068  	if err != nil {
  8069  		return nil, err
  8070  	}
  8071  	req.Header = reqHeaders
  8072  	googleapi.Expand(req.URL, map[string]string{
  8073  		"parent": c.parent,
  8074  	})
  8075  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8076  }
  8077  
  8078  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.queryVersionConfig" call.
  8079  // Any non-2xx status code is an error. Response headers are in either
  8080  // *QueryBareMetalVersionConfigResponse.ServerResponse.Header or (if a response
  8081  // was returned at all) in error.(*googleapi.Error).Header. Use
  8082  // googleapi.IsNotModified to check whether the returned error was because
  8083  // http.StatusNotModified was returned.
  8084  func (c *ProjectsLocationsBareMetalClustersQueryVersionConfigCall) Do(opts ...googleapi.CallOption) (*QueryBareMetalVersionConfigResponse, error) {
  8085  	gensupport.SetOptions(c.urlParams_, opts...)
  8086  	res, err := c.doRequest("json")
  8087  	if res != nil && res.StatusCode == http.StatusNotModified {
  8088  		if res.Body != nil {
  8089  			res.Body.Close()
  8090  		}
  8091  		return nil, gensupport.WrapError(&googleapi.Error{
  8092  			Code:   res.StatusCode,
  8093  			Header: res.Header,
  8094  		})
  8095  	}
  8096  	if err != nil {
  8097  		return nil, err
  8098  	}
  8099  	defer googleapi.CloseBody(res)
  8100  	if err := googleapi.CheckResponse(res); err != nil {
  8101  		return nil, gensupport.WrapError(err)
  8102  	}
  8103  	ret := &QueryBareMetalVersionConfigResponse{
  8104  		ServerResponse: googleapi.ServerResponse{
  8105  			Header:         res.Header,
  8106  			HTTPStatusCode: res.StatusCode,
  8107  		},
  8108  	}
  8109  	target := &ret
  8110  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8111  		return nil, err
  8112  	}
  8113  	return ret, nil
  8114  }
  8115  
  8116  type ProjectsLocationsBareMetalClustersSetIamPolicyCall struct {
  8117  	s                   *Service
  8118  	resource            string
  8119  	setiampolicyrequest *SetIamPolicyRequest
  8120  	urlParams_          gensupport.URLParams
  8121  	ctx_                context.Context
  8122  	header_             http.Header
  8123  }
  8124  
  8125  // SetIamPolicy: Sets the access control policy on the specified resource.
  8126  // Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`,
  8127  // and `PERMISSION_DENIED` errors.
  8128  //
  8129  //   - resource: REQUIRED: The resource for which the policy is being specified.
  8130  //     See Resource names (https://cloud.google.com/apis/design/resource_names)
  8131  //     for the appropriate value for this field.
  8132  func (r *ProjectsLocationsBareMetalClustersService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *ProjectsLocationsBareMetalClustersSetIamPolicyCall {
  8133  	c := &ProjectsLocationsBareMetalClustersSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8134  	c.resource = resource
  8135  	c.setiampolicyrequest = setiampolicyrequest
  8136  	return c
  8137  }
  8138  
  8139  // Fields allows partial responses to be retrieved. See
  8140  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8141  // details.
  8142  func (c *ProjectsLocationsBareMetalClustersSetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersSetIamPolicyCall {
  8143  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8144  	return c
  8145  }
  8146  
  8147  // Context sets the context to be used in this call's Do method.
  8148  func (c *ProjectsLocationsBareMetalClustersSetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersSetIamPolicyCall {
  8149  	c.ctx_ = ctx
  8150  	return c
  8151  }
  8152  
  8153  // Header returns a http.Header that can be modified by the caller to add
  8154  // headers to the request.
  8155  func (c *ProjectsLocationsBareMetalClustersSetIamPolicyCall) Header() http.Header {
  8156  	if c.header_ == nil {
  8157  		c.header_ = make(http.Header)
  8158  	}
  8159  	return c.header_
  8160  }
  8161  
  8162  func (c *ProjectsLocationsBareMetalClustersSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
  8163  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  8164  	var body io.Reader = nil
  8165  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest)
  8166  	if err != nil {
  8167  		return nil, err
  8168  	}
  8169  	c.urlParams_.Set("alt", alt)
  8170  	c.urlParams_.Set("prettyPrint", "false")
  8171  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:setIamPolicy")
  8172  	urls += "?" + c.urlParams_.Encode()
  8173  	req, err := http.NewRequest("POST", urls, body)
  8174  	if err != nil {
  8175  		return nil, err
  8176  	}
  8177  	req.Header = reqHeaders
  8178  	googleapi.Expand(req.URL, map[string]string{
  8179  		"resource": c.resource,
  8180  	})
  8181  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8182  }
  8183  
  8184  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.setIamPolicy" call.
  8185  // Any non-2xx status code is an error. Response headers are in either
  8186  // *Policy.ServerResponse.Header or (if a response was returned at all) in
  8187  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  8188  // whether the returned error was because http.StatusNotModified was returned.
  8189  func (c *ProjectsLocationsBareMetalClustersSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
  8190  	gensupport.SetOptions(c.urlParams_, opts...)
  8191  	res, err := c.doRequest("json")
  8192  	if res != nil && res.StatusCode == http.StatusNotModified {
  8193  		if res.Body != nil {
  8194  			res.Body.Close()
  8195  		}
  8196  		return nil, gensupport.WrapError(&googleapi.Error{
  8197  			Code:   res.StatusCode,
  8198  			Header: res.Header,
  8199  		})
  8200  	}
  8201  	if err != nil {
  8202  		return nil, err
  8203  	}
  8204  	defer googleapi.CloseBody(res)
  8205  	if err := googleapi.CheckResponse(res); err != nil {
  8206  		return nil, gensupport.WrapError(err)
  8207  	}
  8208  	ret := &Policy{
  8209  		ServerResponse: googleapi.ServerResponse{
  8210  			Header:         res.Header,
  8211  			HTTPStatusCode: res.StatusCode,
  8212  		},
  8213  	}
  8214  	target := &ret
  8215  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8216  		return nil, err
  8217  	}
  8218  	return ret, nil
  8219  }
  8220  
  8221  type ProjectsLocationsBareMetalClustersTestIamPermissionsCall struct {
  8222  	s                         *Service
  8223  	resource                  string
  8224  	testiampermissionsrequest *TestIamPermissionsRequest
  8225  	urlParams_                gensupport.URLParams
  8226  	ctx_                      context.Context
  8227  	header_                   http.Header
  8228  }
  8229  
  8230  // TestIamPermissions: Returns permissions that a caller has on the specified
  8231  // resource. If the resource does not exist, this will return an empty set of
  8232  // permissions, not a `NOT_FOUND` error. Note: This operation is designed to be
  8233  // used for building permission-aware UIs and command-line tools, not for
  8234  // authorization checking. This operation may "fail open" without warning.
  8235  //
  8236  //   - resource: REQUIRED: The resource for which the policy detail is being
  8237  //     requested. See Resource names
  8238  //     (https://cloud.google.com/apis/design/resource_names) for the appropriate
  8239  //     value for this field.
  8240  func (r *ProjectsLocationsBareMetalClustersService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *ProjectsLocationsBareMetalClustersTestIamPermissionsCall {
  8241  	c := &ProjectsLocationsBareMetalClustersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8242  	c.resource = resource
  8243  	c.testiampermissionsrequest = testiampermissionsrequest
  8244  	return c
  8245  }
  8246  
  8247  // Fields allows partial responses to be retrieved. See
  8248  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8249  // details.
  8250  func (c *ProjectsLocationsBareMetalClustersTestIamPermissionsCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersTestIamPermissionsCall {
  8251  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8252  	return c
  8253  }
  8254  
  8255  // Context sets the context to be used in this call's Do method.
  8256  func (c *ProjectsLocationsBareMetalClustersTestIamPermissionsCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersTestIamPermissionsCall {
  8257  	c.ctx_ = ctx
  8258  	return c
  8259  }
  8260  
  8261  // Header returns a http.Header that can be modified by the caller to add
  8262  // headers to the request.
  8263  func (c *ProjectsLocationsBareMetalClustersTestIamPermissionsCall) Header() http.Header {
  8264  	if c.header_ == nil {
  8265  		c.header_ = make(http.Header)
  8266  	}
  8267  	return c.header_
  8268  }
  8269  
  8270  func (c *ProjectsLocationsBareMetalClustersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
  8271  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  8272  	var body io.Reader = nil
  8273  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest)
  8274  	if err != nil {
  8275  		return nil, err
  8276  	}
  8277  	c.urlParams_.Set("alt", alt)
  8278  	c.urlParams_.Set("prettyPrint", "false")
  8279  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:testIamPermissions")
  8280  	urls += "?" + c.urlParams_.Encode()
  8281  	req, err := http.NewRequest("POST", urls, body)
  8282  	if err != nil {
  8283  		return nil, err
  8284  	}
  8285  	req.Header = reqHeaders
  8286  	googleapi.Expand(req.URL, map[string]string{
  8287  		"resource": c.resource,
  8288  	})
  8289  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8290  }
  8291  
  8292  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.testIamPermissions" call.
  8293  // Any non-2xx status code is an error. Response headers are in either
  8294  // *TestIamPermissionsResponse.ServerResponse.Header or (if a response was
  8295  // returned at all) in error.(*googleapi.Error).Header. Use
  8296  // googleapi.IsNotModified to check whether the returned error was because
  8297  // http.StatusNotModified was returned.
  8298  func (c *ProjectsLocationsBareMetalClustersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) {
  8299  	gensupport.SetOptions(c.urlParams_, opts...)
  8300  	res, err := c.doRequest("json")
  8301  	if res != nil && res.StatusCode == http.StatusNotModified {
  8302  		if res.Body != nil {
  8303  			res.Body.Close()
  8304  		}
  8305  		return nil, gensupport.WrapError(&googleapi.Error{
  8306  			Code:   res.StatusCode,
  8307  			Header: res.Header,
  8308  		})
  8309  	}
  8310  	if err != nil {
  8311  		return nil, err
  8312  	}
  8313  	defer googleapi.CloseBody(res)
  8314  	if err := googleapi.CheckResponse(res); err != nil {
  8315  		return nil, gensupport.WrapError(err)
  8316  	}
  8317  	ret := &TestIamPermissionsResponse{
  8318  		ServerResponse: googleapi.ServerResponse{
  8319  			Header:         res.Header,
  8320  			HTTPStatusCode: res.StatusCode,
  8321  		},
  8322  	}
  8323  	target := &ret
  8324  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8325  		return nil, err
  8326  	}
  8327  	return ret, nil
  8328  }
  8329  
  8330  type ProjectsLocationsBareMetalClustersUnenrollCall struct {
  8331  	s          *Service
  8332  	name       string
  8333  	urlParams_ gensupport.URLParams
  8334  	ctx_       context.Context
  8335  	header_    http.Header
  8336  }
  8337  
  8338  // Unenroll: Unenrolls an existing bare metal user cluster and its node pools
  8339  // from the Anthos On-Prem API within a given project and location.
  8340  // Unenrollment removes the Cloud reference to the cluster without modifying
  8341  // the underlying OnPrem Resources. Clusters and node pools will continue to
  8342  // run; however, they will no longer be accessible through the Anthos On-Prem
  8343  // API or its clients.
  8344  //
  8345  //   - name: Name of the bare metal user cluster to be unenrolled. Format:
  8346  //     "projects/{project}/locations/{location}/bareMetalClusters/{cluster}".
  8347  func (r *ProjectsLocationsBareMetalClustersService) Unenroll(name string) *ProjectsLocationsBareMetalClustersUnenrollCall {
  8348  	c := &ProjectsLocationsBareMetalClustersUnenrollCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8349  	c.name = name
  8350  	return c
  8351  }
  8352  
  8353  // AllowMissing sets the optional parameter "allowMissing": If set to true, and
  8354  // the bare metal cluster is not found, the request will succeed but no action
  8355  // will be taken on the server and return a completed LRO.
  8356  func (c *ProjectsLocationsBareMetalClustersUnenrollCall) AllowMissing(allowMissing bool) *ProjectsLocationsBareMetalClustersUnenrollCall {
  8357  	c.urlParams_.Set("allowMissing", fmt.Sprint(allowMissing))
  8358  	return c
  8359  }
  8360  
  8361  // Etag sets the optional parameter "etag": The current etag of the bare metal
  8362  // Cluster. If an etag is provided and does not match the current etag of the
  8363  // cluster, deletion will be blocked and an ABORTED error will be returned.
  8364  func (c *ProjectsLocationsBareMetalClustersUnenrollCall) Etag(etag string) *ProjectsLocationsBareMetalClustersUnenrollCall {
  8365  	c.urlParams_.Set("etag", etag)
  8366  	return c
  8367  }
  8368  
  8369  // Force sets the optional parameter "force": This is required if the cluster
  8370  // has any associated node pools. When set, any child node pools will also be
  8371  // unenrolled.
  8372  func (c *ProjectsLocationsBareMetalClustersUnenrollCall) Force(force bool) *ProjectsLocationsBareMetalClustersUnenrollCall {
  8373  	c.urlParams_.Set("force", fmt.Sprint(force))
  8374  	return c
  8375  }
  8376  
  8377  // ValidateOnly sets the optional parameter "validateOnly": Validate the
  8378  // request without actually doing any updates.
  8379  func (c *ProjectsLocationsBareMetalClustersUnenrollCall) ValidateOnly(validateOnly bool) *ProjectsLocationsBareMetalClustersUnenrollCall {
  8380  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
  8381  	return c
  8382  }
  8383  
  8384  // Fields allows partial responses to be retrieved. See
  8385  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8386  // details.
  8387  func (c *ProjectsLocationsBareMetalClustersUnenrollCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersUnenrollCall {
  8388  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8389  	return c
  8390  }
  8391  
  8392  // Context sets the context to be used in this call's Do method.
  8393  func (c *ProjectsLocationsBareMetalClustersUnenrollCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersUnenrollCall {
  8394  	c.ctx_ = ctx
  8395  	return c
  8396  }
  8397  
  8398  // Header returns a http.Header that can be modified by the caller to add
  8399  // headers to the request.
  8400  func (c *ProjectsLocationsBareMetalClustersUnenrollCall) Header() http.Header {
  8401  	if c.header_ == nil {
  8402  		c.header_ = make(http.Header)
  8403  	}
  8404  	return c.header_
  8405  }
  8406  
  8407  func (c *ProjectsLocationsBareMetalClustersUnenrollCall) doRequest(alt string) (*http.Response, error) {
  8408  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  8409  	var body io.Reader = nil
  8410  	c.urlParams_.Set("alt", alt)
  8411  	c.urlParams_.Set("prettyPrint", "false")
  8412  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:unenroll")
  8413  	urls += "?" + c.urlParams_.Encode()
  8414  	req, err := http.NewRequest("DELETE", urls, body)
  8415  	if err != nil {
  8416  		return nil, err
  8417  	}
  8418  	req.Header = reqHeaders
  8419  	googleapi.Expand(req.URL, map[string]string{
  8420  		"name": c.name,
  8421  	})
  8422  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8423  }
  8424  
  8425  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.unenroll" call.
  8426  // Any non-2xx status code is an error. Response headers are in either
  8427  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  8428  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  8429  // whether the returned error was because http.StatusNotModified was returned.
  8430  func (c *ProjectsLocationsBareMetalClustersUnenrollCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  8431  	gensupport.SetOptions(c.urlParams_, opts...)
  8432  	res, err := c.doRequest("json")
  8433  	if res != nil && res.StatusCode == http.StatusNotModified {
  8434  		if res.Body != nil {
  8435  			res.Body.Close()
  8436  		}
  8437  		return nil, gensupport.WrapError(&googleapi.Error{
  8438  			Code:   res.StatusCode,
  8439  			Header: res.Header,
  8440  		})
  8441  	}
  8442  	if err != nil {
  8443  		return nil, err
  8444  	}
  8445  	defer googleapi.CloseBody(res)
  8446  	if err := googleapi.CheckResponse(res); err != nil {
  8447  		return nil, gensupport.WrapError(err)
  8448  	}
  8449  	ret := &Operation{
  8450  		ServerResponse: googleapi.ServerResponse{
  8451  			Header:         res.Header,
  8452  			HTTPStatusCode: res.StatusCode,
  8453  		},
  8454  	}
  8455  	target := &ret
  8456  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8457  		return nil, err
  8458  	}
  8459  	return ret, nil
  8460  }
  8461  
  8462  type ProjectsLocationsBareMetalClustersBareMetalNodePoolsCreateCall struct {
  8463  	s                 *Service
  8464  	parent            string
  8465  	baremetalnodepool *BareMetalNodePool
  8466  	urlParams_        gensupport.URLParams
  8467  	ctx_              context.Context
  8468  	header_           http.Header
  8469  }
  8470  
  8471  // Create: Creates a new bare metal node pool in a given project, location and
  8472  // Bare Metal cluster.
  8473  //
  8474  //   - parent: The parent resource where this node pool will be created.
  8475  //     projects/{project}/locations/{location}/bareMetalClusters/{cluster}.
  8476  func (r *ProjectsLocationsBareMetalClustersBareMetalNodePoolsService) Create(parent string, baremetalnodepool *BareMetalNodePool) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsCreateCall {
  8477  	c := &ProjectsLocationsBareMetalClustersBareMetalNodePoolsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8478  	c.parent = parent
  8479  	c.baremetalnodepool = baremetalnodepool
  8480  	return c
  8481  }
  8482  
  8483  // BareMetalNodePoolId sets the optional parameter "bareMetalNodePoolId": The
  8484  // ID to use for the node pool, which will become the final component of the
  8485  // node pool's resource name. This value must be up to 63 characters, and valid
  8486  // characters are /a-z-/. The value must not be permitted to be a UUID (or
  8487  // UUID-like: anything matching
  8488  // /^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$/i).
  8489  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsCreateCall) BareMetalNodePoolId(bareMetalNodePoolId string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsCreateCall {
  8490  	c.urlParams_.Set("bareMetalNodePoolId", bareMetalNodePoolId)
  8491  	return c
  8492  }
  8493  
  8494  // ValidateOnly sets the optional parameter "validateOnly": If set, only
  8495  // validate the request, but do not actually create the node pool.
  8496  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsCreateCall) ValidateOnly(validateOnly bool) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsCreateCall {
  8497  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
  8498  	return c
  8499  }
  8500  
  8501  // Fields allows partial responses to be retrieved. See
  8502  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8503  // details.
  8504  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsCreateCall {
  8505  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8506  	return c
  8507  }
  8508  
  8509  // Context sets the context to be used in this call's Do method.
  8510  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsCreateCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsCreateCall {
  8511  	c.ctx_ = ctx
  8512  	return c
  8513  }
  8514  
  8515  // Header returns a http.Header that can be modified by the caller to add
  8516  // headers to the request.
  8517  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsCreateCall) Header() http.Header {
  8518  	if c.header_ == nil {
  8519  		c.header_ = make(http.Header)
  8520  	}
  8521  	return c.header_
  8522  }
  8523  
  8524  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsCreateCall) doRequest(alt string) (*http.Response, error) {
  8525  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  8526  	var body io.Reader = nil
  8527  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.baremetalnodepool)
  8528  	if err != nil {
  8529  		return nil, err
  8530  	}
  8531  	c.urlParams_.Set("alt", alt)
  8532  	c.urlParams_.Set("prettyPrint", "false")
  8533  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/bareMetalNodePools")
  8534  	urls += "?" + c.urlParams_.Encode()
  8535  	req, err := http.NewRequest("POST", urls, body)
  8536  	if err != nil {
  8537  		return nil, err
  8538  	}
  8539  	req.Header = reqHeaders
  8540  	googleapi.Expand(req.URL, map[string]string{
  8541  		"parent": c.parent,
  8542  	})
  8543  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8544  }
  8545  
  8546  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.create" call.
  8547  // Any non-2xx status code is an error. Response headers are in either
  8548  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  8549  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  8550  // whether the returned error was because http.StatusNotModified was returned.
  8551  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  8552  	gensupport.SetOptions(c.urlParams_, opts...)
  8553  	res, err := c.doRequest("json")
  8554  	if res != nil && res.StatusCode == http.StatusNotModified {
  8555  		if res.Body != nil {
  8556  			res.Body.Close()
  8557  		}
  8558  		return nil, gensupport.WrapError(&googleapi.Error{
  8559  			Code:   res.StatusCode,
  8560  			Header: res.Header,
  8561  		})
  8562  	}
  8563  	if err != nil {
  8564  		return nil, err
  8565  	}
  8566  	defer googleapi.CloseBody(res)
  8567  	if err := googleapi.CheckResponse(res); err != nil {
  8568  		return nil, gensupport.WrapError(err)
  8569  	}
  8570  	ret := &Operation{
  8571  		ServerResponse: googleapi.ServerResponse{
  8572  			Header:         res.Header,
  8573  			HTTPStatusCode: res.StatusCode,
  8574  		},
  8575  	}
  8576  	target := &ret
  8577  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8578  		return nil, err
  8579  	}
  8580  	return ret, nil
  8581  }
  8582  
  8583  type ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall struct {
  8584  	s          *Service
  8585  	name       string
  8586  	urlParams_ gensupport.URLParams
  8587  	ctx_       context.Context
  8588  	header_    http.Header
  8589  }
  8590  
  8591  // Delete: Deletes a single bare metal node pool.
  8592  //
  8593  //   - name: The name of the node pool to delete. Format:
  8594  //     projects/{project}/locations/{location}/bareMetalClusters/{cluster}/bareMet
  8595  //     alNodePools/{nodepool}.
  8596  func (r *ProjectsLocationsBareMetalClustersBareMetalNodePoolsService) Delete(name string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall {
  8597  	c := &ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8598  	c.name = name
  8599  	return c
  8600  }
  8601  
  8602  // AllowMissing sets the optional parameter "allowMissing": If set to true, and
  8603  // the bare metal node pool is not found, the request will succeed but no
  8604  // action will be taken on the server and return a completed LRO.
  8605  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall) AllowMissing(allowMissing bool) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall {
  8606  	c.urlParams_.Set("allowMissing", fmt.Sprint(allowMissing))
  8607  	return c
  8608  }
  8609  
  8610  // Etag sets the optional parameter "etag": The current etag of the
  8611  // BareMetalNodePool. If an etag is provided and does not match the current
  8612  // etag of the node pool, deletion will be blocked and an ABORTED error will be
  8613  // returned.
  8614  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall) Etag(etag string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall {
  8615  	c.urlParams_.Set("etag", etag)
  8616  	return c
  8617  }
  8618  
  8619  // IgnoreErrors sets the optional parameter "ignoreErrors": If set to true, the
  8620  // deletion of a bare metal node pool resource will succeed even if errors
  8621  // occur during deletion. This parameter can be used when you want to delete
  8622  // GCP's node pool resource and you've already deleted the on-prem admin
  8623  // cluster that hosted your node pool. WARNING: Using this parameter when your
  8624  // user cluster still exists may result in a deleted GCP node pool but an
  8625  // existing on-prem node pool.
  8626  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall) IgnoreErrors(ignoreErrors bool) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall {
  8627  	c.urlParams_.Set("ignoreErrors", fmt.Sprint(ignoreErrors))
  8628  	return c
  8629  }
  8630  
  8631  // ValidateOnly sets the optional parameter "validateOnly": If set, only
  8632  // validate the request, but do not actually delete the node pool.
  8633  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall) ValidateOnly(validateOnly bool) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall {
  8634  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
  8635  	return c
  8636  }
  8637  
  8638  // Fields allows partial responses to be retrieved. See
  8639  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8640  // details.
  8641  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall {
  8642  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8643  	return c
  8644  }
  8645  
  8646  // Context sets the context to be used in this call's Do method.
  8647  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall {
  8648  	c.ctx_ = ctx
  8649  	return c
  8650  }
  8651  
  8652  // Header returns a http.Header that can be modified by the caller to add
  8653  // headers to the request.
  8654  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall) Header() http.Header {
  8655  	if c.header_ == nil {
  8656  		c.header_ = make(http.Header)
  8657  	}
  8658  	return c.header_
  8659  }
  8660  
  8661  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
  8662  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  8663  	var body io.Reader = nil
  8664  	c.urlParams_.Set("alt", alt)
  8665  	c.urlParams_.Set("prettyPrint", "false")
  8666  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  8667  	urls += "?" + c.urlParams_.Encode()
  8668  	req, err := http.NewRequest("DELETE", urls, body)
  8669  	if err != nil {
  8670  		return nil, err
  8671  	}
  8672  	req.Header = reqHeaders
  8673  	googleapi.Expand(req.URL, map[string]string{
  8674  		"name": c.name,
  8675  	})
  8676  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8677  }
  8678  
  8679  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.delete" call.
  8680  // Any non-2xx status code is an error. Response headers are in either
  8681  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  8682  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  8683  // whether the returned error was because http.StatusNotModified was returned.
  8684  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  8685  	gensupport.SetOptions(c.urlParams_, opts...)
  8686  	res, err := c.doRequest("json")
  8687  	if res != nil && res.StatusCode == http.StatusNotModified {
  8688  		if res.Body != nil {
  8689  			res.Body.Close()
  8690  		}
  8691  		return nil, gensupport.WrapError(&googleapi.Error{
  8692  			Code:   res.StatusCode,
  8693  			Header: res.Header,
  8694  		})
  8695  	}
  8696  	if err != nil {
  8697  		return nil, err
  8698  	}
  8699  	defer googleapi.CloseBody(res)
  8700  	if err := googleapi.CheckResponse(res); err != nil {
  8701  		return nil, gensupport.WrapError(err)
  8702  	}
  8703  	ret := &Operation{
  8704  		ServerResponse: googleapi.ServerResponse{
  8705  			Header:         res.Header,
  8706  			HTTPStatusCode: res.StatusCode,
  8707  		},
  8708  	}
  8709  	target := &ret
  8710  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8711  		return nil, err
  8712  	}
  8713  	return ret, nil
  8714  }
  8715  
  8716  type ProjectsLocationsBareMetalClustersBareMetalNodePoolsEnrollCall struct {
  8717  	s                              *Service
  8718  	parent                         string
  8719  	enrollbaremetalnodepoolrequest *EnrollBareMetalNodePoolRequest
  8720  	urlParams_                     gensupport.URLParams
  8721  	ctx_                           context.Context
  8722  	header_                        http.Header
  8723  }
  8724  
  8725  // Enroll: Enrolls an existing bare metal node pool to the Anthos On-Prem API
  8726  // within a given project and location. Through enrollment, an existing node
  8727  // pool will become Anthos On-Prem API managed. The corresponding GCP resources
  8728  // will be created.
  8729  //
  8730  //   - parent: The parent resource where this node pool will be created.
  8731  //     projects/{project}/locations/{location}/bareMetalClusters/{cluster}.
  8732  func (r *ProjectsLocationsBareMetalClustersBareMetalNodePoolsService) Enroll(parent string, enrollbaremetalnodepoolrequest *EnrollBareMetalNodePoolRequest) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsEnrollCall {
  8733  	c := &ProjectsLocationsBareMetalClustersBareMetalNodePoolsEnrollCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8734  	c.parent = parent
  8735  	c.enrollbaremetalnodepoolrequest = enrollbaremetalnodepoolrequest
  8736  	return c
  8737  }
  8738  
  8739  // Fields allows partial responses to be retrieved. See
  8740  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8741  // details.
  8742  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsEnrollCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsEnrollCall {
  8743  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8744  	return c
  8745  }
  8746  
  8747  // Context sets the context to be used in this call's Do method.
  8748  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsEnrollCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsEnrollCall {
  8749  	c.ctx_ = ctx
  8750  	return c
  8751  }
  8752  
  8753  // Header returns a http.Header that can be modified by the caller to add
  8754  // headers to the request.
  8755  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsEnrollCall) Header() http.Header {
  8756  	if c.header_ == nil {
  8757  		c.header_ = make(http.Header)
  8758  	}
  8759  	return c.header_
  8760  }
  8761  
  8762  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsEnrollCall) doRequest(alt string) (*http.Response, error) {
  8763  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  8764  	var body io.Reader = nil
  8765  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.enrollbaremetalnodepoolrequest)
  8766  	if err != nil {
  8767  		return nil, err
  8768  	}
  8769  	c.urlParams_.Set("alt", alt)
  8770  	c.urlParams_.Set("prettyPrint", "false")
  8771  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/bareMetalNodePools:enroll")
  8772  	urls += "?" + c.urlParams_.Encode()
  8773  	req, err := http.NewRequest("POST", urls, body)
  8774  	if err != nil {
  8775  		return nil, err
  8776  	}
  8777  	req.Header = reqHeaders
  8778  	googleapi.Expand(req.URL, map[string]string{
  8779  		"parent": c.parent,
  8780  	})
  8781  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8782  }
  8783  
  8784  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.enroll" call.
  8785  // Any non-2xx status code is an error. Response headers are in either
  8786  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  8787  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  8788  // whether the returned error was because http.StatusNotModified was returned.
  8789  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsEnrollCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  8790  	gensupport.SetOptions(c.urlParams_, opts...)
  8791  	res, err := c.doRequest("json")
  8792  	if res != nil && res.StatusCode == http.StatusNotModified {
  8793  		if res.Body != nil {
  8794  			res.Body.Close()
  8795  		}
  8796  		return nil, gensupport.WrapError(&googleapi.Error{
  8797  			Code:   res.StatusCode,
  8798  			Header: res.Header,
  8799  		})
  8800  	}
  8801  	if err != nil {
  8802  		return nil, err
  8803  	}
  8804  	defer googleapi.CloseBody(res)
  8805  	if err := googleapi.CheckResponse(res); err != nil {
  8806  		return nil, gensupport.WrapError(err)
  8807  	}
  8808  	ret := &Operation{
  8809  		ServerResponse: googleapi.ServerResponse{
  8810  			Header:         res.Header,
  8811  			HTTPStatusCode: res.StatusCode,
  8812  		},
  8813  	}
  8814  	target := &ret
  8815  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8816  		return nil, err
  8817  	}
  8818  	return ret, nil
  8819  }
  8820  
  8821  type ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetCall struct {
  8822  	s            *Service
  8823  	name         string
  8824  	urlParams_   gensupport.URLParams
  8825  	ifNoneMatch_ string
  8826  	ctx_         context.Context
  8827  	header_      http.Header
  8828  }
  8829  
  8830  // Get: Gets details of a single bare metal node pool.
  8831  //
  8832  //   - name: The name of the node pool to retrieve.
  8833  //     projects/{project}/locations/{location}/bareMetalClusters/{cluster}/bareMet
  8834  //     alNodePools/{nodepool}.
  8835  func (r *ProjectsLocationsBareMetalClustersBareMetalNodePoolsService) Get(name string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetCall {
  8836  	c := &ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8837  	c.name = name
  8838  	return c
  8839  }
  8840  
  8841  // View sets the optional parameter "view": View for bare metal node pool. When
  8842  // `BASIC` is specified, only the node pool resource name is returned. The
  8843  // default/unset value `NODE_POOL_VIEW_UNSPECIFIED` is the same as `FULL',
  8844  // which returns the complete node pool configuration details.
  8845  //
  8846  // Possible values:
  8847  //
  8848  //	"NODE_POOL_VIEW_UNSPECIFIED" - If the value is not set, the default `FULL`
  8849  //
  8850  // view is used.
  8851  //
  8852  //	"BASIC" - Includes basic information of a node pool resource including
  8853  //
  8854  // node pool resource name.
  8855  //
  8856  //	"FULL" - Includes the complete configuration for bare metal node pool
  8857  //
  8858  // resource. This is the default value for GetBareMetalNodePoolRequest method.
  8859  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetCall) View(view string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetCall {
  8860  	c.urlParams_.Set("view", view)
  8861  	return c
  8862  }
  8863  
  8864  // Fields allows partial responses to be retrieved. See
  8865  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8866  // details.
  8867  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetCall {
  8868  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8869  	return c
  8870  }
  8871  
  8872  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  8873  // object's ETag matches the given value. This is useful for getting updates
  8874  // only after the object has changed since the last request.
  8875  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetCall {
  8876  	c.ifNoneMatch_ = entityTag
  8877  	return c
  8878  }
  8879  
  8880  // Context sets the context to be used in this call's Do method.
  8881  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetCall {
  8882  	c.ctx_ = ctx
  8883  	return c
  8884  }
  8885  
  8886  // Header returns a http.Header that can be modified by the caller to add
  8887  // headers to the request.
  8888  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetCall) Header() http.Header {
  8889  	if c.header_ == nil {
  8890  		c.header_ = make(http.Header)
  8891  	}
  8892  	return c.header_
  8893  }
  8894  
  8895  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetCall) doRequest(alt string) (*http.Response, error) {
  8896  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  8897  	if c.ifNoneMatch_ != "" {
  8898  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  8899  	}
  8900  	var body io.Reader = nil
  8901  	c.urlParams_.Set("alt", alt)
  8902  	c.urlParams_.Set("prettyPrint", "false")
  8903  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  8904  	urls += "?" + c.urlParams_.Encode()
  8905  	req, err := http.NewRequest("GET", urls, body)
  8906  	if err != nil {
  8907  		return nil, err
  8908  	}
  8909  	req.Header = reqHeaders
  8910  	googleapi.Expand(req.URL, map[string]string{
  8911  		"name": c.name,
  8912  	})
  8913  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8914  }
  8915  
  8916  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.get" call.
  8917  // Any non-2xx status code is an error. Response headers are in either
  8918  // *BareMetalNodePool.ServerResponse.Header or (if a response was returned at
  8919  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  8920  // check whether the returned error was because http.StatusNotModified was
  8921  // returned.
  8922  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetCall) Do(opts ...googleapi.CallOption) (*BareMetalNodePool, error) {
  8923  	gensupport.SetOptions(c.urlParams_, opts...)
  8924  	res, err := c.doRequest("json")
  8925  	if res != nil && res.StatusCode == http.StatusNotModified {
  8926  		if res.Body != nil {
  8927  			res.Body.Close()
  8928  		}
  8929  		return nil, gensupport.WrapError(&googleapi.Error{
  8930  			Code:   res.StatusCode,
  8931  			Header: res.Header,
  8932  		})
  8933  	}
  8934  	if err != nil {
  8935  		return nil, err
  8936  	}
  8937  	defer googleapi.CloseBody(res)
  8938  	if err := googleapi.CheckResponse(res); err != nil {
  8939  		return nil, gensupport.WrapError(err)
  8940  	}
  8941  	ret := &BareMetalNodePool{
  8942  		ServerResponse: googleapi.ServerResponse{
  8943  			Header:         res.Header,
  8944  			HTTPStatusCode: res.StatusCode,
  8945  		},
  8946  	}
  8947  	target := &ret
  8948  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8949  		return nil, err
  8950  	}
  8951  	return ret, nil
  8952  }
  8953  
  8954  type ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetIamPolicyCall struct {
  8955  	s            *Service
  8956  	resource     string
  8957  	urlParams_   gensupport.URLParams
  8958  	ifNoneMatch_ string
  8959  	ctx_         context.Context
  8960  	header_      http.Header
  8961  }
  8962  
  8963  // GetIamPolicy: Gets the access control policy for a resource. Returns an
  8964  // empty policy if the resource exists and does not have a policy set.
  8965  //
  8966  //   - resource: REQUIRED: The resource for which the policy is being requested.
  8967  //     See Resource names (https://cloud.google.com/apis/design/resource_names)
  8968  //     for the appropriate value for this field.
  8969  func (r *ProjectsLocationsBareMetalClustersBareMetalNodePoolsService) GetIamPolicy(resource string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetIamPolicyCall {
  8970  	c := &ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8971  	c.resource = resource
  8972  	return c
  8973  }
  8974  
  8975  // OptionsRequestedPolicyVersion sets the optional parameter
  8976  // "options.requestedPolicyVersion": The maximum policy version that will be
  8977  // used to format the policy. Valid values are 0, 1, and 3. Requests specifying
  8978  // an invalid value will be rejected. Requests for policies with any
  8979  // conditional role bindings must specify version 3. Policies with no
  8980  // conditional role bindings may specify any valid value or leave the field
  8981  // unset. The policy in the response might use the policy version that you
  8982  // specified, or it might use a lower policy version. For example, if you
  8983  // specify version 3, but the policy has no conditional role bindings, the
  8984  // response uses version 1. To learn which resources support conditions in
  8985  // their IAM policies, see the IAM documentation
  8986  // (https://cloud.google.com/iam/help/conditions/resource-policies).
  8987  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetIamPolicyCall {
  8988  	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
  8989  	return c
  8990  }
  8991  
  8992  // Fields allows partial responses to be retrieved. See
  8993  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8994  // details.
  8995  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetIamPolicyCall {
  8996  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8997  	return c
  8998  }
  8999  
  9000  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  9001  // object's ETag matches the given value. This is useful for getting updates
  9002  // only after the object has changed since the last request.
  9003  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetIamPolicyCall) IfNoneMatch(entityTag string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetIamPolicyCall {
  9004  	c.ifNoneMatch_ = entityTag
  9005  	return c
  9006  }
  9007  
  9008  // Context sets the context to be used in this call's Do method.
  9009  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetIamPolicyCall {
  9010  	c.ctx_ = ctx
  9011  	return c
  9012  }
  9013  
  9014  // Header returns a http.Header that can be modified by the caller to add
  9015  // headers to the request.
  9016  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetIamPolicyCall) Header() http.Header {
  9017  	if c.header_ == nil {
  9018  		c.header_ = make(http.Header)
  9019  	}
  9020  	return c.header_
  9021  }
  9022  
  9023  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
  9024  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  9025  	if c.ifNoneMatch_ != "" {
  9026  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  9027  	}
  9028  	var body io.Reader = nil
  9029  	c.urlParams_.Set("alt", alt)
  9030  	c.urlParams_.Set("prettyPrint", "false")
  9031  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:getIamPolicy")
  9032  	urls += "?" + c.urlParams_.Encode()
  9033  	req, err := http.NewRequest("GET", urls, body)
  9034  	if err != nil {
  9035  		return nil, err
  9036  	}
  9037  	req.Header = reqHeaders
  9038  	googleapi.Expand(req.URL, map[string]string{
  9039  		"resource": c.resource,
  9040  	})
  9041  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9042  }
  9043  
  9044  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.getIamPolicy" call.
  9045  // Any non-2xx status code is an error. Response headers are in either
  9046  // *Policy.ServerResponse.Header or (if a response was returned at all) in
  9047  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  9048  // whether the returned error was because http.StatusNotModified was returned.
  9049  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
  9050  	gensupport.SetOptions(c.urlParams_, opts...)
  9051  	res, err := c.doRequest("json")
  9052  	if res != nil && res.StatusCode == http.StatusNotModified {
  9053  		if res.Body != nil {
  9054  			res.Body.Close()
  9055  		}
  9056  		return nil, gensupport.WrapError(&googleapi.Error{
  9057  			Code:   res.StatusCode,
  9058  			Header: res.Header,
  9059  		})
  9060  	}
  9061  	if err != nil {
  9062  		return nil, err
  9063  	}
  9064  	defer googleapi.CloseBody(res)
  9065  	if err := googleapi.CheckResponse(res); err != nil {
  9066  		return nil, gensupport.WrapError(err)
  9067  	}
  9068  	ret := &Policy{
  9069  		ServerResponse: googleapi.ServerResponse{
  9070  			Header:         res.Header,
  9071  			HTTPStatusCode: res.StatusCode,
  9072  		},
  9073  	}
  9074  	target := &ret
  9075  	if err := gensupport.DecodeResponse(target, res); err != nil {
  9076  		return nil, err
  9077  	}
  9078  	return ret, nil
  9079  }
  9080  
  9081  type ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall struct {
  9082  	s            *Service
  9083  	parent       string
  9084  	urlParams_   gensupport.URLParams
  9085  	ifNoneMatch_ string
  9086  	ctx_         context.Context
  9087  	header_      http.Header
  9088  }
  9089  
  9090  // List: Lists bare metal node pools in a given project, location and bare
  9091  // metal cluster.
  9092  //
  9093  //   - parent: The parent, which owns this collection of node pools. Format:
  9094  //     projects/{project}/locations/{location}/bareMetalClusters/{bareMetalCluster
  9095  //     }.
  9096  func (r *ProjectsLocationsBareMetalClustersBareMetalNodePoolsService) List(parent string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall {
  9097  	c := &ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9098  	c.parent = parent
  9099  	return c
  9100  }
  9101  
  9102  // PageSize sets the optional parameter "pageSize": The maximum number of node
  9103  // pools to return. The service may return fewer than this value. If
  9104  // unspecified, at most 50 node pools will be returned. The maximum value is
  9105  // 1000; values above 1000 will be coerced to 1000.
  9106  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall) PageSize(pageSize int64) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall {
  9107  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  9108  	return c
  9109  }
  9110  
  9111  // PageToken sets the optional parameter "pageToken": A page token, received
  9112  // from a previous `ListBareMetalNodePools` call. Provide this to retrieve the
  9113  // subsequent page. When paginating, all other parameters provided to
  9114  // `ListBareMetalNodePools` must match the call that provided the page token.
  9115  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall) PageToken(pageToken string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall {
  9116  	c.urlParams_.Set("pageToken", pageToken)
  9117  	return c
  9118  }
  9119  
  9120  // View sets the optional parameter "view": View for bare metal node pools.
  9121  // When `BASIC` is specified, only the node pool resource name is returned. The
  9122  // default/unset value `NODE_POOL_VIEW_UNSPECIFIED` is the same as `FULL',
  9123  // which returns the complete node pool configuration details.
  9124  //
  9125  // Possible values:
  9126  //
  9127  //	"NODE_POOL_VIEW_UNSPECIFIED" - If the value is not set, the default `FULL`
  9128  //
  9129  // view is used.
  9130  //
  9131  //	"BASIC" - Includes basic information of a node pool resource including
  9132  //
  9133  // node pool resource name.
  9134  //
  9135  //	"FULL" - Includes the complete configuration for bare metal node pool
  9136  //
  9137  // resource. This is the default value for ListBareMetalNodePoolsRequest
  9138  // method.
  9139  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall) View(view string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall {
  9140  	c.urlParams_.Set("view", view)
  9141  	return c
  9142  }
  9143  
  9144  // Fields allows partial responses to be retrieved. See
  9145  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9146  // details.
  9147  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall {
  9148  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  9149  	return c
  9150  }
  9151  
  9152  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  9153  // object's ETag matches the given value. This is useful for getting updates
  9154  // only after the object has changed since the last request.
  9155  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall {
  9156  	c.ifNoneMatch_ = entityTag
  9157  	return c
  9158  }
  9159  
  9160  // Context sets the context to be used in this call's Do method.
  9161  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall {
  9162  	c.ctx_ = ctx
  9163  	return c
  9164  }
  9165  
  9166  // Header returns a http.Header that can be modified by the caller to add
  9167  // headers to the request.
  9168  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall) Header() http.Header {
  9169  	if c.header_ == nil {
  9170  		c.header_ = make(http.Header)
  9171  	}
  9172  	return c.header_
  9173  }
  9174  
  9175  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall) doRequest(alt string) (*http.Response, error) {
  9176  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  9177  	if c.ifNoneMatch_ != "" {
  9178  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  9179  	}
  9180  	var body io.Reader = nil
  9181  	c.urlParams_.Set("alt", alt)
  9182  	c.urlParams_.Set("prettyPrint", "false")
  9183  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/bareMetalNodePools")
  9184  	urls += "?" + c.urlParams_.Encode()
  9185  	req, err := http.NewRequest("GET", urls, body)
  9186  	if err != nil {
  9187  		return nil, err
  9188  	}
  9189  	req.Header = reqHeaders
  9190  	googleapi.Expand(req.URL, map[string]string{
  9191  		"parent": c.parent,
  9192  	})
  9193  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9194  }
  9195  
  9196  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.list" call.
  9197  // Any non-2xx status code is an error. Response headers are in either
  9198  // *ListBareMetalNodePoolsResponse.ServerResponse.Header or (if a response was
  9199  // returned at all) in error.(*googleapi.Error).Header. Use
  9200  // googleapi.IsNotModified to check whether the returned error was because
  9201  // http.StatusNotModified was returned.
  9202  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall) Do(opts ...googleapi.CallOption) (*ListBareMetalNodePoolsResponse, error) {
  9203  	gensupport.SetOptions(c.urlParams_, opts...)
  9204  	res, err := c.doRequest("json")
  9205  	if res != nil && res.StatusCode == http.StatusNotModified {
  9206  		if res.Body != nil {
  9207  			res.Body.Close()
  9208  		}
  9209  		return nil, gensupport.WrapError(&googleapi.Error{
  9210  			Code:   res.StatusCode,
  9211  			Header: res.Header,
  9212  		})
  9213  	}
  9214  	if err != nil {
  9215  		return nil, err
  9216  	}
  9217  	defer googleapi.CloseBody(res)
  9218  	if err := googleapi.CheckResponse(res); err != nil {
  9219  		return nil, gensupport.WrapError(err)
  9220  	}
  9221  	ret := &ListBareMetalNodePoolsResponse{
  9222  		ServerResponse: googleapi.ServerResponse{
  9223  			Header:         res.Header,
  9224  			HTTPStatusCode: res.StatusCode,
  9225  		},
  9226  	}
  9227  	target := &ret
  9228  	if err := gensupport.DecodeResponse(target, res); err != nil {
  9229  		return nil, err
  9230  	}
  9231  	return ret, nil
  9232  }
  9233  
  9234  // Pages invokes f for each page of results.
  9235  // A non-nil error returned from f will halt the iteration.
  9236  // The provided context supersedes any context provided to the Context method.
  9237  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsListCall) Pages(ctx context.Context, f func(*ListBareMetalNodePoolsResponse) error) error {
  9238  	c.ctx_ = ctx
  9239  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  9240  	for {
  9241  		x, err := c.Do()
  9242  		if err != nil {
  9243  			return err
  9244  		}
  9245  		if err := f(x); err != nil {
  9246  			return err
  9247  		}
  9248  		if x.NextPageToken == "" {
  9249  			return nil
  9250  		}
  9251  		c.PageToken(x.NextPageToken)
  9252  	}
  9253  }
  9254  
  9255  type ProjectsLocationsBareMetalClustersBareMetalNodePoolsPatchCall struct {
  9256  	s                 *Service
  9257  	name              string
  9258  	baremetalnodepool *BareMetalNodePool
  9259  	urlParams_        gensupport.URLParams
  9260  	ctx_              context.Context
  9261  	header_           http.Header
  9262  }
  9263  
  9264  // Patch: Updates the parameters of a single bare metal node pool.
  9265  //
  9266  // - name: Immutable. The bare metal node pool resource name.
  9267  func (r *ProjectsLocationsBareMetalClustersBareMetalNodePoolsService) Patch(name string, baremetalnodepool *BareMetalNodePool) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsPatchCall {
  9268  	c := &ProjectsLocationsBareMetalClustersBareMetalNodePoolsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9269  	c.name = name
  9270  	c.baremetalnodepool = baremetalnodepool
  9271  	return c
  9272  }
  9273  
  9274  // AllowMissing sets the optional parameter "allowMissing": If set to true, and
  9275  // the bare metal node pool is not found, the request will create a new bare
  9276  // metal node pool with the provided configuration. The user must have both
  9277  // create and update permission to call Update with allow_missing set to true.
  9278  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsPatchCall) AllowMissing(allowMissing bool) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsPatchCall {
  9279  	c.urlParams_.Set("allowMissing", fmt.Sprint(allowMissing))
  9280  	return c
  9281  }
  9282  
  9283  // UpdateMask sets the optional parameter "updateMask": Required. Field mask is
  9284  // used to specify the fields to be overwritten in the BareMetalNodePool
  9285  // resource by the update. The fields specified in the update_mask are relative
  9286  // to the resource, not the full request. A field will be overwritten if it is
  9287  // in the mask. If the user does not provide a mask then all populated fields
  9288  // in the BareMetalNodePool message will be updated. Empty fields will be
  9289  // ignored unless a field mask is used.
  9290  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsPatchCall {
  9291  	c.urlParams_.Set("updateMask", updateMask)
  9292  	return c
  9293  }
  9294  
  9295  // ValidateOnly sets the optional parameter "validateOnly": Validate the
  9296  // request without actually doing any updates.
  9297  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsPatchCall) ValidateOnly(validateOnly bool) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsPatchCall {
  9298  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
  9299  	return c
  9300  }
  9301  
  9302  // Fields allows partial responses to be retrieved. See
  9303  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9304  // details.
  9305  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsPatchCall {
  9306  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  9307  	return c
  9308  }
  9309  
  9310  // Context sets the context to be used in this call's Do method.
  9311  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsPatchCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsPatchCall {
  9312  	c.ctx_ = ctx
  9313  	return c
  9314  }
  9315  
  9316  // Header returns a http.Header that can be modified by the caller to add
  9317  // headers to the request.
  9318  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsPatchCall) Header() http.Header {
  9319  	if c.header_ == nil {
  9320  		c.header_ = make(http.Header)
  9321  	}
  9322  	return c.header_
  9323  }
  9324  
  9325  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsPatchCall) doRequest(alt string) (*http.Response, error) {
  9326  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  9327  	var body io.Reader = nil
  9328  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.baremetalnodepool)
  9329  	if err != nil {
  9330  		return nil, err
  9331  	}
  9332  	c.urlParams_.Set("alt", alt)
  9333  	c.urlParams_.Set("prettyPrint", "false")
  9334  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  9335  	urls += "?" + c.urlParams_.Encode()
  9336  	req, err := http.NewRequest("PATCH", urls, body)
  9337  	if err != nil {
  9338  		return nil, err
  9339  	}
  9340  	req.Header = reqHeaders
  9341  	googleapi.Expand(req.URL, map[string]string{
  9342  		"name": c.name,
  9343  	})
  9344  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9345  }
  9346  
  9347  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.patch" call.
  9348  // Any non-2xx status code is an error. Response headers are in either
  9349  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  9350  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  9351  // whether the returned error was because http.StatusNotModified was returned.
  9352  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  9353  	gensupport.SetOptions(c.urlParams_, opts...)
  9354  	res, err := c.doRequest("json")
  9355  	if res != nil && res.StatusCode == http.StatusNotModified {
  9356  		if res.Body != nil {
  9357  			res.Body.Close()
  9358  		}
  9359  		return nil, gensupport.WrapError(&googleapi.Error{
  9360  			Code:   res.StatusCode,
  9361  			Header: res.Header,
  9362  		})
  9363  	}
  9364  	if err != nil {
  9365  		return nil, err
  9366  	}
  9367  	defer googleapi.CloseBody(res)
  9368  	if err := googleapi.CheckResponse(res); err != nil {
  9369  		return nil, gensupport.WrapError(err)
  9370  	}
  9371  	ret := &Operation{
  9372  		ServerResponse: googleapi.ServerResponse{
  9373  			Header:         res.Header,
  9374  			HTTPStatusCode: res.StatusCode,
  9375  		},
  9376  	}
  9377  	target := &ret
  9378  	if err := gensupport.DecodeResponse(target, res); err != nil {
  9379  		return nil, err
  9380  	}
  9381  	return ret, nil
  9382  }
  9383  
  9384  type ProjectsLocationsBareMetalClustersBareMetalNodePoolsSetIamPolicyCall struct {
  9385  	s                   *Service
  9386  	resource            string
  9387  	setiampolicyrequest *SetIamPolicyRequest
  9388  	urlParams_          gensupport.URLParams
  9389  	ctx_                context.Context
  9390  	header_             http.Header
  9391  }
  9392  
  9393  // SetIamPolicy: Sets the access control policy on the specified resource.
  9394  // Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`,
  9395  // and `PERMISSION_DENIED` errors.
  9396  //
  9397  //   - resource: REQUIRED: The resource for which the policy is being specified.
  9398  //     See Resource names (https://cloud.google.com/apis/design/resource_names)
  9399  //     for the appropriate value for this field.
  9400  func (r *ProjectsLocationsBareMetalClustersBareMetalNodePoolsService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsSetIamPolicyCall {
  9401  	c := &ProjectsLocationsBareMetalClustersBareMetalNodePoolsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9402  	c.resource = resource
  9403  	c.setiampolicyrequest = setiampolicyrequest
  9404  	return c
  9405  }
  9406  
  9407  // Fields allows partial responses to be retrieved. See
  9408  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9409  // details.
  9410  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsSetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsSetIamPolicyCall {
  9411  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  9412  	return c
  9413  }
  9414  
  9415  // Context sets the context to be used in this call's Do method.
  9416  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsSetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsSetIamPolicyCall {
  9417  	c.ctx_ = ctx
  9418  	return c
  9419  }
  9420  
  9421  // Header returns a http.Header that can be modified by the caller to add
  9422  // headers to the request.
  9423  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsSetIamPolicyCall) Header() http.Header {
  9424  	if c.header_ == nil {
  9425  		c.header_ = make(http.Header)
  9426  	}
  9427  	return c.header_
  9428  }
  9429  
  9430  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
  9431  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  9432  	var body io.Reader = nil
  9433  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest)
  9434  	if err != nil {
  9435  		return nil, err
  9436  	}
  9437  	c.urlParams_.Set("alt", alt)
  9438  	c.urlParams_.Set("prettyPrint", "false")
  9439  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:setIamPolicy")
  9440  	urls += "?" + c.urlParams_.Encode()
  9441  	req, err := http.NewRequest("POST", urls, body)
  9442  	if err != nil {
  9443  		return nil, err
  9444  	}
  9445  	req.Header = reqHeaders
  9446  	googleapi.Expand(req.URL, map[string]string{
  9447  		"resource": c.resource,
  9448  	})
  9449  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9450  }
  9451  
  9452  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.setIamPolicy" call.
  9453  // Any non-2xx status code is an error. Response headers are in either
  9454  // *Policy.ServerResponse.Header or (if a response was returned at all) in
  9455  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  9456  // whether the returned error was because http.StatusNotModified was returned.
  9457  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
  9458  	gensupport.SetOptions(c.urlParams_, opts...)
  9459  	res, err := c.doRequest("json")
  9460  	if res != nil && res.StatusCode == http.StatusNotModified {
  9461  		if res.Body != nil {
  9462  			res.Body.Close()
  9463  		}
  9464  		return nil, gensupport.WrapError(&googleapi.Error{
  9465  			Code:   res.StatusCode,
  9466  			Header: res.Header,
  9467  		})
  9468  	}
  9469  	if err != nil {
  9470  		return nil, err
  9471  	}
  9472  	defer googleapi.CloseBody(res)
  9473  	if err := googleapi.CheckResponse(res); err != nil {
  9474  		return nil, gensupport.WrapError(err)
  9475  	}
  9476  	ret := &Policy{
  9477  		ServerResponse: googleapi.ServerResponse{
  9478  			Header:         res.Header,
  9479  			HTTPStatusCode: res.StatusCode,
  9480  		},
  9481  	}
  9482  	target := &ret
  9483  	if err := gensupport.DecodeResponse(target, res); err != nil {
  9484  		return nil, err
  9485  	}
  9486  	return ret, nil
  9487  }
  9488  
  9489  type ProjectsLocationsBareMetalClustersBareMetalNodePoolsTestIamPermissionsCall struct {
  9490  	s                         *Service
  9491  	resource                  string
  9492  	testiampermissionsrequest *TestIamPermissionsRequest
  9493  	urlParams_                gensupport.URLParams
  9494  	ctx_                      context.Context
  9495  	header_                   http.Header
  9496  }
  9497  
  9498  // TestIamPermissions: Returns permissions that a caller has on the specified
  9499  // resource. If the resource does not exist, this will return an empty set of
  9500  // permissions, not a `NOT_FOUND` error. Note: This operation is designed to be
  9501  // used for building permission-aware UIs and command-line tools, not for
  9502  // authorization checking. This operation may "fail open" without warning.
  9503  //
  9504  //   - resource: REQUIRED: The resource for which the policy detail is being
  9505  //     requested. See Resource names
  9506  //     (https://cloud.google.com/apis/design/resource_names) for the appropriate
  9507  //     value for this field.
  9508  func (r *ProjectsLocationsBareMetalClustersBareMetalNodePoolsService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsTestIamPermissionsCall {
  9509  	c := &ProjectsLocationsBareMetalClustersBareMetalNodePoolsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9510  	c.resource = resource
  9511  	c.testiampermissionsrequest = testiampermissionsrequest
  9512  	return c
  9513  }
  9514  
  9515  // Fields allows partial responses to be retrieved. See
  9516  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9517  // details.
  9518  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsTestIamPermissionsCall {
  9519  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  9520  	return c
  9521  }
  9522  
  9523  // Context sets the context to be used in this call's Do method.
  9524  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsTestIamPermissionsCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsTestIamPermissionsCall {
  9525  	c.ctx_ = ctx
  9526  	return c
  9527  }
  9528  
  9529  // Header returns a http.Header that can be modified by the caller to add
  9530  // headers to the request.
  9531  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsTestIamPermissionsCall) Header() http.Header {
  9532  	if c.header_ == nil {
  9533  		c.header_ = make(http.Header)
  9534  	}
  9535  	return c.header_
  9536  }
  9537  
  9538  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
  9539  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  9540  	var body io.Reader = nil
  9541  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest)
  9542  	if err != nil {
  9543  		return nil, err
  9544  	}
  9545  	c.urlParams_.Set("alt", alt)
  9546  	c.urlParams_.Set("prettyPrint", "false")
  9547  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:testIamPermissions")
  9548  	urls += "?" + c.urlParams_.Encode()
  9549  	req, err := http.NewRequest("POST", urls, body)
  9550  	if err != nil {
  9551  		return nil, err
  9552  	}
  9553  	req.Header = reqHeaders
  9554  	googleapi.Expand(req.URL, map[string]string{
  9555  		"resource": c.resource,
  9556  	})
  9557  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9558  }
  9559  
  9560  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.testIamPermissions" call.
  9561  // Any non-2xx status code is an error. Response headers are in either
  9562  // *TestIamPermissionsResponse.ServerResponse.Header or (if a response was
  9563  // returned at all) in error.(*googleapi.Error).Header. Use
  9564  // googleapi.IsNotModified to check whether the returned error was because
  9565  // http.StatusNotModified was returned.
  9566  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) {
  9567  	gensupport.SetOptions(c.urlParams_, opts...)
  9568  	res, err := c.doRequest("json")
  9569  	if res != nil && res.StatusCode == http.StatusNotModified {
  9570  		if res.Body != nil {
  9571  			res.Body.Close()
  9572  		}
  9573  		return nil, gensupport.WrapError(&googleapi.Error{
  9574  			Code:   res.StatusCode,
  9575  			Header: res.Header,
  9576  		})
  9577  	}
  9578  	if err != nil {
  9579  		return nil, err
  9580  	}
  9581  	defer googleapi.CloseBody(res)
  9582  	if err := googleapi.CheckResponse(res); err != nil {
  9583  		return nil, gensupport.WrapError(err)
  9584  	}
  9585  	ret := &TestIamPermissionsResponse{
  9586  		ServerResponse: googleapi.ServerResponse{
  9587  			Header:         res.Header,
  9588  			HTTPStatusCode: res.StatusCode,
  9589  		},
  9590  	}
  9591  	target := &ret
  9592  	if err := gensupport.DecodeResponse(target, res); err != nil {
  9593  		return nil, err
  9594  	}
  9595  	return ret, nil
  9596  }
  9597  
  9598  type ProjectsLocationsBareMetalClustersBareMetalNodePoolsUnenrollCall struct {
  9599  	s          *Service
  9600  	name       string
  9601  	urlParams_ gensupport.URLParams
  9602  	ctx_       context.Context
  9603  	header_    http.Header
  9604  }
  9605  
  9606  // Unenroll: Unenrolls a bare metal node pool from Anthos On-Prem API.
  9607  //
  9608  //   - name: The name of the node pool to unenroll. Format:
  9609  //     projects/{project}/locations/{location}/bareMetalClusters/{cluster}/bareMet
  9610  //     alNodePools/{nodepool}.
  9611  func (r *ProjectsLocationsBareMetalClustersBareMetalNodePoolsService) Unenroll(name string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsUnenrollCall {
  9612  	c := &ProjectsLocationsBareMetalClustersBareMetalNodePoolsUnenrollCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9613  	c.name = name
  9614  	return c
  9615  }
  9616  
  9617  // AllowMissing sets the optional parameter "allowMissing": If set to true, and
  9618  // the bare metal node pool is not found, the request will succeed but no
  9619  // action will be taken on the server and return a completed LRO.
  9620  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsUnenrollCall) AllowMissing(allowMissing bool) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsUnenrollCall {
  9621  	c.urlParams_.Set("allowMissing", fmt.Sprint(allowMissing))
  9622  	return c
  9623  }
  9624  
  9625  // Etag sets the optional parameter "etag": The current etag of the bare metal
  9626  // node pool. If an etag is provided and does not match the current etag of
  9627  // node pool, deletion will be blocked and an ABORTED error will be returned.
  9628  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsUnenrollCall) Etag(etag string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsUnenrollCall {
  9629  	c.urlParams_.Set("etag", etag)
  9630  	return c
  9631  }
  9632  
  9633  // ValidateOnly sets the optional parameter "validateOnly": If set, only
  9634  // validate the request, but do not actually unenroll the node pool.
  9635  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsUnenrollCall) ValidateOnly(validateOnly bool) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsUnenrollCall {
  9636  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
  9637  	return c
  9638  }
  9639  
  9640  // Fields allows partial responses to be retrieved. See
  9641  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9642  // details.
  9643  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsUnenrollCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsUnenrollCall {
  9644  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  9645  	return c
  9646  }
  9647  
  9648  // Context sets the context to be used in this call's Do method.
  9649  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsUnenrollCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsUnenrollCall {
  9650  	c.ctx_ = ctx
  9651  	return c
  9652  }
  9653  
  9654  // Header returns a http.Header that can be modified by the caller to add
  9655  // headers to the request.
  9656  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsUnenrollCall) Header() http.Header {
  9657  	if c.header_ == nil {
  9658  		c.header_ = make(http.Header)
  9659  	}
  9660  	return c.header_
  9661  }
  9662  
  9663  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsUnenrollCall) doRequest(alt string) (*http.Response, error) {
  9664  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  9665  	var body io.Reader = nil
  9666  	c.urlParams_.Set("alt", alt)
  9667  	c.urlParams_.Set("prettyPrint", "false")
  9668  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:unenroll")
  9669  	urls += "?" + c.urlParams_.Encode()
  9670  	req, err := http.NewRequest("DELETE", urls, body)
  9671  	if err != nil {
  9672  		return nil, err
  9673  	}
  9674  	req.Header = reqHeaders
  9675  	googleapi.Expand(req.URL, map[string]string{
  9676  		"name": c.name,
  9677  	})
  9678  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9679  }
  9680  
  9681  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.unenroll" call.
  9682  // Any non-2xx status code is an error. Response headers are in either
  9683  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  9684  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  9685  // whether the returned error was because http.StatusNotModified was returned.
  9686  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsUnenrollCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  9687  	gensupport.SetOptions(c.urlParams_, opts...)
  9688  	res, err := c.doRequest("json")
  9689  	if res != nil && res.StatusCode == http.StatusNotModified {
  9690  		if res.Body != nil {
  9691  			res.Body.Close()
  9692  		}
  9693  		return nil, gensupport.WrapError(&googleapi.Error{
  9694  			Code:   res.StatusCode,
  9695  			Header: res.Header,
  9696  		})
  9697  	}
  9698  	if err != nil {
  9699  		return nil, err
  9700  	}
  9701  	defer googleapi.CloseBody(res)
  9702  	if err := googleapi.CheckResponse(res); err != nil {
  9703  		return nil, gensupport.WrapError(err)
  9704  	}
  9705  	ret := &Operation{
  9706  		ServerResponse: googleapi.ServerResponse{
  9707  			Header:         res.Header,
  9708  			HTTPStatusCode: res.StatusCode,
  9709  		},
  9710  	}
  9711  	target := &ret
  9712  	if err := gensupport.DecodeResponse(target, res); err != nil {
  9713  		return nil, err
  9714  	}
  9715  	return ret, nil
  9716  }
  9717  
  9718  type ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsGetCall struct {
  9719  	s            *Service
  9720  	name         string
  9721  	urlParams_   gensupport.URLParams
  9722  	ifNoneMatch_ string
  9723  	ctx_         context.Context
  9724  	header_      http.Header
  9725  }
  9726  
  9727  // Get: Gets the latest state of a long-running operation. Clients can use this
  9728  // method to poll the operation result at intervals as recommended by the API
  9729  // service.
  9730  //
  9731  // - name: The name of the operation resource.
  9732  func (r *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsService) Get(name string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsGetCall {
  9733  	c := &ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9734  	c.name = name
  9735  	return c
  9736  }
  9737  
  9738  // Fields allows partial responses to be retrieved. See
  9739  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9740  // details.
  9741  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsGetCall {
  9742  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  9743  	return c
  9744  }
  9745  
  9746  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  9747  // object's ETag matches the given value. This is useful for getting updates
  9748  // only after the object has changed since the last request.
  9749  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsGetCall {
  9750  	c.ifNoneMatch_ = entityTag
  9751  	return c
  9752  }
  9753  
  9754  // Context sets the context to be used in this call's Do method.
  9755  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsGetCall {
  9756  	c.ctx_ = ctx
  9757  	return c
  9758  }
  9759  
  9760  // Header returns a http.Header that can be modified by the caller to add
  9761  // headers to the request.
  9762  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsGetCall) Header() http.Header {
  9763  	if c.header_ == nil {
  9764  		c.header_ = make(http.Header)
  9765  	}
  9766  	return c.header_
  9767  }
  9768  
  9769  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
  9770  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  9771  	if c.ifNoneMatch_ != "" {
  9772  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  9773  	}
  9774  	var body io.Reader = nil
  9775  	c.urlParams_.Set("alt", alt)
  9776  	c.urlParams_.Set("prettyPrint", "false")
  9777  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  9778  	urls += "?" + c.urlParams_.Encode()
  9779  	req, err := http.NewRequest("GET", urls, body)
  9780  	if err != nil {
  9781  		return nil, err
  9782  	}
  9783  	req.Header = reqHeaders
  9784  	googleapi.Expand(req.URL, map[string]string{
  9785  		"name": c.name,
  9786  	})
  9787  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9788  }
  9789  
  9790  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.operations.get" call.
  9791  // Any non-2xx status code is an error. Response headers are in either
  9792  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  9793  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  9794  // whether the returned error was because http.StatusNotModified was returned.
  9795  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  9796  	gensupport.SetOptions(c.urlParams_, opts...)
  9797  	res, err := c.doRequest("json")
  9798  	if res != nil && res.StatusCode == http.StatusNotModified {
  9799  		if res.Body != nil {
  9800  			res.Body.Close()
  9801  		}
  9802  		return nil, gensupport.WrapError(&googleapi.Error{
  9803  			Code:   res.StatusCode,
  9804  			Header: res.Header,
  9805  		})
  9806  	}
  9807  	if err != nil {
  9808  		return nil, err
  9809  	}
  9810  	defer googleapi.CloseBody(res)
  9811  	if err := googleapi.CheckResponse(res); err != nil {
  9812  		return nil, gensupport.WrapError(err)
  9813  	}
  9814  	ret := &Operation{
  9815  		ServerResponse: googleapi.ServerResponse{
  9816  			Header:         res.Header,
  9817  			HTTPStatusCode: res.StatusCode,
  9818  		},
  9819  	}
  9820  	target := &ret
  9821  	if err := gensupport.DecodeResponse(target, res); err != nil {
  9822  		return nil, err
  9823  	}
  9824  	return ret, nil
  9825  }
  9826  
  9827  type ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall struct {
  9828  	s            *Service
  9829  	name         string
  9830  	urlParams_   gensupport.URLParams
  9831  	ifNoneMatch_ string
  9832  	ctx_         context.Context
  9833  	header_      http.Header
  9834  }
  9835  
  9836  // List: Lists operations that match the specified filter in the request. If
  9837  // the server doesn't support this method, it returns `UNIMPLEMENTED`.
  9838  //
  9839  // - name: The name of the operation's parent resource.
  9840  func (r *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsService) List(name string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall {
  9841  	c := &ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9842  	c.name = name
  9843  	return c
  9844  }
  9845  
  9846  // Filter sets the optional parameter "filter": The standard list filter.
  9847  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall) Filter(filter string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall {
  9848  	c.urlParams_.Set("filter", filter)
  9849  	return c
  9850  }
  9851  
  9852  // PageSize sets the optional parameter "pageSize": The standard list page
  9853  // size.
  9854  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall {
  9855  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  9856  	return c
  9857  }
  9858  
  9859  // PageToken sets the optional parameter "pageToken": The standard list page
  9860  // token.
  9861  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall) PageToken(pageToken string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall {
  9862  	c.urlParams_.Set("pageToken", pageToken)
  9863  	return c
  9864  }
  9865  
  9866  // Fields allows partial responses to be retrieved. See
  9867  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9868  // details.
  9869  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall {
  9870  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  9871  	return c
  9872  }
  9873  
  9874  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  9875  // object's ETag matches the given value. This is useful for getting updates
  9876  // only after the object has changed since the last request.
  9877  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall {
  9878  	c.ifNoneMatch_ = entityTag
  9879  	return c
  9880  }
  9881  
  9882  // Context sets the context to be used in this call's Do method.
  9883  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall {
  9884  	c.ctx_ = ctx
  9885  	return c
  9886  }
  9887  
  9888  // Header returns a http.Header that can be modified by the caller to add
  9889  // headers to the request.
  9890  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall) Header() http.Header {
  9891  	if c.header_ == nil {
  9892  		c.header_ = make(http.Header)
  9893  	}
  9894  	return c.header_
  9895  }
  9896  
  9897  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall) doRequest(alt string) (*http.Response, error) {
  9898  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  9899  	if c.ifNoneMatch_ != "" {
  9900  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  9901  	}
  9902  	var body io.Reader = nil
  9903  	c.urlParams_.Set("alt", alt)
  9904  	c.urlParams_.Set("prettyPrint", "false")
  9905  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/operations")
  9906  	urls += "?" + c.urlParams_.Encode()
  9907  	req, err := http.NewRequest("GET", urls, body)
  9908  	if err != nil {
  9909  		return nil, err
  9910  	}
  9911  	req.Header = reqHeaders
  9912  	googleapi.Expand(req.URL, map[string]string{
  9913  		"name": c.name,
  9914  	})
  9915  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9916  }
  9917  
  9918  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.operations.list" call.
  9919  // Any non-2xx status code is an error. Response headers are in either
  9920  // *ListOperationsResponse.ServerResponse.Header or (if a response was returned
  9921  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  9922  // check whether the returned error was because http.StatusNotModified was
  9923  // returned.
  9924  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
  9925  	gensupport.SetOptions(c.urlParams_, opts...)
  9926  	res, err := c.doRequest("json")
  9927  	if res != nil && res.StatusCode == http.StatusNotModified {
  9928  		if res.Body != nil {
  9929  			res.Body.Close()
  9930  		}
  9931  		return nil, gensupport.WrapError(&googleapi.Error{
  9932  			Code:   res.StatusCode,
  9933  			Header: res.Header,
  9934  		})
  9935  	}
  9936  	if err != nil {
  9937  		return nil, err
  9938  	}
  9939  	defer googleapi.CloseBody(res)
  9940  	if err := googleapi.CheckResponse(res); err != nil {
  9941  		return nil, gensupport.WrapError(err)
  9942  	}
  9943  	ret := &ListOperationsResponse{
  9944  		ServerResponse: googleapi.ServerResponse{
  9945  			Header:         res.Header,
  9946  			HTTPStatusCode: res.StatusCode,
  9947  		},
  9948  	}
  9949  	target := &ret
  9950  	if err := gensupport.DecodeResponse(target, res); err != nil {
  9951  		return nil, err
  9952  	}
  9953  	return ret, nil
  9954  }
  9955  
  9956  // Pages invokes f for each page of results.
  9957  // A non-nil error returned from f will halt the iteration.
  9958  // The provided context supersedes any context provided to the Context method.
  9959  func (c *ProjectsLocationsBareMetalClustersBareMetalNodePoolsOperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
  9960  	c.ctx_ = ctx
  9961  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  9962  	for {
  9963  		x, err := c.Do()
  9964  		if err != nil {
  9965  			return err
  9966  		}
  9967  		if err := f(x); err != nil {
  9968  			return err
  9969  		}
  9970  		if x.NextPageToken == "" {
  9971  			return nil
  9972  		}
  9973  		c.PageToken(x.NextPageToken)
  9974  	}
  9975  }
  9976  
  9977  type ProjectsLocationsBareMetalClustersOperationsGetCall struct {
  9978  	s            *Service
  9979  	name         string
  9980  	urlParams_   gensupport.URLParams
  9981  	ifNoneMatch_ string
  9982  	ctx_         context.Context
  9983  	header_      http.Header
  9984  }
  9985  
  9986  // Get: Gets the latest state of a long-running operation. Clients can use this
  9987  // method to poll the operation result at intervals as recommended by the API
  9988  // service.
  9989  //
  9990  // - name: The name of the operation resource.
  9991  func (r *ProjectsLocationsBareMetalClustersOperationsService) Get(name string) *ProjectsLocationsBareMetalClustersOperationsGetCall {
  9992  	c := &ProjectsLocationsBareMetalClustersOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9993  	c.name = name
  9994  	return c
  9995  }
  9996  
  9997  // Fields allows partial responses to be retrieved. See
  9998  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9999  // details.
 10000  func (c *ProjectsLocationsBareMetalClustersOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersOperationsGetCall {
 10001  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10002  	return c
 10003  }
 10004  
 10005  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 10006  // object's ETag matches the given value. This is useful for getting updates
 10007  // only after the object has changed since the last request.
 10008  func (c *ProjectsLocationsBareMetalClustersOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsBareMetalClustersOperationsGetCall {
 10009  	c.ifNoneMatch_ = entityTag
 10010  	return c
 10011  }
 10012  
 10013  // Context sets the context to be used in this call's Do method.
 10014  func (c *ProjectsLocationsBareMetalClustersOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersOperationsGetCall {
 10015  	c.ctx_ = ctx
 10016  	return c
 10017  }
 10018  
 10019  // Header returns a http.Header that can be modified by the caller to add
 10020  // headers to the request.
 10021  func (c *ProjectsLocationsBareMetalClustersOperationsGetCall) Header() http.Header {
 10022  	if c.header_ == nil {
 10023  		c.header_ = make(http.Header)
 10024  	}
 10025  	return c.header_
 10026  }
 10027  
 10028  func (c *ProjectsLocationsBareMetalClustersOperationsGetCall) doRequest(alt string) (*http.Response, error) {
 10029  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 10030  	if c.ifNoneMatch_ != "" {
 10031  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 10032  	}
 10033  	var body io.Reader = nil
 10034  	c.urlParams_.Set("alt", alt)
 10035  	c.urlParams_.Set("prettyPrint", "false")
 10036  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
 10037  	urls += "?" + c.urlParams_.Encode()
 10038  	req, err := http.NewRequest("GET", urls, body)
 10039  	if err != nil {
 10040  		return nil, err
 10041  	}
 10042  	req.Header = reqHeaders
 10043  	googleapi.Expand(req.URL, map[string]string{
 10044  		"name": c.name,
 10045  	})
 10046  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10047  }
 10048  
 10049  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.operations.get" call.
 10050  // Any non-2xx status code is an error. Response headers are in either
 10051  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 10052  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 10053  // whether the returned error was because http.StatusNotModified was returned.
 10054  func (c *ProjectsLocationsBareMetalClustersOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 10055  	gensupport.SetOptions(c.urlParams_, opts...)
 10056  	res, err := c.doRequest("json")
 10057  	if res != nil && res.StatusCode == http.StatusNotModified {
 10058  		if res.Body != nil {
 10059  			res.Body.Close()
 10060  		}
 10061  		return nil, gensupport.WrapError(&googleapi.Error{
 10062  			Code:   res.StatusCode,
 10063  			Header: res.Header,
 10064  		})
 10065  	}
 10066  	if err != nil {
 10067  		return nil, err
 10068  	}
 10069  	defer googleapi.CloseBody(res)
 10070  	if err := googleapi.CheckResponse(res); err != nil {
 10071  		return nil, gensupport.WrapError(err)
 10072  	}
 10073  	ret := &Operation{
 10074  		ServerResponse: googleapi.ServerResponse{
 10075  			Header:         res.Header,
 10076  			HTTPStatusCode: res.StatusCode,
 10077  		},
 10078  	}
 10079  	target := &ret
 10080  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10081  		return nil, err
 10082  	}
 10083  	return ret, nil
 10084  }
 10085  
 10086  type ProjectsLocationsBareMetalClustersOperationsListCall struct {
 10087  	s            *Service
 10088  	name         string
 10089  	urlParams_   gensupport.URLParams
 10090  	ifNoneMatch_ string
 10091  	ctx_         context.Context
 10092  	header_      http.Header
 10093  }
 10094  
 10095  // List: Lists operations that match the specified filter in the request. If
 10096  // the server doesn't support this method, it returns `UNIMPLEMENTED`.
 10097  //
 10098  // - name: The name of the operation's parent resource.
 10099  func (r *ProjectsLocationsBareMetalClustersOperationsService) List(name string) *ProjectsLocationsBareMetalClustersOperationsListCall {
 10100  	c := &ProjectsLocationsBareMetalClustersOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10101  	c.name = name
 10102  	return c
 10103  }
 10104  
 10105  // Filter sets the optional parameter "filter": The standard list filter.
 10106  func (c *ProjectsLocationsBareMetalClustersOperationsListCall) Filter(filter string) *ProjectsLocationsBareMetalClustersOperationsListCall {
 10107  	c.urlParams_.Set("filter", filter)
 10108  	return c
 10109  }
 10110  
 10111  // PageSize sets the optional parameter "pageSize": The standard list page
 10112  // size.
 10113  func (c *ProjectsLocationsBareMetalClustersOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsBareMetalClustersOperationsListCall {
 10114  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
 10115  	return c
 10116  }
 10117  
 10118  // PageToken sets the optional parameter "pageToken": The standard list page
 10119  // token.
 10120  func (c *ProjectsLocationsBareMetalClustersOperationsListCall) PageToken(pageToken string) *ProjectsLocationsBareMetalClustersOperationsListCall {
 10121  	c.urlParams_.Set("pageToken", pageToken)
 10122  	return c
 10123  }
 10124  
 10125  // Fields allows partial responses to be retrieved. See
 10126  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10127  // details.
 10128  func (c *ProjectsLocationsBareMetalClustersOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsBareMetalClustersOperationsListCall {
 10129  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10130  	return c
 10131  }
 10132  
 10133  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 10134  // object's ETag matches the given value. This is useful for getting updates
 10135  // only after the object has changed since the last request.
 10136  func (c *ProjectsLocationsBareMetalClustersOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsBareMetalClustersOperationsListCall {
 10137  	c.ifNoneMatch_ = entityTag
 10138  	return c
 10139  }
 10140  
 10141  // Context sets the context to be used in this call's Do method.
 10142  func (c *ProjectsLocationsBareMetalClustersOperationsListCall) Context(ctx context.Context) *ProjectsLocationsBareMetalClustersOperationsListCall {
 10143  	c.ctx_ = ctx
 10144  	return c
 10145  }
 10146  
 10147  // Header returns a http.Header that can be modified by the caller to add
 10148  // headers to the request.
 10149  func (c *ProjectsLocationsBareMetalClustersOperationsListCall) Header() http.Header {
 10150  	if c.header_ == nil {
 10151  		c.header_ = make(http.Header)
 10152  	}
 10153  	return c.header_
 10154  }
 10155  
 10156  func (c *ProjectsLocationsBareMetalClustersOperationsListCall) doRequest(alt string) (*http.Response, error) {
 10157  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 10158  	if c.ifNoneMatch_ != "" {
 10159  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 10160  	}
 10161  	var body io.Reader = nil
 10162  	c.urlParams_.Set("alt", alt)
 10163  	c.urlParams_.Set("prettyPrint", "false")
 10164  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/operations")
 10165  	urls += "?" + c.urlParams_.Encode()
 10166  	req, err := http.NewRequest("GET", urls, body)
 10167  	if err != nil {
 10168  		return nil, err
 10169  	}
 10170  	req.Header = reqHeaders
 10171  	googleapi.Expand(req.URL, map[string]string{
 10172  		"name": c.name,
 10173  	})
 10174  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10175  }
 10176  
 10177  // Do executes the "gkeonprem.projects.locations.bareMetalClusters.operations.list" call.
 10178  // Any non-2xx status code is an error. Response headers are in either
 10179  // *ListOperationsResponse.ServerResponse.Header or (if a response was returned
 10180  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
 10181  // check whether the returned error was because http.StatusNotModified was
 10182  // returned.
 10183  func (c *ProjectsLocationsBareMetalClustersOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
 10184  	gensupport.SetOptions(c.urlParams_, opts...)
 10185  	res, err := c.doRequest("json")
 10186  	if res != nil && res.StatusCode == http.StatusNotModified {
 10187  		if res.Body != nil {
 10188  			res.Body.Close()
 10189  		}
 10190  		return nil, gensupport.WrapError(&googleapi.Error{
 10191  			Code:   res.StatusCode,
 10192  			Header: res.Header,
 10193  		})
 10194  	}
 10195  	if err != nil {
 10196  		return nil, err
 10197  	}
 10198  	defer googleapi.CloseBody(res)
 10199  	if err := googleapi.CheckResponse(res); err != nil {
 10200  		return nil, gensupport.WrapError(err)
 10201  	}
 10202  	ret := &ListOperationsResponse{
 10203  		ServerResponse: googleapi.ServerResponse{
 10204  			Header:         res.Header,
 10205  			HTTPStatusCode: res.StatusCode,
 10206  		},
 10207  	}
 10208  	target := &ret
 10209  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10210  		return nil, err
 10211  	}
 10212  	return ret, nil
 10213  }
 10214  
 10215  // Pages invokes f for each page of results.
 10216  // A non-nil error returned from f will halt the iteration.
 10217  // The provided context supersedes any context provided to the Context method.
 10218  func (c *ProjectsLocationsBareMetalClustersOperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
 10219  	c.ctx_ = ctx
 10220  	defer c.PageToken(c.urlParams_.Get("pageToken"))
 10221  	for {
 10222  		x, err := c.Do()
 10223  		if err != nil {
 10224  			return err
 10225  		}
 10226  		if err := f(x); err != nil {
 10227  			return err
 10228  		}
 10229  		if x.NextPageToken == "" {
 10230  			return nil
 10231  		}
 10232  		c.PageToken(x.NextPageToken)
 10233  	}
 10234  }
 10235  
 10236  type ProjectsLocationsOperationsCancelCall struct {
 10237  	s                      *Service
 10238  	name                   string
 10239  	canceloperationrequest *CancelOperationRequest
 10240  	urlParams_             gensupport.URLParams
 10241  	ctx_                   context.Context
 10242  	header_                http.Header
 10243  }
 10244  
 10245  // Cancel: Starts asynchronous cancellation on a long-running operation. The
 10246  // server makes a best effort to cancel the operation, but success is not
 10247  // guaranteed. If the server doesn't support this method, it returns
 10248  // `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or
 10249  // other methods to check whether the cancellation succeeded or whether the
 10250  // operation completed despite cancellation. On successful cancellation, the
 10251  // operation is not deleted; instead, it becomes an operation with an
 10252  // Operation.error value with a google.rpc.Status.code of 1, corresponding to
 10253  // `Code.CANCELLED`.
 10254  //
 10255  // - name: The name of the operation resource to be cancelled.
 10256  func (r *ProjectsLocationsOperationsService) Cancel(name string, canceloperationrequest *CancelOperationRequest) *ProjectsLocationsOperationsCancelCall {
 10257  	c := &ProjectsLocationsOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10258  	c.name = name
 10259  	c.canceloperationrequest = canceloperationrequest
 10260  	return c
 10261  }
 10262  
 10263  // Fields allows partial responses to be retrieved. See
 10264  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10265  // details.
 10266  func (c *ProjectsLocationsOperationsCancelCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsCancelCall {
 10267  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10268  	return c
 10269  }
 10270  
 10271  // Context sets the context to be used in this call's Do method.
 10272  func (c *ProjectsLocationsOperationsCancelCall) Context(ctx context.Context) *ProjectsLocationsOperationsCancelCall {
 10273  	c.ctx_ = ctx
 10274  	return c
 10275  }
 10276  
 10277  // Header returns a http.Header that can be modified by the caller to add
 10278  // headers to the request.
 10279  func (c *ProjectsLocationsOperationsCancelCall) Header() http.Header {
 10280  	if c.header_ == nil {
 10281  		c.header_ = make(http.Header)
 10282  	}
 10283  	return c.header_
 10284  }
 10285  
 10286  func (c *ProjectsLocationsOperationsCancelCall) doRequest(alt string) (*http.Response, error) {
 10287  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 10288  	var body io.Reader = nil
 10289  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.canceloperationrequest)
 10290  	if err != nil {
 10291  		return nil, err
 10292  	}
 10293  	c.urlParams_.Set("alt", alt)
 10294  	c.urlParams_.Set("prettyPrint", "false")
 10295  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:cancel")
 10296  	urls += "?" + c.urlParams_.Encode()
 10297  	req, err := http.NewRequest("POST", urls, body)
 10298  	if err != nil {
 10299  		return nil, err
 10300  	}
 10301  	req.Header = reqHeaders
 10302  	googleapi.Expand(req.URL, map[string]string{
 10303  		"name": c.name,
 10304  	})
 10305  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10306  }
 10307  
 10308  // Do executes the "gkeonprem.projects.locations.operations.cancel" call.
 10309  // Any non-2xx status code is an error. Response headers are in either
 10310  // *Empty.ServerResponse.Header or (if a response was returned at all) in
 10311  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 10312  // whether the returned error was because http.StatusNotModified was returned.
 10313  func (c *ProjectsLocationsOperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
 10314  	gensupport.SetOptions(c.urlParams_, opts...)
 10315  	res, err := c.doRequest("json")
 10316  	if res != nil && res.StatusCode == http.StatusNotModified {
 10317  		if res.Body != nil {
 10318  			res.Body.Close()
 10319  		}
 10320  		return nil, gensupport.WrapError(&googleapi.Error{
 10321  			Code:   res.StatusCode,
 10322  			Header: res.Header,
 10323  		})
 10324  	}
 10325  	if err != nil {
 10326  		return nil, err
 10327  	}
 10328  	defer googleapi.CloseBody(res)
 10329  	if err := googleapi.CheckResponse(res); err != nil {
 10330  		return nil, gensupport.WrapError(err)
 10331  	}
 10332  	ret := &Empty{
 10333  		ServerResponse: googleapi.ServerResponse{
 10334  			Header:         res.Header,
 10335  			HTTPStatusCode: res.StatusCode,
 10336  		},
 10337  	}
 10338  	target := &ret
 10339  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10340  		return nil, err
 10341  	}
 10342  	return ret, nil
 10343  }
 10344  
 10345  type ProjectsLocationsOperationsDeleteCall struct {
 10346  	s          *Service
 10347  	name       string
 10348  	urlParams_ gensupport.URLParams
 10349  	ctx_       context.Context
 10350  	header_    http.Header
 10351  }
 10352  
 10353  // Delete: Deletes a long-running operation. This method indicates that the
 10354  // client is no longer interested in the operation result. It does not cancel
 10355  // the operation. If the server doesn't support this method, it returns
 10356  // `google.rpc.Code.UNIMPLEMENTED`.
 10357  //
 10358  // - name: The name of the operation resource to be deleted.
 10359  func (r *ProjectsLocationsOperationsService) Delete(name string) *ProjectsLocationsOperationsDeleteCall {
 10360  	c := &ProjectsLocationsOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10361  	c.name = name
 10362  	return c
 10363  }
 10364  
 10365  // Fields allows partial responses to be retrieved. See
 10366  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10367  // details.
 10368  func (c *ProjectsLocationsOperationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsDeleteCall {
 10369  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10370  	return c
 10371  }
 10372  
 10373  // Context sets the context to be used in this call's Do method.
 10374  func (c *ProjectsLocationsOperationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsOperationsDeleteCall {
 10375  	c.ctx_ = ctx
 10376  	return c
 10377  }
 10378  
 10379  // Header returns a http.Header that can be modified by the caller to add
 10380  // headers to the request.
 10381  func (c *ProjectsLocationsOperationsDeleteCall) Header() http.Header {
 10382  	if c.header_ == nil {
 10383  		c.header_ = make(http.Header)
 10384  	}
 10385  	return c.header_
 10386  }
 10387  
 10388  func (c *ProjectsLocationsOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
 10389  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 10390  	var body io.Reader = nil
 10391  	c.urlParams_.Set("alt", alt)
 10392  	c.urlParams_.Set("prettyPrint", "false")
 10393  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
 10394  	urls += "?" + c.urlParams_.Encode()
 10395  	req, err := http.NewRequest("DELETE", urls, body)
 10396  	if err != nil {
 10397  		return nil, err
 10398  	}
 10399  	req.Header = reqHeaders
 10400  	googleapi.Expand(req.URL, map[string]string{
 10401  		"name": c.name,
 10402  	})
 10403  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10404  }
 10405  
 10406  // Do executes the "gkeonprem.projects.locations.operations.delete" call.
 10407  // Any non-2xx status code is an error. Response headers are in either
 10408  // *Empty.ServerResponse.Header or (if a response was returned at all) in
 10409  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 10410  // whether the returned error was because http.StatusNotModified was returned.
 10411  func (c *ProjectsLocationsOperationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
 10412  	gensupport.SetOptions(c.urlParams_, opts...)
 10413  	res, err := c.doRequest("json")
 10414  	if res != nil && res.StatusCode == http.StatusNotModified {
 10415  		if res.Body != nil {
 10416  			res.Body.Close()
 10417  		}
 10418  		return nil, gensupport.WrapError(&googleapi.Error{
 10419  			Code:   res.StatusCode,
 10420  			Header: res.Header,
 10421  		})
 10422  	}
 10423  	if err != nil {
 10424  		return nil, err
 10425  	}
 10426  	defer googleapi.CloseBody(res)
 10427  	if err := googleapi.CheckResponse(res); err != nil {
 10428  		return nil, gensupport.WrapError(err)
 10429  	}
 10430  	ret := &Empty{
 10431  		ServerResponse: googleapi.ServerResponse{
 10432  			Header:         res.Header,
 10433  			HTTPStatusCode: res.StatusCode,
 10434  		},
 10435  	}
 10436  	target := &ret
 10437  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10438  		return nil, err
 10439  	}
 10440  	return ret, nil
 10441  }
 10442  
 10443  type ProjectsLocationsOperationsGetCall struct {
 10444  	s            *Service
 10445  	name         string
 10446  	urlParams_   gensupport.URLParams
 10447  	ifNoneMatch_ string
 10448  	ctx_         context.Context
 10449  	header_      http.Header
 10450  }
 10451  
 10452  // Get: Gets the latest state of a long-running operation. Clients can use this
 10453  // method to poll the operation result at intervals as recommended by the API
 10454  // service.
 10455  //
 10456  // - name: The name of the operation resource.
 10457  func (r *ProjectsLocationsOperationsService) Get(name string) *ProjectsLocationsOperationsGetCall {
 10458  	c := &ProjectsLocationsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10459  	c.name = name
 10460  	return c
 10461  }
 10462  
 10463  // Fields allows partial responses to be retrieved. See
 10464  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10465  // details.
 10466  func (c *ProjectsLocationsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsGetCall {
 10467  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10468  	return c
 10469  }
 10470  
 10471  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 10472  // object's ETag matches the given value. This is useful for getting updates
 10473  // only after the object has changed since the last request.
 10474  func (c *ProjectsLocationsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsGetCall {
 10475  	c.ifNoneMatch_ = entityTag
 10476  	return c
 10477  }
 10478  
 10479  // Context sets the context to be used in this call's Do method.
 10480  func (c *ProjectsLocationsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsOperationsGetCall {
 10481  	c.ctx_ = ctx
 10482  	return c
 10483  }
 10484  
 10485  // Header returns a http.Header that can be modified by the caller to add
 10486  // headers to the request.
 10487  func (c *ProjectsLocationsOperationsGetCall) Header() http.Header {
 10488  	if c.header_ == nil {
 10489  		c.header_ = make(http.Header)
 10490  	}
 10491  	return c.header_
 10492  }
 10493  
 10494  func (c *ProjectsLocationsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
 10495  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 10496  	if c.ifNoneMatch_ != "" {
 10497  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 10498  	}
 10499  	var body io.Reader = nil
 10500  	c.urlParams_.Set("alt", alt)
 10501  	c.urlParams_.Set("prettyPrint", "false")
 10502  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
 10503  	urls += "?" + c.urlParams_.Encode()
 10504  	req, err := http.NewRequest("GET", urls, body)
 10505  	if err != nil {
 10506  		return nil, err
 10507  	}
 10508  	req.Header = reqHeaders
 10509  	googleapi.Expand(req.URL, map[string]string{
 10510  		"name": c.name,
 10511  	})
 10512  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10513  }
 10514  
 10515  // Do executes the "gkeonprem.projects.locations.operations.get" call.
 10516  // Any non-2xx status code is an error. Response headers are in either
 10517  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 10518  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 10519  // whether the returned error was because http.StatusNotModified was returned.
 10520  func (c *ProjectsLocationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 10521  	gensupport.SetOptions(c.urlParams_, opts...)
 10522  	res, err := c.doRequest("json")
 10523  	if res != nil && res.StatusCode == http.StatusNotModified {
 10524  		if res.Body != nil {
 10525  			res.Body.Close()
 10526  		}
 10527  		return nil, gensupport.WrapError(&googleapi.Error{
 10528  			Code:   res.StatusCode,
 10529  			Header: res.Header,
 10530  		})
 10531  	}
 10532  	if err != nil {
 10533  		return nil, err
 10534  	}
 10535  	defer googleapi.CloseBody(res)
 10536  	if err := googleapi.CheckResponse(res); err != nil {
 10537  		return nil, gensupport.WrapError(err)
 10538  	}
 10539  	ret := &Operation{
 10540  		ServerResponse: googleapi.ServerResponse{
 10541  			Header:         res.Header,
 10542  			HTTPStatusCode: res.StatusCode,
 10543  		},
 10544  	}
 10545  	target := &ret
 10546  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10547  		return nil, err
 10548  	}
 10549  	return ret, nil
 10550  }
 10551  
 10552  type ProjectsLocationsOperationsListCall struct {
 10553  	s            *Service
 10554  	name         string
 10555  	urlParams_   gensupport.URLParams
 10556  	ifNoneMatch_ string
 10557  	ctx_         context.Context
 10558  	header_      http.Header
 10559  }
 10560  
 10561  // List: Lists operations that match the specified filter in the request. If
 10562  // the server doesn't support this method, it returns `UNIMPLEMENTED`.
 10563  //
 10564  // - name: The name of the operation's parent resource.
 10565  func (r *ProjectsLocationsOperationsService) List(name string) *ProjectsLocationsOperationsListCall {
 10566  	c := &ProjectsLocationsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10567  	c.name = name
 10568  	return c
 10569  }
 10570  
 10571  // Filter sets the optional parameter "filter": The standard list filter.
 10572  func (c *ProjectsLocationsOperationsListCall) Filter(filter string) *ProjectsLocationsOperationsListCall {
 10573  	c.urlParams_.Set("filter", filter)
 10574  	return c
 10575  }
 10576  
 10577  // PageSize sets the optional parameter "pageSize": The standard list page
 10578  // size.
 10579  func (c *ProjectsLocationsOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsOperationsListCall {
 10580  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
 10581  	return c
 10582  }
 10583  
 10584  // PageToken sets the optional parameter "pageToken": The standard list page
 10585  // token.
 10586  func (c *ProjectsLocationsOperationsListCall) PageToken(pageToken string) *ProjectsLocationsOperationsListCall {
 10587  	c.urlParams_.Set("pageToken", pageToken)
 10588  	return c
 10589  }
 10590  
 10591  // Fields allows partial responses to be retrieved. See
 10592  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10593  // details.
 10594  func (c *ProjectsLocationsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsListCall {
 10595  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10596  	return c
 10597  }
 10598  
 10599  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 10600  // object's ETag matches the given value. This is useful for getting updates
 10601  // only after the object has changed since the last request.
 10602  func (c *ProjectsLocationsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsListCall {
 10603  	c.ifNoneMatch_ = entityTag
 10604  	return c
 10605  }
 10606  
 10607  // Context sets the context to be used in this call's Do method.
 10608  func (c *ProjectsLocationsOperationsListCall) Context(ctx context.Context) *ProjectsLocationsOperationsListCall {
 10609  	c.ctx_ = ctx
 10610  	return c
 10611  }
 10612  
 10613  // Header returns a http.Header that can be modified by the caller to add
 10614  // headers to the request.
 10615  func (c *ProjectsLocationsOperationsListCall) Header() http.Header {
 10616  	if c.header_ == nil {
 10617  		c.header_ = make(http.Header)
 10618  	}
 10619  	return c.header_
 10620  }
 10621  
 10622  func (c *ProjectsLocationsOperationsListCall) doRequest(alt string) (*http.Response, error) {
 10623  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 10624  	if c.ifNoneMatch_ != "" {
 10625  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 10626  	}
 10627  	var body io.Reader = nil
 10628  	c.urlParams_.Set("alt", alt)
 10629  	c.urlParams_.Set("prettyPrint", "false")
 10630  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/operations")
 10631  	urls += "?" + c.urlParams_.Encode()
 10632  	req, err := http.NewRequest("GET", urls, body)
 10633  	if err != nil {
 10634  		return nil, err
 10635  	}
 10636  	req.Header = reqHeaders
 10637  	googleapi.Expand(req.URL, map[string]string{
 10638  		"name": c.name,
 10639  	})
 10640  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10641  }
 10642  
 10643  // Do executes the "gkeonprem.projects.locations.operations.list" call.
 10644  // Any non-2xx status code is an error. Response headers are in either
 10645  // *ListOperationsResponse.ServerResponse.Header or (if a response was returned
 10646  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
 10647  // check whether the returned error was because http.StatusNotModified was
 10648  // returned.
 10649  func (c *ProjectsLocationsOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
 10650  	gensupport.SetOptions(c.urlParams_, opts...)
 10651  	res, err := c.doRequest("json")
 10652  	if res != nil && res.StatusCode == http.StatusNotModified {
 10653  		if res.Body != nil {
 10654  			res.Body.Close()
 10655  		}
 10656  		return nil, gensupport.WrapError(&googleapi.Error{
 10657  			Code:   res.StatusCode,
 10658  			Header: res.Header,
 10659  		})
 10660  	}
 10661  	if err != nil {
 10662  		return nil, err
 10663  	}
 10664  	defer googleapi.CloseBody(res)
 10665  	if err := googleapi.CheckResponse(res); err != nil {
 10666  		return nil, gensupport.WrapError(err)
 10667  	}
 10668  	ret := &ListOperationsResponse{
 10669  		ServerResponse: googleapi.ServerResponse{
 10670  			Header:         res.Header,
 10671  			HTTPStatusCode: res.StatusCode,
 10672  		},
 10673  	}
 10674  	target := &ret
 10675  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10676  		return nil, err
 10677  	}
 10678  	return ret, nil
 10679  }
 10680  
 10681  // Pages invokes f for each page of results.
 10682  // A non-nil error returned from f will halt the iteration.
 10683  // The provided context supersedes any context provided to the Context method.
 10684  func (c *ProjectsLocationsOperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
 10685  	c.ctx_ = ctx
 10686  	defer c.PageToken(c.urlParams_.Get("pageToken"))
 10687  	for {
 10688  		x, err := c.Do()
 10689  		if err != nil {
 10690  			return err
 10691  		}
 10692  		if err := f(x); err != nil {
 10693  			return err
 10694  		}
 10695  		if x.NextPageToken == "" {
 10696  			return nil
 10697  		}
 10698  		c.PageToken(x.NextPageToken)
 10699  	}
 10700  }
 10701  
 10702  type ProjectsLocationsVmwareAdminClustersEnrollCall struct {
 10703  	s                               *Service
 10704  	parent                          string
 10705  	enrollvmwareadminclusterrequest *EnrollVmwareAdminClusterRequest
 10706  	urlParams_                      gensupport.URLParams
 10707  	ctx_                            context.Context
 10708  	header_                         http.Header
 10709  }
 10710  
 10711  // Enroll: Enrolls an existing VMware admin cluster to the Anthos On-Prem API
 10712  // within a given project and location. Through enrollment, an existing admin
 10713  // cluster will become Anthos On-Prem API managed. The corresponding GCP
 10714  // resources will be created and all future modifications to the cluster will
 10715  // be expected to be performed through the API.
 10716  //
 10717  //   - parent: The parent of the project and location where the cluster is
 10718  //     enrolled in. Format: "projects/{project}/locations/{location}".
 10719  func (r *ProjectsLocationsVmwareAdminClustersService) Enroll(parent string, enrollvmwareadminclusterrequest *EnrollVmwareAdminClusterRequest) *ProjectsLocationsVmwareAdminClustersEnrollCall {
 10720  	c := &ProjectsLocationsVmwareAdminClustersEnrollCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10721  	c.parent = parent
 10722  	c.enrollvmwareadminclusterrequest = enrollvmwareadminclusterrequest
 10723  	return c
 10724  }
 10725  
 10726  // Fields allows partial responses to be retrieved. See
 10727  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10728  // details.
 10729  func (c *ProjectsLocationsVmwareAdminClustersEnrollCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareAdminClustersEnrollCall {
 10730  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10731  	return c
 10732  }
 10733  
 10734  // Context sets the context to be used in this call's Do method.
 10735  func (c *ProjectsLocationsVmwareAdminClustersEnrollCall) Context(ctx context.Context) *ProjectsLocationsVmwareAdminClustersEnrollCall {
 10736  	c.ctx_ = ctx
 10737  	return c
 10738  }
 10739  
 10740  // Header returns a http.Header that can be modified by the caller to add
 10741  // headers to the request.
 10742  func (c *ProjectsLocationsVmwareAdminClustersEnrollCall) Header() http.Header {
 10743  	if c.header_ == nil {
 10744  		c.header_ = make(http.Header)
 10745  	}
 10746  	return c.header_
 10747  }
 10748  
 10749  func (c *ProjectsLocationsVmwareAdminClustersEnrollCall) doRequest(alt string) (*http.Response, error) {
 10750  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 10751  	var body io.Reader = nil
 10752  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.enrollvmwareadminclusterrequest)
 10753  	if err != nil {
 10754  		return nil, err
 10755  	}
 10756  	c.urlParams_.Set("alt", alt)
 10757  	c.urlParams_.Set("prettyPrint", "false")
 10758  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/vmwareAdminClusters:enroll")
 10759  	urls += "?" + c.urlParams_.Encode()
 10760  	req, err := http.NewRequest("POST", urls, body)
 10761  	if err != nil {
 10762  		return nil, err
 10763  	}
 10764  	req.Header = reqHeaders
 10765  	googleapi.Expand(req.URL, map[string]string{
 10766  		"parent": c.parent,
 10767  	})
 10768  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10769  }
 10770  
 10771  // Do executes the "gkeonprem.projects.locations.vmwareAdminClusters.enroll" call.
 10772  // Any non-2xx status code is an error. Response headers are in either
 10773  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 10774  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 10775  // whether the returned error was because http.StatusNotModified was returned.
 10776  func (c *ProjectsLocationsVmwareAdminClustersEnrollCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 10777  	gensupport.SetOptions(c.urlParams_, opts...)
 10778  	res, err := c.doRequest("json")
 10779  	if res != nil && res.StatusCode == http.StatusNotModified {
 10780  		if res.Body != nil {
 10781  			res.Body.Close()
 10782  		}
 10783  		return nil, gensupport.WrapError(&googleapi.Error{
 10784  			Code:   res.StatusCode,
 10785  			Header: res.Header,
 10786  		})
 10787  	}
 10788  	if err != nil {
 10789  		return nil, err
 10790  	}
 10791  	defer googleapi.CloseBody(res)
 10792  	if err := googleapi.CheckResponse(res); err != nil {
 10793  		return nil, gensupport.WrapError(err)
 10794  	}
 10795  	ret := &Operation{
 10796  		ServerResponse: googleapi.ServerResponse{
 10797  			Header:         res.Header,
 10798  			HTTPStatusCode: res.StatusCode,
 10799  		},
 10800  	}
 10801  	target := &ret
 10802  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10803  		return nil, err
 10804  	}
 10805  	return ret, nil
 10806  }
 10807  
 10808  type ProjectsLocationsVmwareAdminClustersGetCall struct {
 10809  	s            *Service
 10810  	name         string
 10811  	urlParams_   gensupport.URLParams
 10812  	ifNoneMatch_ string
 10813  	ctx_         context.Context
 10814  	header_      http.Header
 10815  }
 10816  
 10817  // Get: Gets details of a single VMware admin cluster.
 10818  //
 10819  //   - name: Name of the VMware admin cluster to be returned. Format:
 10820  //     "projects/{project}/locations/{location}/vmwareAdminClusters/{vmware_admin_
 10821  //     cluster}".
 10822  func (r *ProjectsLocationsVmwareAdminClustersService) Get(name string) *ProjectsLocationsVmwareAdminClustersGetCall {
 10823  	c := &ProjectsLocationsVmwareAdminClustersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10824  	c.name = name
 10825  	return c
 10826  }
 10827  
 10828  // View sets the optional parameter "view": View for VMware admin cluster. When
 10829  // `BASIC` is specified, only the cluster resource name and membership are
 10830  // returned. The default/unset value `CLUSTER_VIEW_UNSPECIFIED` is the same as
 10831  // `FULL', which returns the complete cluster configuration details.
 10832  //
 10833  // Possible values:
 10834  //
 10835  //	"CLUSTER_VIEW_UNSPECIFIED" - If the value is not set, the default `FULL`
 10836  //
 10837  // view is used.
 10838  //
 10839  //	"BASIC" - Includes basic information of a cluster resource including
 10840  //
 10841  // cluster resource name and membership.
 10842  //
 10843  //	"FULL" - Includes the complete configuration for VMware admin cluster
 10844  //
 10845  // resource. This is the default value for GetVmwareAdminClusterRequest method.
 10846  func (c *ProjectsLocationsVmwareAdminClustersGetCall) View(view string) *ProjectsLocationsVmwareAdminClustersGetCall {
 10847  	c.urlParams_.Set("view", view)
 10848  	return c
 10849  }
 10850  
 10851  // Fields allows partial responses to be retrieved. See
 10852  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10853  // details.
 10854  func (c *ProjectsLocationsVmwareAdminClustersGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareAdminClustersGetCall {
 10855  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10856  	return c
 10857  }
 10858  
 10859  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 10860  // object's ETag matches the given value. This is useful for getting updates
 10861  // only after the object has changed since the last request.
 10862  func (c *ProjectsLocationsVmwareAdminClustersGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsVmwareAdminClustersGetCall {
 10863  	c.ifNoneMatch_ = entityTag
 10864  	return c
 10865  }
 10866  
 10867  // Context sets the context to be used in this call's Do method.
 10868  func (c *ProjectsLocationsVmwareAdminClustersGetCall) Context(ctx context.Context) *ProjectsLocationsVmwareAdminClustersGetCall {
 10869  	c.ctx_ = ctx
 10870  	return c
 10871  }
 10872  
 10873  // Header returns a http.Header that can be modified by the caller to add
 10874  // headers to the request.
 10875  func (c *ProjectsLocationsVmwareAdminClustersGetCall) Header() http.Header {
 10876  	if c.header_ == nil {
 10877  		c.header_ = make(http.Header)
 10878  	}
 10879  	return c.header_
 10880  }
 10881  
 10882  func (c *ProjectsLocationsVmwareAdminClustersGetCall) doRequest(alt string) (*http.Response, error) {
 10883  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 10884  	if c.ifNoneMatch_ != "" {
 10885  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 10886  	}
 10887  	var body io.Reader = nil
 10888  	c.urlParams_.Set("alt", alt)
 10889  	c.urlParams_.Set("prettyPrint", "false")
 10890  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
 10891  	urls += "?" + c.urlParams_.Encode()
 10892  	req, err := http.NewRequest("GET", urls, body)
 10893  	if err != nil {
 10894  		return nil, err
 10895  	}
 10896  	req.Header = reqHeaders
 10897  	googleapi.Expand(req.URL, map[string]string{
 10898  		"name": c.name,
 10899  	})
 10900  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10901  }
 10902  
 10903  // Do executes the "gkeonprem.projects.locations.vmwareAdminClusters.get" call.
 10904  // Any non-2xx status code is an error. Response headers are in either
 10905  // *VmwareAdminCluster.ServerResponse.Header or (if a response was returned at
 10906  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
 10907  // check whether the returned error was because http.StatusNotModified was
 10908  // returned.
 10909  func (c *ProjectsLocationsVmwareAdminClustersGetCall) Do(opts ...googleapi.CallOption) (*VmwareAdminCluster, error) {
 10910  	gensupport.SetOptions(c.urlParams_, opts...)
 10911  	res, err := c.doRequest("json")
 10912  	if res != nil && res.StatusCode == http.StatusNotModified {
 10913  		if res.Body != nil {
 10914  			res.Body.Close()
 10915  		}
 10916  		return nil, gensupport.WrapError(&googleapi.Error{
 10917  			Code:   res.StatusCode,
 10918  			Header: res.Header,
 10919  		})
 10920  	}
 10921  	if err != nil {
 10922  		return nil, err
 10923  	}
 10924  	defer googleapi.CloseBody(res)
 10925  	if err := googleapi.CheckResponse(res); err != nil {
 10926  		return nil, gensupport.WrapError(err)
 10927  	}
 10928  	ret := &VmwareAdminCluster{
 10929  		ServerResponse: googleapi.ServerResponse{
 10930  			Header:         res.Header,
 10931  			HTTPStatusCode: res.StatusCode,
 10932  		},
 10933  	}
 10934  	target := &ret
 10935  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10936  		return nil, err
 10937  	}
 10938  	return ret, nil
 10939  }
 10940  
 10941  type ProjectsLocationsVmwareAdminClustersGetIamPolicyCall struct {
 10942  	s            *Service
 10943  	resource     string
 10944  	urlParams_   gensupport.URLParams
 10945  	ifNoneMatch_ string
 10946  	ctx_         context.Context
 10947  	header_      http.Header
 10948  }
 10949  
 10950  // GetIamPolicy: Gets the access control policy for a resource. Returns an
 10951  // empty policy if the resource exists and does not have a policy set.
 10952  //
 10953  //   - resource: REQUIRED: The resource for which the policy is being requested.
 10954  //     See Resource names (https://cloud.google.com/apis/design/resource_names)
 10955  //     for the appropriate value for this field.
 10956  func (r *ProjectsLocationsVmwareAdminClustersService) GetIamPolicy(resource string) *ProjectsLocationsVmwareAdminClustersGetIamPolicyCall {
 10957  	c := &ProjectsLocationsVmwareAdminClustersGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10958  	c.resource = resource
 10959  	return c
 10960  }
 10961  
 10962  // OptionsRequestedPolicyVersion sets the optional parameter
 10963  // "options.requestedPolicyVersion": The maximum policy version that will be
 10964  // used to format the policy. Valid values are 0, 1, and 3. Requests specifying
 10965  // an invalid value will be rejected. Requests for policies with any
 10966  // conditional role bindings must specify version 3. Policies with no
 10967  // conditional role bindings may specify any valid value or leave the field
 10968  // unset. The policy in the response might use the policy version that you
 10969  // specified, or it might use a lower policy version. For example, if you
 10970  // specify version 3, but the policy has no conditional role bindings, the
 10971  // response uses version 1. To learn which resources support conditions in
 10972  // their IAM policies, see the IAM documentation
 10973  // (https://cloud.google.com/iam/help/conditions/resource-policies).
 10974  func (c *ProjectsLocationsVmwareAdminClustersGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsVmwareAdminClustersGetIamPolicyCall {
 10975  	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
 10976  	return c
 10977  }
 10978  
 10979  // Fields allows partial responses to be retrieved. See
 10980  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10981  // details.
 10982  func (c *ProjectsLocationsVmwareAdminClustersGetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareAdminClustersGetIamPolicyCall {
 10983  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10984  	return c
 10985  }
 10986  
 10987  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 10988  // object's ETag matches the given value. This is useful for getting updates
 10989  // only after the object has changed since the last request.
 10990  func (c *ProjectsLocationsVmwareAdminClustersGetIamPolicyCall) IfNoneMatch(entityTag string) *ProjectsLocationsVmwareAdminClustersGetIamPolicyCall {
 10991  	c.ifNoneMatch_ = entityTag
 10992  	return c
 10993  }
 10994  
 10995  // Context sets the context to be used in this call's Do method.
 10996  func (c *ProjectsLocationsVmwareAdminClustersGetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsVmwareAdminClustersGetIamPolicyCall {
 10997  	c.ctx_ = ctx
 10998  	return c
 10999  }
 11000  
 11001  // Header returns a http.Header that can be modified by the caller to add
 11002  // headers to the request.
 11003  func (c *ProjectsLocationsVmwareAdminClustersGetIamPolicyCall) Header() http.Header {
 11004  	if c.header_ == nil {
 11005  		c.header_ = make(http.Header)
 11006  	}
 11007  	return c.header_
 11008  }
 11009  
 11010  func (c *ProjectsLocationsVmwareAdminClustersGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
 11011  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 11012  	if c.ifNoneMatch_ != "" {
 11013  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 11014  	}
 11015  	var body io.Reader = nil
 11016  	c.urlParams_.Set("alt", alt)
 11017  	c.urlParams_.Set("prettyPrint", "false")
 11018  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:getIamPolicy")
 11019  	urls += "?" + c.urlParams_.Encode()
 11020  	req, err := http.NewRequest("GET", urls, body)
 11021  	if err != nil {
 11022  		return nil, err
 11023  	}
 11024  	req.Header = reqHeaders
 11025  	googleapi.Expand(req.URL, map[string]string{
 11026  		"resource": c.resource,
 11027  	})
 11028  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 11029  }
 11030  
 11031  // Do executes the "gkeonprem.projects.locations.vmwareAdminClusters.getIamPolicy" call.
 11032  // Any non-2xx status code is an error. Response headers are in either
 11033  // *Policy.ServerResponse.Header or (if a response was returned at all) in
 11034  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 11035  // whether the returned error was because http.StatusNotModified was returned.
 11036  func (c *ProjectsLocationsVmwareAdminClustersGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
 11037  	gensupport.SetOptions(c.urlParams_, opts...)
 11038  	res, err := c.doRequest("json")
 11039  	if res != nil && res.StatusCode == http.StatusNotModified {
 11040  		if res.Body != nil {
 11041  			res.Body.Close()
 11042  		}
 11043  		return nil, gensupport.WrapError(&googleapi.Error{
 11044  			Code:   res.StatusCode,
 11045  			Header: res.Header,
 11046  		})
 11047  	}
 11048  	if err != nil {
 11049  		return nil, err
 11050  	}
 11051  	defer googleapi.CloseBody(res)
 11052  	if err := googleapi.CheckResponse(res); err != nil {
 11053  		return nil, gensupport.WrapError(err)
 11054  	}
 11055  	ret := &Policy{
 11056  		ServerResponse: googleapi.ServerResponse{
 11057  			Header:         res.Header,
 11058  			HTTPStatusCode: res.StatusCode,
 11059  		},
 11060  	}
 11061  	target := &ret
 11062  	if err := gensupport.DecodeResponse(target, res); err != nil {
 11063  		return nil, err
 11064  	}
 11065  	return ret, nil
 11066  }
 11067  
 11068  type ProjectsLocationsVmwareAdminClustersListCall struct {
 11069  	s            *Service
 11070  	parent       string
 11071  	urlParams_   gensupport.URLParams
 11072  	ifNoneMatch_ string
 11073  	ctx_         context.Context
 11074  	header_      http.Header
 11075  }
 11076  
 11077  // List: Lists VMware admin clusters in a given project and location.
 11078  //
 11079  //   - parent: The parent of the project and location where the clusters are
 11080  //     listed in. Format: "projects/{project}/locations/{location}".
 11081  func (r *ProjectsLocationsVmwareAdminClustersService) List(parent string) *ProjectsLocationsVmwareAdminClustersListCall {
 11082  	c := &ProjectsLocationsVmwareAdminClustersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 11083  	c.parent = parent
 11084  	return c
 11085  }
 11086  
 11087  // PageSize sets the optional parameter "pageSize": Requested page size. Server
 11088  // may return fewer items than requested. If unspecified, at most 50 clusters
 11089  // will be returned. The maximum value is 1000; values above 1000 will be
 11090  // coerced to 1000.
 11091  func (c *ProjectsLocationsVmwareAdminClustersListCall) PageSize(pageSize int64) *ProjectsLocationsVmwareAdminClustersListCall {
 11092  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
 11093  	return c
 11094  }
 11095  
 11096  // PageToken sets the optional parameter "pageToken": A token identifying a
 11097  // page of results the server should return.
 11098  func (c *ProjectsLocationsVmwareAdminClustersListCall) PageToken(pageToken string) *ProjectsLocationsVmwareAdminClustersListCall {
 11099  	c.urlParams_.Set("pageToken", pageToken)
 11100  	return c
 11101  }
 11102  
 11103  // View sets the optional parameter "view": View for VMware admin clusters.
 11104  // When `BASIC` is specified, only the admin cluster resource name and
 11105  // membership are returned. The default/unset value `CLUSTER_VIEW_UNSPECIFIED`
 11106  // is the same as `FULL', which returns the complete admin cluster
 11107  // configuration details.
 11108  //
 11109  // Possible values:
 11110  //
 11111  //	"CLUSTER_VIEW_UNSPECIFIED" - If the value is not set, the default `FULL`
 11112  //
 11113  // view is used.
 11114  //
 11115  //	"BASIC" - Includes basic information of a admin cluster resource including
 11116  //
 11117  // admin cluster resource name and membership.
 11118  //
 11119  //	"FULL" - Includes the complete configuration for bare metal admin cluster
 11120  //
 11121  // resource. This is the default value for ListVmwareAdminClustersRequest
 11122  // method.
 11123  func (c *ProjectsLocationsVmwareAdminClustersListCall) View(view string) *ProjectsLocationsVmwareAdminClustersListCall {
 11124  	c.urlParams_.Set("view", view)
 11125  	return c
 11126  }
 11127  
 11128  // Fields allows partial responses to be retrieved. See
 11129  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 11130  // details.
 11131  func (c *ProjectsLocationsVmwareAdminClustersListCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareAdminClustersListCall {
 11132  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 11133  	return c
 11134  }
 11135  
 11136  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 11137  // object's ETag matches the given value. This is useful for getting updates
 11138  // only after the object has changed since the last request.
 11139  func (c *ProjectsLocationsVmwareAdminClustersListCall) IfNoneMatch(entityTag string) *ProjectsLocationsVmwareAdminClustersListCall {
 11140  	c.ifNoneMatch_ = entityTag
 11141  	return c
 11142  }
 11143  
 11144  // Context sets the context to be used in this call's Do method.
 11145  func (c *ProjectsLocationsVmwareAdminClustersListCall) Context(ctx context.Context) *ProjectsLocationsVmwareAdminClustersListCall {
 11146  	c.ctx_ = ctx
 11147  	return c
 11148  }
 11149  
 11150  // Header returns a http.Header that can be modified by the caller to add
 11151  // headers to the request.
 11152  func (c *ProjectsLocationsVmwareAdminClustersListCall) Header() http.Header {
 11153  	if c.header_ == nil {
 11154  		c.header_ = make(http.Header)
 11155  	}
 11156  	return c.header_
 11157  }
 11158  
 11159  func (c *ProjectsLocationsVmwareAdminClustersListCall) doRequest(alt string) (*http.Response, error) {
 11160  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 11161  	if c.ifNoneMatch_ != "" {
 11162  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 11163  	}
 11164  	var body io.Reader = nil
 11165  	c.urlParams_.Set("alt", alt)
 11166  	c.urlParams_.Set("prettyPrint", "false")
 11167  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/vmwareAdminClusters")
 11168  	urls += "?" + c.urlParams_.Encode()
 11169  	req, err := http.NewRequest("GET", urls, body)
 11170  	if err != nil {
 11171  		return nil, err
 11172  	}
 11173  	req.Header = reqHeaders
 11174  	googleapi.Expand(req.URL, map[string]string{
 11175  		"parent": c.parent,
 11176  	})
 11177  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 11178  }
 11179  
 11180  // Do executes the "gkeonprem.projects.locations.vmwareAdminClusters.list" call.
 11181  // Any non-2xx status code is an error. Response headers are in either
 11182  // *ListVmwareAdminClustersResponse.ServerResponse.Header or (if a response was
 11183  // returned at all) in error.(*googleapi.Error).Header. Use
 11184  // googleapi.IsNotModified to check whether the returned error was because
 11185  // http.StatusNotModified was returned.
 11186  func (c *ProjectsLocationsVmwareAdminClustersListCall) Do(opts ...googleapi.CallOption) (*ListVmwareAdminClustersResponse, error) {
 11187  	gensupport.SetOptions(c.urlParams_, opts...)
 11188  	res, err := c.doRequest("json")
 11189  	if res != nil && res.StatusCode == http.StatusNotModified {
 11190  		if res.Body != nil {
 11191  			res.Body.Close()
 11192  		}
 11193  		return nil, gensupport.WrapError(&googleapi.Error{
 11194  			Code:   res.StatusCode,
 11195  			Header: res.Header,
 11196  		})
 11197  	}
 11198  	if err != nil {
 11199  		return nil, err
 11200  	}
 11201  	defer googleapi.CloseBody(res)
 11202  	if err := googleapi.CheckResponse(res); err != nil {
 11203  		return nil, gensupport.WrapError(err)
 11204  	}
 11205  	ret := &ListVmwareAdminClustersResponse{
 11206  		ServerResponse: googleapi.ServerResponse{
 11207  			Header:         res.Header,
 11208  			HTTPStatusCode: res.StatusCode,
 11209  		},
 11210  	}
 11211  	target := &ret
 11212  	if err := gensupport.DecodeResponse(target, res); err != nil {
 11213  		return nil, err
 11214  	}
 11215  	return ret, nil
 11216  }
 11217  
 11218  // Pages invokes f for each page of results.
 11219  // A non-nil error returned from f will halt the iteration.
 11220  // The provided context supersedes any context provided to the Context method.
 11221  func (c *ProjectsLocationsVmwareAdminClustersListCall) Pages(ctx context.Context, f func(*ListVmwareAdminClustersResponse) error) error {
 11222  	c.ctx_ = ctx
 11223  	defer c.PageToken(c.urlParams_.Get("pageToken"))
 11224  	for {
 11225  		x, err := c.Do()
 11226  		if err != nil {
 11227  			return err
 11228  		}
 11229  		if err := f(x); err != nil {
 11230  			return err
 11231  		}
 11232  		if x.NextPageToken == "" {
 11233  			return nil
 11234  		}
 11235  		c.PageToken(x.NextPageToken)
 11236  	}
 11237  }
 11238  
 11239  type ProjectsLocationsVmwareAdminClustersPatchCall struct {
 11240  	s                  *Service
 11241  	name               string
 11242  	vmwareadmincluster *VmwareAdminCluster
 11243  	urlParams_         gensupport.URLParams
 11244  	ctx_               context.Context
 11245  	header_            http.Header
 11246  }
 11247  
 11248  // Patch: Updates the parameters of a single VMware admin cluster.
 11249  //
 11250  // - name: Immutable. The VMware admin cluster resource name.
 11251  func (r *ProjectsLocationsVmwareAdminClustersService) Patch(name string, vmwareadmincluster *VmwareAdminCluster) *ProjectsLocationsVmwareAdminClustersPatchCall {
 11252  	c := &ProjectsLocationsVmwareAdminClustersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 11253  	c.name = name
 11254  	c.vmwareadmincluster = vmwareadmincluster
 11255  	return c
 11256  }
 11257  
 11258  // UpdateMask sets the optional parameter "updateMask": Required. Field mask is
 11259  // used to specify the fields to be overwritten in the VMwareAdminCluster
 11260  // resource by the update. The fields specified in the update_mask are relative
 11261  // to the resource, not the full request. A field will be overwritten if it is
 11262  // in the mask. If the user does not provide a mask then all populated fields
 11263  // in the VmwareAdminCluster message will be updated. Empty fields will be
 11264  // ignored unless a field mask is used.
 11265  func (c *ProjectsLocationsVmwareAdminClustersPatchCall) UpdateMask(updateMask string) *ProjectsLocationsVmwareAdminClustersPatchCall {
 11266  	c.urlParams_.Set("updateMask", updateMask)
 11267  	return c
 11268  }
 11269  
 11270  // ValidateOnly sets the optional parameter "validateOnly": Validate the
 11271  // request without actually doing any updates.
 11272  func (c *ProjectsLocationsVmwareAdminClustersPatchCall) ValidateOnly(validateOnly bool) *ProjectsLocationsVmwareAdminClustersPatchCall {
 11273  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
 11274  	return c
 11275  }
 11276  
 11277  // Fields allows partial responses to be retrieved. See
 11278  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 11279  // details.
 11280  func (c *ProjectsLocationsVmwareAdminClustersPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareAdminClustersPatchCall {
 11281  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 11282  	return c
 11283  }
 11284  
 11285  // Context sets the context to be used in this call's Do method.
 11286  func (c *ProjectsLocationsVmwareAdminClustersPatchCall) Context(ctx context.Context) *ProjectsLocationsVmwareAdminClustersPatchCall {
 11287  	c.ctx_ = ctx
 11288  	return c
 11289  }
 11290  
 11291  // Header returns a http.Header that can be modified by the caller to add
 11292  // headers to the request.
 11293  func (c *ProjectsLocationsVmwareAdminClustersPatchCall) Header() http.Header {
 11294  	if c.header_ == nil {
 11295  		c.header_ = make(http.Header)
 11296  	}
 11297  	return c.header_
 11298  }
 11299  
 11300  func (c *ProjectsLocationsVmwareAdminClustersPatchCall) doRequest(alt string) (*http.Response, error) {
 11301  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 11302  	var body io.Reader = nil
 11303  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vmwareadmincluster)
 11304  	if err != nil {
 11305  		return nil, err
 11306  	}
 11307  	c.urlParams_.Set("alt", alt)
 11308  	c.urlParams_.Set("prettyPrint", "false")
 11309  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
 11310  	urls += "?" + c.urlParams_.Encode()
 11311  	req, err := http.NewRequest("PATCH", urls, body)
 11312  	if err != nil {
 11313  		return nil, err
 11314  	}
 11315  	req.Header = reqHeaders
 11316  	googleapi.Expand(req.URL, map[string]string{
 11317  		"name": c.name,
 11318  	})
 11319  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 11320  }
 11321  
 11322  // Do executes the "gkeonprem.projects.locations.vmwareAdminClusters.patch" call.
 11323  // Any non-2xx status code is an error. Response headers are in either
 11324  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 11325  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 11326  // whether the returned error was because http.StatusNotModified was returned.
 11327  func (c *ProjectsLocationsVmwareAdminClustersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 11328  	gensupport.SetOptions(c.urlParams_, opts...)
 11329  	res, err := c.doRequest("json")
 11330  	if res != nil && res.StatusCode == http.StatusNotModified {
 11331  		if res.Body != nil {
 11332  			res.Body.Close()
 11333  		}
 11334  		return nil, gensupport.WrapError(&googleapi.Error{
 11335  			Code:   res.StatusCode,
 11336  			Header: res.Header,
 11337  		})
 11338  	}
 11339  	if err != nil {
 11340  		return nil, err
 11341  	}
 11342  	defer googleapi.CloseBody(res)
 11343  	if err := googleapi.CheckResponse(res); err != nil {
 11344  		return nil, gensupport.WrapError(err)
 11345  	}
 11346  	ret := &Operation{
 11347  		ServerResponse: googleapi.ServerResponse{
 11348  			Header:         res.Header,
 11349  			HTTPStatusCode: res.StatusCode,
 11350  		},
 11351  	}
 11352  	target := &ret
 11353  	if err := gensupport.DecodeResponse(target, res); err != nil {
 11354  		return nil, err
 11355  	}
 11356  	return ret, nil
 11357  }
 11358  
 11359  type ProjectsLocationsVmwareAdminClustersSetIamPolicyCall struct {
 11360  	s                   *Service
 11361  	resource            string
 11362  	setiampolicyrequest *SetIamPolicyRequest
 11363  	urlParams_          gensupport.URLParams
 11364  	ctx_                context.Context
 11365  	header_             http.Header
 11366  }
 11367  
 11368  // SetIamPolicy: Sets the access control policy on the specified resource.
 11369  // Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`,
 11370  // and `PERMISSION_DENIED` errors.
 11371  //
 11372  //   - resource: REQUIRED: The resource for which the policy is being specified.
 11373  //     See Resource names (https://cloud.google.com/apis/design/resource_names)
 11374  //     for the appropriate value for this field.
 11375  func (r *ProjectsLocationsVmwareAdminClustersService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *ProjectsLocationsVmwareAdminClustersSetIamPolicyCall {
 11376  	c := &ProjectsLocationsVmwareAdminClustersSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 11377  	c.resource = resource
 11378  	c.setiampolicyrequest = setiampolicyrequest
 11379  	return c
 11380  }
 11381  
 11382  // Fields allows partial responses to be retrieved. See
 11383  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 11384  // details.
 11385  func (c *ProjectsLocationsVmwareAdminClustersSetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareAdminClustersSetIamPolicyCall {
 11386  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 11387  	return c
 11388  }
 11389  
 11390  // Context sets the context to be used in this call's Do method.
 11391  func (c *ProjectsLocationsVmwareAdminClustersSetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsVmwareAdminClustersSetIamPolicyCall {
 11392  	c.ctx_ = ctx
 11393  	return c
 11394  }
 11395  
 11396  // Header returns a http.Header that can be modified by the caller to add
 11397  // headers to the request.
 11398  func (c *ProjectsLocationsVmwareAdminClustersSetIamPolicyCall) Header() http.Header {
 11399  	if c.header_ == nil {
 11400  		c.header_ = make(http.Header)
 11401  	}
 11402  	return c.header_
 11403  }
 11404  
 11405  func (c *ProjectsLocationsVmwareAdminClustersSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
 11406  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 11407  	var body io.Reader = nil
 11408  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest)
 11409  	if err != nil {
 11410  		return nil, err
 11411  	}
 11412  	c.urlParams_.Set("alt", alt)
 11413  	c.urlParams_.Set("prettyPrint", "false")
 11414  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:setIamPolicy")
 11415  	urls += "?" + c.urlParams_.Encode()
 11416  	req, err := http.NewRequest("POST", urls, body)
 11417  	if err != nil {
 11418  		return nil, err
 11419  	}
 11420  	req.Header = reqHeaders
 11421  	googleapi.Expand(req.URL, map[string]string{
 11422  		"resource": c.resource,
 11423  	})
 11424  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 11425  }
 11426  
 11427  // Do executes the "gkeonprem.projects.locations.vmwareAdminClusters.setIamPolicy" call.
 11428  // Any non-2xx status code is an error. Response headers are in either
 11429  // *Policy.ServerResponse.Header or (if a response was returned at all) in
 11430  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 11431  // whether the returned error was because http.StatusNotModified was returned.
 11432  func (c *ProjectsLocationsVmwareAdminClustersSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
 11433  	gensupport.SetOptions(c.urlParams_, opts...)
 11434  	res, err := c.doRequest("json")
 11435  	if res != nil && res.StatusCode == http.StatusNotModified {
 11436  		if res.Body != nil {
 11437  			res.Body.Close()
 11438  		}
 11439  		return nil, gensupport.WrapError(&googleapi.Error{
 11440  			Code:   res.StatusCode,
 11441  			Header: res.Header,
 11442  		})
 11443  	}
 11444  	if err != nil {
 11445  		return nil, err
 11446  	}
 11447  	defer googleapi.CloseBody(res)
 11448  	if err := googleapi.CheckResponse(res); err != nil {
 11449  		return nil, gensupport.WrapError(err)
 11450  	}
 11451  	ret := &Policy{
 11452  		ServerResponse: googleapi.ServerResponse{
 11453  			Header:         res.Header,
 11454  			HTTPStatusCode: res.StatusCode,
 11455  		},
 11456  	}
 11457  	target := &ret
 11458  	if err := gensupport.DecodeResponse(target, res); err != nil {
 11459  		return nil, err
 11460  	}
 11461  	return ret, nil
 11462  }
 11463  
 11464  type ProjectsLocationsVmwareAdminClustersTestIamPermissionsCall struct {
 11465  	s                         *Service
 11466  	resource                  string
 11467  	testiampermissionsrequest *TestIamPermissionsRequest
 11468  	urlParams_                gensupport.URLParams
 11469  	ctx_                      context.Context
 11470  	header_                   http.Header
 11471  }
 11472  
 11473  // TestIamPermissions: Returns permissions that a caller has on the specified
 11474  // resource. If the resource does not exist, this will return an empty set of
 11475  // permissions, not a `NOT_FOUND` error. Note: This operation is designed to be
 11476  // used for building permission-aware UIs and command-line tools, not for
 11477  // authorization checking. This operation may "fail open" without warning.
 11478  //
 11479  //   - resource: REQUIRED: The resource for which the policy detail is being
 11480  //     requested. See Resource names
 11481  //     (https://cloud.google.com/apis/design/resource_names) for the appropriate
 11482  //     value for this field.
 11483  func (r *ProjectsLocationsVmwareAdminClustersService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *ProjectsLocationsVmwareAdminClustersTestIamPermissionsCall {
 11484  	c := &ProjectsLocationsVmwareAdminClustersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 11485  	c.resource = resource
 11486  	c.testiampermissionsrequest = testiampermissionsrequest
 11487  	return c
 11488  }
 11489  
 11490  // Fields allows partial responses to be retrieved. See
 11491  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 11492  // details.
 11493  func (c *ProjectsLocationsVmwareAdminClustersTestIamPermissionsCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareAdminClustersTestIamPermissionsCall {
 11494  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 11495  	return c
 11496  }
 11497  
 11498  // Context sets the context to be used in this call's Do method.
 11499  func (c *ProjectsLocationsVmwareAdminClustersTestIamPermissionsCall) Context(ctx context.Context) *ProjectsLocationsVmwareAdminClustersTestIamPermissionsCall {
 11500  	c.ctx_ = ctx
 11501  	return c
 11502  }
 11503  
 11504  // Header returns a http.Header that can be modified by the caller to add
 11505  // headers to the request.
 11506  func (c *ProjectsLocationsVmwareAdminClustersTestIamPermissionsCall) Header() http.Header {
 11507  	if c.header_ == nil {
 11508  		c.header_ = make(http.Header)
 11509  	}
 11510  	return c.header_
 11511  }
 11512  
 11513  func (c *ProjectsLocationsVmwareAdminClustersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
 11514  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 11515  	var body io.Reader = nil
 11516  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest)
 11517  	if err != nil {
 11518  		return nil, err
 11519  	}
 11520  	c.urlParams_.Set("alt", alt)
 11521  	c.urlParams_.Set("prettyPrint", "false")
 11522  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:testIamPermissions")
 11523  	urls += "?" + c.urlParams_.Encode()
 11524  	req, err := http.NewRequest("POST", urls, body)
 11525  	if err != nil {
 11526  		return nil, err
 11527  	}
 11528  	req.Header = reqHeaders
 11529  	googleapi.Expand(req.URL, map[string]string{
 11530  		"resource": c.resource,
 11531  	})
 11532  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 11533  }
 11534  
 11535  // Do executes the "gkeonprem.projects.locations.vmwareAdminClusters.testIamPermissions" call.
 11536  // Any non-2xx status code is an error. Response headers are in either
 11537  // *TestIamPermissionsResponse.ServerResponse.Header or (if a response was
 11538  // returned at all) in error.(*googleapi.Error).Header. Use
 11539  // googleapi.IsNotModified to check whether the returned error was because
 11540  // http.StatusNotModified was returned.
 11541  func (c *ProjectsLocationsVmwareAdminClustersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) {
 11542  	gensupport.SetOptions(c.urlParams_, opts...)
 11543  	res, err := c.doRequest("json")
 11544  	if res != nil && res.StatusCode == http.StatusNotModified {
 11545  		if res.Body != nil {
 11546  			res.Body.Close()
 11547  		}
 11548  		return nil, gensupport.WrapError(&googleapi.Error{
 11549  			Code:   res.StatusCode,
 11550  			Header: res.Header,
 11551  		})
 11552  	}
 11553  	if err != nil {
 11554  		return nil, err
 11555  	}
 11556  	defer googleapi.CloseBody(res)
 11557  	if err := googleapi.CheckResponse(res); err != nil {
 11558  		return nil, gensupport.WrapError(err)
 11559  	}
 11560  	ret := &TestIamPermissionsResponse{
 11561  		ServerResponse: googleapi.ServerResponse{
 11562  			Header:         res.Header,
 11563  			HTTPStatusCode: res.StatusCode,
 11564  		},
 11565  	}
 11566  	target := &ret
 11567  	if err := gensupport.DecodeResponse(target, res); err != nil {
 11568  		return nil, err
 11569  	}
 11570  	return ret, nil
 11571  }
 11572  
 11573  type ProjectsLocationsVmwareAdminClustersUnenrollCall struct {
 11574  	s          *Service
 11575  	name       string
 11576  	urlParams_ gensupport.URLParams
 11577  	ctx_       context.Context
 11578  	header_    http.Header
 11579  }
 11580  
 11581  // Unenroll: Unenrolls an existing VMware admin cluster from the Anthos On-Prem
 11582  // API within a given project and location. Unenrollment removes the Cloud
 11583  // reference to the cluster without modifying the underlying OnPrem Resources.
 11584  // Clusters will continue to run; however, they will no longer be accessible
 11585  // through the Anthos On-Prem API or its clients.
 11586  //
 11587  //   - name: Name of the VMware admin cluster to be unenrolled. Format:
 11588  //     "projects/{project}/locations/{location}/vmwareAdminClusters/{cluster}".
 11589  func (r *ProjectsLocationsVmwareAdminClustersService) Unenroll(name string) *ProjectsLocationsVmwareAdminClustersUnenrollCall {
 11590  	c := &ProjectsLocationsVmwareAdminClustersUnenrollCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 11591  	c.name = name
 11592  	return c
 11593  }
 11594  
 11595  // AllowMissing sets the optional parameter "allowMissing": If set to true, and
 11596  // the VMware admin cluster is not found, the request will succeed but no
 11597  // action will be taken on the server and return a completed LRO.
 11598  func (c *ProjectsLocationsVmwareAdminClustersUnenrollCall) AllowMissing(allowMissing bool) *ProjectsLocationsVmwareAdminClustersUnenrollCall {
 11599  	c.urlParams_.Set("allowMissing", fmt.Sprint(allowMissing))
 11600  	return c
 11601  }
 11602  
 11603  // Etag sets the optional parameter "etag": The current etag of the VMware
 11604  // admin cluster. If an etag is provided and does not match the current etag of
 11605  // the cluster, deletion will be blocked and an ABORTED error will be returned.
 11606  func (c *ProjectsLocationsVmwareAdminClustersUnenrollCall) Etag(etag string) *ProjectsLocationsVmwareAdminClustersUnenrollCall {
 11607  	c.urlParams_.Set("etag", etag)
 11608  	return c
 11609  }
 11610  
 11611  // ValidateOnly sets the optional parameter "validateOnly": Validate the
 11612  // request without actually doing any updates.
 11613  func (c *ProjectsLocationsVmwareAdminClustersUnenrollCall) ValidateOnly(validateOnly bool) *ProjectsLocationsVmwareAdminClustersUnenrollCall {
 11614  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
 11615  	return c
 11616  }
 11617  
 11618  // Fields allows partial responses to be retrieved. See
 11619  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 11620  // details.
 11621  func (c *ProjectsLocationsVmwareAdminClustersUnenrollCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareAdminClustersUnenrollCall {
 11622  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 11623  	return c
 11624  }
 11625  
 11626  // Context sets the context to be used in this call's Do method.
 11627  func (c *ProjectsLocationsVmwareAdminClustersUnenrollCall) Context(ctx context.Context) *ProjectsLocationsVmwareAdminClustersUnenrollCall {
 11628  	c.ctx_ = ctx
 11629  	return c
 11630  }
 11631  
 11632  // Header returns a http.Header that can be modified by the caller to add
 11633  // headers to the request.
 11634  func (c *ProjectsLocationsVmwareAdminClustersUnenrollCall) Header() http.Header {
 11635  	if c.header_ == nil {
 11636  		c.header_ = make(http.Header)
 11637  	}
 11638  	return c.header_
 11639  }
 11640  
 11641  func (c *ProjectsLocationsVmwareAdminClustersUnenrollCall) doRequest(alt string) (*http.Response, error) {
 11642  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 11643  	var body io.Reader = nil
 11644  	c.urlParams_.Set("alt", alt)
 11645  	c.urlParams_.Set("prettyPrint", "false")
 11646  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:unenroll")
 11647  	urls += "?" + c.urlParams_.Encode()
 11648  	req, err := http.NewRequest("DELETE", urls, body)
 11649  	if err != nil {
 11650  		return nil, err
 11651  	}
 11652  	req.Header = reqHeaders
 11653  	googleapi.Expand(req.URL, map[string]string{
 11654  		"name": c.name,
 11655  	})
 11656  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 11657  }
 11658  
 11659  // Do executes the "gkeonprem.projects.locations.vmwareAdminClusters.unenroll" call.
 11660  // Any non-2xx status code is an error. Response headers are in either
 11661  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 11662  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 11663  // whether the returned error was because http.StatusNotModified was returned.
 11664  func (c *ProjectsLocationsVmwareAdminClustersUnenrollCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 11665  	gensupport.SetOptions(c.urlParams_, opts...)
 11666  	res, err := c.doRequest("json")
 11667  	if res != nil && res.StatusCode == http.StatusNotModified {
 11668  		if res.Body != nil {
 11669  			res.Body.Close()
 11670  		}
 11671  		return nil, gensupport.WrapError(&googleapi.Error{
 11672  			Code:   res.StatusCode,
 11673  			Header: res.Header,
 11674  		})
 11675  	}
 11676  	if err != nil {
 11677  		return nil, err
 11678  	}
 11679  	defer googleapi.CloseBody(res)
 11680  	if err := googleapi.CheckResponse(res); err != nil {
 11681  		return nil, gensupport.WrapError(err)
 11682  	}
 11683  	ret := &Operation{
 11684  		ServerResponse: googleapi.ServerResponse{
 11685  			Header:         res.Header,
 11686  			HTTPStatusCode: res.StatusCode,
 11687  		},
 11688  	}
 11689  	target := &ret
 11690  	if err := gensupport.DecodeResponse(target, res); err != nil {
 11691  		return nil, err
 11692  	}
 11693  	return ret, nil
 11694  }
 11695  
 11696  type ProjectsLocationsVmwareAdminClustersOperationsGetCall struct {
 11697  	s            *Service
 11698  	name         string
 11699  	urlParams_   gensupport.URLParams
 11700  	ifNoneMatch_ string
 11701  	ctx_         context.Context
 11702  	header_      http.Header
 11703  }
 11704  
 11705  // Get: Gets the latest state of a long-running operation. Clients can use this
 11706  // method to poll the operation result at intervals as recommended by the API
 11707  // service.
 11708  //
 11709  // - name: The name of the operation resource.
 11710  func (r *ProjectsLocationsVmwareAdminClustersOperationsService) Get(name string) *ProjectsLocationsVmwareAdminClustersOperationsGetCall {
 11711  	c := &ProjectsLocationsVmwareAdminClustersOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 11712  	c.name = name
 11713  	return c
 11714  }
 11715  
 11716  // Fields allows partial responses to be retrieved. See
 11717  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 11718  // details.
 11719  func (c *ProjectsLocationsVmwareAdminClustersOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareAdminClustersOperationsGetCall {
 11720  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 11721  	return c
 11722  }
 11723  
 11724  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 11725  // object's ETag matches the given value. This is useful for getting updates
 11726  // only after the object has changed since the last request.
 11727  func (c *ProjectsLocationsVmwareAdminClustersOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsVmwareAdminClustersOperationsGetCall {
 11728  	c.ifNoneMatch_ = entityTag
 11729  	return c
 11730  }
 11731  
 11732  // Context sets the context to be used in this call's Do method.
 11733  func (c *ProjectsLocationsVmwareAdminClustersOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsVmwareAdminClustersOperationsGetCall {
 11734  	c.ctx_ = ctx
 11735  	return c
 11736  }
 11737  
 11738  // Header returns a http.Header that can be modified by the caller to add
 11739  // headers to the request.
 11740  func (c *ProjectsLocationsVmwareAdminClustersOperationsGetCall) Header() http.Header {
 11741  	if c.header_ == nil {
 11742  		c.header_ = make(http.Header)
 11743  	}
 11744  	return c.header_
 11745  }
 11746  
 11747  func (c *ProjectsLocationsVmwareAdminClustersOperationsGetCall) doRequest(alt string) (*http.Response, error) {
 11748  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 11749  	if c.ifNoneMatch_ != "" {
 11750  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 11751  	}
 11752  	var body io.Reader = nil
 11753  	c.urlParams_.Set("alt", alt)
 11754  	c.urlParams_.Set("prettyPrint", "false")
 11755  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
 11756  	urls += "?" + c.urlParams_.Encode()
 11757  	req, err := http.NewRequest("GET", urls, body)
 11758  	if err != nil {
 11759  		return nil, err
 11760  	}
 11761  	req.Header = reqHeaders
 11762  	googleapi.Expand(req.URL, map[string]string{
 11763  		"name": c.name,
 11764  	})
 11765  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 11766  }
 11767  
 11768  // Do executes the "gkeonprem.projects.locations.vmwareAdminClusters.operations.get" call.
 11769  // Any non-2xx status code is an error. Response headers are in either
 11770  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 11771  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 11772  // whether the returned error was because http.StatusNotModified was returned.
 11773  func (c *ProjectsLocationsVmwareAdminClustersOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 11774  	gensupport.SetOptions(c.urlParams_, opts...)
 11775  	res, err := c.doRequest("json")
 11776  	if res != nil && res.StatusCode == http.StatusNotModified {
 11777  		if res.Body != nil {
 11778  			res.Body.Close()
 11779  		}
 11780  		return nil, gensupport.WrapError(&googleapi.Error{
 11781  			Code:   res.StatusCode,
 11782  			Header: res.Header,
 11783  		})
 11784  	}
 11785  	if err != nil {
 11786  		return nil, err
 11787  	}
 11788  	defer googleapi.CloseBody(res)
 11789  	if err := googleapi.CheckResponse(res); err != nil {
 11790  		return nil, gensupport.WrapError(err)
 11791  	}
 11792  	ret := &Operation{
 11793  		ServerResponse: googleapi.ServerResponse{
 11794  			Header:         res.Header,
 11795  			HTTPStatusCode: res.StatusCode,
 11796  		},
 11797  	}
 11798  	target := &ret
 11799  	if err := gensupport.DecodeResponse(target, res); err != nil {
 11800  		return nil, err
 11801  	}
 11802  	return ret, nil
 11803  }
 11804  
 11805  type ProjectsLocationsVmwareAdminClustersOperationsListCall struct {
 11806  	s            *Service
 11807  	name         string
 11808  	urlParams_   gensupport.URLParams
 11809  	ifNoneMatch_ string
 11810  	ctx_         context.Context
 11811  	header_      http.Header
 11812  }
 11813  
 11814  // List: Lists operations that match the specified filter in the request. If
 11815  // the server doesn't support this method, it returns `UNIMPLEMENTED`.
 11816  //
 11817  // - name: The name of the operation's parent resource.
 11818  func (r *ProjectsLocationsVmwareAdminClustersOperationsService) List(name string) *ProjectsLocationsVmwareAdminClustersOperationsListCall {
 11819  	c := &ProjectsLocationsVmwareAdminClustersOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 11820  	c.name = name
 11821  	return c
 11822  }
 11823  
 11824  // Filter sets the optional parameter "filter": The standard list filter.
 11825  func (c *ProjectsLocationsVmwareAdminClustersOperationsListCall) Filter(filter string) *ProjectsLocationsVmwareAdminClustersOperationsListCall {
 11826  	c.urlParams_.Set("filter", filter)
 11827  	return c
 11828  }
 11829  
 11830  // PageSize sets the optional parameter "pageSize": The standard list page
 11831  // size.
 11832  func (c *ProjectsLocationsVmwareAdminClustersOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsVmwareAdminClustersOperationsListCall {
 11833  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
 11834  	return c
 11835  }
 11836  
 11837  // PageToken sets the optional parameter "pageToken": The standard list page
 11838  // token.
 11839  func (c *ProjectsLocationsVmwareAdminClustersOperationsListCall) PageToken(pageToken string) *ProjectsLocationsVmwareAdminClustersOperationsListCall {
 11840  	c.urlParams_.Set("pageToken", pageToken)
 11841  	return c
 11842  }
 11843  
 11844  // Fields allows partial responses to be retrieved. See
 11845  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 11846  // details.
 11847  func (c *ProjectsLocationsVmwareAdminClustersOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareAdminClustersOperationsListCall {
 11848  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 11849  	return c
 11850  }
 11851  
 11852  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 11853  // object's ETag matches the given value. This is useful for getting updates
 11854  // only after the object has changed since the last request.
 11855  func (c *ProjectsLocationsVmwareAdminClustersOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsVmwareAdminClustersOperationsListCall {
 11856  	c.ifNoneMatch_ = entityTag
 11857  	return c
 11858  }
 11859  
 11860  // Context sets the context to be used in this call's Do method.
 11861  func (c *ProjectsLocationsVmwareAdminClustersOperationsListCall) Context(ctx context.Context) *ProjectsLocationsVmwareAdminClustersOperationsListCall {
 11862  	c.ctx_ = ctx
 11863  	return c
 11864  }
 11865  
 11866  // Header returns a http.Header that can be modified by the caller to add
 11867  // headers to the request.
 11868  func (c *ProjectsLocationsVmwareAdminClustersOperationsListCall) Header() http.Header {
 11869  	if c.header_ == nil {
 11870  		c.header_ = make(http.Header)
 11871  	}
 11872  	return c.header_
 11873  }
 11874  
 11875  func (c *ProjectsLocationsVmwareAdminClustersOperationsListCall) doRequest(alt string) (*http.Response, error) {
 11876  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 11877  	if c.ifNoneMatch_ != "" {
 11878  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 11879  	}
 11880  	var body io.Reader = nil
 11881  	c.urlParams_.Set("alt", alt)
 11882  	c.urlParams_.Set("prettyPrint", "false")
 11883  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/operations")
 11884  	urls += "?" + c.urlParams_.Encode()
 11885  	req, err := http.NewRequest("GET", urls, body)
 11886  	if err != nil {
 11887  		return nil, err
 11888  	}
 11889  	req.Header = reqHeaders
 11890  	googleapi.Expand(req.URL, map[string]string{
 11891  		"name": c.name,
 11892  	})
 11893  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 11894  }
 11895  
 11896  // Do executes the "gkeonprem.projects.locations.vmwareAdminClusters.operations.list" call.
 11897  // Any non-2xx status code is an error. Response headers are in either
 11898  // *ListOperationsResponse.ServerResponse.Header or (if a response was returned
 11899  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
 11900  // check whether the returned error was because http.StatusNotModified was
 11901  // returned.
 11902  func (c *ProjectsLocationsVmwareAdminClustersOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
 11903  	gensupport.SetOptions(c.urlParams_, opts...)
 11904  	res, err := c.doRequest("json")
 11905  	if res != nil && res.StatusCode == http.StatusNotModified {
 11906  		if res.Body != nil {
 11907  			res.Body.Close()
 11908  		}
 11909  		return nil, gensupport.WrapError(&googleapi.Error{
 11910  			Code:   res.StatusCode,
 11911  			Header: res.Header,
 11912  		})
 11913  	}
 11914  	if err != nil {
 11915  		return nil, err
 11916  	}
 11917  	defer googleapi.CloseBody(res)
 11918  	if err := googleapi.CheckResponse(res); err != nil {
 11919  		return nil, gensupport.WrapError(err)
 11920  	}
 11921  	ret := &ListOperationsResponse{
 11922  		ServerResponse: googleapi.ServerResponse{
 11923  			Header:         res.Header,
 11924  			HTTPStatusCode: res.StatusCode,
 11925  		},
 11926  	}
 11927  	target := &ret
 11928  	if err := gensupport.DecodeResponse(target, res); err != nil {
 11929  		return nil, err
 11930  	}
 11931  	return ret, nil
 11932  }
 11933  
 11934  // Pages invokes f for each page of results.
 11935  // A non-nil error returned from f will halt the iteration.
 11936  // The provided context supersedes any context provided to the Context method.
 11937  func (c *ProjectsLocationsVmwareAdminClustersOperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
 11938  	c.ctx_ = ctx
 11939  	defer c.PageToken(c.urlParams_.Get("pageToken"))
 11940  	for {
 11941  		x, err := c.Do()
 11942  		if err != nil {
 11943  			return err
 11944  		}
 11945  		if err := f(x); err != nil {
 11946  			return err
 11947  		}
 11948  		if x.NextPageToken == "" {
 11949  			return nil
 11950  		}
 11951  		c.PageToken(x.NextPageToken)
 11952  	}
 11953  }
 11954  
 11955  type ProjectsLocationsVmwareClustersCreateCall struct {
 11956  	s             *Service
 11957  	parent        string
 11958  	vmwarecluster *VmwareCluster
 11959  	urlParams_    gensupport.URLParams
 11960  	ctx_          context.Context
 11961  	header_       http.Header
 11962  }
 11963  
 11964  // Create: Creates a new VMware user cluster in a given project and location.
 11965  //
 11966  //   - parent: The parent of the project and location where this cluster is
 11967  //     created in. Format: "projects/{project}/locations/{location}".
 11968  func (r *ProjectsLocationsVmwareClustersService) Create(parent string, vmwarecluster *VmwareCluster) *ProjectsLocationsVmwareClustersCreateCall {
 11969  	c := &ProjectsLocationsVmwareClustersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 11970  	c.parent = parent
 11971  	c.vmwarecluster = vmwarecluster
 11972  	return c
 11973  }
 11974  
 11975  // ValidateOnly sets the optional parameter "validateOnly": Validate the
 11976  // request without actually doing any updates.
 11977  func (c *ProjectsLocationsVmwareClustersCreateCall) ValidateOnly(validateOnly bool) *ProjectsLocationsVmwareClustersCreateCall {
 11978  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
 11979  	return c
 11980  }
 11981  
 11982  // VmwareClusterId sets the optional parameter "vmwareClusterId": User provided
 11983  // identifier that is used as part of the resource name; This value must be up
 11984  // to 40 characters and follow RFC-1123 (https://tools.ietf.org/html/rfc1123)
 11985  // format.
 11986  func (c *ProjectsLocationsVmwareClustersCreateCall) VmwareClusterId(vmwareClusterId string) *ProjectsLocationsVmwareClustersCreateCall {
 11987  	c.urlParams_.Set("vmwareClusterId", vmwareClusterId)
 11988  	return c
 11989  }
 11990  
 11991  // Fields allows partial responses to be retrieved. See
 11992  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 11993  // details.
 11994  func (c *ProjectsLocationsVmwareClustersCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersCreateCall {
 11995  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 11996  	return c
 11997  }
 11998  
 11999  // Context sets the context to be used in this call's Do method.
 12000  func (c *ProjectsLocationsVmwareClustersCreateCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersCreateCall {
 12001  	c.ctx_ = ctx
 12002  	return c
 12003  }
 12004  
 12005  // Header returns a http.Header that can be modified by the caller to add
 12006  // headers to the request.
 12007  func (c *ProjectsLocationsVmwareClustersCreateCall) Header() http.Header {
 12008  	if c.header_ == nil {
 12009  		c.header_ = make(http.Header)
 12010  	}
 12011  	return c.header_
 12012  }
 12013  
 12014  func (c *ProjectsLocationsVmwareClustersCreateCall) doRequest(alt string) (*http.Response, error) {
 12015  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 12016  	var body io.Reader = nil
 12017  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vmwarecluster)
 12018  	if err != nil {
 12019  		return nil, err
 12020  	}
 12021  	c.urlParams_.Set("alt", alt)
 12022  	c.urlParams_.Set("prettyPrint", "false")
 12023  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/vmwareClusters")
 12024  	urls += "?" + c.urlParams_.Encode()
 12025  	req, err := http.NewRequest("POST", urls, body)
 12026  	if err != nil {
 12027  		return nil, err
 12028  	}
 12029  	req.Header = reqHeaders
 12030  	googleapi.Expand(req.URL, map[string]string{
 12031  		"parent": c.parent,
 12032  	})
 12033  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12034  }
 12035  
 12036  // Do executes the "gkeonprem.projects.locations.vmwareClusters.create" call.
 12037  // Any non-2xx status code is an error. Response headers are in either
 12038  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 12039  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 12040  // whether the returned error was because http.StatusNotModified was returned.
 12041  func (c *ProjectsLocationsVmwareClustersCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 12042  	gensupport.SetOptions(c.urlParams_, opts...)
 12043  	res, err := c.doRequest("json")
 12044  	if res != nil && res.StatusCode == http.StatusNotModified {
 12045  		if res.Body != nil {
 12046  			res.Body.Close()
 12047  		}
 12048  		return nil, gensupport.WrapError(&googleapi.Error{
 12049  			Code:   res.StatusCode,
 12050  			Header: res.Header,
 12051  		})
 12052  	}
 12053  	if err != nil {
 12054  		return nil, err
 12055  	}
 12056  	defer googleapi.CloseBody(res)
 12057  	if err := googleapi.CheckResponse(res); err != nil {
 12058  		return nil, gensupport.WrapError(err)
 12059  	}
 12060  	ret := &Operation{
 12061  		ServerResponse: googleapi.ServerResponse{
 12062  			Header:         res.Header,
 12063  			HTTPStatusCode: res.StatusCode,
 12064  		},
 12065  	}
 12066  	target := &ret
 12067  	if err := gensupport.DecodeResponse(target, res); err != nil {
 12068  		return nil, err
 12069  	}
 12070  	return ret, nil
 12071  }
 12072  
 12073  type ProjectsLocationsVmwareClustersDeleteCall struct {
 12074  	s          *Service
 12075  	name       string
 12076  	urlParams_ gensupport.URLParams
 12077  	ctx_       context.Context
 12078  	header_    http.Header
 12079  }
 12080  
 12081  // Delete: Deletes a single VMware Cluster.
 12082  //
 12083  //   - name: Name of the VMware user cluster to be deleted. Format:
 12084  //     "projects/{project}/locations/{location}/vmwareClusters/{vmware_cluster}".
 12085  func (r *ProjectsLocationsVmwareClustersService) Delete(name string) *ProjectsLocationsVmwareClustersDeleteCall {
 12086  	c := &ProjectsLocationsVmwareClustersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 12087  	c.name = name
 12088  	return c
 12089  }
 12090  
 12091  // AllowMissing sets the optional parameter "allowMissing": If set to true, and
 12092  // the VMware cluster is not found, the request will succeed but no action will
 12093  // be taken on the server and return a completed LRO.
 12094  func (c *ProjectsLocationsVmwareClustersDeleteCall) AllowMissing(allowMissing bool) *ProjectsLocationsVmwareClustersDeleteCall {
 12095  	c.urlParams_.Set("allowMissing", fmt.Sprint(allowMissing))
 12096  	return c
 12097  }
 12098  
 12099  // Etag sets the optional parameter "etag": The current etag of the VMware
 12100  // cluster. If an etag is provided and does not match the current etag of the
 12101  // cluster, deletion will be blocked and an ABORTED error will be returned.
 12102  func (c *ProjectsLocationsVmwareClustersDeleteCall) Etag(etag string) *ProjectsLocationsVmwareClustersDeleteCall {
 12103  	c.urlParams_.Set("etag", etag)
 12104  	return c
 12105  }
 12106  
 12107  // Force sets the optional parameter "force": If set to true, any node pools
 12108  // from the cluster will also be deleted.
 12109  func (c *ProjectsLocationsVmwareClustersDeleteCall) Force(force bool) *ProjectsLocationsVmwareClustersDeleteCall {
 12110  	c.urlParams_.Set("force", fmt.Sprint(force))
 12111  	return c
 12112  }
 12113  
 12114  // IgnoreErrors sets the optional parameter "ignoreErrors": If set to true, the
 12115  // deletion of a VMware user cluster resource will succeed even if errors occur
 12116  // during deletion. This parameter can be used when you want to delete GCP's
 12117  // cluster resource and the on-prem admin cluster that hosts your user cluster
 12118  // is disconnected / unreachable or deleted. WARNING: Using this parameter when
 12119  // your user cluster still exists may result in a deleted GCP user cluster but
 12120  // an existing on-prem user cluster.
 12121  func (c *ProjectsLocationsVmwareClustersDeleteCall) IgnoreErrors(ignoreErrors bool) *ProjectsLocationsVmwareClustersDeleteCall {
 12122  	c.urlParams_.Set("ignoreErrors", fmt.Sprint(ignoreErrors))
 12123  	return c
 12124  }
 12125  
 12126  // ValidateOnly sets the optional parameter "validateOnly": Validate the
 12127  // request without actually doing any updates.
 12128  func (c *ProjectsLocationsVmwareClustersDeleteCall) ValidateOnly(validateOnly bool) *ProjectsLocationsVmwareClustersDeleteCall {
 12129  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
 12130  	return c
 12131  }
 12132  
 12133  // Fields allows partial responses to be retrieved. See
 12134  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 12135  // details.
 12136  func (c *ProjectsLocationsVmwareClustersDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersDeleteCall {
 12137  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 12138  	return c
 12139  }
 12140  
 12141  // Context sets the context to be used in this call's Do method.
 12142  func (c *ProjectsLocationsVmwareClustersDeleteCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersDeleteCall {
 12143  	c.ctx_ = ctx
 12144  	return c
 12145  }
 12146  
 12147  // Header returns a http.Header that can be modified by the caller to add
 12148  // headers to the request.
 12149  func (c *ProjectsLocationsVmwareClustersDeleteCall) Header() http.Header {
 12150  	if c.header_ == nil {
 12151  		c.header_ = make(http.Header)
 12152  	}
 12153  	return c.header_
 12154  }
 12155  
 12156  func (c *ProjectsLocationsVmwareClustersDeleteCall) doRequest(alt string) (*http.Response, error) {
 12157  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 12158  	var body io.Reader = nil
 12159  	c.urlParams_.Set("alt", alt)
 12160  	c.urlParams_.Set("prettyPrint", "false")
 12161  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
 12162  	urls += "?" + c.urlParams_.Encode()
 12163  	req, err := http.NewRequest("DELETE", urls, body)
 12164  	if err != nil {
 12165  		return nil, err
 12166  	}
 12167  	req.Header = reqHeaders
 12168  	googleapi.Expand(req.URL, map[string]string{
 12169  		"name": c.name,
 12170  	})
 12171  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12172  }
 12173  
 12174  // Do executes the "gkeonprem.projects.locations.vmwareClusters.delete" call.
 12175  // Any non-2xx status code is an error. Response headers are in either
 12176  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 12177  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 12178  // whether the returned error was because http.StatusNotModified was returned.
 12179  func (c *ProjectsLocationsVmwareClustersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 12180  	gensupport.SetOptions(c.urlParams_, opts...)
 12181  	res, err := c.doRequest("json")
 12182  	if res != nil && res.StatusCode == http.StatusNotModified {
 12183  		if res.Body != nil {
 12184  			res.Body.Close()
 12185  		}
 12186  		return nil, gensupport.WrapError(&googleapi.Error{
 12187  			Code:   res.StatusCode,
 12188  			Header: res.Header,
 12189  		})
 12190  	}
 12191  	if err != nil {
 12192  		return nil, err
 12193  	}
 12194  	defer googleapi.CloseBody(res)
 12195  	if err := googleapi.CheckResponse(res); err != nil {
 12196  		return nil, gensupport.WrapError(err)
 12197  	}
 12198  	ret := &Operation{
 12199  		ServerResponse: googleapi.ServerResponse{
 12200  			Header:         res.Header,
 12201  			HTTPStatusCode: res.StatusCode,
 12202  		},
 12203  	}
 12204  	target := &ret
 12205  	if err := gensupport.DecodeResponse(target, res); err != nil {
 12206  		return nil, err
 12207  	}
 12208  	return ret, nil
 12209  }
 12210  
 12211  type ProjectsLocationsVmwareClustersEnrollCall struct {
 12212  	s                          *Service
 12213  	parent                     string
 12214  	enrollvmwareclusterrequest *EnrollVmwareClusterRequest
 12215  	urlParams_                 gensupport.URLParams
 12216  	ctx_                       context.Context
 12217  	header_                    http.Header
 12218  }
 12219  
 12220  // Enroll: Enrolls an existing VMware user cluster and its node pools to the
 12221  // Anthos On-Prem API within a given project and location. Through enrollment,
 12222  // an existing cluster will become Anthos On-Prem API managed. The
 12223  // corresponding GCP resources will be created and all future modifications to
 12224  // the cluster and/or its node pools will be expected to be performed through
 12225  // the API.
 12226  //
 12227  //   - parent: The parent of the project and location where the cluster is
 12228  //     Enrolled in. Format: "projects/{project}/locations/{location}".
 12229  func (r *ProjectsLocationsVmwareClustersService) Enroll(parent string, enrollvmwareclusterrequest *EnrollVmwareClusterRequest) *ProjectsLocationsVmwareClustersEnrollCall {
 12230  	c := &ProjectsLocationsVmwareClustersEnrollCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 12231  	c.parent = parent
 12232  	c.enrollvmwareclusterrequest = enrollvmwareclusterrequest
 12233  	return c
 12234  }
 12235  
 12236  // Fields allows partial responses to be retrieved. See
 12237  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 12238  // details.
 12239  func (c *ProjectsLocationsVmwareClustersEnrollCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersEnrollCall {
 12240  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 12241  	return c
 12242  }
 12243  
 12244  // Context sets the context to be used in this call's Do method.
 12245  func (c *ProjectsLocationsVmwareClustersEnrollCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersEnrollCall {
 12246  	c.ctx_ = ctx
 12247  	return c
 12248  }
 12249  
 12250  // Header returns a http.Header that can be modified by the caller to add
 12251  // headers to the request.
 12252  func (c *ProjectsLocationsVmwareClustersEnrollCall) Header() http.Header {
 12253  	if c.header_ == nil {
 12254  		c.header_ = make(http.Header)
 12255  	}
 12256  	return c.header_
 12257  }
 12258  
 12259  func (c *ProjectsLocationsVmwareClustersEnrollCall) doRequest(alt string) (*http.Response, error) {
 12260  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 12261  	var body io.Reader = nil
 12262  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.enrollvmwareclusterrequest)
 12263  	if err != nil {
 12264  		return nil, err
 12265  	}
 12266  	c.urlParams_.Set("alt", alt)
 12267  	c.urlParams_.Set("prettyPrint", "false")
 12268  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/vmwareClusters:enroll")
 12269  	urls += "?" + c.urlParams_.Encode()
 12270  	req, err := http.NewRequest("POST", urls, body)
 12271  	if err != nil {
 12272  		return nil, err
 12273  	}
 12274  	req.Header = reqHeaders
 12275  	googleapi.Expand(req.URL, map[string]string{
 12276  		"parent": c.parent,
 12277  	})
 12278  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12279  }
 12280  
 12281  // Do executes the "gkeonprem.projects.locations.vmwareClusters.enroll" call.
 12282  // Any non-2xx status code is an error. Response headers are in either
 12283  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 12284  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 12285  // whether the returned error was because http.StatusNotModified was returned.
 12286  func (c *ProjectsLocationsVmwareClustersEnrollCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 12287  	gensupport.SetOptions(c.urlParams_, opts...)
 12288  	res, err := c.doRequest("json")
 12289  	if res != nil && res.StatusCode == http.StatusNotModified {
 12290  		if res.Body != nil {
 12291  			res.Body.Close()
 12292  		}
 12293  		return nil, gensupport.WrapError(&googleapi.Error{
 12294  			Code:   res.StatusCode,
 12295  			Header: res.Header,
 12296  		})
 12297  	}
 12298  	if err != nil {
 12299  		return nil, err
 12300  	}
 12301  	defer googleapi.CloseBody(res)
 12302  	if err := googleapi.CheckResponse(res); err != nil {
 12303  		return nil, gensupport.WrapError(err)
 12304  	}
 12305  	ret := &Operation{
 12306  		ServerResponse: googleapi.ServerResponse{
 12307  			Header:         res.Header,
 12308  			HTTPStatusCode: res.StatusCode,
 12309  		},
 12310  	}
 12311  	target := &ret
 12312  	if err := gensupport.DecodeResponse(target, res); err != nil {
 12313  		return nil, err
 12314  	}
 12315  	return ret, nil
 12316  }
 12317  
 12318  type ProjectsLocationsVmwareClustersGetCall struct {
 12319  	s            *Service
 12320  	name         string
 12321  	urlParams_   gensupport.URLParams
 12322  	ifNoneMatch_ string
 12323  	ctx_         context.Context
 12324  	header_      http.Header
 12325  }
 12326  
 12327  // Get: Gets details of a single VMware Cluster.
 12328  //
 12329  //   - name: Name of the VMware user cluster to be returned. Format:
 12330  //     "projects/{project}/locations/{location}/vmwareClusters/{vmware_cluster}".
 12331  func (r *ProjectsLocationsVmwareClustersService) Get(name string) *ProjectsLocationsVmwareClustersGetCall {
 12332  	c := &ProjectsLocationsVmwareClustersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 12333  	c.name = name
 12334  	return c
 12335  }
 12336  
 12337  // View sets the optional parameter "view": View for VMware user cluster. When
 12338  // `BASIC` is specified, only the cluster resource name and admin cluster
 12339  // membership are returned. The default/unset value `CLUSTER_VIEW_UNSPECIFIED`
 12340  // is the same as `FULL', which returns the complete cluster configuration
 12341  // details.
 12342  //
 12343  // Possible values:
 12344  //
 12345  //	"CLUSTER_VIEW_UNSPECIFIED" - If the value is not set, the default `FULL`
 12346  //
 12347  // view is used.
 12348  //
 12349  //	"BASIC" - Includes basic information of a cluster resource including
 12350  //
 12351  // cluster resource name and admin cluster membership.
 12352  //
 12353  //	"FULL" - Includes the complete configuration for VMware cluster resource.
 12354  //
 12355  // This is the default value for GetVmwareClusterRequest method.
 12356  func (c *ProjectsLocationsVmwareClustersGetCall) View(view string) *ProjectsLocationsVmwareClustersGetCall {
 12357  	c.urlParams_.Set("view", view)
 12358  	return c
 12359  }
 12360  
 12361  // Fields allows partial responses to be retrieved. See
 12362  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 12363  // details.
 12364  func (c *ProjectsLocationsVmwareClustersGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersGetCall {
 12365  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 12366  	return c
 12367  }
 12368  
 12369  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 12370  // object's ETag matches the given value. This is useful for getting updates
 12371  // only after the object has changed since the last request.
 12372  func (c *ProjectsLocationsVmwareClustersGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsVmwareClustersGetCall {
 12373  	c.ifNoneMatch_ = entityTag
 12374  	return c
 12375  }
 12376  
 12377  // Context sets the context to be used in this call's Do method.
 12378  func (c *ProjectsLocationsVmwareClustersGetCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersGetCall {
 12379  	c.ctx_ = ctx
 12380  	return c
 12381  }
 12382  
 12383  // Header returns a http.Header that can be modified by the caller to add
 12384  // headers to the request.
 12385  func (c *ProjectsLocationsVmwareClustersGetCall) Header() http.Header {
 12386  	if c.header_ == nil {
 12387  		c.header_ = make(http.Header)
 12388  	}
 12389  	return c.header_
 12390  }
 12391  
 12392  func (c *ProjectsLocationsVmwareClustersGetCall) doRequest(alt string) (*http.Response, error) {
 12393  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 12394  	if c.ifNoneMatch_ != "" {
 12395  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 12396  	}
 12397  	var body io.Reader = nil
 12398  	c.urlParams_.Set("alt", alt)
 12399  	c.urlParams_.Set("prettyPrint", "false")
 12400  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
 12401  	urls += "?" + c.urlParams_.Encode()
 12402  	req, err := http.NewRequest("GET", urls, body)
 12403  	if err != nil {
 12404  		return nil, err
 12405  	}
 12406  	req.Header = reqHeaders
 12407  	googleapi.Expand(req.URL, map[string]string{
 12408  		"name": c.name,
 12409  	})
 12410  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12411  }
 12412  
 12413  // Do executes the "gkeonprem.projects.locations.vmwareClusters.get" call.
 12414  // Any non-2xx status code is an error. Response headers are in either
 12415  // *VmwareCluster.ServerResponse.Header or (if a response was returned at all)
 12416  // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 12417  // whether the returned error was because http.StatusNotModified was returned.
 12418  func (c *ProjectsLocationsVmwareClustersGetCall) Do(opts ...googleapi.CallOption) (*VmwareCluster, error) {
 12419  	gensupport.SetOptions(c.urlParams_, opts...)
 12420  	res, err := c.doRequest("json")
 12421  	if res != nil && res.StatusCode == http.StatusNotModified {
 12422  		if res.Body != nil {
 12423  			res.Body.Close()
 12424  		}
 12425  		return nil, gensupport.WrapError(&googleapi.Error{
 12426  			Code:   res.StatusCode,
 12427  			Header: res.Header,
 12428  		})
 12429  	}
 12430  	if err != nil {
 12431  		return nil, err
 12432  	}
 12433  	defer googleapi.CloseBody(res)
 12434  	if err := googleapi.CheckResponse(res); err != nil {
 12435  		return nil, gensupport.WrapError(err)
 12436  	}
 12437  	ret := &VmwareCluster{
 12438  		ServerResponse: googleapi.ServerResponse{
 12439  			Header:         res.Header,
 12440  			HTTPStatusCode: res.StatusCode,
 12441  		},
 12442  	}
 12443  	target := &ret
 12444  	if err := gensupport.DecodeResponse(target, res); err != nil {
 12445  		return nil, err
 12446  	}
 12447  	return ret, nil
 12448  }
 12449  
 12450  type ProjectsLocationsVmwareClustersGetIamPolicyCall struct {
 12451  	s            *Service
 12452  	resource     string
 12453  	urlParams_   gensupport.URLParams
 12454  	ifNoneMatch_ string
 12455  	ctx_         context.Context
 12456  	header_      http.Header
 12457  }
 12458  
 12459  // GetIamPolicy: Gets the access control policy for a resource. Returns an
 12460  // empty policy if the resource exists and does not have a policy set.
 12461  //
 12462  //   - resource: REQUIRED: The resource for which the policy is being requested.
 12463  //     See Resource names (https://cloud.google.com/apis/design/resource_names)
 12464  //     for the appropriate value for this field.
 12465  func (r *ProjectsLocationsVmwareClustersService) GetIamPolicy(resource string) *ProjectsLocationsVmwareClustersGetIamPolicyCall {
 12466  	c := &ProjectsLocationsVmwareClustersGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 12467  	c.resource = resource
 12468  	return c
 12469  }
 12470  
 12471  // OptionsRequestedPolicyVersion sets the optional parameter
 12472  // "options.requestedPolicyVersion": The maximum policy version that will be
 12473  // used to format the policy. Valid values are 0, 1, and 3. Requests specifying
 12474  // an invalid value will be rejected. Requests for policies with any
 12475  // conditional role bindings must specify version 3. Policies with no
 12476  // conditional role bindings may specify any valid value or leave the field
 12477  // unset. The policy in the response might use the policy version that you
 12478  // specified, or it might use a lower policy version. For example, if you
 12479  // specify version 3, but the policy has no conditional role bindings, the
 12480  // response uses version 1. To learn which resources support conditions in
 12481  // their IAM policies, see the IAM documentation
 12482  // (https://cloud.google.com/iam/help/conditions/resource-policies).
 12483  func (c *ProjectsLocationsVmwareClustersGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsVmwareClustersGetIamPolicyCall {
 12484  	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
 12485  	return c
 12486  }
 12487  
 12488  // Fields allows partial responses to be retrieved. See
 12489  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 12490  // details.
 12491  func (c *ProjectsLocationsVmwareClustersGetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersGetIamPolicyCall {
 12492  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 12493  	return c
 12494  }
 12495  
 12496  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 12497  // object's ETag matches the given value. This is useful for getting updates
 12498  // only after the object has changed since the last request.
 12499  func (c *ProjectsLocationsVmwareClustersGetIamPolicyCall) IfNoneMatch(entityTag string) *ProjectsLocationsVmwareClustersGetIamPolicyCall {
 12500  	c.ifNoneMatch_ = entityTag
 12501  	return c
 12502  }
 12503  
 12504  // Context sets the context to be used in this call's Do method.
 12505  func (c *ProjectsLocationsVmwareClustersGetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersGetIamPolicyCall {
 12506  	c.ctx_ = ctx
 12507  	return c
 12508  }
 12509  
 12510  // Header returns a http.Header that can be modified by the caller to add
 12511  // headers to the request.
 12512  func (c *ProjectsLocationsVmwareClustersGetIamPolicyCall) Header() http.Header {
 12513  	if c.header_ == nil {
 12514  		c.header_ = make(http.Header)
 12515  	}
 12516  	return c.header_
 12517  }
 12518  
 12519  func (c *ProjectsLocationsVmwareClustersGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
 12520  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 12521  	if c.ifNoneMatch_ != "" {
 12522  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 12523  	}
 12524  	var body io.Reader = nil
 12525  	c.urlParams_.Set("alt", alt)
 12526  	c.urlParams_.Set("prettyPrint", "false")
 12527  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:getIamPolicy")
 12528  	urls += "?" + c.urlParams_.Encode()
 12529  	req, err := http.NewRequest("GET", urls, body)
 12530  	if err != nil {
 12531  		return nil, err
 12532  	}
 12533  	req.Header = reqHeaders
 12534  	googleapi.Expand(req.URL, map[string]string{
 12535  		"resource": c.resource,
 12536  	})
 12537  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12538  }
 12539  
 12540  // Do executes the "gkeonprem.projects.locations.vmwareClusters.getIamPolicy" call.
 12541  // Any non-2xx status code is an error. Response headers are in either
 12542  // *Policy.ServerResponse.Header or (if a response was returned at all) in
 12543  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 12544  // whether the returned error was because http.StatusNotModified was returned.
 12545  func (c *ProjectsLocationsVmwareClustersGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
 12546  	gensupport.SetOptions(c.urlParams_, opts...)
 12547  	res, err := c.doRequest("json")
 12548  	if res != nil && res.StatusCode == http.StatusNotModified {
 12549  		if res.Body != nil {
 12550  			res.Body.Close()
 12551  		}
 12552  		return nil, gensupport.WrapError(&googleapi.Error{
 12553  			Code:   res.StatusCode,
 12554  			Header: res.Header,
 12555  		})
 12556  	}
 12557  	if err != nil {
 12558  		return nil, err
 12559  	}
 12560  	defer googleapi.CloseBody(res)
 12561  	if err := googleapi.CheckResponse(res); err != nil {
 12562  		return nil, gensupport.WrapError(err)
 12563  	}
 12564  	ret := &Policy{
 12565  		ServerResponse: googleapi.ServerResponse{
 12566  			Header:         res.Header,
 12567  			HTTPStatusCode: res.StatusCode,
 12568  		},
 12569  	}
 12570  	target := &ret
 12571  	if err := gensupport.DecodeResponse(target, res); err != nil {
 12572  		return nil, err
 12573  	}
 12574  	return ret, nil
 12575  }
 12576  
 12577  type ProjectsLocationsVmwareClustersListCall struct {
 12578  	s            *Service
 12579  	parent       string
 12580  	urlParams_   gensupport.URLParams
 12581  	ifNoneMatch_ string
 12582  	ctx_         context.Context
 12583  	header_      http.Header
 12584  }
 12585  
 12586  // List: Lists VMware Clusters in a given project and location.
 12587  //
 12588  //   - parent: The parent of the project and location where the clusters are
 12589  //     listed in. Format: "projects/{project}/locations/{location}".
 12590  func (r *ProjectsLocationsVmwareClustersService) List(parent string) *ProjectsLocationsVmwareClustersListCall {
 12591  	c := &ProjectsLocationsVmwareClustersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 12592  	c.parent = parent
 12593  	return c
 12594  }
 12595  
 12596  // Filter sets the optional parameter "filter": A resource filtering expression
 12597  // following https://google.aip.dev/160. When non-empty, only resource's whose
 12598  // attributes field matches the filter are returned.
 12599  func (c *ProjectsLocationsVmwareClustersListCall) Filter(filter string) *ProjectsLocationsVmwareClustersListCall {
 12600  	c.urlParams_.Set("filter", filter)
 12601  	return c
 12602  }
 12603  
 12604  // PageSize sets the optional parameter "pageSize": Requested page size. Server
 12605  // may return fewer items than requested. If unspecified, at most 50 clusters
 12606  // will be returned. The maximum value is 1000; values above 1000 will be
 12607  // coerced to 1000.
 12608  func (c *ProjectsLocationsVmwareClustersListCall) PageSize(pageSize int64) *ProjectsLocationsVmwareClustersListCall {
 12609  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
 12610  	return c
 12611  }
 12612  
 12613  // PageToken sets the optional parameter "pageToken": A token identifying a
 12614  // page of results the server should return.
 12615  func (c *ProjectsLocationsVmwareClustersListCall) PageToken(pageToken string) *ProjectsLocationsVmwareClustersListCall {
 12616  	c.urlParams_.Set("pageToken", pageToken)
 12617  	return c
 12618  }
 12619  
 12620  // View sets the optional parameter "view": View for VMware clusters. When
 12621  // `BASIC` is specified, only the cluster resource name and admin cluster
 12622  // membership are returned. The default/unset value `CLUSTER_VIEW_UNSPECIFIED`
 12623  // is the same as `FULL', which returns the complete cluster configuration
 12624  // details.
 12625  //
 12626  // Possible values:
 12627  //
 12628  //	"CLUSTER_VIEW_UNSPECIFIED" - If the value is not set, the default `FULL`
 12629  //
 12630  // view is used.
 12631  //
 12632  //	"BASIC" - Includes basic information of a cluster resource including
 12633  //
 12634  // cluster resource name and admin cluster membership.
 12635  //
 12636  //	"FULL" - Includes the complete configuration for VMware cluster resource.
 12637  //
 12638  // This is the default value for ListVmwareClustersRequest method.
 12639  func (c *ProjectsLocationsVmwareClustersListCall) View(view string) *ProjectsLocationsVmwareClustersListCall {
 12640  	c.urlParams_.Set("view", view)
 12641  	return c
 12642  }
 12643  
 12644  // Fields allows partial responses to be retrieved. See
 12645  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 12646  // details.
 12647  func (c *ProjectsLocationsVmwareClustersListCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersListCall {
 12648  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 12649  	return c
 12650  }
 12651  
 12652  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 12653  // object's ETag matches the given value. This is useful for getting updates
 12654  // only after the object has changed since the last request.
 12655  func (c *ProjectsLocationsVmwareClustersListCall) IfNoneMatch(entityTag string) *ProjectsLocationsVmwareClustersListCall {
 12656  	c.ifNoneMatch_ = entityTag
 12657  	return c
 12658  }
 12659  
 12660  // Context sets the context to be used in this call's Do method.
 12661  func (c *ProjectsLocationsVmwareClustersListCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersListCall {
 12662  	c.ctx_ = ctx
 12663  	return c
 12664  }
 12665  
 12666  // Header returns a http.Header that can be modified by the caller to add
 12667  // headers to the request.
 12668  func (c *ProjectsLocationsVmwareClustersListCall) Header() http.Header {
 12669  	if c.header_ == nil {
 12670  		c.header_ = make(http.Header)
 12671  	}
 12672  	return c.header_
 12673  }
 12674  
 12675  func (c *ProjectsLocationsVmwareClustersListCall) doRequest(alt string) (*http.Response, error) {
 12676  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 12677  	if c.ifNoneMatch_ != "" {
 12678  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 12679  	}
 12680  	var body io.Reader = nil
 12681  	c.urlParams_.Set("alt", alt)
 12682  	c.urlParams_.Set("prettyPrint", "false")
 12683  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/vmwareClusters")
 12684  	urls += "?" + c.urlParams_.Encode()
 12685  	req, err := http.NewRequest("GET", urls, body)
 12686  	if err != nil {
 12687  		return nil, err
 12688  	}
 12689  	req.Header = reqHeaders
 12690  	googleapi.Expand(req.URL, map[string]string{
 12691  		"parent": c.parent,
 12692  	})
 12693  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12694  }
 12695  
 12696  // Do executes the "gkeonprem.projects.locations.vmwareClusters.list" call.
 12697  // Any non-2xx status code is an error. Response headers are in either
 12698  // *ListVmwareClustersResponse.ServerResponse.Header or (if a response was
 12699  // returned at all) in error.(*googleapi.Error).Header. Use
 12700  // googleapi.IsNotModified to check whether the returned error was because
 12701  // http.StatusNotModified was returned.
 12702  func (c *ProjectsLocationsVmwareClustersListCall) Do(opts ...googleapi.CallOption) (*ListVmwareClustersResponse, error) {
 12703  	gensupport.SetOptions(c.urlParams_, opts...)
 12704  	res, err := c.doRequest("json")
 12705  	if res != nil && res.StatusCode == http.StatusNotModified {
 12706  		if res.Body != nil {
 12707  			res.Body.Close()
 12708  		}
 12709  		return nil, gensupport.WrapError(&googleapi.Error{
 12710  			Code:   res.StatusCode,
 12711  			Header: res.Header,
 12712  		})
 12713  	}
 12714  	if err != nil {
 12715  		return nil, err
 12716  	}
 12717  	defer googleapi.CloseBody(res)
 12718  	if err := googleapi.CheckResponse(res); err != nil {
 12719  		return nil, gensupport.WrapError(err)
 12720  	}
 12721  	ret := &ListVmwareClustersResponse{
 12722  		ServerResponse: googleapi.ServerResponse{
 12723  			Header:         res.Header,
 12724  			HTTPStatusCode: res.StatusCode,
 12725  		},
 12726  	}
 12727  	target := &ret
 12728  	if err := gensupport.DecodeResponse(target, res); err != nil {
 12729  		return nil, err
 12730  	}
 12731  	return ret, nil
 12732  }
 12733  
 12734  // Pages invokes f for each page of results.
 12735  // A non-nil error returned from f will halt the iteration.
 12736  // The provided context supersedes any context provided to the Context method.
 12737  func (c *ProjectsLocationsVmwareClustersListCall) Pages(ctx context.Context, f func(*ListVmwareClustersResponse) error) error {
 12738  	c.ctx_ = ctx
 12739  	defer c.PageToken(c.urlParams_.Get("pageToken"))
 12740  	for {
 12741  		x, err := c.Do()
 12742  		if err != nil {
 12743  			return err
 12744  		}
 12745  		if err := f(x); err != nil {
 12746  			return err
 12747  		}
 12748  		if x.NextPageToken == "" {
 12749  			return nil
 12750  		}
 12751  		c.PageToken(x.NextPageToken)
 12752  	}
 12753  }
 12754  
 12755  type ProjectsLocationsVmwareClustersPatchCall struct {
 12756  	s             *Service
 12757  	name          string
 12758  	vmwarecluster *VmwareCluster
 12759  	urlParams_    gensupport.URLParams
 12760  	ctx_          context.Context
 12761  	header_       http.Header
 12762  }
 12763  
 12764  // Patch: Updates the parameters of a single VMware cluster.
 12765  //
 12766  // - name: Immutable. The VMware user cluster resource name.
 12767  func (r *ProjectsLocationsVmwareClustersService) Patch(name string, vmwarecluster *VmwareCluster) *ProjectsLocationsVmwareClustersPatchCall {
 12768  	c := &ProjectsLocationsVmwareClustersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 12769  	c.name = name
 12770  	c.vmwarecluster = vmwarecluster
 12771  	return c
 12772  }
 12773  
 12774  // UpdateMask sets the optional parameter "updateMask": Required. Field mask is
 12775  // used to specify the fields to be overwritten in the VMwareCluster resource
 12776  // by the update. The fields specified in the update_mask are relative to the
 12777  // resource, not the full request. A field will be overwritten if it is in the
 12778  // mask. If the user does not provide a mask then all populated fields in the
 12779  // VmwareCluster message will be updated. Empty fields will be ignored unless a
 12780  // field mask is used.
 12781  func (c *ProjectsLocationsVmwareClustersPatchCall) UpdateMask(updateMask string) *ProjectsLocationsVmwareClustersPatchCall {
 12782  	c.urlParams_.Set("updateMask", updateMask)
 12783  	return c
 12784  }
 12785  
 12786  // ValidateOnly sets the optional parameter "validateOnly": Validate the
 12787  // request without actually doing any updates.
 12788  func (c *ProjectsLocationsVmwareClustersPatchCall) ValidateOnly(validateOnly bool) *ProjectsLocationsVmwareClustersPatchCall {
 12789  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
 12790  	return c
 12791  }
 12792  
 12793  // Fields allows partial responses to be retrieved. See
 12794  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 12795  // details.
 12796  func (c *ProjectsLocationsVmwareClustersPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersPatchCall {
 12797  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 12798  	return c
 12799  }
 12800  
 12801  // Context sets the context to be used in this call's Do method.
 12802  func (c *ProjectsLocationsVmwareClustersPatchCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersPatchCall {
 12803  	c.ctx_ = ctx
 12804  	return c
 12805  }
 12806  
 12807  // Header returns a http.Header that can be modified by the caller to add
 12808  // headers to the request.
 12809  func (c *ProjectsLocationsVmwareClustersPatchCall) Header() http.Header {
 12810  	if c.header_ == nil {
 12811  		c.header_ = make(http.Header)
 12812  	}
 12813  	return c.header_
 12814  }
 12815  
 12816  func (c *ProjectsLocationsVmwareClustersPatchCall) doRequest(alt string) (*http.Response, error) {
 12817  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 12818  	var body io.Reader = nil
 12819  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vmwarecluster)
 12820  	if err != nil {
 12821  		return nil, err
 12822  	}
 12823  	c.urlParams_.Set("alt", alt)
 12824  	c.urlParams_.Set("prettyPrint", "false")
 12825  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
 12826  	urls += "?" + c.urlParams_.Encode()
 12827  	req, err := http.NewRequest("PATCH", urls, body)
 12828  	if err != nil {
 12829  		return nil, err
 12830  	}
 12831  	req.Header = reqHeaders
 12832  	googleapi.Expand(req.URL, map[string]string{
 12833  		"name": c.name,
 12834  	})
 12835  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12836  }
 12837  
 12838  // Do executes the "gkeonprem.projects.locations.vmwareClusters.patch" call.
 12839  // Any non-2xx status code is an error. Response headers are in either
 12840  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 12841  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 12842  // whether the returned error was because http.StatusNotModified was returned.
 12843  func (c *ProjectsLocationsVmwareClustersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 12844  	gensupport.SetOptions(c.urlParams_, opts...)
 12845  	res, err := c.doRequest("json")
 12846  	if res != nil && res.StatusCode == http.StatusNotModified {
 12847  		if res.Body != nil {
 12848  			res.Body.Close()
 12849  		}
 12850  		return nil, gensupport.WrapError(&googleapi.Error{
 12851  			Code:   res.StatusCode,
 12852  			Header: res.Header,
 12853  		})
 12854  	}
 12855  	if err != nil {
 12856  		return nil, err
 12857  	}
 12858  	defer googleapi.CloseBody(res)
 12859  	if err := googleapi.CheckResponse(res); err != nil {
 12860  		return nil, gensupport.WrapError(err)
 12861  	}
 12862  	ret := &Operation{
 12863  		ServerResponse: googleapi.ServerResponse{
 12864  			Header:         res.Header,
 12865  			HTTPStatusCode: res.StatusCode,
 12866  		},
 12867  	}
 12868  	target := &ret
 12869  	if err := gensupport.DecodeResponse(target, res); err != nil {
 12870  		return nil, err
 12871  	}
 12872  	return ret, nil
 12873  }
 12874  
 12875  type ProjectsLocationsVmwareClustersQueryVersionConfigCall struct {
 12876  	s          *Service
 12877  	parent     string
 12878  	urlParams_ gensupport.URLParams
 12879  	ctx_       context.Context
 12880  	header_    http.Header
 12881  }
 12882  
 12883  // QueryVersionConfig: Queries the VMware user cluster version config.
 12884  //
 12885  //   - parent: The parent of the project and location to query for version
 12886  //     config. Format: "projects/{project}/locations/{location}".
 12887  func (r *ProjectsLocationsVmwareClustersService) QueryVersionConfig(parent string) *ProjectsLocationsVmwareClustersQueryVersionConfigCall {
 12888  	c := &ProjectsLocationsVmwareClustersQueryVersionConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 12889  	c.parent = parent
 12890  	return c
 12891  }
 12892  
 12893  // CreateConfigAdminClusterMembership sets the optional parameter
 12894  // "createConfig.adminClusterMembership": The admin cluster membership. This is
 12895  // the full resource name of the admin cluster's fleet membership. Format:
 12896  // "projects/{project}/locations/{location}/memberships/{membership}"
 12897  func (c *ProjectsLocationsVmwareClustersQueryVersionConfigCall) CreateConfigAdminClusterMembership(createConfigAdminClusterMembership string) *ProjectsLocationsVmwareClustersQueryVersionConfigCall {
 12898  	c.urlParams_.Set("createConfig.adminClusterMembership", createConfigAdminClusterMembership)
 12899  	return c
 12900  }
 12901  
 12902  // CreateConfigAdminClusterName sets the optional parameter
 12903  // "createConfig.adminClusterName": The admin cluster resource name. This is
 12904  // the full resource name of the admin cluster resource. Format:
 12905  // "projects/{project}/locations/{location}/vmwareAdminClusters/{vmware_admin_cl
 12906  // uster}"
 12907  func (c *ProjectsLocationsVmwareClustersQueryVersionConfigCall) CreateConfigAdminClusterName(createConfigAdminClusterName string) *ProjectsLocationsVmwareClustersQueryVersionConfigCall {
 12908  	c.urlParams_.Set("createConfig.adminClusterName", createConfigAdminClusterName)
 12909  	return c
 12910  }
 12911  
 12912  // UpgradeConfigClusterName sets the optional parameter
 12913  // "upgradeConfig.clusterName": The user cluster resource name. This is the
 12914  // full resource name of the user cluster resource. Format:
 12915  // "projects/{project}/locations/{location}/vmwareClusters/{vmware_cluster}"
 12916  func (c *ProjectsLocationsVmwareClustersQueryVersionConfigCall) UpgradeConfigClusterName(upgradeConfigClusterName string) *ProjectsLocationsVmwareClustersQueryVersionConfigCall {
 12917  	c.urlParams_.Set("upgradeConfig.clusterName", upgradeConfigClusterName)
 12918  	return c
 12919  }
 12920  
 12921  // Fields allows partial responses to be retrieved. See
 12922  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 12923  // details.
 12924  func (c *ProjectsLocationsVmwareClustersQueryVersionConfigCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersQueryVersionConfigCall {
 12925  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 12926  	return c
 12927  }
 12928  
 12929  // Context sets the context to be used in this call's Do method.
 12930  func (c *ProjectsLocationsVmwareClustersQueryVersionConfigCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersQueryVersionConfigCall {
 12931  	c.ctx_ = ctx
 12932  	return c
 12933  }
 12934  
 12935  // Header returns a http.Header that can be modified by the caller to add
 12936  // headers to the request.
 12937  func (c *ProjectsLocationsVmwareClustersQueryVersionConfigCall) Header() http.Header {
 12938  	if c.header_ == nil {
 12939  		c.header_ = make(http.Header)
 12940  	}
 12941  	return c.header_
 12942  }
 12943  
 12944  func (c *ProjectsLocationsVmwareClustersQueryVersionConfigCall) doRequest(alt string) (*http.Response, error) {
 12945  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 12946  	var body io.Reader = nil
 12947  	c.urlParams_.Set("alt", alt)
 12948  	c.urlParams_.Set("prettyPrint", "false")
 12949  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/vmwareClusters:queryVersionConfig")
 12950  	urls += "?" + c.urlParams_.Encode()
 12951  	req, err := http.NewRequest("POST", urls, body)
 12952  	if err != nil {
 12953  		return nil, err
 12954  	}
 12955  	req.Header = reqHeaders
 12956  	googleapi.Expand(req.URL, map[string]string{
 12957  		"parent": c.parent,
 12958  	})
 12959  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12960  }
 12961  
 12962  // Do executes the "gkeonprem.projects.locations.vmwareClusters.queryVersionConfig" call.
 12963  // Any non-2xx status code is an error. Response headers are in either
 12964  // *QueryVmwareVersionConfigResponse.ServerResponse.Header or (if a response
 12965  // was returned at all) in error.(*googleapi.Error).Header. Use
 12966  // googleapi.IsNotModified to check whether the returned error was because
 12967  // http.StatusNotModified was returned.
 12968  func (c *ProjectsLocationsVmwareClustersQueryVersionConfigCall) Do(opts ...googleapi.CallOption) (*QueryVmwareVersionConfigResponse, error) {
 12969  	gensupport.SetOptions(c.urlParams_, opts...)
 12970  	res, err := c.doRequest("json")
 12971  	if res != nil && res.StatusCode == http.StatusNotModified {
 12972  		if res.Body != nil {
 12973  			res.Body.Close()
 12974  		}
 12975  		return nil, gensupport.WrapError(&googleapi.Error{
 12976  			Code:   res.StatusCode,
 12977  			Header: res.Header,
 12978  		})
 12979  	}
 12980  	if err != nil {
 12981  		return nil, err
 12982  	}
 12983  	defer googleapi.CloseBody(res)
 12984  	if err := googleapi.CheckResponse(res); err != nil {
 12985  		return nil, gensupport.WrapError(err)
 12986  	}
 12987  	ret := &QueryVmwareVersionConfigResponse{
 12988  		ServerResponse: googleapi.ServerResponse{
 12989  			Header:         res.Header,
 12990  			HTTPStatusCode: res.StatusCode,
 12991  		},
 12992  	}
 12993  	target := &ret
 12994  	if err := gensupport.DecodeResponse(target, res); err != nil {
 12995  		return nil, err
 12996  	}
 12997  	return ret, nil
 12998  }
 12999  
 13000  type ProjectsLocationsVmwareClustersSetIamPolicyCall struct {
 13001  	s                   *Service
 13002  	resource            string
 13003  	setiampolicyrequest *SetIamPolicyRequest
 13004  	urlParams_          gensupport.URLParams
 13005  	ctx_                context.Context
 13006  	header_             http.Header
 13007  }
 13008  
 13009  // SetIamPolicy: Sets the access control policy on the specified resource.
 13010  // Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`,
 13011  // and `PERMISSION_DENIED` errors.
 13012  //
 13013  //   - resource: REQUIRED: The resource for which the policy is being specified.
 13014  //     See Resource names (https://cloud.google.com/apis/design/resource_names)
 13015  //     for the appropriate value for this field.
 13016  func (r *ProjectsLocationsVmwareClustersService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *ProjectsLocationsVmwareClustersSetIamPolicyCall {
 13017  	c := &ProjectsLocationsVmwareClustersSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13018  	c.resource = resource
 13019  	c.setiampolicyrequest = setiampolicyrequest
 13020  	return c
 13021  }
 13022  
 13023  // Fields allows partial responses to be retrieved. See
 13024  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 13025  // details.
 13026  func (c *ProjectsLocationsVmwareClustersSetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersSetIamPolicyCall {
 13027  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 13028  	return c
 13029  }
 13030  
 13031  // Context sets the context to be used in this call's Do method.
 13032  func (c *ProjectsLocationsVmwareClustersSetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersSetIamPolicyCall {
 13033  	c.ctx_ = ctx
 13034  	return c
 13035  }
 13036  
 13037  // Header returns a http.Header that can be modified by the caller to add
 13038  // headers to the request.
 13039  func (c *ProjectsLocationsVmwareClustersSetIamPolicyCall) Header() http.Header {
 13040  	if c.header_ == nil {
 13041  		c.header_ = make(http.Header)
 13042  	}
 13043  	return c.header_
 13044  }
 13045  
 13046  func (c *ProjectsLocationsVmwareClustersSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
 13047  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 13048  	var body io.Reader = nil
 13049  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest)
 13050  	if err != nil {
 13051  		return nil, err
 13052  	}
 13053  	c.urlParams_.Set("alt", alt)
 13054  	c.urlParams_.Set("prettyPrint", "false")
 13055  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:setIamPolicy")
 13056  	urls += "?" + c.urlParams_.Encode()
 13057  	req, err := http.NewRequest("POST", urls, body)
 13058  	if err != nil {
 13059  		return nil, err
 13060  	}
 13061  	req.Header = reqHeaders
 13062  	googleapi.Expand(req.URL, map[string]string{
 13063  		"resource": c.resource,
 13064  	})
 13065  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 13066  }
 13067  
 13068  // Do executes the "gkeonprem.projects.locations.vmwareClusters.setIamPolicy" call.
 13069  // Any non-2xx status code is an error. Response headers are in either
 13070  // *Policy.ServerResponse.Header or (if a response was returned at all) in
 13071  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 13072  // whether the returned error was because http.StatusNotModified was returned.
 13073  func (c *ProjectsLocationsVmwareClustersSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
 13074  	gensupport.SetOptions(c.urlParams_, opts...)
 13075  	res, err := c.doRequest("json")
 13076  	if res != nil && res.StatusCode == http.StatusNotModified {
 13077  		if res.Body != nil {
 13078  			res.Body.Close()
 13079  		}
 13080  		return nil, gensupport.WrapError(&googleapi.Error{
 13081  			Code:   res.StatusCode,
 13082  			Header: res.Header,
 13083  		})
 13084  	}
 13085  	if err != nil {
 13086  		return nil, err
 13087  	}
 13088  	defer googleapi.CloseBody(res)
 13089  	if err := googleapi.CheckResponse(res); err != nil {
 13090  		return nil, gensupport.WrapError(err)
 13091  	}
 13092  	ret := &Policy{
 13093  		ServerResponse: googleapi.ServerResponse{
 13094  			Header:         res.Header,
 13095  			HTTPStatusCode: res.StatusCode,
 13096  		},
 13097  	}
 13098  	target := &ret
 13099  	if err := gensupport.DecodeResponse(target, res); err != nil {
 13100  		return nil, err
 13101  	}
 13102  	return ret, nil
 13103  }
 13104  
 13105  type ProjectsLocationsVmwareClustersTestIamPermissionsCall struct {
 13106  	s                         *Service
 13107  	resource                  string
 13108  	testiampermissionsrequest *TestIamPermissionsRequest
 13109  	urlParams_                gensupport.URLParams
 13110  	ctx_                      context.Context
 13111  	header_                   http.Header
 13112  }
 13113  
 13114  // TestIamPermissions: Returns permissions that a caller has on the specified
 13115  // resource. If the resource does not exist, this will return an empty set of
 13116  // permissions, not a `NOT_FOUND` error. Note: This operation is designed to be
 13117  // used for building permission-aware UIs and command-line tools, not for
 13118  // authorization checking. This operation may "fail open" without warning.
 13119  //
 13120  //   - resource: REQUIRED: The resource for which the policy detail is being
 13121  //     requested. See Resource names
 13122  //     (https://cloud.google.com/apis/design/resource_names) for the appropriate
 13123  //     value for this field.
 13124  func (r *ProjectsLocationsVmwareClustersService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *ProjectsLocationsVmwareClustersTestIamPermissionsCall {
 13125  	c := &ProjectsLocationsVmwareClustersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13126  	c.resource = resource
 13127  	c.testiampermissionsrequest = testiampermissionsrequest
 13128  	return c
 13129  }
 13130  
 13131  // Fields allows partial responses to be retrieved. See
 13132  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 13133  // details.
 13134  func (c *ProjectsLocationsVmwareClustersTestIamPermissionsCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersTestIamPermissionsCall {
 13135  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 13136  	return c
 13137  }
 13138  
 13139  // Context sets the context to be used in this call's Do method.
 13140  func (c *ProjectsLocationsVmwareClustersTestIamPermissionsCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersTestIamPermissionsCall {
 13141  	c.ctx_ = ctx
 13142  	return c
 13143  }
 13144  
 13145  // Header returns a http.Header that can be modified by the caller to add
 13146  // headers to the request.
 13147  func (c *ProjectsLocationsVmwareClustersTestIamPermissionsCall) Header() http.Header {
 13148  	if c.header_ == nil {
 13149  		c.header_ = make(http.Header)
 13150  	}
 13151  	return c.header_
 13152  }
 13153  
 13154  func (c *ProjectsLocationsVmwareClustersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
 13155  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 13156  	var body io.Reader = nil
 13157  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest)
 13158  	if err != nil {
 13159  		return nil, err
 13160  	}
 13161  	c.urlParams_.Set("alt", alt)
 13162  	c.urlParams_.Set("prettyPrint", "false")
 13163  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:testIamPermissions")
 13164  	urls += "?" + c.urlParams_.Encode()
 13165  	req, err := http.NewRequest("POST", urls, body)
 13166  	if err != nil {
 13167  		return nil, err
 13168  	}
 13169  	req.Header = reqHeaders
 13170  	googleapi.Expand(req.URL, map[string]string{
 13171  		"resource": c.resource,
 13172  	})
 13173  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 13174  }
 13175  
 13176  // Do executes the "gkeonprem.projects.locations.vmwareClusters.testIamPermissions" call.
 13177  // Any non-2xx status code is an error. Response headers are in either
 13178  // *TestIamPermissionsResponse.ServerResponse.Header or (if a response was
 13179  // returned at all) in error.(*googleapi.Error).Header. Use
 13180  // googleapi.IsNotModified to check whether the returned error was because
 13181  // http.StatusNotModified was returned.
 13182  func (c *ProjectsLocationsVmwareClustersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) {
 13183  	gensupport.SetOptions(c.urlParams_, opts...)
 13184  	res, err := c.doRequest("json")
 13185  	if res != nil && res.StatusCode == http.StatusNotModified {
 13186  		if res.Body != nil {
 13187  			res.Body.Close()
 13188  		}
 13189  		return nil, gensupport.WrapError(&googleapi.Error{
 13190  			Code:   res.StatusCode,
 13191  			Header: res.Header,
 13192  		})
 13193  	}
 13194  	if err != nil {
 13195  		return nil, err
 13196  	}
 13197  	defer googleapi.CloseBody(res)
 13198  	if err := googleapi.CheckResponse(res); err != nil {
 13199  		return nil, gensupport.WrapError(err)
 13200  	}
 13201  	ret := &TestIamPermissionsResponse{
 13202  		ServerResponse: googleapi.ServerResponse{
 13203  			Header:         res.Header,
 13204  			HTTPStatusCode: res.StatusCode,
 13205  		},
 13206  	}
 13207  	target := &ret
 13208  	if err := gensupport.DecodeResponse(target, res); err != nil {
 13209  		return nil, err
 13210  	}
 13211  	return ret, nil
 13212  }
 13213  
 13214  type ProjectsLocationsVmwareClustersUnenrollCall struct {
 13215  	s          *Service
 13216  	name       string
 13217  	urlParams_ gensupport.URLParams
 13218  	ctx_       context.Context
 13219  	header_    http.Header
 13220  }
 13221  
 13222  // Unenroll: Unenrolls an existing VMware user cluster and its node pools from
 13223  // the Anthos On-Prem API within a given project and location. Unenrollment
 13224  // removes the Cloud reference to the cluster without modifying the underlying
 13225  // OnPrem Resources. Clusters and node pools will continue to run; however,
 13226  // they will no longer be accessible through the Anthos On-Prem API or UI.
 13227  //
 13228  //   - name: Name of the VMware user cluster to be unenrolled. Format:
 13229  //     "projects/{project}/locations/{location}/vmwareClusters/{vmware_cluster}".
 13230  func (r *ProjectsLocationsVmwareClustersService) Unenroll(name string) *ProjectsLocationsVmwareClustersUnenrollCall {
 13231  	c := &ProjectsLocationsVmwareClustersUnenrollCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13232  	c.name = name
 13233  	return c
 13234  }
 13235  
 13236  // AllowMissing sets the optional parameter "allowMissing": If set to true, and
 13237  // the VMware cluster is not found, the request will succeed but no action will
 13238  // be taken on the server and return a completed LRO.
 13239  func (c *ProjectsLocationsVmwareClustersUnenrollCall) AllowMissing(allowMissing bool) *ProjectsLocationsVmwareClustersUnenrollCall {
 13240  	c.urlParams_.Set("allowMissing", fmt.Sprint(allowMissing))
 13241  	return c
 13242  }
 13243  
 13244  // Etag sets the optional parameter "etag": The current etag of the VMware
 13245  // Cluster. If an etag is provided and does not match the current etag of the
 13246  // cluster, deletion will be blocked and an ABORTED error will be returned.
 13247  func (c *ProjectsLocationsVmwareClustersUnenrollCall) Etag(etag string) *ProjectsLocationsVmwareClustersUnenrollCall {
 13248  	c.urlParams_.Set("etag", etag)
 13249  	return c
 13250  }
 13251  
 13252  // Force sets the optional parameter "force": This is required if the cluster
 13253  // has any associated node pools. When set, any child node pools will also be
 13254  // unenrolled.
 13255  func (c *ProjectsLocationsVmwareClustersUnenrollCall) Force(force bool) *ProjectsLocationsVmwareClustersUnenrollCall {
 13256  	c.urlParams_.Set("force", fmt.Sprint(force))
 13257  	return c
 13258  }
 13259  
 13260  // ValidateOnly sets the optional parameter "validateOnly": Validate the
 13261  // request without actually doing any updates.
 13262  func (c *ProjectsLocationsVmwareClustersUnenrollCall) ValidateOnly(validateOnly bool) *ProjectsLocationsVmwareClustersUnenrollCall {
 13263  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
 13264  	return c
 13265  }
 13266  
 13267  // Fields allows partial responses to be retrieved. See
 13268  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 13269  // details.
 13270  func (c *ProjectsLocationsVmwareClustersUnenrollCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersUnenrollCall {
 13271  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 13272  	return c
 13273  }
 13274  
 13275  // Context sets the context to be used in this call's Do method.
 13276  func (c *ProjectsLocationsVmwareClustersUnenrollCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersUnenrollCall {
 13277  	c.ctx_ = ctx
 13278  	return c
 13279  }
 13280  
 13281  // Header returns a http.Header that can be modified by the caller to add
 13282  // headers to the request.
 13283  func (c *ProjectsLocationsVmwareClustersUnenrollCall) Header() http.Header {
 13284  	if c.header_ == nil {
 13285  		c.header_ = make(http.Header)
 13286  	}
 13287  	return c.header_
 13288  }
 13289  
 13290  func (c *ProjectsLocationsVmwareClustersUnenrollCall) doRequest(alt string) (*http.Response, error) {
 13291  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 13292  	var body io.Reader = nil
 13293  	c.urlParams_.Set("alt", alt)
 13294  	c.urlParams_.Set("prettyPrint", "false")
 13295  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:unenroll")
 13296  	urls += "?" + c.urlParams_.Encode()
 13297  	req, err := http.NewRequest("DELETE", urls, body)
 13298  	if err != nil {
 13299  		return nil, err
 13300  	}
 13301  	req.Header = reqHeaders
 13302  	googleapi.Expand(req.URL, map[string]string{
 13303  		"name": c.name,
 13304  	})
 13305  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 13306  }
 13307  
 13308  // Do executes the "gkeonprem.projects.locations.vmwareClusters.unenroll" call.
 13309  // Any non-2xx status code is an error. Response headers are in either
 13310  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 13311  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 13312  // whether the returned error was because http.StatusNotModified was returned.
 13313  func (c *ProjectsLocationsVmwareClustersUnenrollCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 13314  	gensupport.SetOptions(c.urlParams_, opts...)
 13315  	res, err := c.doRequest("json")
 13316  	if res != nil && res.StatusCode == http.StatusNotModified {
 13317  		if res.Body != nil {
 13318  			res.Body.Close()
 13319  		}
 13320  		return nil, gensupport.WrapError(&googleapi.Error{
 13321  			Code:   res.StatusCode,
 13322  			Header: res.Header,
 13323  		})
 13324  	}
 13325  	if err != nil {
 13326  		return nil, err
 13327  	}
 13328  	defer googleapi.CloseBody(res)
 13329  	if err := googleapi.CheckResponse(res); err != nil {
 13330  		return nil, gensupport.WrapError(err)
 13331  	}
 13332  	ret := &Operation{
 13333  		ServerResponse: googleapi.ServerResponse{
 13334  			Header:         res.Header,
 13335  			HTTPStatusCode: res.StatusCode,
 13336  		},
 13337  	}
 13338  	target := &ret
 13339  	if err := gensupport.DecodeResponse(target, res); err != nil {
 13340  		return nil, err
 13341  	}
 13342  	return ret, nil
 13343  }
 13344  
 13345  type ProjectsLocationsVmwareClustersOperationsGetCall struct {
 13346  	s            *Service
 13347  	name         string
 13348  	urlParams_   gensupport.URLParams
 13349  	ifNoneMatch_ string
 13350  	ctx_         context.Context
 13351  	header_      http.Header
 13352  }
 13353  
 13354  // Get: Gets the latest state of a long-running operation. Clients can use this
 13355  // method to poll the operation result at intervals as recommended by the API
 13356  // service.
 13357  //
 13358  // - name: The name of the operation resource.
 13359  func (r *ProjectsLocationsVmwareClustersOperationsService) Get(name string) *ProjectsLocationsVmwareClustersOperationsGetCall {
 13360  	c := &ProjectsLocationsVmwareClustersOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13361  	c.name = name
 13362  	return c
 13363  }
 13364  
 13365  // Fields allows partial responses to be retrieved. See
 13366  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 13367  // details.
 13368  func (c *ProjectsLocationsVmwareClustersOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersOperationsGetCall {
 13369  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 13370  	return c
 13371  }
 13372  
 13373  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 13374  // object's ETag matches the given value. This is useful for getting updates
 13375  // only after the object has changed since the last request.
 13376  func (c *ProjectsLocationsVmwareClustersOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsVmwareClustersOperationsGetCall {
 13377  	c.ifNoneMatch_ = entityTag
 13378  	return c
 13379  }
 13380  
 13381  // Context sets the context to be used in this call's Do method.
 13382  func (c *ProjectsLocationsVmwareClustersOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersOperationsGetCall {
 13383  	c.ctx_ = ctx
 13384  	return c
 13385  }
 13386  
 13387  // Header returns a http.Header that can be modified by the caller to add
 13388  // headers to the request.
 13389  func (c *ProjectsLocationsVmwareClustersOperationsGetCall) Header() http.Header {
 13390  	if c.header_ == nil {
 13391  		c.header_ = make(http.Header)
 13392  	}
 13393  	return c.header_
 13394  }
 13395  
 13396  func (c *ProjectsLocationsVmwareClustersOperationsGetCall) doRequest(alt string) (*http.Response, error) {
 13397  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 13398  	if c.ifNoneMatch_ != "" {
 13399  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 13400  	}
 13401  	var body io.Reader = nil
 13402  	c.urlParams_.Set("alt", alt)
 13403  	c.urlParams_.Set("prettyPrint", "false")
 13404  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
 13405  	urls += "?" + c.urlParams_.Encode()
 13406  	req, err := http.NewRequest("GET", urls, body)
 13407  	if err != nil {
 13408  		return nil, err
 13409  	}
 13410  	req.Header = reqHeaders
 13411  	googleapi.Expand(req.URL, map[string]string{
 13412  		"name": c.name,
 13413  	})
 13414  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 13415  }
 13416  
 13417  // Do executes the "gkeonprem.projects.locations.vmwareClusters.operations.get" call.
 13418  // Any non-2xx status code is an error. Response headers are in either
 13419  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 13420  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 13421  // whether the returned error was because http.StatusNotModified was returned.
 13422  func (c *ProjectsLocationsVmwareClustersOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 13423  	gensupport.SetOptions(c.urlParams_, opts...)
 13424  	res, err := c.doRequest("json")
 13425  	if res != nil && res.StatusCode == http.StatusNotModified {
 13426  		if res.Body != nil {
 13427  			res.Body.Close()
 13428  		}
 13429  		return nil, gensupport.WrapError(&googleapi.Error{
 13430  			Code:   res.StatusCode,
 13431  			Header: res.Header,
 13432  		})
 13433  	}
 13434  	if err != nil {
 13435  		return nil, err
 13436  	}
 13437  	defer googleapi.CloseBody(res)
 13438  	if err := googleapi.CheckResponse(res); err != nil {
 13439  		return nil, gensupport.WrapError(err)
 13440  	}
 13441  	ret := &Operation{
 13442  		ServerResponse: googleapi.ServerResponse{
 13443  			Header:         res.Header,
 13444  			HTTPStatusCode: res.StatusCode,
 13445  		},
 13446  	}
 13447  	target := &ret
 13448  	if err := gensupport.DecodeResponse(target, res); err != nil {
 13449  		return nil, err
 13450  	}
 13451  	return ret, nil
 13452  }
 13453  
 13454  type ProjectsLocationsVmwareClustersOperationsListCall struct {
 13455  	s            *Service
 13456  	name         string
 13457  	urlParams_   gensupport.URLParams
 13458  	ifNoneMatch_ string
 13459  	ctx_         context.Context
 13460  	header_      http.Header
 13461  }
 13462  
 13463  // List: Lists operations that match the specified filter in the request. If
 13464  // the server doesn't support this method, it returns `UNIMPLEMENTED`.
 13465  //
 13466  // - name: The name of the operation's parent resource.
 13467  func (r *ProjectsLocationsVmwareClustersOperationsService) List(name string) *ProjectsLocationsVmwareClustersOperationsListCall {
 13468  	c := &ProjectsLocationsVmwareClustersOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13469  	c.name = name
 13470  	return c
 13471  }
 13472  
 13473  // Filter sets the optional parameter "filter": The standard list filter.
 13474  func (c *ProjectsLocationsVmwareClustersOperationsListCall) Filter(filter string) *ProjectsLocationsVmwareClustersOperationsListCall {
 13475  	c.urlParams_.Set("filter", filter)
 13476  	return c
 13477  }
 13478  
 13479  // PageSize sets the optional parameter "pageSize": The standard list page
 13480  // size.
 13481  func (c *ProjectsLocationsVmwareClustersOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsVmwareClustersOperationsListCall {
 13482  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
 13483  	return c
 13484  }
 13485  
 13486  // PageToken sets the optional parameter "pageToken": The standard list page
 13487  // token.
 13488  func (c *ProjectsLocationsVmwareClustersOperationsListCall) PageToken(pageToken string) *ProjectsLocationsVmwareClustersOperationsListCall {
 13489  	c.urlParams_.Set("pageToken", pageToken)
 13490  	return c
 13491  }
 13492  
 13493  // Fields allows partial responses to be retrieved. See
 13494  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 13495  // details.
 13496  func (c *ProjectsLocationsVmwareClustersOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersOperationsListCall {
 13497  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 13498  	return c
 13499  }
 13500  
 13501  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 13502  // object's ETag matches the given value. This is useful for getting updates
 13503  // only after the object has changed since the last request.
 13504  func (c *ProjectsLocationsVmwareClustersOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsVmwareClustersOperationsListCall {
 13505  	c.ifNoneMatch_ = entityTag
 13506  	return c
 13507  }
 13508  
 13509  // Context sets the context to be used in this call's Do method.
 13510  func (c *ProjectsLocationsVmwareClustersOperationsListCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersOperationsListCall {
 13511  	c.ctx_ = ctx
 13512  	return c
 13513  }
 13514  
 13515  // Header returns a http.Header that can be modified by the caller to add
 13516  // headers to the request.
 13517  func (c *ProjectsLocationsVmwareClustersOperationsListCall) Header() http.Header {
 13518  	if c.header_ == nil {
 13519  		c.header_ = make(http.Header)
 13520  	}
 13521  	return c.header_
 13522  }
 13523  
 13524  func (c *ProjectsLocationsVmwareClustersOperationsListCall) doRequest(alt string) (*http.Response, error) {
 13525  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 13526  	if c.ifNoneMatch_ != "" {
 13527  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 13528  	}
 13529  	var body io.Reader = nil
 13530  	c.urlParams_.Set("alt", alt)
 13531  	c.urlParams_.Set("prettyPrint", "false")
 13532  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/operations")
 13533  	urls += "?" + c.urlParams_.Encode()
 13534  	req, err := http.NewRequest("GET", urls, body)
 13535  	if err != nil {
 13536  		return nil, err
 13537  	}
 13538  	req.Header = reqHeaders
 13539  	googleapi.Expand(req.URL, map[string]string{
 13540  		"name": c.name,
 13541  	})
 13542  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 13543  }
 13544  
 13545  // Do executes the "gkeonprem.projects.locations.vmwareClusters.operations.list" call.
 13546  // Any non-2xx status code is an error. Response headers are in either
 13547  // *ListOperationsResponse.ServerResponse.Header or (if a response was returned
 13548  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
 13549  // check whether the returned error was because http.StatusNotModified was
 13550  // returned.
 13551  func (c *ProjectsLocationsVmwareClustersOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
 13552  	gensupport.SetOptions(c.urlParams_, opts...)
 13553  	res, err := c.doRequest("json")
 13554  	if res != nil && res.StatusCode == http.StatusNotModified {
 13555  		if res.Body != nil {
 13556  			res.Body.Close()
 13557  		}
 13558  		return nil, gensupport.WrapError(&googleapi.Error{
 13559  			Code:   res.StatusCode,
 13560  			Header: res.Header,
 13561  		})
 13562  	}
 13563  	if err != nil {
 13564  		return nil, err
 13565  	}
 13566  	defer googleapi.CloseBody(res)
 13567  	if err := googleapi.CheckResponse(res); err != nil {
 13568  		return nil, gensupport.WrapError(err)
 13569  	}
 13570  	ret := &ListOperationsResponse{
 13571  		ServerResponse: googleapi.ServerResponse{
 13572  			Header:         res.Header,
 13573  			HTTPStatusCode: res.StatusCode,
 13574  		},
 13575  	}
 13576  	target := &ret
 13577  	if err := gensupport.DecodeResponse(target, res); err != nil {
 13578  		return nil, err
 13579  	}
 13580  	return ret, nil
 13581  }
 13582  
 13583  // Pages invokes f for each page of results.
 13584  // A non-nil error returned from f will halt the iteration.
 13585  // The provided context supersedes any context provided to the Context method.
 13586  func (c *ProjectsLocationsVmwareClustersOperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
 13587  	c.ctx_ = ctx
 13588  	defer c.PageToken(c.urlParams_.Get("pageToken"))
 13589  	for {
 13590  		x, err := c.Do()
 13591  		if err != nil {
 13592  			return err
 13593  		}
 13594  		if err := f(x); err != nil {
 13595  			return err
 13596  		}
 13597  		if x.NextPageToken == "" {
 13598  			return nil
 13599  		}
 13600  		c.PageToken(x.NextPageToken)
 13601  	}
 13602  }
 13603  
 13604  type ProjectsLocationsVmwareClustersVmwareNodePoolsCreateCall struct {
 13605  	s              *Service
 13606  	parent         string
 13607  	vmwarenodepool *VmwareNodePool
 13608  	urlParams_     gensupport.URLParams
 13609  	ctx_           context.Context
 13610  	header_        http.Header
 13611  }
 13612  
 13613  // Create: Creates a new VMware node pool in a given project, location and
 13614  // VMWare cluster.
 13615  //
 13616  //   - parent: The parent resource where this node pool will be created.
 13617  //     projects/{project}/locations/{location}/vmwareClusters/{cluster}.
 13618  func (r *ProjectsLocationsVmwareClustersVmwareNodePoolsService) Create(parent string, vmwarenodepool *VmwareNodePool) *ProjectsLocationsVmwareClustersVmwareNodePoolsCreateCall {
 13619  	c := &ProjectsLocationsVmwareClustersVmwareNodePoolsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13620  	c.parent = parent
 13621  	c.vmwarenodepool = vmwarenodepool
 13622  	return c
 13623  }
 13624  
 13625  // ValidateOnly sets the optional parameter "validateOnly": If set, only
 13626  // validate the request, but do not actually create the node pool.
 13627  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsCreateCall) ValidateOnly(validateOnly bool) *ProjectsLocationsVmwareClustersVmwareNodePoolsCreateCall {
 13628  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
 13629  	return c
 13630  }
 13631  
 13632  // VmwareNodePoolId sets the optional parameter "vmwareNodePoolId": The ID to
 13633  // use for the node pool, which will become the final component of the node
 13634  // pool's resource name. This value must be up to 40 characters and follow
 13635  // RFC-1123 (https://tools.ietf.org/html/rfc1123) format. The value must not be
 13636  // permitted to be a UUID (or UUID-like: anything matching
 13637  // /^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$/i).
 13638  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsCreateCall) VmwareNodePoolId(vmwareNodePoolId string) *ProjectsLocationsVmwareClustersVmwareNodePoolsCreateCall {
 13639  	c.urlParams_.Set("vmwareNodePoolId", vmwareNodePoolId)
 13640  	return c
 13641  }
 13642  
 13643  // Fields allows partial responses to be retrieved. See
 13644  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 13645  // details.
 13646  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersVmwareNodePoolsCreateCall {
 13647  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 13648  	return c
 13649  }
 13650  
 13651  // Context sets the context to be used in this call's Do method.
 13652  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsCreateCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersVmwareNodePoolsCreateCall {
 13653  	c.ctx_ = ctx
 13654  	return c
 13655  }
 13656  
 13657  // Header returns a http.Header that can be modified by the caller to add
 13658  // headers to the request.
 13659  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsCreateCall) Header() http.Header {
 13660  	if c.header_ == nil {
 13661  		c.header_ = make(http.Header)
 13662  	}
 13663  	return c.header_
 13664  }
 13665  
 13666  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsCreateCall) doRequest(alt string) (*http.Response, error) {
 13667  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 13668  	var body io.Reader = nil
 13669  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vmwarenodepool)
 13670  	if err != nil {
 13671  		return nil, err
 13672  	}
 13673  	c.urlParams_.Set("alt", alt)
 13674  	c.urlParams_.Set("prettyPrint", "false")
 13675  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/vmwareNodePools")
 13676  	urls += "?" + c.urlParams_.Encode()
 13677  	req, err := http.NewRequest("POST", urls, body)
 13678  	if err != nil {
 13679  		return nil, err
 13680  	}
 13681  	req.Header = reqHeaders
 13682  	googleapi.Expand(req.URL, map[string]string{
 13683  		"parent": c.parent,
 13684  	})
 13685  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 13686  }
 13687  
 13688  // Do executes the "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.create" call.
 13689  // Any non-2xx status code is an error. Response headers are in either
 13690  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 13691  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 13692  // whether the returned error was because http.StatusNotModified was returned.
 13693  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 13694  	gensupport.SetOptions(c.urlParams_, opts...)
 13695  	res, err := c.doRequest("json")
 13696  	if res != nil && res.StatusCode == http.StatusNotModified {
 13697  		if res.Body != nil {
 13698  			res.Body.Close()
 13699  		}
 13700  		return nil, gensupport.WrapError(&googleapi.Error{
 13701  			Code:   res.StatusCode,
 13702  			Header: res.Header,
 13703  		})
 13704  	}
 13705  	if err != nil {
 13706  		return nil, err
 13707  	}
 13708  	defer googleapi.CloseBody(res)
 13709  	if err := googleapi.CheckResponse(res); err != nil {
 13710  		return nil, gensupport.WrapError(err)
 13711  	}
 13712  	ret := &Operation{
 13713  		ServerResponse: googleapi.ServerResponse{
 13714  			Header:         res.Header,
 13715  			HTTPStatusCode: res.StatusCode,
 13716  		},
 13717  	}
 13718  	target := &ret
 13719  	if err := gensupport.DecodeResponse(target, res); err != nil {
 13720  		return nil, err
 13721  	}
 13722  	return ret, nil
 13723  }
 13724  
 13725  type ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall struct {
 13726  	s          *Service
 13727  	name       string
 13728  	urlParams_ gensupport.URLParams
 13729  	ctx_       context.Context
 13730  	header_    http.Header
 13731  }
 13732  
 13733  // Delete: Deletes a single VMware node pool.
 13734  //
 13735  //   - name: The name of the node pool to delete. Format:
 13736  //     projects/{project}/locations/{location}/vmwareClusters/{cluster}/vmwareNode
 13737  //     Pools/{nodepool}.
 13738  func (r *ProjectsLocationsVmwareClustersVmwareNodePoolsService) Delete(name string) *ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall {
 13739  	c := &ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13740  	c.name = name
 13741  	return c
 13742  }
 13743  
 13744  // AllowMissing sets the optional parameter "allowMissing": If set to true, and
 13745  // the VMware node pool is not found, the request will succeed but no action
 13746  // will be taken on the server and return a completed LRO.
 13747  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall) AllowMissing(allowMissing bool) *ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall {
 13748  	c.urlParams_.Set("allowMissing", fmt.Sprint(allowMissing))
 13749  	return c
 13750  }
 13751  
 13752  // Etag sets the optional parameter "etag": The current etag of the
 13753  // VmwareNodePool. If an etag is provided and does not match the current etag
 13754  // of the node pool, deletion will be blocked and an ABORTED error will be
 13755  // returned.
 13756  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall) Etag(etag string) *ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall {
 13757  	c.urlParams_.Set("etag", etag)
 13758  	return c
 13759  }
 13760  
 13761  // IgnoreErrors sets the optional parameter "ignoreErrors": If set to true, the
 13762  // deletion of a VMware node pool resource will succeed even if errors occur
 13763  // during deletion. This parameter can be used when you want to delete GCP's
 13764  // node pool resource and you've already deleted the on-prem admin cluster that
 13765  // hosted your node pool. WARNING: Using this parameter when your user cluster
 13766  // still exists may result in a deleted GCP node pool but an existing on-prem
 13767  // node pool.
 13768  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall) IgnoreErrors(ignoreErrors bool) *ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall {
 13769  	c.urlParams_.Set("ignoreErrors", fmt.Sprint(ignoreErrors))
 13770  	return c
 13771  }
 13772  
 13773  // ValidateOnly sets the optional parameter "validateOnly": If set, only
 13774  // validate the request, but do not actually delete the node pool.
 13775  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall) ValidateOnly(validateOnly bool) *ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall {
 13776  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
 13777  	return c
 13778  }
 13779  
 13780  // Fields allows partial responses to be retrieved. See
 13781  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 13782  // details.
 13783  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall {
 13784  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 13785  	return c
 13786  }
 13787  
 13788  // Context sets the context to be used in this call's Do method.
 13789  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall {
 13790  	c.ctx_ = ctx
 13791  	return c
 13792  }
 13793  
 13794  // Header returns a http.Header that can be modified by the caller to add
 13795  // headers to the request.
 13796  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall) Header() http.Header {
 13797  	if c.header_ == nil {
 13798  		c.header_ = make(http.Header)
 13799  	}
 13800  	return c.header_
 13801  }
 13802  
 13803  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
 13804  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 13805  	var body io.Reader = nil
 13806  	c.urlParams_.Set("alt", alt)
 13807  	c.urlParams_.Set("prettyPrint", "false")
 13808  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
 13809  	urls += "?" + c.urlParams_.Encode()
 13810  	req, err := http.NewRequest("DELETE", urls, body)
 13811  	if err != nil {
 13812  		return nil, err
 13813  	}
 13814  	req.Header = reqHeaders
 13815  	googleapi.Expand(req.URL, map[string]string{
 13816  		"name": c.name,
 13817  	})
 13818  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 13819  }
 13820  
 13821  // Do executes the "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.delete" call.
 13822  // Any non-2xx status code is an error. Response headers are in either
 13823  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 13824  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 13825  // whether the returned error was because http.StatusNotModified was returned.
 13826  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 13827  	gensupport.SetOptions(c.urlParams_, opts...)
 13828  	res, err := c.doRequest("json")
 13829  	if res != nil && res.StatusCode == http.StatusNotModified {
 13830  		if res.Body != nil {
 13831  			res.Body.Close()
 13832  		}
 13833  		return nil, gensupport.WrapError(&googleapi.Error{
 13834  			Code:   res.StatusCode,
 13835  			Header: res.Header,
 13836  		})
 13837  	}
 13838  	if err != nil {
 13839  		return nil, err
 13840  	}
 13841  	defer googleapi.CloseBody(res)
 13842  	if err := googleapi.CheckResponse(res); err != nil {
 13843  		return nil, gensupport.WrapError(err)
 13844  	}
 13845  	ret := &Operation{
 13846  		ServerResponse: googleapi.ServerResponse{
 13847  			Header:         res.Header,
 13848  			HTTPStatusCode: res.StatusCode,
 13849  		},
 13850  	}
 13851  	target := &ret
 13852  	if err := gensupport.DecodeResponse(target, res); err != nil {
 13853  		return nil, err
 13854  	}
 13855  	return ret, nil
 13856  }
 13857  
 13858  type ProjectsLocationsVmwareClustersVmwareNodePoolsEnrollCall struct {
 13859  	s                           *Service
 13860  	parent                      string
 13861  	enrollvmwarenodepoolrequest *EnrollVmwareNodePoolRequest
 13862  	urlParams_                  gensupport.URLParams
 13863  	ctx_                        context.Context
 13864  	header_                     http.Header
 13865  }
 13866  
 13867  // Enroll: Enrolls a VMware node pool to Anthos On-Prem API
 13868  //
 13869  // - parent: The parent resource where the node pool is enrolled in.
 13870  func (r *ProjectsLocationsVmwareClustersVmwareNodePoolsService) Enroll(parent string, enrollvmwarenodepoolrequest *EnrollVmwareNodePoolRequest) *ProjectsLocationsVmwareClustersVmwareNodePoolsEnrollCall {
 13871  	c := &ProjectsLocationsVmwareClustersVmwareNodePoolsEnrollCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13872  	c.parent = parent
 13873  	c.enrollvmwarenodepoolrequest = enrollvmwarenodepoolrequest
 13874  	return c
 13875  }
 13876  
 13877  // Fields allows partial responses to be retrieved. See
 13878  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 13879  // details.
 13880  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsEnrollCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersVmwareNodePoolsEnrollCall {
 13881  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 13882  	return c
 13883  }
 13884  
 13885  // Context sets the context to be used in this call's Do method.
 13886  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsEnrollCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersVmwareNodePoolsEnrollCall {
 13887  	c.ctx_ = ctx
 13888  	return c
 13889  }
 13890  
 13891  // Header returns a http.Header that can be modified by the caller to add
 13892  // headers to the request.
 13893  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsEnrollCall) Header() http.Header {
 13894  	if c.header_ == nil {
 13895  		c.header_ = make(http.Header)
 13896  	}
 13897  	return c.header_
 13898  }
 13899  
 13900  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsEnrollCall) doRequest(alt string) (*http.Response, error) {
 13901  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 13902  	var body io.Reader = nil
 13903  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.enrollvmwarenodepoolrequest)
 13904  	if err != nil {
 13905  		return nil, err
 13906  	}
 13907  	c.urlParams_.Set("alt", alt)
 13908  	c.urlParams_.Set("prettyPrint", "false")
 13909  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/vmwareNodePools:enroll")
 13910  	urls += "?" + c.urlParams_.Encode()
 13911  	req, err := http.NewRequest("POST", urls, body)
 13912  	if err != nil {
 13913  		return nil, err
 13914  	}
 13915  	req.Header = reqHeaders
 13916  	googleapi.Expand(req.URL, map[string]string{
 13917  		"parent": c.parent,
 13918  	})
 13919  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 13920  }
 13921  
 13922  // Do executes the "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.enroll" call.
 13923  // Any non-2xx status code is an error. Response headers are in either
 13924  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 13925  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 13926  // whether the returned error was because http.StatusNotModified was returned.
 13927  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsEnrollCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 13928  	gensupport.SetOptions(c.urlParams_, opts...)
 13929  	res, err := c.doRequest("json")
 13930  	if res != nil && res.StatusCode == http.StatusNotModified {
 13931  		if res.Body != nil {
 13932  			res.Body.Close()
 13933  		}
 13934  		return nil, gensupport.WrapError(&googleapi.Error{
 13935  			Code:   res.StatusCode,
 13936  			Header: res.Header,
 13937  		})
 13938  	}
 13939  	if err != nil {
 13940  		return nil, err
 13941  	}
 13942  	defer googleapi.CloseBody(res)
 13943  	if err := googleapi.CheckResponse(res); err != nil {
 13944  		return nil, gensupport.WrapError(err)
 13945  	}
 13946  	ret := &Operation{
 13947  		ServerResponse: googleapi.ServerResponse{
 13948  			Header:         res.Header,
 13949  			HTTPStatusCode: res.StatusCode,
 13950  		},
 13951  	}
 13952  	target := &ret
 13953  	if err := gensupport.DecodeResponse(target, res); err != nil {
 13954  		return nil, err
 13955  	}
 13956  	return ret, nil
 13957  }
 13958  
 13959  type ProjectsLocationsVmwareClustersVmwareNodePoolsGetCall struct {
 13960  	s            *Service
 13961  	name         string
 13962  	urlParams_   gensupport.URLParams
 13963  	ifNoneMatch_ string
 13964  	ctx_         context.Context
 13965  	header_      http.Header
 13966  }
 13967  
 13968  // Get: Gets details of a single VMware node pool.
 13969  //
 13970  //   - name: The name of the node pool to retrieve.
 13971  //     projects/{project}/locations/{location}/vmwareClusters/{cluster}/vmwareNode
 13972  //     Pools/{nodepool}.
 13973  func (r *ProjectsLocationsVmwareClustersVmwareNodePoolsService) Get(name string) *ProjectsLocationsVmwareClustersVmwareNodePoolsGetCall {
 13974  	c := &ProjectsLocationsVmwareClustersVmwareNodePoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13975  	c.name = name
 13976  	return c
 13977  }
 13978  
 13979  // View sets the optional parameter "view": View for VMware node pool. When
 13980  // `BASIC` is specified, only the node pool resource name is returned. The
 13981  // default/unset value `NODE_POOL_VIEW_UNSPECIFIED` is the same as `FULL',
 13982  // which returns the complete node pool configuration details.
 13983  //
 13984  // Possible values:
 13985  //
 13986  //	"NODE_POOL_VIEW_UNSPECIFIED" - If the value is not set, the default `FULL`
 13987  //
 13988  // view is used.
 13989  //
 13990  //	"BASIC" - Includes basic information of a node pool resource including
 13991  //
 13992  // node pool resource name.
 13993  //
 13994  //	"FULL" - Includes the complete configuration for VMware node pool
 13995  //
 13996  // resource. This is the default value for GetVmwareNodePoolRequest method.
 13997  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsGetCall) View(view string) *ProjectsLocationsVmwareClustersVmwareNodePoolsGetCall {
 13998  	c.urlParams_.Set("view", view)
 13999  	return c
 14000  }
 14001  
 14002  // Fields allows partial responses to be retrieved. See
 14003  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 14004  // details.
 14005  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersVmwareNodePoolsGetCall {
 14006  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 14007  	return c
 14008  }
 14009  
 14010  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 14011  // object's ETag matches the given value. This is useful for getting updates
 14012  // only after the object has changed since the last request.
 14013  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsVmwareClustersVmwareNodePoolsGetCall {
 14014  	c.ifNoneMatch_ = entityTag
 14015  	return c
 14016  }
 14017  
 14018  // Context sets the context to be used in this call's Do method.
 14019  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsGetCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersVmwareNodePoolsGetCall {
 14020  	c.ctx_ = ctx
 14021  	return c
 14022  }
 14023  
 14024  // Header returns a http.Header that can be modified by the caller to add
 14025  // headers to the request.
 14026  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsGetCall) Header() http.Header {
 14027  	if c.header_ == nil {
 14028  		c.header_ = make(http.Header)
 14029  	}
 14030  	return c.header_
 14031  }
 14032  
 14033  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsGetCall) doRequest(alt string) (*http.Response, error) {
 14034  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 14035  	if c.ifNoneMatch_ != "" {
 14036  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 14037  	}
 14038  	var body io.Reader = nil
 14039  	c.urlParams_.Set("alt", alt)
 14040  	c.urlParams_.Set("prettyPrint", "false")
 14041  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
 14042  	urls += "?" + c.urlParams_.Encode()
 14043  	req, err := http.NewRequest("GET", urls, body)
 14044  	if err != nil {
 14045  		return nil, err
 14046  	}
 14047  	req.Header = reqHeaders
 14048  	googleapi.Expand(req.URL, map[string]string{
 14049  		"name": c.name,
 14050  	})
 14051  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 14052  }
 14053  
 14054  // Do executes the "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.get" call.
 14055  // Any non-2xx status code is an error. Response headers are in either
 14056  // *VmwareNodePool.ServerResponse.Header or (if a response was returned at all)
 14057  // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 14058  // whether the returned error was because http.StatusNotModified was returned.
 14059  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsGetCall) Do(opts ...googleapi.CallOption) (*VmwareNodePool, error) {
 14060  	gensupport.SetOptions(c.urlParams_, opts...)
 14061  	res, err := c.doRequest("json")
 14062  	if res != nil && res.StatusCode == http.StatusNotModified {
 14063  		if res.Body != nil {
 14064  			res.Body.Close()
 14065  		}
 14066  		return nil, gensupport.WrapError(&googleapi.Error{
 14067  			Code:   res.StatusCode,
 14068  			Header: res.Header,
 14069  		})
 14070  	}
 14071  	if err != nil {
 14072  		return nil, err
 14073  	}
 14074  	defer googleapi.CloseBody(res)
 14075  	if err := googleapi.CheckResponse(res); err != nil {
 14076  		return nil, gensupport.WrapError(err)
 14077  	}
 14078  	ret := &VmwareNodePool{
 14079  		ServerResponse: googleapi.ServerResponse{
 14080  			Header:         res.Header,
 14081  			HTTPStatusCode: res.StatusCode,
 14082  		},
 14083  	}
 14084  	target := &ret
 14085  	if err := gensupport.DecodeResponse(target, res); err != nil {
 14086  		return nil, err
 14087  	}
 14088  	return ret, nil
 14089  }
 14090  
 14091  type ProjectsLocationsVmwareClustersVmwareNodePoolsGetIamPolicyCall struct {
 14092  	s            *Service
 14093  	resource     string
 14094  	urlParams_   gensupport.URLParams
 14095  	ifNoneMatch_ string
 14096  	ctx_         context.Context
 14097  	header_      http.Header
 14098  }
 14099  
 14100  // GetIamPolicy: Gets the access control policy for a resource. Returns an
 14101  // empty policy if the resource exists and does not have a policy set.
 14102  //
 14103  //   - resource: REQUIRED: The resource for which the policy is being requested.
 14104  //     See Resource names (https://cloud.google.com/apis/design/resource_names)
 14105  //     for the appropriate value for this field.
 14106  func (r *ProjectsLocationsVmwareClustersVmwareNodePoolsService) GetIamPolicy(resource string) *ProjectsLocationsVmwareClustersVmwareNodePoolsGetIamPolicyCall {
 14107  	c := &ProjectsLocationsVmwareClustersVmwareNodePoolsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 14108  	c.resource = resource
 14109  	return c
 14110  }
 14111  
 14112  // OptionsRequestedPolicyVersion sets the optional parameter
 14113  // "options.requestedPolicyVersion": The maximum policy version that will be
 14114  // used to format the policy. Valid values are 0, 1, and 3. Requests specifying
 14115  // an invalid value will be rejected. Requests for policies with any
 14116  // conditional role bindings must specify version 3. Policies with no
 14117  // conditional role bindings may specify any valid value or leave the field
 14118  // unset. The policy in the response might use the policy version that you
 14119  // specified, or it might use a lower policy version. For example, if you
 14120  // specify version 3, but the policy has no conditional role bindings, the
 14121  // response uses version 1. To learn which resources support conditions in
 14122  // their IAM policies, see the IAM documentation
 14123  // (https://cloud.google.com/iam/help/conditions/resource-policies).
 14124  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsVmwareClustersVmwareNodePoolsGetIamPolicyCall {
 14125  	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
 14126  	return c
 14127  }
 14128  
 14129  // Fields allows partial responses to be retrieved. See
 14130  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 14131  // details.
 14132  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsGetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersVmwareNodePoolsGetIamPolicyCall {
 14133  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 14134  	return c
 14135  }
 14136  
 14137  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 14138  // object's ETag matches the given value. This is useful for getting updates
 14139  // only after the object has changed since the last request.
 14140  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsGetIamPolicyCall) IfNoneMatch(entityTag string) *ProjectsLocationsVmwareClustersVmwareNodePoolsGetIamPolicyCall {
 14141  	c.ifNoneMatch_ = entityTag
 14142  	return c
 14143  }
 14144  
 14145  // Context sets the context to be used in this call's Do method.
 14146  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsGetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersVmwareNodePoolsGetIamPolicyCall {
 14147  	c.ctx_ = ctx
 14148  	return c
 14149  }
 14150  
 14151  // Header returns a http.Header that can be modified by the caller to add
 14152  // headers to the request.
 14153  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsGetIamPolicyCall) Header() http.Header {
 14154  	if c.header_ == nil {
 14155  		c.header_ = make(http.Header)
 14156  	}
 14157  	return c.header_
 14158  }
 14159  
 14160  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
 14161  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 14162  	if c.ifNoneMatch_ != "" {
 14163  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 14164  	}
 14165  	var body io.Reader = nil
 14166  	c.urlParams_.Set("alt", alt)
 14167  	c.urlParams_.Set("prettyPrint", "false")
 14168  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:getIamPolicy")
 14169  	urls += "?" + c.urlParams_.Encode()
 14170  	req, err := http.NewRequest("GET", urls, body)
 14171  	if err != nil {
 14172  		return nil, err
 14173  	}
 14174  	req.Header = reqHeaders
 14175  	googleapi.Expand(req.URL, map[string]string{
 14176  		"resource": c.resource,
 14177  	})
 14178  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 14179  }
 14180  
 14181  // Do executes the "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.getIamPolicy" call.
 14182  // Any non-2xx status code is an error. Response headers are in either
 14183  // *Policy.ServerResponse.Header or (if a response was returned at all) in
 14184  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 14185  // whether the returned error was because http.StatusNotModified was returned.
 14186  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
 14187  	gensupport.SetOptions(c.urlParams_, opts...)
 14188  	res, err := c.doRequest("json")
 14189  	if res != nil && res.StatusCode == http.StatusNotModified {
 14190  		if res.Body != nil {
 14191  			res.Body.Close()
 14192  		}
 14193  		return nil, gensupport.WrapError(&googleapi.Error{
 14194  			Code:   res.StatusCode,
 14195  			Header: res.Header,
 14196  		})
 14197  	}
 14198  	if err != nil {
 14199  		return nil, err
 14200  	}
 14201  	defer googleapi.CloseBody(res)
 14202  	if err := googleapi.CheckResponse(res); err != nil {
 14203  		return nil, gensupport.WrapError(err)
 14204  	}
 14205  	ret := &Policy{
 14206  		ServerResponse: googleapi.ServerResponse{
 14207  			Header:         res.Header,
 14208  			HTTPStatusCode: res.StatusCode,
 14209  		},
 14210  	}
 14211  	target := &ret
 14212  	if err := gensupport.DecodeResponse(target, res); err != nil {
 14213  		return nil, err
 14214  	}
 14215  	return ret, nil
 14216  }
 14217  
 14218  type ProjectsLocationsVmwareClustersVmwareNodePoolsListCall struct {
 14219  	s            *Service
 14220  	parent       string
 14221  	urlParams_   gensupport.URLParams
 14222  	ifNoneMatch_ string
 14223  	ctx_         context.Context
 14224  	header_      http.Header
 14225  }
 14226  
 14227  // List: Lists VMware node pools in a given project, location and VMWare
 14228  // cluster.
 14229  //
 14230  //   - parent: The parent, which owns this collection of node pools. Format:
 14231  //     projects/{project}/locations/{location}/vmwareClusters/{vmwareCluster}.
 14232  func (r *ProjectsLocationsVmwareClustersVmwareNodePoolsService) List(parent string) *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall {
 14233  	c := &ProjectsLocationsVmwareClustersVmwareNodePoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 14234  	c.parent = parent
 14235  	return c
 14236  }
 14237  
 14238  // PageSize sets the optional parameter "pageSize": The maximum number of node
 14239  // pools to return. The service may return fewer than this value. If
 14240  // unspecified, at most 50 node pools will be returned. The maximum value is
 14241  // 1000; values above 1000 will be coerced to 1000.
 14242  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall) PageSize(pageSize int64) *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall {
 14243  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
 14244  	return c
 14245  }
 14246  
 14247  // PageToken sets the optional parameter "pageToken": A page token, received
 14248  // from a previous `ListVmwareNodePools` call. Provide this to retrieve the
 14249  // subsequent page. When paginating, all other parameters provided to
 14250  // `ListVmwareNodePools` must match the call that provided the page token.
 14251  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall) PageToken(pageToken string) *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall {
 14252  	c.urlParams_.Set("pageToken", pageToken)
 14253  	return c
 14254  }
 14255  
 14256  // View sets the optional parameter "view": View for VMware node pools. When
 14257  // `BASIC` is specified, only the node pool resource name is returned. The
 14258  // default/unset value `NODE_POOL_VIEW_UNSPECIFIED` is the same as `FULL',
 14259  // which returns the complete node pool configuration details.
 14260  //
 14261  // Possible values:
 14262  //
 14263  //	"NODE_POOL_VIEW_UNSPECIFIED" - If the value is not set, the default `FULL`
 14264  //
 14265  // view is used.
 14266  //
 14267  //	"BASIC" - Includes basic information of a node pool resource including
 14268  //
 14269  // node pool resource name.
 14270  //
 14271  //	"FULL" - Includes the complete configuration for VMware node pool
 14272  //
 14273  // resource. This is the default value for ListVmwareNodePoolsRequest method.
 14274  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall) View(view string) *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall {
 14275  	c.urlParams_.Set("view", view)
 14276  	return c
 14277  }
 14278  
 14279  // Fields allows partial responses to be retrieved. See
 14280  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 14281  // details.
 14282  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall {
 14283  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 14284  	return c
 14285  }
 14286  
 14287  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 14288  // object's ETag matches the given value. This is useful for getting updates
 14289  // only after the object has changed since the last request.
 14290  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall {
 14291  	c.ifNoneMatch_ = entityTag
 14292  	return c
 14293  }
 14294  
 14295  // Context sets the context to be used in this call's Do method.
 14296  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall {
 14297  	c.ctx_ = ctx
 14298  	return c
 14299  }
 14300  
 14301  // Header returns a http.Header that can be modified by the caller to add
 14302  // headers to the request.
 14303  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall) Header() http.Header {
 14304  	if c.header_ == nil {
 14305  		c.header_ = make(http.Header)
 14306  	}
 14307  	return c.header_
 14308  }
 14309  
 14310  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall) doRequest(alt string) (*http.Response, error) {
 14311  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 14312  	if c.ifNoneMatch_ != "" {
 14313  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 14314  	}
 14315  	var body io.Reader = nil
 14316  	c.urlParams_.Set("alt", alt)
 14317  	c.urlParams_.Set("prettyPrint", "false")
 14318  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/vmwareNodePools")
 14319  	urls += "?" + c.urlParams_.Encode()
 14320  	req, err := http.NewRequest("GET", urls, body)
 14321  	if err != nil {
 14322  		return nil, err
 14323  	}
 14324  	req.Header = reqHeaders
 14325  	googleapi.Expand(req.URL, map[string]string{
 14326  		"parent": c.parent,
 14327  	})
 14328  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 14329  }
 14330  
 14331  // Do executes the "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.list" call.
 14332  // Any non-2xx status code is an error. Response headers are in either
 14333  // *ListVmwareNodePoolsResponse.ServerResponse.Header or (if a response was
 14334  // returned at all) in error.(*googleapi.Error).Header. Use
 14335  // googleapi.IsNotModified to check whether the returned error was because
 14336  // http.StatusNotModified was returned.
 14337  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall) Do(opts ...googleapi.CallOption) (*ListVmwareNodePoolsResponse, error) {
 14338  	gensupport.SetOptions(c.urlParams_, opts...)
 14339  	res, err := c.doRequest("json")
 14340  	if res != nil && res.StatusCode == http.StatusNotModified {
 14341  		if res.Body != nil {
 14342  			res.Body.Close()
 14343  		}
 14344  		return nil, gensupport.WrapError(&googleapi.Error{
 14345  			Code:   res.StatusCode,
 14346  			Header: res.Header,
 14347  		})
 14348  	}
 14349  	if err != nil {
 14350  		return nil, err
 14351  	}
 14352  	defer googleapi.CloseBody(res)
 14353  	if err := googleapi.CheckResponse(res); err != nil {
 14354  		return nil, gensupport.WrapError(err)
 14355  	}
 14356  	ret := &ListVmwareNodePoolsResponse{
 14357  		ServerResponse: googleapi.ServerResponse{
 14358  			Header:         res.Header,
 14359  			HTTPStatusCode: res.StatusCode,
 14360  		},
 14361  	}
 14362  	target := &ret
 14363  	if err := gensupport.DecodeResponse(target, res); err != nil {
 14364  		return nil, err
 14365  	}
 14366  	return ret, nil
 14367  }
 14368  
 14369  // Pages invokes f for each page of results.
 14370  // A non-nil error returned from f will halt the iteration.
 14371  // The provided context supersedes any context provided to the Context method.
 14372  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsListCall) Pages(ctx context.Context, f func(*ListVmwareNodePoolsResponse) error) error {
 14373  	c.ctx_ = ctx
 14374  	defer c.PageToken(c.urlParams_.Get("pageToken"))
 14375  	for {
 14376  		x, err := c.Do()
 14377  		if err != nil {
 14378  			return err
 14379  		}
 14380  		if err := f(x); err != nil {
 14381  			return err
 14382  		}
 14383  		if x.NextPageToken == "" {
 14384  			return nil
 14385  		}
 14386  		c.PageToken(x.NextPageToken)
 14387  	}
 14388  }
 14389  
 14390  type ProjectsLocationsVmwareClustersVmwareNodePoolsPatchCall struct {
 14391  	s              *Service
 14392  	name           string
 14393  	vmwarenodepool *VmwareNodePool
 14394  	urlParams_     gensupport.URLParams
 14395  	ctx_           context.Context
 14396  	header_        http.Header
 14397  }
 14398  
 14399  // Patch: Updates the parameters of a single VMware node pool.
 14400  //
 14401  // - name: Immutable. The resource name of this node pool.
 14402  func (r *ProjectsLocationsVmwareClustersVmwareNodePoolsService) Patch(name string, vmwarenodepool *VmwareNodePool) *ProjectsLocationsVmwareClustersVmwareNodePoolsPatchCall {
 14403  	c := &ProjectsLocationsVmwareClustersVmwareNodePoolsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 14404  	c.name = name
 14405  	c.vmwarenodepool = vmwarenodepool
 14406  	return c
 14407  }
 14408  
 14409  // UpdateMask sets the optional parameter "updateMask": Required. Field mask is
 14410  // used to specify the fields to be overwritten in the VMwareNodePool resource
 14411  // by the update. The fields specified in the update_mask are relative to the
 14412  // resource, not the full request. A field will be overwritten if it is in the
 14413  // mask. If the user does not provide a mask then all populated fields in the
 14414  // VMwareNodePool message will be updated. Empty fields will be ignored unless
 14415  // a field mask is used.
 14416  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsVmwareClustersVmwareNodePoolsPatchCall {
 14417  	c.urlParams_.Set("updateMask", updateMask)
 14418  	return c
 14419  }
 14420  
 14421  // ValidateOnly sets the optional parameter "validateOnly": Validate the
 14422  // request without actually doing any updates.
 14423  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsPatchCall) ValidateOnly(validateOnly bool) *ProjectsLocationsVmwareClustersVmwareNodePoolsPatchCall {
 14424  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
 14425  	return c
 14426  }
 14427  
 14428  // Fields allows partial responses to be retrieved. See
 14429  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 14430  // details.
 14431  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersVmwareNodePoolsPatchCall {
 14432  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 14433  	return c
 14434  }
 14435  
 14436  // Context sets the context to be used in this call's Do method.
 14437  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsPatchCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersVmwareNodePoolsPatchCall {
 14438  	c.ctx_ = ctx
 14439  	return c
 14440  }
 14441  
 14442  // Header returns a http.Header that can be modified by the caller to add
 14443  // headers to the request.
 14444  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsPatchCall) Header() http.Header {
 14445  	if c.header_ == nil {
 14446  		c.header_ = make(http.Header)
 14447  	}
 14448  	return c.header_
 14449  }
 14450  
 14451  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsPatchCall) doRequest(alt string) (*http.Response, error) {
 14452  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 14453  	var body io.Reader = nil
 14454  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vmwarenodepool)
 14455  	if err != nil {
 14456  		return nil, err
 14457  	}
 14458  	c.urlParams_.Set("alt", alt)
 14459  	c.urlParams_.Set("prettyPrint", "false")
 14460  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
 14461  	urls += "?" + c.urlParams_.Encode()
 14462  	req, err := http.NewRequest("PATCH", urls, body)
 14463  	if err != nil {
 14464  		return nil, err
 14465  	}
 14466  	req.Header = reqHeaders
 14467  	googleapi.Expand(req.URL, map[string]string{
 14468  		"name": c.name,
 14469  	})
 14470  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 14471  }
 14472  
 14473  // Do executes the "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.patch" call.
 14474  // Any non-2xx status code is an error. Response headers are in either
 14475  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 14476  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 14477  // whether the returned error was because http.StatusNotModified was returned.
 14478  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 14479  	gensupport.SetOptions(c.urlParams_, opts...)
 14480  	res, err := c.doRequest("json")
 14481  	if res != nil && res.StatusCode == http.StatusNotModified {
 14482  		if res.Body != nil {
 14483  			res.Body.Close()
 14484  		}
 14485  		return nil, gensupport.WrapError(&googleapi.Error{
 14486  			Code:   res.StatusCode,
 14487  			Header: res.Header,
 14488  		})
 14489  	}
 14490  	if err != nil {
 14491  		return nil, err
 14492  	}
 14493  	defer googleapi.CloseBody(res)
 14494  	if err := googleapi.CheckResponse(res); err != nil {
 14495  		return nil, gensupport.WrapError(err)
 14496  	}
 14497  	ret := &Operation{
 14498  		ServerResponse: googleapi.ServerResponse{
 14499  			Header:         res.Header,
 14500  			HTTPStatusCode: res.StatusCode,
 14501  		},
 14502  	}
 14503  	target := &ret
 14504  	if err := gensupport.DecodeResponse(target, res); err != nil {
 14505  		return nil, err
 14506  	}
 14507  	return ret, nil
 14508  }
 14509  
 14510  type ProjectsLocationsVmwareClustersVmwareNodePoolsSetIamPolicyCall struct {
 14511  	s                   *Service
 14512  	resource            string
 14513  	setiampolicyrequest *SetIamPolicyRequest
 14514  	urlParams_          gensupport.URLParams
 14515  	ctx_                context.Context
 14516  	header_             http.Header
 14517  }
 14518  
 14519  // SetIamPolicy: Sets the access control policy on the specified resource.
 14520  // Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`,
 14521  // and `PERMISSION_DENIED` errors.
 14522  //
 14523  //   - resource: REQUIRED: The resource for which the policy is being specified.
 14524  //     See Resource names (https://cloud.google.com/apis/design/resource_names)
 14525  //     for the appropriate value for this field.
 14526  func (r *ProjectsLocationsVmwareClustersVmwareNodePoolsService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *ProjectsLocationsVmwareClustersVmwareNodePoolsSetIamPolicyCall {
 14527  	c := &ProjectsLocationsVmwareClustersVmwareNodePoolsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 14528  	c.resource = resource
 14529  	c.setiampolicyrequest = setiampolicyrequest
 14530  	return c
 14531  }
 14532  
 14533  // Fields allows partial responses to be retrieved. See
 14534  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 14535  // details.
 14536  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsSetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersVmwareNodePoolsSetIamPolicyCall {
 14537  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 14538  	return c
 14539  }
 14540  
 14541  // Context sets the context to be used in this call's Do method.
 14542  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsSetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersVmwareNodePoolsSetIamPolicyCall {
 14543  	c.ctx_ = ctx
 14544  	return c
 14545  }
 14546  
 14547  // Header returns a http.Header that can be modified by the caller to add
 14548  // headers to the request.
 14549  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsSetIamPolicyCall) Header() http.Header {
 14550  	if c.header_ == nil {
 14551  		c.header_ = make(http.Header)
 14552  	}
 14553  	return c.header_
 14554  }
 14555  
 14556  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
 14557  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 14558  	var body io.Reader = nil
 14559  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest)
 14560  	if err != nil {
 14561  		return nil, err
 14562  	}
 14563  	c.urlParams_.Set("alt", alt)
 14564  	c.urlParams_.Set("prettyPrint", "false")
 14565  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:setIamPolicy")
 14566  	urls += "?" + c.urlParams_.Encode()
 14567  	req, err := http.NewRequest("POST", urls, body)
 14568  	if err != nil {
 14569  		return nil, err
 14570  	}
 14571  	req.Header = reqHeaders
 14572  	googleapi.Expand(req.URL, map[string]string{
 14573  		"resource": c.resource,
 14574  	})
 14575  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 14576  }
 14577  
 14578  // Do executes the "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.setIamPolicy" call.
 14579  // Any non-2xx status code is an error. Response headers are in either
 14580  // *Policy.ServerResponse.Header or (if a response was returned at all) in
 14581  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 14582  // whether the returned error was because http.StatusNotModified was returned.
 14583  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
 14584  	gensupport.SetOptions(c.urlParams_, opts...)
 14585  	res, err := c.doRequest("json")
 14586  	if res != nil && res.StatusCode == http.StatusNotModified {
 14587  		if res.Body != nil {
 14588  			res.Body.Close()
 14589  		}
 14590  		return nil, gensupport.WrapError(&googleapi.Error{
 14591  			Code:   res.StatusCode,
 14592  			Header: res.Header,
 14593  		})
 14594  	}
 14595  	if err != nil {
 14596  		return nil, err
 14597  	}
 14598  	defer googleapi.CloseBody(res)
 14599  	if err := googleapi.CheckResponse(res); err != nil {
 14600  		return nil, gensupport.WrapError(err)
 14601  	}
 14602  	ret := &Policy{
 14603  		ServerResponse: googleapi.ServerResponse{
 14604  			Header:         res.Header,
 14605  			HTTPStatusCode: res.StatusCode,
 14606  		},
 14607  	}
 14608  	target := &ret
 14609  	if err := gensupport.DecodeResponse(target, res); err != nil {
 14610  		return nil, err
 14611  	}
 14612  	return ret, nil
 14613  }
 14614  
 14615  type ProjectsLocationsVmwareClustersVmwareNodePoolsTestIamPermissionsCall struct {
 14616  	s                         *Service
 14617  	resource                  string
 14618  	testiampermissionsrequest *TestIamPermissionsRequest
 14619  	urlParams_                gensupport.URLParams
 14620  	ctx_                      context.Context
 14621  	header_                   http.Header
 14622  }
 14623  
 14624  // TestIamPermissions: Returns permissions that a caller has on the specified
 14625  // resource. If the resource does not exist, this will return an empty set of
 14626  // permissions, not a `NOT_FOUND` error. Note: This operation is designed to be
 14627  // used for building permission-aware UIs and command-line tools, not for
 14628  // authorization checking. This operation may "fail open" without warning.
 14629  //
 14630  //   - resource: REQUIRED: The resource for which the policy detail is being
 14631  //     requested. See Resource names
 14632  //     (https://cloud.google.com/apis/design/resource_names) for the appropriate
 14633  //     value for this field.
 14634  func (r *ProjectsLocationsVmwareClustersVmwareNodePoolsService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *ProjectsLocationsVmwareClustersVmwareNodePoolsTestIamPermissionsCall {
 14635  	c := &ProjectsLocationsVmwareClustersVmwareNodePoolsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 14636  	c.resource = resource
 14637  	c.testiampermissionsrequest = testiampermissionsrequest
 14638  	return c
 14639  }
 14640  
 14641  // Fields allows partial responses to be retrieved. See
 14642  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 14643  // details.
 14644  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersVmwareNodePoolsTestIamPermissionsCall {
 14645  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 14646  	return c
 14647  }
 14648  
 14649  // Context sets the context to be used in this call's Do method.
 14650  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsTestIamPermissionsCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersVmwareNodePoolsTestIamPermissionsCall {
 14651  	c.ctx_ = ctx
 14652  	return c
 14653  }
 14654  
 14655  // Header returns a http.Header that can be modified by the caller to add
 14656  // headers to the request.
 14657  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsTestIamPermissionsCall) Header() http.Header {
 14658  	if c.header_ == nil {
 14659  		c.header_ = make(http.Header)
 14660  	}
 14661  	return c.header_
 14662  }
 14663  
 14664  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
 14665  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 14666  	var body io.Reader = nil
 14667  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest)
 14668  	if err != nil {
 14669  		return nil, err
 14670  	}
 14671  	c.urlParams_.Set("alt", alt)
 14672  	c.urlParams_.Set("prettyPrint", "false")
 14673  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:testIamPermissions")
 14674  	urls += "?" + c.urlParams_.Encode()
 14675  	req, err := http.NewRequest("POST", urls, body)
 14676  	if err != nil {
 14677  		return nil, err
 14678  	}
 14679  	req.Header = reqHeaders
 14680  	googleapi.Expand(req.URL, map[string]string{
 14681  		"resource": c.resource,
 14682  	})
 14683  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 14684  }
 14685  
 14686  // Do executes the "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.testIamPermissions" call.
 14687  // Any non-2xx status code is an error. Response headers are in either
 14688  // *TestIamPermissionsResponse.ServerResponse.Header or (if a response was
 14689  // returned at all) in error.(*googleapi.Error).Header. Use
 14690  // googleapi.IsNotModified to check whether the returned error was because
 14691  // http.StatusNotModified was returned.
 14692  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) {
 14693  	gensupport.SetOptions(c.urlParams_, opts...)
 14694  	res, err := c.doRequest("json")
 14695  	if res != nil && res.StatusCode == http.StatusNotModified {
 14696  		if res.Body != nil {
 14697  			res.Body.Close()
 14698  		}
 14699  		return nil, gensupport.WrapError(&googleapi.Error{
 14700  			Code:   res.StatusCode,
 14701  			Header: res.Header,
 14702  		})
 14703  	}
 14704  	if err != nil {
 14705  		return nil, err
 14706  	}
 14707  	defer googleapi.CloseBody(res)
 14708  	if err := googleapi.CheckResponse(res); err != nil {
 14709  		return nil, gensupport.WrapError(err)
 14710  	}
 14711  	ret := &TestIamPermissionsResponse{
 14712  		ServerResponse: googleapi.ServerResponse{
 14713  			Header:         res.Header,
 14714  			HTTPStatusCode: res.StatusCode,
 14715  		},
 14716  	}
 14717  	target := &ret
 14718  	if err := gensupport.DecodeResponse(target, res); err != nil {
 14719  		return nil, err
 14720  	}
 14721  	return ret, nil
 14722  }
 14723  
 14724  type ProjectsLocationsVmwareClustersVmwareNodePoolsUnenrollCall struct {
 14725  	s          *Service
 14726  	name       string
 14727  	urlParams_ gensupport.URLParams
 14728  	ctx_       context.Context
 14729  	header_    http.Header
 14730  }
 14731  
 14732  // Unenroll: Unenrolls a VMware node pool to Anthos On-Prem API
 14733  //
 14734  //   - name: The name of the node pool to unenroll. Format:
 14735  //     projects/{project}/locations/{location}/vmwareClusters/{cluster}/vmwareNode
 14736  //     Pools/{nodepool}.
 14737  func (r *ProjectsLocationsVmwareClustersVmwareNodePoolsService) Unenroll(name string) *ProjectsLocationsVmwareClustersVmwareNodePoolsUnenrollCall {
 14738  	c := &ProjectsLocationsVmwareClustersVmwareNodePoolsUnenrollCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 14739  	c.name = name
 14740  	return c
 14741  }
 14742  
 14743  // AllowMissing sets the optional parameter "allowMissing": If set to true, and
 14744  // the VMware node pool is not found, the request will succeed but no action
 14745  // will be taken on the server and return a completed LRO.
 14746  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsUnenrollCall) AllowMissing(allowMissing bool) *ProjectsLocationsVmwareClustersVmwareNodePoolsUnenrollCall {
 14747  	c.urlParams_.Set("allowMissing", fmt.Sprint(allowMissing))
 14748  	return c
 14749  }
 14750  
 14751  // Etag sets the optional parameter "etag": The current etag of the VMware node
 14752  // pool. If an etag is provided and does not match the current etag of node
 14753  // pool, deletion will be blocked and an ABORTED error will be returned.
 14754  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsUnenrollCall) Etag(etag string) *ProjectsLocationsVmwareClustersVmwareNodePoolsUnenrollCall {
 14755  	c.urlParams_.Set("etag", etag)
 14756  	return c
 14757  }
 14758  
 14759  // ValidateOnly sets the optional parameter "validateOnly": If set, only
 14760  // validate the request, but do not actually unenroll the node pool.
 14761  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsUnenrollCall) ValidateOnly(validateOnly bool) *ProjectsLocationsVmwareClustersVmwareNodePoolsUnenrollCall {
 14762  	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
 14763  	return c
 14764  }
 14765  
 14766  // Fields allows partial responses to be retrieved. See
 14767  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 14768  // details.
 14769  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsUnenrollCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersVmwareNodePoolsUnenrollCall {
 14770  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 14771  	return c
 14772  }
 14773  
 14774  // Context sets the context to be used in this call's Do method.
 14775  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsUnenrollCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersVmwareNodePoolsUnenrollCall {
 14776  	c.ctx_ = ctx
 14777  	return c
 14778  }
 14779  
 14780  // Header returns a http.Header that can be modified by the caller to add
 14781  // headers to the request.
 14782  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsUnenrollCall) Header() http.Header {
 14783  	if c.header_ == nil {
 14784  		c.header_ = make(http.Header)
 14785  	}
 14786  	return c.header_
 14787  }
 14788  
 14789  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsUnenrollCall) doRequest(alt string) (*http.Response, error) {
 14790  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 14791  	var body io.Reader = nil
 14792  	c.urlParams_.Set("alt", alt)
 14793  	c.urlParams_.Set("prettyPrint", "false")
 14794  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:unenroll")
 14795  	urls += "?" + c.urlParams_.Encode()
 14796  	req, err := http.NewRequest("DELETE", urls, body)
 14797  	if err != nil {
 14798  		return nil, err
 14799  	}
 14800  	req.Header = reqHeaders
 14801  	googleapi.Expand(req.URL, map[string]string{
 14802  		"name": c.name,
 14803  	})
 14804  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 14805  }
 14806  
 14807  // Do executes the "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.unenroll" call.
 14808  // Any non-2xx status code is an error. Response headers are in either
 14809  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 14810  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 14811  // whether the returned error was because http.StatusNotModified was returned.
 14812  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsUnenrollCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 14813  	gensupport.SetOptions(c.urlParams_, opts...)
 14814  	res, err := c.doRequest("json")
 14815  	if res != nil && res.StatusCode == http.StatusNotModified {
 14816  		if res.Body != nil {
 14817  			res.Body.Close()
 14818  		}
 14819  		return nil, gensupport.WrapError(&googleapi.Error{
 14820  			Code:   res.StatusCode,
 14821  			Header: res.Header,
 14822  		})
 14823  	}
 14824  	if err != nil {
 14825  		return nil, err
 14826  	}
 14827  	defer googleapi.CloseBody(res)
 14828  	if err := googleapi.CheckResponse(res); err != nil {
 14829  		return nil, gensupport.WrapError(err)
 14830  	}
 14831  	ret := &Operation{
 14832  		ServerResponse: googleapi.ServerResponse{
 14833  			Header:         res.Header,
 14834  			HTTPStatusCode: res.StatusCode,
 14835  		},
 14836  	}
 14837  	target := &ret
 14838  	if err := gensupport.DecodeResponse(target, res); err != nil {
 14839  		return nil, err
 14840  	}
 14841  	return ret, nil
 14842  }
 14843  
 14844  type ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsGetCall struct {
 14845  	s            *Service
 14846  	name         string
 14847  	urlParams_   gensupport.URLParams
 14848  	ifNoneMatch_ string
 14849  	ctx_         context.Context
 14850  	header_      http.Header
 14851  }
 14852  
 14853  // Get: Gets the latest state of a long-running operation. Clients can use this
 14854  // method to poll the operation result at intervals as recommended by the API
 14855  // service.
 14856  //
 14857  // - name: The name of the operation resource.
 14858  func (r *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsService) Get(name string) *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsGetCall {
 14859  	c := &ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 14860  	c.name = name
 14861  	return c
 14862  }
 14863  
 14864  // Fields allows partial responses to be retrieved. See
 14865  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 14866  // details.
 14867  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsGetCall {
 14868  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 14869  	return c
 14870  }
 14871  
 14872  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 14873  // object's ETag matches the given value. This is useful for getting updates
 14874  // only after the object has changed since the last request.
 14875  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsGetCall {
 14876  	c.ifNoneMatch_ = entityTag
 14877  	return c
 14878  }
 14879  
 14880  // Context sets the context to be used in this call's Do method.
 14881  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsGetCall {
 14882  	c.ctx_ = ctx
 14883  	return c
 14884  }
 14885  
 14886  // Header returns a http.Header that can be modified by the caller to add
 14887  // headers to the request.
 14888  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsGetCall) Header() http.Header {
 14889  	if c.header_ == nil {
 14890  		c.header_ = make(http.Header)
 14891  	}
 14892  	return c.header_
 14893  }
 14894  
 14895  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
 14896  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 14897  	if c.ifNoneMatch_ != "" {
 14898  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 14899  	}
 14900  	var body io.Reader = nil
 14901  	c.urlParams_.Set("alt", alt)
 14902  	c.urlParams_.Set("prettyPrint", "false")
 14903  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
 14904  	urls += "?" + c.urlParams_.Encode()
 14905  	req, err := http.NewRequest("GET", urls, body)
 14906  	if err != nil {
 14907  		return nil, err
 14908  	}
 14909  	req.Header = reqHeaders
 14910  	googleapi.Expand(req.URL, map[string]string{
 14911  		"name": c.name,
 14912  	})
 14913  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 14914  }
 14915  
 14916  // Do executes the "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.operations.get" call.
 14917  // Any non-2xx status code is an error. Response headers are in either
 14918  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 14919  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 14920  // whether the returned error was because http.StatusNotModified was returned.
 14921  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 14922  	gensupport.SetOptions(c.urlParams_, opts...)
 14923  	res, err := c.doRequest("json")
 14924  	if res != nil && res.StatusCode == http.StatusNotModified {
 14925  		if res.Body != nil {
 14926  			res.Body.Close()
 14927  		}
 14928  		return nil, gensupport.WrapError(&googleapi.Error{
 14929  			Code:   res.StatusCode,
 14930  			Header: res.Header,
 14931  		})
 14932  	}
 14933  	if err != nil {
 14934  		return nil, err
 14935  	}
 14936  	defer googleapi.CloseBody(res)
 14937  	if err := googleapi.CheckResponse(res); err != nil {
 14938  		return nil, gensupport.WrapError(err)
 14939  	}
 14940  	ret := &Operation{
 14941  		ServerResponse: googleapi.ServerResponse{
 14942  			Header:         res.Header,
 14943  			HTTPStatusCode: res.StatusCode,
 14944  		},
 14945  	}
 14946  	target := &ret
 14947  	if err := gensupport.DecodeResponse(target, res); err != nil {
 14948  		return nil, err
 14949  	}
 14950  	return ret, nil
 14951  }
 14952  
 14953  type ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall struct {
 14954  	s            *Service
 14955  	name         string
 14956  	urlParams_   gensupport.URLParams
 14957  	ifNoneMatch_ string
 14958  	ctx_         context.Context
 14959  	header_      http.Header
 14960  }
 14961  
 14962  // List: Lists operations that match the specified filter in the request. If
 14963  // the server doesn't support this method, it returns `UNIMPLEMENTED`.
 14964  //
 14965  // - name: The name of the operation's parent resource.
 14966  func (r *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsService) List(name string) *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall {
 14967  	c := &ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 14968  	c.name = name
 14969  	return c
 14970  }
 14971  
 14972  // Filter sets the optional parameter "filter": The standard list filter.
 14973  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall) Filter(filter string) *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall {
 14974  	c.urlParams_.Set("filter", filter)
 14975  	return c
 14976  }
 14977  
 14978  // PageSize sets the optional parameter "pageSize": The standard list page
 14979  // size.
 14980  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall {
 14981  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
 14982  	return c
 14983  }
 14984  
 14985  // PageToken sets the optional parameter "pageToken": The standard list page
 14986  // token.
 14987  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall) PageToken(pageToken string) *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall {
 14988  	c.urlParams_.Set("pageToken", pageToken)
 14989  	return c
 14990  }
 14991  
 14992  // Fields allows partial responses to be retrieved. See
 14993  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 14994  // details.
 14995  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall {
 14996  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 14997  	return c
 14998  }
 14999  
 15000  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 15001  // object's ETag matches the given value. This is useful for getting updates
 15002  // only after the object has changed since the last request.
 15003  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall {
 15004  	c.ifNoneMatch_ = entityTag
 15005  	return c
 15006  }
 15007  
 15008  // Context sets the context to be used in this call's Do method.
 15009  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall) Context(ctx context.Context) *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall {
 15010  	c.ctx_ = ctx
 15011  	return c
 15012  }
 15013  
 15014  // Header returns a http.Header that can be modified by the caller to add
 15015  // headers to the request.
 15016  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall) Header() http.Header {
 15017  	if c.header_ == nil {
 15018  		c.header_ = make(http.Header)
 15019  	}
 15020  	return c.header_
 15021  }
 15022  
 15023  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall) doRequest(alt string) (*http.Response, error) {
 15024  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 15025  	if c.ifNoneMatch_ != "" {
 15026  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 15027  	}
 15028  	var body io.Reader = nil
 15029  	c.urlParams_.Set("alt", alt)
 15030  	c.urlParams_.Set("prettyPrint", "false")
 15031  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/operations")
 15032  	urls += "?" + c.urlParams_.Encode()
 15033  	req, err := http.NewRequest("GET", urls, body)
 15034  	if err != nil {
 15035  		return nil, err
 15036  	}
 15037  	req.Header = reqHeaders
 15038  	googleapi.Expand(req.URL, map[string]string{
 15039  		"name": c.name,
 15040  	})
 15041  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 15042  }
 15043  
 15044  // Do executes the "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.operations.list" call.
 15045  // Any non-2xx status code is an error. Response headers are in either
 15046  // *ListOperationsResponse.ServerResponse.Header or (if a response was returned
 15047  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
 15048  // check whether the returned error was because http.StatusNotModified was
 15049  // returned.
 15050  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
 15051  	gensupport.SetOptions(c.urlParams_, opts...)
 15052  	res, err := c.doRequest("json")
 15053  	if res != nil && res.StatusCode == http.StatusNotModified {
 15054  		if res.Body != nil {
 15055  			res.Body.Close()
 15056  		}
 15057  		return nil, gensupport.WrapError(&googleapi.Error{
 15058  			Code:   res.StatusCode,
 15059  			Header: res.Header,
 15060  		})
 15061  	}
 15062  	if err != nil {
 15063  		return nil, err
 15064  	}
 15065  	defer googleapi.CloseBody(res)
 15066  	if err := googleapi.CheckResponse(res); err != nil {
 15067  		return nil, gensupport.WrapError(err)
 15068  	}
 15069  	ret := &ListOperationsResponse{
 15070  		ServerResponse: googleapi.ServerResponse{
 15071  			Header:         res.Header,
 15072  			HTTPStatusCode: res.StatusCode,
 15073  		},
 15074  	}
 15075  	target := &ret
 15076  	if err := gensupport.DecodeResponse(target, res); err != nil {
 15077  		return nil, err
 15078  	}
 15079  	return ret, nil
 15080  }
 15081  
 15082  // Pages invokes f for each page of results.
 15083  // A non-nil error returned from f will halt the iteration.
 15084  // The provided context supersedes any context provided to the Context method.
 15085  func (c *ProjectsLocationsVmwareClustersVmwareNodePoolsOperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
 15086  	c.ctx_ = ctx
 15087  	defer c.PageToken(c.urlParams_.Get("pageToken"))
 15088  	for {
 15089  		x, err := c.Do()
 15090  		if err != nil {
 15091  			return err
 15092  		}
 15093  		if err := f(x); err != nil {
 15094  			return err
 15095  		}
 15096  		if x.NextPageToken == "" {
 15097  			return nil
 15098  		}
 15099  		c.PageToken(x.NextPageToken)
 15100  	}
 15101  }
 15102  

View as plain text