...

Source file src/google.golang.org/api/gkehub/v1alpha2/gkehub-gen.go

Documentation: google.golang.org/api/gkehub/v1alpha2

     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 gkehub provides access to the GKE Hub API.
     8  //
     9  // For product documentation, see: https://cloud.google.com/anthos/multicluster-management/connect/registering-a-cluster
    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/gkehub/v1alpha2"
    27  //	...
    28  //	ctx := context.Background()
    29  //	gkehubService, err := gkehub.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  //	gkehubService, err := gkehub.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  //	gkehubService, err := gkehub.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
    49  //
    50  // See [google.golang.org/api/option.ClientOption] for details on options.
    51  package gkehub // import "google.golang.org/api/gkehub/v1alpha2"
    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 = "gkehub:v1alpha2"
    90  const apiName = "gkehub"
    91  const apiVersion = "v1alpha2"
    92  const basePath = "https://gkehub.googleapis.com/"
    93  const basePathTemplate = "https://gkehub.UNIVERSE_DOMAIN/"
    94  const mtlsBasePath = "https://gkehub.mtls.googleapis.com/"
    95  const defaultUniverseDomain = "googleapis.com"
    96  
    97  // OAuth2 scopes used by this API.
    98  const (
    99  	// See, edit, configure, and delete your Google Cloud data and see the
   100  	// email address for your Google Account.
   101  	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
   102  )
   103  
   104  // NewService creates a new Service.
   105  func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
   106  	scopesOption := internaloption.WithDefaultScopes(
   107  		"https://www.googleapis.com/auth/cloud-platform",
   108  	)
   109  	// NOTE: prepend, so we don't override user-specified scopes.
   110  	opts = append([]option.ClientOption{scopesOption}, opts...)
   111  	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
   112  	opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
   113  	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
   114  	opts = append(opts, internaloption.WithDefaultUniverseDomain(defaultUniverseDomain))
   115  	client, endpoint, err := htransport.NewClient(ctx, opts...)
   116  	if err != nil {
   117  		return nil, err
   118  	}
   119  	s, err := New(client)
   120  	if err != nil {
   121  		return nil, err
   122  	}
   123  	if endpoint != "" {
   124  		s.BasePath = endpoint
   125  	}
   126  	return s, nil
   127  }
   128  
   129  // New creates a new Service. It uses the provided http.Client for requests.
   130  //
   131  // Deprecated: please use NewService instead.
   132  // To provide a custom HTTP client, use option.WithHTTPClient.
   133  // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
   134  func New(client *http.Client) (*Service, error) {
   135  	if client == nil {
   136  		return nil, errors.New("client is nil")
   137  	}
   138  	s := &Service{client: client, BasePath: basePath}
   139  	s.Projects = NewProjectsService(s)
   140  	return s, nil
   141  }
   142  
   143  type Service struct {
   144  	client    *http.Client
   145  	BasePath  string // API endpoint base URL
   146  	UserAgent string // optional additional User-Agent fragment
   147  
   148  	Projects *ProjectsService
   149  }
   150  
   151  func (s *Service) userAgent() string {
   152  	if s.UserAgent == "" {
   153  		return googleapi.UserAgent
   154  	}
   155  	return googleapi.UserAgent + " " + s.UserAgent
   156  }
   157  
   158  func NewProjectsService(s *Service) *ProjectsService {
   159  	rs := &ProjectsService{s: s}
   160  	rs.Locations = NewProjectsLocationsService(s)
   161  	return rs
   162  }
   163  
   164  type ProjectsService struct {
   165  	s *Service
   166  
   167  	Locations *ProjectsLocationsService
   168  }
   169  
   170  func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
   171  	rs := &ProjectsLocationsService{s: s}
   172  	rs.Global = NewProjectsLocationsGlobalService(s)
   173  	rs.Memberships = NewProjectsLocationsMembershipsService(s)
   174  	rs.Operations = NewProjectsLocationsOperationsService(s)
   175  	return rs
   176  }
   177  
   178  type ProjectsLocationsService struct {
   179  	s *Service
   180  
   181  	Global *ProjectsLocationsGlobalService
   182  
   183  	Memberships *ProjectsLocationsMembershipsService
   184  
   185  	Operations *ProjectsLocationsOperationsService
   186  }
   187  
   188  func NewProjectsLocationsGlobalService(s *Service) *ProjectsLocationsGlobalService {
   189  	rs := &ProjectsLocationsGlobalService{s: s}
   190  	rs.Memberships = NewProjectsLocationsGlobalMembershipsService(s)
   191  	return rs
   192  }
   193  
   194  type ProjectsLocationsGlobalService struct {
   195  	s *Service
   196  
   197  	Memberships *ProjectsLocationsGlobalMembershipsService
   198  }
   199  
   200  func NewProjectsLocationsGlobalMembershipsService(s *Service) *ProjectsLocationsGlobalMembershipsService {
   201  	rs := &ProjectsLocationsGlobalMembershipsService{s: s}
   202  	return rs
   203  }
   204  
   205  type ProjectsLocationsGlobalMembershipsService struct {
   206  	s *Service
   207  }
   208  
   209  func NewProjectsLocationsMembershipsService(s *Service) *ProjectsLocationsMembershipsService {
   210  	rs := &ProjectsLocationsMembershipsService{s: s}
   211  	return rs
   212  }
   213  
   214  type ProjectsLocationsMembershipsService struct {
   215  	s *Service
   216  }
   217  
   218  func NewProjectsLocationsOperationsService(s *Service) *ProjectsLocationsOperationsService {
   219  	rs := &ProjectsLocationsOperationsService{s: s}
   220  	return rs
   221  }
   222  
   223  type ProjectsLocationsOperationsService struct {
   224  	s *Service
   225  }
   226  
   227  // ApplianceCluster: ApplianceCluster contains information specific to
   228  // GDC Edge Appliance Clusters.
   229  type ApplianceCluster struct {
   230  	// ResourceLink: Immutable. Self-link of the Google Cloud resource for
   231  	// the Appliance Cluster. For example:
   232  	// //transferappliance.googleapis.com/projects/my-project/locations/us-we
   233  	// st1-a/appliances/my-appliance
   234  	ResourceLink string `json:"resourceLink,omitempty"`
   235  
   236  	// ForceSendFields is a list of field names (e.g. "ResourceLink") to
   237  	// unconditionally include in API requests. By default, fields with
   238  	// empty or default values are omitted from API requests. However, any
   239  	// non-pointer, non-interface field appearing in ForceSendFields will be
   240  	// sent to the server regardless of whether the field is empty or not.
   241  	// This may be used to include empty fields in Patch requests.
   242  	ForceSendFields []string `json:"-"`
   243  
   244  	// NullFields is a list of field names (e.g. "ResourceLink") to include
   245  	// in API requests with the JSON null value. By default, fields with
   246  	// empty values are omitted from API requests. However, any field with
   247  	// an empty value appearing in NullFields will be sent to the server as
   248  	// null. It is an error if a field in this list has a non-empty value.
   249  	// This may be used to include null fields in Patch requests.
   250  	NullFields []string `json:"-"`
   251  }
   252  
   253  func (s *ApplianceCluster) MarshalJSON() ([]byte, error) {
   254  	type NoMethod ApplianceCluster
   255  	raw := NoMethod(*s)
   256  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   257  }
   258  
   259  // AuditConfig: Specifies the audit configuration for a service. The
   260  // configuration determines which permission types are logged, and what
   261  // identities, if any, are exempted from logging. An AuditConfig must
   262  // have one or more AuditLogConfigs. If there are AuditConfigs for both
   263  // `allServices` and a specific service, the union of the two
   264  // AuditConfigs is used for that service: the log_types specified in
   265  // each AuditConfig are enabled, and the exempted_members in each
   266  // AuditLogConfig are exempted. Example Policy with multiple
   267  // AuditConfigs: { "audit_configs": [ { "service": "allServices",
   268  // "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members":
   269  // [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, {
   270  // "log_type": "ADMIN_READ" } ] }, { "service":
   271  // "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type":
   272  // "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [
   273  // "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy
   274  // enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts
   275  // `jose@example.com` from DATA_READ logging, and `aliya@example.com`
   276  // from DATA_WRITE logging.
   277  type AuditConfig struct {
   278  	// AuditLogConfigs: The configuration for logging of each type of
   279  	// permission.
   280  	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
   281  
   282  	// Service: Specifies a service that will be enabled for audit logging.
   283  	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
   284  	// `allServices` is a special value that covers all services.
   285  	Service string `json:"service,omitempty"`
   286  
   287  	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
   288  	// unconditionally include in API requests. By default, fields with
   289  	// empty or default values are omitted from API requests. However, any
   290  	// non-pointer, non-interface field appearing in ForceSendFields will be
   291  	// sent to the server regardless of whether the field is empty or not.
   292  	// This may be used to include empty fields in Patch requests.
   293  	ForceSendFields []string `json:"-"`
   294  
   295  	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
   296  	// include in API requests with the JSON null value. By default, fields
   297  	// with empty values are omitted from API requests. However, any field
   298  	// with an empty value appearing in NullFields will be sent to the
   299  	// server as null. It is an error if a field in this list has a
   300  	// non-empty value. This may be used to include null fields in Patch
   301  	// requests.
   302  	NullFields []string `json:"-"`
   303  }
   304  
   305  func (s *AuditConfig) MarshalJSON() ([]byte, error) {
   306  	type NoMethod AuditConfig
   307  	raw := NoMethod(*s)
   308  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   309  }
   310  
   311  // AuditLogConfig: Provides the configuration for logging a type of
   312  // permissions. Example: { "audit_log_configs": [ { "log_type":
   313  // "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, {
   314  // "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and
   315  // 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ
   316  // logging.
   317  type AuditLogConfig struct {
   318  	// ExemptedMembers: Specifies the identities that do not cause logging
   319  	// for this type of permission. Follows the same format of
   320  	// Binding.members.
   321  	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
   322  
   323  	// LogType: The log type that this config enables.
   324  	//
   325  	// Possible values:
   326  	//   "LOG_TYPE_UNSPECIFIED" - Default case. Should never be this.
   327  	//   "ADMIN_READ" - Admin reads. Example: CloudIAM getIamPolicy
   328  	//   "DATA_WRITE" - Data writes. Example: CloudSQL Users create
   329  	//   "DATA_READ" - Data reads. Example: CloudSQL Users list
   330  	LogType string `json:"logType,omitempty"`
   331  
   332  	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
   333  	// unconditionally include in API requests. By default, fields with
   334  	// empty or default values are omitted from API requests. However, any
   335  	// non-pointer, non-interface field appearing in ForceSendFields will be
   336  	// sent to the server regardless of whether the field is empty or not.
   337  	// This may be used to include empty fields in Patch requests.
   338  	ForceSendFields []string `json:"-"`
   339  
   340  	// NullFields is a list of field names (e.g. "ExemptedMembers") to
   341  	// include in API requests with the JSON null value. By default, fields
   342  	// with empty values are omitted from API requests. However, any field
   343  	// with an empty value appearing in NullFields will be sent to the
   344  	// server as null. It is an error if a field in this list has a
   345  	// non-empty value. This may be used to include null fields in Patch
   346  	// requests.
   347  	NullFields []string `json:"-"`
   348  }
   349  
   350  func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
   351  	type NoMethod AuditLogConfig
   352  	raw := NoMethod(*s)
   353  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   354  }
   355  
   356  // Authority: Authority encodes how Google will recognize identities
   357  // from this Membership. See the workload identity documentation for
   358  // more details:
   359  // https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
   360  type Authority struct {
   361  	// IdentityProvider: Output only. An identity provider that reflects the
   362  	// `issuer` in the workload identity pool.
   363  	IdentityProvider string `json:"identityProvider,omitempty"`
   364  
   365  	// Issuer: Optional. A JSON Web Token (JWT) issuer URI. `issuer` must
   366  	// start with `https://` and be a valid URL with length <2000
   367  	// characters. If set, then Google will allow valid OIDC tokens from
   368  	// this issuer to authenticate within the workload_identity_pool. OIDC
   369  	// discovery will be performed on this URI to validate tokens from the
   370  	// issuer, unless `oidc_jwks` is set. Clearing `issuer` disables
   371  	// Workload Identity. `issuer` cannot be directly modified; it must be
   372  	// cleared (and Workload Identity disabled) before using a new issuer
   373  	// (and re-enabling Workload Identity).
   374  	Issuer string `json:"issuer,omitempty"`
   375  
   376  	// OidcJwks: Optional. OIDC verification keys for this Membership in
   377  	// JWKS format (RFC 7517). When this field is set, OIDC discovery will
   378  	// NOT be performed on `issuer`, and instead OIDC tokens will be
   379  	// validated using this field.
   380  	OidcJwks string `json:"oidcJwks,omitempty"`
   381  
   382  	// WorkloadIdentityPool: Output only. The name of the workload identity
   383  	// pool in which `issuer` will be recognized. There is a single Workload
   384  	// Identity Pool per Hub that is shared between all Memberships that
   385  	// belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload
   386  	// pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject
   387  	// to change in newer versions of this API.
   388  	WorkloadIdentityPool string `json:"workloadIdentityPool,omitempty"`
   389  
   390  	// ForceSendFields is a list of field names (e.g. "IdentityProvider") to
   391  	// unconditionally include in API requests. By default, fields with
   392  	// empty or default values are omitted from API requests. However, any
   393  	// non-pointer, non-interface field appearing in ForceSendFields will be
   394  	// sent to the server regardless of whether the field is empty or not.
   395  	// This may be used to include empty fields in Patch requests.
   396  	ForceSendFields []string `json:"-"`
   397  
   398  	// NullFields is a list of field names (e.g. "IdentityProvider") to
   399  	// include in API requests with the JSON null value. By default, fields
   400  	// with empty values are omitted from API requests. However, any field
   401  	// with an empty value appearing in NullFields will be sent to the
   402  	// server as null. It is an error if a field in this list has a
   403  	// non-empty value. This may be used to include null fields in Patch
   404  	// requests.
   405  	NullFields []string `json:"-"`
   406  }
   407  
   408  func (s *Authority) MarshalJSON() ([]byte, error) {
   409  	type NoMethod Authority
   410  	raw := NoMethod(*s)
   411  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   412  }
   413  
   414  // Binding: Associates `members`, or principals, with a `role`.
   415  type Binding struct {
   416  	// Condition: The condition that is associated with this binding. If the
   417  	// condition evaluates to `true`, then this binding applies to the
   418  	// current request. If the condition evaluates to `false`, then this
   419  	// binding does not apply to the current request. However, a different
   420  	// role binding might grant the same role to one or more of the
   421  	// principals in this binding. To learn which resources support
   422  	// conditions in their IAM policies, see the IAM documentation
   423  	// (https://cloud.google.com/iam/help/conditions/resource-policies).
   424  	Condition *Expr `json:"condition,omitempty"`
   425  
   426  	// Members: Specifies the principals requesting access for a Google
   427  	// Cloud resource. `members` can have the following values: *
   428  	// `allUsers`: A special identifier that represents anyone who is on the
   429  	// internet; with or without a Google account. *
   430  	// `allAuthenticatedUsers`: A special identifier that represents anyone
   431  	// who is authenticated with a Google account or a service account. Does
   432  	// not include identities that come from external identity providers
   433  	// (IdPs) through identity federation. * `user:{emailid}`: An email
   434  	// address that represents a specific Google account. For example,
   435  	// `alice@example.com` . * `serviceAccount:{emailid}`: An email address
   436  	// that represents a Google service account. For example,
   437  	// `my-other-app@appspot.gserviceaccount.com`. *
   438  	// `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`:
   439  	//  An identifier for a Kubernetes service account
   440  	// (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts).
   441  	// For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`.
   442  	// * `group:{emailid}`: An email address that represents a Google group.
   443  	// For example, `admins@example.com`. * `domain:{domain}`: The G Suite
   444  	// domain (primary) that represents all the users of that domain. For
   445  	// example, `google.com` or `example.com`. *
   446  	// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_
   447  	// id}/subject/{subject_attribute_value}`: A single identity in a
   448  	// workforce identity pool. *
   449  	// `principalSet://iam.googleapis.com/locations/global/workforcePools/{po
   450  	// ol_id}/group/{group_id}`: All workforce identities in a group. *
   451  	// `principalSet://iam.googleapis.com/locations/global/workforcePools/{po
   452  	// ol_id}/attribute.{attribute_name}/{attribute_value}`: All workforce
   453  	// identities with a specific attribute value. *
   454  	// `principalSet://iam.googleapis.com/locations/global/workforcePools/{po
   455  	// ol_id}/*`: All identities in a workforce identity pool. *
   456  	// `principal://iam.googleapis.com/projects/{project_number}/locations/gl
   457  	// obal/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}
   458  	// `: A single identity in a workload identity pool. *
   459  	// `principalSet://iam.googleapis.com/projects/{project_number}/locations
   460  	// /global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload
   461  	// identity pool group. *
   462  	// `principalSet://iam.googleapis.com/projects/{project_number}/locations
   463  	// /global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{at
   464  	// tribute_value}`: All identities in a workload identity pool with a
   465  	// certain attribute. *
   466  	// `principalSet://iam.googleapis.com/projects/{project_number}/locations
   467  	// /global/workloadIdentityPools/{pool_id}/*`: All identities in a
   468  	// workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An
   469  	// email address (plus unique identifier) representing a user that has
   470  	// been recently deleted. For example,
   471  	// `alice@example.com?uid=123456789012345678901`. If the user is
   472  	// recovered, this value reverts to `user:{emailid}` and the recovered
   473  	// user retains the role in the binding. *
   474  	// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
   475  	// (plus unique identifier) representing a service account that has been
   476  	// recently deleted. For example,
   477  	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
   478  	// If the service account is undeleted, this value reverts to
   479  	// `serviceAccount:{emailid}` and the undeleted service account retains
   480  	// the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`:
   481  	// An email address (plus unique identifier) representing a Google group
   482  	// that has been recently deleted. For example,
   483  	// `admins@example.com?uid=123456789012345678901`. If the group is
   484  	// recovered, this value reverts to `group:{emailid}` and the recovered
   485  	// group retains the role in the binding. *
   486  	// `deleted:principal://iam.googleapis.com/locations/global/workforcePool
   487  	// s/{pool_id}/subject/{subject_attribute_value}`: Deleted single
   488  	// identity in a workforce identity pool. For example,
   489  	// `deleted:principal://iam.googleapis.com/locations/global/workforcePool
   490  	// s/my-pool-id/subject/my-subject-attribute-value`.
   491  	Members []string `json:"members,omitempty"`
   492  
   493  	// Role: Role that is assigned to the list of `members`, or principals.
   494  	// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an
   495  	// overview of the IAM roles and permissions, see the IAM documentation
   496  	// (https://cloud.google.com/iam/docs/roles-overview). For a list of the
   497  	// available pre-defined roles, see here
   498  	// (https://cloud.google.com/iam/docs/understanding-roles).
   499  	Role string `json:"role,omitempty"`
   500  
   501  	// ForceSendFields is a list of field names (e.g. "Condition") to
   502  	// unconditionally include in API requests. By default, fields with
   503  	// empty or default values are omitted from API requests. However, any
   504  	// non-pointer, non-interface field appearing in ForceSendFields will be
   505  	// sent to the server regardless of whether the field is empty or not.
   506  	// This may be used to include empty fields in Patch requests.
   507  	ForceSendFields []string `json:"-"`
   508  
   509  	// NullFields is a list of field names (e.g. "Condition") to include in
   510  	// API requests with the JSON null value. By default, fields with empty
   511  	// values are omitted from API requests. However, any field with an
   512  	// empty value appearing in NullFields will be sent to the server as
   513  	// null. It is an error if a field in this list has a non-empty value.
   514  	// This may be used to include null fields in Patch requests.
   515  	NullFields []string `json:"-"`
   516  }
   517  
   518  func (s *Binding) MarshalJSON() ([]byte, error) {
   519  	type NoMethod Binding
   520  	raw := NoMethod(*s)
   521  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   522  }
   523  
   524  // CancelOperationRequest: The request message for
   525  // Operations.CancelOperation.
   526  type CancelOperationRequest struct {
   527  }
   528  
   529  // ConnectAgentResource: ConnectAgentResource represents a Kubernetes
   530  // resource manifest for Connect Agent deployment.
   531  type ConnectAgentResource struct {
   532  	// Manifest: YAML manifest of the resource.
   533  	Manifest string `json:"manifest,omitempty"`
   534  
   535  	// Type: Kubernetes type of the resource.
   536  	Type *TypeMeta `json:"type,omitempty"`
   537  
   538  	// ForceSendFields is a list of field names (e.g. "Manifest") to
   539  	// unconditionally include in API requests. By default, fields with
   540  	// empty or default values are omitted from API requests. However, any
   541  	// non-pointer, non-interface field appearing in ForceSendFields will be
   542  	// sent to the server regardless of whether the field is empty or not.
   543  	// This may be used to include empty fields in Patch requests.
   544  	ForceSendFields []string `json:"-"`
   545  
   546  	// NullFields is a list of field names (e.g. "Manifest") to include in
   547  	// API requests with the JSON null value. By default, fields with empty
   548  	// values are omitted from API requests. However, any field with an
   549  	// empty value appearing in NullFields will be sent to the server as
   550  	// null. It is an error if a field in this list has a non-empty value.
   551  	// This may be used to include null fields in Patch requests.
   552  	NullFields []string `json:"-"`
   553  }
   554  
   555  func (s *ConnectAgentResource) MarshalJSON() ([]byte, error) {
   556  	type NoMethod ConnectAgentResource
   557  	raw := NoMethod(*s)
   558  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   559  }
   560  
   561  // EdgeCluster: EdgeCluster contains information specific to Google Edge
   562  // Clusters.
   563  type EdgeCluster struct {
   564  	// ResourceLink: Immutable. Self-link of the Google Cloud resource for
   565  	// the Edge Cluster. For example:
   566  	// //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-
   567  	// a/clusters/my-cluster
   568  	ResourceLink string `json:"resourceLink,omitempty"`
   569  
   570  	// ForceSendFields is a list of field names (e.g. "ResourceLink") to
   571  	// unconditionally include in API requests. By default, fields with
   572  	// empty or default values are omitted from API requests. However, any
   573  	// non-pointer, non-interface field appearing in ForceSendFields will be
   574  	// sent to the server regardless of whether the field is empty or not.
   575  	// This may be used to include empty fields in Patch requests.
   576  	ForceSendFields []string `json:"-"`
   577  
   578  	// NullFields is a list of field names (e.g. "ResourceLink") to include
   579  	// in API requests with the JSON null value. By default, fields with
   580  	// empty values are omitted from API requests. However, any field with
   581  	// an empty value appearing in NullFields will be sent to the server as
   582  	// null. It is an error if a field in this list has a non-empty value.
   583  	// This may be used to include null fields in Patch requests.
   584  	NullFields []string `json:"-"`
   585  }
   586  
   587  func (s *EdgeCluster) MarshalJSON() ([]byte, error) {
   588  	type NoMethod EdgeCluster
   589  	raw := NoMethod(*s)
   590  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   591  }
   592  
   593  // Empty: A generic empty message that you can re-use to avoid defining
   594  // duplicated empty messages in your APIs. A typical example is to use
   595  // it as the request or the response type of an API method. For
   596  // instance: service Foo { rpc Bar(google.protobuf.Empty) returns
   597  // (google.protobuf.Empty); }
   598  type Empty struct {
   599  	// ServerResponse contains the HTTP response code and headers from the
   600  	// server.
   601  	googleapi.ServerResponse `json:"-"`
   602  }
   603  
   604  // Expr: Represents a textual expression in the Common Expression
   605  // Language (CEL) syntax. CEL is a C-like expression language. The
   606  // syntax and semantics of CEL are documented at
   607  // https://github.com/google/cel-spec. Example (Comparison): title:
   608  // "Summary size limit" description: "Determines if a summary is less
   609  // than 100 chars" expression: "document.summary.size() < 100" Example
   610  // (Equality): title: "Requestor is owner" description: "Determines if
   611  // requestor is the document owner" expression: "document.owner ==
   612  // request.auth.claims.email" Example (Logic): title: "Public documents"
   613  // description: "Determine whether the document should be publicly
   614  // visible" expression: "document.type != 'private' && document.type !=
   615  // 'internal'" Example (Data Manipulation): title: "Notification string"
   616  // description: "Create a notification string with a timestamp."
   617  // expression: "'New message received at ' +
   618  // string(document.create_time)" The exact variables and functions that
   619  // may be referenced within an expression are determined by the service
   620  // that evaluates it. See the service documentation for additional
   621  // information.
   622  type Expr struct {
   623  	// Description: Optional. Description of the expression. This is a
   624  	// longer text which describes the expression, e.g. when hovered over it
   625  	// in a UI.
   626  	Description string `json:"description,omitempty"`
   627  
   628  	// Expression: Textual representation of an expression in Common
   629  	// Expression Language syntax.
   630  	Expression string `json:"expression,omitempty"`
   631  
   632  	// Location: Optional. String indicating the location of the expression
   633  	// for error reporting, e.g. a file name and a position in the file.
   634  	Location string `json:"location,omitempty"`
   635  
   636  	// Title: Optional. Title for the expression, i.e. a short string
   637  	// describing its purpose. This can be used e.g. in UIs which allow to
   638  	// enter the expression.
   639  	Title string `json:"title,omitempty"`
   640  
   641  	// ForceSendFields is a list of field names (e.g. "Description") to
   642  	// unconditionally include in API requests. By default, fields with
   643  	// empty or default values are omitted from API requests. However, any
   644  	// non-pointer, non-interface field appearing in ForceSendFields will be
   645  	// sent to the server regardless of whether the field is empty or not.
   646  	// This may be used to include empty fields in Patch requests.
   647  	ForceSendFields []string `json:"-"`
   648  
   649  	// NullFields is a list of field names (e.g. "Description") to include
   650  	// in API requests with the JSON null value. By default, fields with
   651  	// empty values are omitted from API requests. However, any field with
   652  	// an empty value appearing in NullFields will be sent to the server as
   653  	// null. It is an error if a field in this list has a non-empty value.
   654  	// This may be used to include null fields in Patch requests.
   655  	NullFields []string `json:"-"`
   656  }
   657  
   658  func (s *Expr) MarshalJSON() ([]byte, error) {
   659  	type NoMethod Expr
   660  	raw := NoMethod(*s)
   661  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   662  }
   663  
   664  // GenerateConnectManifestResponse: GenerateConnectManifestResponse
   665  // contains manifest information for installing/upgrading a Connect
   666  // agent.
   667  type GenerateConnectManifestResponse struct {
   668  	// Manifest: The ordered list of Kubernetes resources that need to be
   669  	// applied to the cluster for GKE Connect agent installation/upgrade.
   670  	Manifest []*ConnectAgentResource `json:"manifest,omitempty"`
   671  
   672  	// ServerResponse contains the HTTP response code and headers from the
   673  	// server.
   674  	googleapi.ServerResponse `json:"-"`
   675  
   676  	// ForceSendFields is a list of field names (e.g. "Manifest") to
   677  	// unconditionally include in API requests. By default, fields with
   678  	// empty or default values are omitted from API requests. However, any
   679  	// non-pointer, non-interface field appearing in ForceSendFields will be
   680  	// sent to the server regardless of whether the field is empty or not.
   681  	// This may be used to include empty fields in Patch requests.
   682  	ForceSendFields []string `json:"-"`
   683  
   684  	// NullFields is a list of field names (e.g. "Manifest") to include in
   685  	// API requests with the JSON null value. By default, fields with empty
   686  	// values are omitted from API requests. However, any field with an
   687  	// empty value appearing in NullFields will be sent to the server as
   688  	// null. It is an error if a field in this list has a non-empty value.
   689  	// This may be used to include null fields in Patch requests.
   690  	NullFields []string `json:"-"`
   691  }
   692  
   693  func (s *GenerateConnectManifestResponse) MarshalJSON() ([]byte, error) {
   694  	type NoMethod GenerateConnectManifestResponse
   695  	raw := NoMethod(*s)
   696  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   697  }
   698  
   699  // GkeCluster: GkeCluster contains information specific to GKE clusters.
   700  type GkeCluster struct {
   701  	// ClusterMissing: Output only. If cluster_missing is set then it
   702  	// denotes that the GKE cluster no longer exists in the GKE Control
   703  	// Plane.
   704  	ClusterMissing bool `json:"clusterMissing,omitempty"`
   705  
   706  	// ResourceLink: Immutable. Self-link of the Google Cloud resource for
   707  	// the GKE cluster. For example:
   708  	// //container.googleapis.com/projects/my-project/locations/us-west1-a/cl
   709  	// usters/my-cluster Zonal clusters are also supported.
   710  	ResourceLink string `json:"resourceLink,omitempty"`
   711  
   712  	// ForceSendFields is a list of field names (e.g. "ClusterMissing") to
   713  	// unconditionally include in API requests. By default, fields with
   714  	// empty or default values are omitted from API requests. However, any
   715  	// non-pointer, non-interface field appearing in ForceSendFields will be
   716  	// sent to the server regardless of whether the field is empty or not.
   717  	// This may be used to include empty fields in Patch requests.
   718  	ForceSendFields []string `json:"-"`
   719  
   720  	// NullFields is a list of field names (e.g. "ClusterMissing") to
   721  	// include in API requests with the JSON null value. By default, fields
   722  	// with empty values are omitted from API requests. However, any field
   723  	// with an empty value appearing in NullFields will be sent to the
   724  	// server as null. It is an error if a field in this list has a
   725  	// non-empty value. This may be used to include null fields in Patch
   726  	// requests.
   727  	NullFields []string `json:"-"`
   728  }
   729  
   730  func (s *GkeCluster) MarshalJSON() ([]byte, error) {
   731  	type NoMethod GkeCluster
   732  	raw := NoMethod(*s)
   733  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   734  }
   735  
   736  // GoogleRpcStatus: The `Status` type defines a logical error model that
   737  // is suitable for different programming environments, including REST
   738  // APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each
   739  // `Status` message contains three pieces of data: error code, error
   740  // message, and error details. You can find out more about this error
   741  // model and how to work with it in the API Design Guide
   742  // (https://cloud.google.com/apis/design/errors).
   743  type GoogleRpcStatus struct {
   744  	// Code: The status code, which should be an enum value of
   745  	// google.rpc.Code.
   746  	Code int64 `json:"code,omitempty"`
   747  
   748  	// Details: A list of messages that carry the error details. There is a
   749  	// common set of message types for APIs to use.
   750  	Details []googleapi.RawMessage `json:"details,omitempty"`
   751  
   752  	// Message: A developer-facing error message, which should be in
   753  	// English. Any user-facing error message should be localized and sent
   754  	// in the google.rpc.Status.details field, or localized by the client.
   755  	Message string `json:"message,omitempty"`
   756  
   757  	// ForceSendFields is a list of field names (e.g. "Code") to
   758  	// unconditionally include in API requests. By default, fields with
   759  	// empty or default values are omitted from API requests. However, any
   760  	// non-pointer, non-interface field appearing in ForceSendFields will be
   761  	// sent to the server regardless of whether the field is empty or not.
   762  	// This may be used to include empty fields in Patch requests.
   763  	ForceSendFields []string `json:"-"`
   764  
   765  	// NullFields is a list of field names (e.g. "Code") to include in API
   766  	// requests with the JSON null value. By default, fields with empty
   767  	// values are omitted from API requests. However, any field with an
   768  	// empty value appearing in NullFields will be sent to the server as
   769  	// null. It is an error if a field in this list has a non-empty value.
   770  	// This may be used to include null fields in Patch requests.
   771  	NullFields []string `json:"-"`
   772  }
   773  
   774  func (s *GoogleRpcStatus) MarshalJSON() ([]byte, error) {
   775  	type NoMethod GoogleRpcStatus
   776  	raw := NoMethod(*s)
   777  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   778  }
   779  
   780  // InitializeHubRequest: Request message for the InitializeHub method.
   781  type InitializeHubRequest struct {
   782  }
   783  
   784  // InitializeHubResponse: Response message for the InitializeHub method.
   785  type InitializeHubResponse struct {
   786  	// ServiceIdentity: Name of the Hub default service identity, in the
   787  	// format: service-@gcp-sa-gkehub.iam.gserviceaccount.com The service
   788  	// account has `roles/gkehub.serviceAgent` in the Hub project.
   789  	ServiceIdentity string `json:"serviceIdentity,omitempty"`
   790  
   791  	// WorkloadIdentityPool: The Workload Identity Pool used for Workload
   792  	// Identity-enabled clusters registered with this Hub. Format:
   793  	// `.hub.id.goog`
   794  	WorkloadIdentityPool string `json:"workloadIdentityPool,omitempty"`
   795  
   796  	// ServerResponse contains the HTTP response code and headers from the
   797  	// server.
   798  	googleapi.ServerResponse `json:"-"`
   799  
   800  	// ForceSendFields is a list of field names (e.g. "ServiceIdentity") to
   801  	// unconditionally include in API requests. By default, fields with
   802  	// empty or default values are omitted from API requests. However, any
   803  	// non-pointer, non-interface field appearing in ForceSendFields will be
   804  	// sent to the server regardless of whether the field is empty or not.
   805  	// This may be used to include empty fields in Patch requests.
   806  	ForceSendFields []string `json:"-"`
   807  
   808  	// NullFields is a list of field names (e.g. "ServiceIdentity") to
   809  	// include in API requests with the JSON null value. By default, fields
   810  	// with empty values are omitted from API requests. However, any field
   811  	// with an empty value appearing in NullFields will be sent to the
   812  	// server as null. It is an error if a field in this list has a
   813  	// non-empty value. This may be used to include null fields in Patch
   814  	// requests.
   815  	NullFields []string `json:"-"`
   816  }
   817  
   818  func (s *InitializeHubResponse) MarshalJSON() ([]byte, error) {
   819  	type NoMethod InitializeHubResponse
   820  	raw := NoMethod(*s)
   821  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   822  }
   823  
   824  // KubernetesMetadata: KubernetesMetadata provides informational
   825  // metadata for Memberships that are created from Kubernetes Endpoints
   826  // (currently, these are equivalent to Kubernetes clusters).
   827  type KubernetesMetadata struct {
   828  	// KubernetesApiServerVersion: Output only. Kubernetes API server
   829  	// version string as reported by '/version'.
   830  	KubernetesApiServerVersion string `json:"kubernetesApiServerVersion,omitempty"`
   831  
   832  	// MemoryMb: Output only. The total memory capacity as reported by the
   833  	// sum of all Kubernetes nodes resources, defined in MB.
   834  	MemoryMb int64 `json:"memoryMb,omitempty"`
   835  
   836  	// NodeCount: Output only. Node count as reported by Kubernetes nodes
   837  	// resources.
   838  	NodeCount int64 `json:"nodeCount,omitempty"`
   839  
   840  	// NodeProviderId: Output only. Node providerID as reported by the first
   841  	// node in the list of nodes on the Kubernetes endpoint. On Kubernetes
   842  	// platforms that support zero-node clusters (like GKE-on-GCP), the
   843  	// node_count will be zero and the node_provider_id will be empty.
   844  	NodeProviderId string `json:"nodeProviderId,omitempty"`
   845  
   846  	// UpdateTime: Output only. The time at which these details were last
   847  	// updated. This update_time is different from the Membership-level
   848  	// update_time since EndpointDetails are updated internally for API
   849  	// consumers.
   850  	UpdateTime string `json:"updateTime,omitempty"`
   851  
   852  	// VcpuCount: Output only. vCPU count as reported by Kubernetes nodes
   853  	// resources.
   854  	VcpuCount int64 `json:"vcpuCount,omitempty"`
   855  
   856  	// ForceSendFields is a list of field names (e.g.
   857  	// "KubernetesApiServerVersion") to unconditionally include in API
   858  	// requests. By default, fields with empty or default values are omitted
   859  	// from API requests. However, any non-pointer, non-interface field
   860  	// appearing in ForceSendFields will be sent to the server regardless of
   861  	// whether the field is empty or not. This may be used to include empty
   862  	// fields in Patch requests.
   863  	ForceSendFields []string `json:"-"`
   864  
   865  	// NullFields is a list of field names (e.g.
   866  	// "KubernetesApiServerVersion") to include in API requests with the
   867  	// JSON null value. By default, fields with empty values are omitted
   868  	// from API requests. However, any field with an empty value appearing
   869  	// in NullFields will be sent to the server as null. It is an error if a
   870  	// field in this list has a non-empty value. This may be used to include
   871  	// null fields in Patch requests.
   872  	NullFields []string `json:"-"`
   873  }
   874  
   875  func (s *KubernetesMetadata) MarshalJSON() ([]byte, error) {
   876  	type NoMethod KubernetesMetadata
   877  	raw := NoMethod(*s)
   878  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   879  }
   880  
   881  // KubernetesResource: KubernetesResource contains the YAML manifests
   882  // and configuration for Membership Kubernetes resources in the cluster.
   883  // After CreateMembership or UpdateMembership, these resources should be
   884  // re-applied in the cluster.
   885  type KubernetesResource struct {
   886  	// ConnectResources: Output only. The Kubernetes resources for
   887  	// installing the GKE Connect agent. This field is only populated in the
   888  	// Membership returned from a successful long-running operation from
   889  	// CreateMembership or UpdateMembership. It is not populated during
   890  	// normal GetMembership or ListMemberships requests. To get the resource
   891  	// manifest after the initial registration, the caller should make a
   892  	// UpdateMembership call with an empty field mask.
   893  	ConnectResources []*ResourceManifest `json:"connectResources,omitempty"`
   894  
   895  	// MembershipCrManifest: Input only. The YAML representation of the
   896  	// Membership CR. This field is ignored for GKE clusters where Hub can
   897  	// read the CR directly. Callers should provide the CR that is currently
   898  	// present in the cluster during Create or Update, or leave this field
   899  	// empty if none exists. The CR manifest is used to validate the cluster
   900  	// has not been registered with another Membership.
   901  	MembershipCrManifest string `json:"membershipCrManifest,omitempty"`
   902  
   903  	// MembershipResources: Output only. Additional Kubernetes resources
   904  	// that need to be applied to the cluster after Membership creation, and
   905  	// after every update. This field is only populated in the Membership
   906  	// returned from a successful long-running operation from
   907  	// CreateMembership or UpdateMembership. It is not populated during
   908  	// normal GetMembership or ListMemberships requests. To get the resource
   909  	// manifest after the initial registration, the caller should make a
   910  	// UpdateMembership call with an empty field mask.
   911  	MembershipResources []*ResourceManifest `json:"membershipResources,omitempty"`
   912  
   913  	// ResourceOptions: Optional. Options for Kubernetes resource
   914  	// generation.
   915  	ResourceOptions *ResourceOptions `json:"resourceOptions,omitempty"`
   916  
   917  	// ForceSendFields is a list of field names (e.g. "ConnectResources") to
   918  	// unconditionally include in API requests. By default, fields with
   919  	// empty or default values are omitted from API requests. However, any
   920  	// non-pointer, non-interface field appearing in ForceSendFields will be
   921  	// sent to the server regardless of whether the field is empty or not.
   922  	// This may be used to include empty fields in Patch requests.
   923  	ForceSendFields []string `json:"-"`
   924  
   925  	// NullFields is a list of field names (e.g. "ConnectResources") to
   926  	// include in API requests with the JSON null value. By default, fields
   927  	// with empty values are omitted from API requests. However, any field
   928  	// with an empty value appearing in NullFields will be sent to the
   929  	// server as null. It is an error if a field in this list has a
   930  	// non-empty value. This may be used to include null fields in Patch
   931  	// requests.
   932  	NullFields []string `json:"-"`
   933  }
   934  
   935  func (s *KubernetesResource) MarshalJSON() ([]byte, error) {
   936  	type NoMethod KubernetesResource
   937  	raw := NoMethod(*s)
   938  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   939  }
   940  
   941  // ListLocationsResponse: The response message for
   942  // Locations.ListLocations.
   943  type ListLocationsResponse struct {
   944  	// Locations: A list of locations that matches the specified filter in
   945  	// the request.
   946  	Locations []*Location `json:"locations,omitempty"`
   947  
   948  	// NextPageToken: The standard List next-page token.
   949  	NextPageToken string `json:"nextPageToken,omitempty"`
   950  
   951  	// ServerResponse contains the HTTP response code and headers from the
   952  	// server.
   953  	googleapi.ServerResponse `json:"-"`
   954  
   955  	// ForceSendFields is a list of field names (e.g. "Locations") to
   956  	// unconditionally include in API requests. By default, fields with
   957  	// empty or default values are omitted from API requests. However, any
   958  	// non-pointer, non-interface field appearing in ForceSendFields will be
   959  	// sent to the server regardless of whether the field is empty or not.
   960  	// This may be used to include empty fields in Patch requests.
   961  	ForceSendFields []string `json:"-"`
   962  
   963  	// NullFields is a list of field names (e.g. "Locations") to include in
   964  	// API requests with the JSON null value. By default, fields with empty
   965  	// values are omitted from API requests. However, any field with an
   966  	// empty value appearing in NullFields will be sent to the server as
   967  	// null. It is an error if a field in this list has a non-empty value.
   968  	// This may be used to include null fields in Patch requests.
   969  	NullFields []string `json:"-"`
   970  }
   971  
   972  func (s *ListLocationsResponse) MarshalJSON() ([]byte, error) {
   973  	type NoMethod ListLocationsResponse
   974  	raw := NoMethod(*s)
   975  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
   976  }
   977  
   978  // ListMembershipsResponse: Response message for the
   979  // `GkeHub.ListMemberships` method.
   980  type ListMembershipsResponse struct {
   981  	// NextPageToken: A token to request the next page of resources from the
   982  	// `ListMemberships` method. The value of an empty string means that
   983  	// there are no more resources to return.
   984  	NextPageToken string `json:"nextPageToken,omitempty"`
   985  
   986  	// Resources: The list of matching Memberships.
   987  	Resources []*Membership `json:"resources,omitempty"`
   988  
   989  	// Unreachable: List of locations that could not be reached while
   990  	// fetching this list.
   991  	Unreachable []string `json:"unreachable,omitempty"`
   992  
   993  	// ServerResponse contains the HTTP response code and headers from the
   994  	// server.
   995  	googleapi.ServerResponse `json:"-"`
   996  
   997  	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
   998  	// unconditionally include in API requests. By default, fields with
   999  	// empty or default values are omitted from API requests. However, any
  1000  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1001  	// sent to the server regardless of whether the field is empty or not.
  1002  	// This may be used to include empty fields in Patch requests.
  1003  	ForceSendFields []string `json:"-"`
  1004  
  1005  	// NullFields is a list of field names (e.g. "NextPageToken") to include
  1006  	// in API requests with the JSON null value. By default, fields with
  1007  	// empty values are omitted from API requests. However, any field with
  1008  	// an empty value appearing in NullFields will be sent to the server as
  1009  	// null. It is an error if a field in this list has a non-empty value.
  1010  	// This may be used to include null fields in Patch requests.
  1011  	NullFields []string `json:"-"`
  1012  }
  1013  
  1014  func (s *ListMembershipsResponse) MarshalJSON() ([]byte, error) {
  1015  	type NoMethod ListMembershipsResponse
  1016  	raw := NoMethod(*s)
  1017  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1018  }
  1019  
  1020  // ListOperationsResponse: The response message for
  1021  // Operations.ListOperations.
  1022  type ListOperationsResponse struct {
  1023  	// NextPageToken: The standard List next-page token.
  1024  	NextPageToken string `json:"nextPageToken,omitempty"`
  1025  
  1026  	// Operations: A list of operations that matches the specified filter in
  1027  	// the request.
  1028  	Operations []*Operation `json:"operations,omitempty"`
  1029  
  1030  	// ServerResponse contains the HTTP response code and headers from the
  1031  	// server.
  1032  	googleapi.ServerResponse `json:"-"`
  1033  
  1034  	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
  1035  	// unconditionally include in API requests. By default, fields with
  1036  	// empty or default values are omitted from API requests. However, any
  1037  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1038  	// sent to the server regardless of whether the field is empty or not.
  1039  	// This may be used to include empty fields in Patch requests.
  1040  	ForceSendFields []string `json:"-"`
  1041  
  1042  	// NullFields is a list of field names (e.g. "NextPageToken") to include
  1043  	// in API requests with the JSON null value. By default, fields with
  1044  	// empty values are omitted from API requests. However, any field with
  1045  	// an empty value appearing in NullFields will be sent to the server as
  1046  	// null. It is an error if a field in this list has a non-empty value.
  1047  	// This may be used to include null fields in Patch requests.
  1048  	NullFields []string `json:"-"`
  1049  }
  1050  
  1051  func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) {
  1052  	type NoMethod ListOperationsResponse
  1053  	raw := NoMethod(*s)
  1054  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1055  }
  1056  
  1057  // Location: A resource that represents a Google Cloud location.
  1058  type Location struct {
  1059  	// DisplayName: The friendly name for this location, typically a nearby
  1060  	// city name. For example, "Tokyo".
  1061  	DisplayName string `json:"displayName,omitempty"`
  1062  
  1063  	// Labels: Cross-service attributes for the location. For example
  1064  	// {"cloud.googleapis.com/region": "us-east1"}
  1065  	Labels map[string]string `json:"labels,omitempty"`
  1066  
  1067  	// LocationId: The canonical id for this location. For example:
  1068  	// "us-east1".
  1069  	LocationId string `json:"locationId,omitempty"`
  1070  
  1071  	// Metadata: Service-specific metadata. For example the available
  1072  	// capacity at the given location.
  1073  	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
  1074  
  1075  	// Name: Resource name for the location, which may vary between
  1076  	// implementations. For example:
  1077  	// "projects/example-project/locations/us-east1"
  1078  	Name string `json:"name,omitempty"`
  1079  
  1080  	// ServerResponse contains the HTTP response code and headers from the
  1081  	// server.
  1082  	googleapi.ServerResponse `json:"-"`
  1083  
  1084  	// ForceSendFields is a list of field names (e.g. "DisplayName") to
  1085  	// unconditionally include in API requests. By default, fields with
  1086  	// empty or default values are omitted from API requests. However, any
  1087  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1088  	// sent to the server regardless of whether the field is empty or not.
  1089  	// This may be used to include empty fields in Patch requests.
  1090  	ForceSendFields []string `json:"-"`
  1091  
  1092  	// NullFields is a list of field names (e.g. "DisplayName") to include
  1093  	// in API requests with the JSON null value. By default, fields with
  1094  	// empty values are omitted from API requests. However, any field with
  1095  	// an empty value appearing in NullFields will be sent to the server as
  1096  	// null. It is an error if a field in this list has a non-empty value.
  1097  	// This may be used to include null fields in Patch requests.
  1098  	NullFields []string `json:"-"`
  1099  }
  1100  
  1101  func (s *Location) MarshalJSON() ([]byte, error) {
  1102  	type NoMethod Location
  1103  	raw := NoMethod(*s)
  1104  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1105  }
  1106  
  1107  // Membership: Membership contains information about a member cluster.
  1108  type Membership struct {
  1109  	// Authority: Optional. How to identify workloads from this Membership.
  1110  	// See the documentation on Workload Identity for more details:
  1111  	// https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
  1112  	Authority *Authority `json:"authority,omitempty"`
  1113  
  1114  	// CreateTime: Output only. When the Membership was created.
  1115  	CreateTime string `json:"createTime,omitempty"`
  1116  
  1117  	// DeleteTime: Output only. When the Membership was deleted.
  1118  	DeleteTime string `json:"deleteTime,omitempty"`
  1119  
  1120  	// Description: Output only. Description of this membership, limited to
  1121  	// 63 characters. Must match the regex: `a-zA-Z0-9*` This field is
  1122  	// present for legacy purposes.
  1123  	Description string `json:"description,omitempty"`
  1124  
  1125  	// Endpoint: Optional. Endpoint information to reach this member.
  1126  	Endpoint *MembershipEndpoint `json:"endpoint,omitempty"`
  1127  
  1128  	// ExternalId: Optional. An externally-generated and managed ID for this
  1129  	// Membership. This ID may be modified after creation, but this is not
  1130  	// recommended. For GKE clusters, external_id is managed by the Hub API
  1131  	// and updates will be ignored. The ID must match the regex:
  1132  	// `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this
  1133  	// value should be set to the UID of the `kube-system` namespace object.
  1134  	ExternalId string `json:"externalId,omitempty"`
  1135  
  1136  	// InfrastructureType: Optional. The infrastructure type this Membership
  1137  	// is running on.
  1138  	//
  1139  	// Possible values:
  1140  	//   "INFRASTRUCTURE_TYPE_UNSPECIFIED" - No type was specified. Some Hub
  1141  	// functionality may require a type be specified, and will not support
  1142  	// Memberships with this value.
  1143  	//   "ON_PREM" - Private infrastructure that is owned or operated by
  1144  	// customer. This includes GKE distributions such as GKE-OnPrem and
  1145  	// GKE-OnBareMetal.
  1146  	//   "MULTI_CLOUD" - Public cloud infrastructure.
  1147  	InfrastructureType string `json:"infrastructureType,omitempty"`
  1148  
  1149  	// Labels: Optional. Labels for this membership.
  1150  	Labels map[string]string `json:"labels,omitempty"`
  1151  
  1152  	// LastConnectionTime: Output only. For clusters using Connect, the
  1153  	// timestamp of the most recent connection established with Google
  1154  	// Cloud. This time is updated every several minutes, not continuously.
  1155  	// For clusters that do not use GKE Connect, or that have never
  1156  	// connected successfully, this field will be unset.
  1157  	LastConnectionTime string `json:"lastConnectionTime,omitempty"`
  1158  
  1159  	// MonitoringConfig: Optional. The monitoring config information for
  1160  	// this membership.
  1161  	MonitoringConfig *MonitoringConfig `json:"monitoringConfig,omitempty"`
  1162  
  1163  	// Name: Output only. The full, unique name of this Membership resource
  1164  	// in the format `projects/*/locations/*/memberships/{membership_id}`,
  1165  	// set during creation. `membership_id` must be a valid RFC 1123
  1166  	// compliant DNS label: 1. At most 63 characters in length 2. It must
  1167  	// consist of lower case alphanumeric characters or `-` 3. It must start
  1168  	// and end with an alphanumeric character Which can be expressed as the
  1169  	// regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63
  1170  	// characters.
  1171  	Name string `json:"name,omitempty"`
  1172  
  1173  	// State: Output only. State of the Membership resource.
  1174  	State *MembershipState `json:"state,omitempty"`
  1175  
  1176  	// UniqueId: Output only. Google-generated UUID for this resource. This
  1177  	// is unique across all Membership resources. If a Membership resource
  1178  	// is deleted and another resource with the same name is created, it
  1179  	// gets a different unique_id.
  1180  	UniqueId string `json:"uniqueId,omitempty"`
  1181  
  1182  	// UpdateTime: Output only. When the Membership was last updated.
  1183  	UpdateTime string `json:"updateTime,omitempty"`
  1184  
  1185  	// ServerResponse contains the HTTP response code and headers from the
  1186  	// server.
  1187  	googleapi.ServerResponse `json:"-"`
  1188  
  1189  	// ForceSendFields is a list of field names (e.g. "Authority") to
  1190  	// unconditionally include in API requests. By default, fields with
  1191  	// empty or default values are omitted from API requests. However, any
  1192  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1193  	// sent to the server regardless of whether the field is empty or not.
  1194  	// This may be used to include empty fields in Patch requests.
  1195  	ForceSendFields []string `json:"-"`
  1196  
  1197  	// NullFields is a list of field names (e.g. "Authority") to include in
  1198  	// API requests with the JSON null value. By default, fields with empty
  1199  	// values are omitted from API requests. However, any field with an
  1200  	// empty value appearing in NullFields will be sent to the server as
  1201  	// null. It is an error if a field in this list has a non-empty value.
  1202  	// This may be used to include null fields in Patch requests.
  1203  	NullFields []string `json:"-"`
  1204  }
  1205  
  1206  func (s *Membership) MarshalJSON() ([]byte, error) {
  1207  	type NoMethod Membership
  1208  	raw := NoMethod(*s)
  1209  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1210  }
  1211  
  1212  // MembershipEndpoint: MembershipEndpoint contains information needed to
  1213  // contact a Kubernetes API, endpoint and any additional Kubernetes
  1214  // metadata.
  1215  type MembershipEndpoint struct {
  1216  	// ApplianceCluster: Optional. Specific information for a GDC Edge
  1217  	// Appliance cluster.
  1218  	ApplianceCluster *ApplianceCluster `json:"applianceCluster,omitempty"`
  1219  
  1220  	// EdgeCluster: Optional. Specific information for a Google Edge
  1221  	// cluster.
  1222  	EdgeCluster *EdgeCluster `json:"edgeCluster,omitempty"`
  1223  
  1224  	// GkeCluster: Optional. Specific information for a GKE-on-GCP cluster.
  1225  	GkeCluster *GkeCluster `json:"gkeCluster,omitempty"`
  1226  
  1227  	// KubernetesMetadata: Output only. Useful Kubernetes-specific metadata.
  1228  	KubernetesMetadata *KubernetesMetadata `json:"kubernetesMetadata,omitempty"`
  1229  
  1230  	// KubernetesResource: Optional. The in-cluster Kubernetes Resources
  1231  	// that should be applied for a correctly registered cluster, in the
  1232  	// steady state. These resources: * Ensure that the cluster is
  1233  	// exclusively registered to one and only one Hub Membership. *
  1234  	// Propagate Workload Pool Information available in the Membership
  1235  	// Authority field. * Ensure proper initial configuration of default Hub
  1236  	// Features.
  1237  	KubernetesResource *KubernetesResource `json:"kubernetesResource,omitempty"`
  1238  
  1239  	// MultiCloudCluster: Optional. Specific information for a GKE
  1240  	// Multi-Cloud cluster.
  1241  	MultiCloudCluster *MultiCloudCluster `json:"multiCloudCluster,omitempty"`
  1242  
  1243  	// OnPremCluster: Optional. Specific information for a GKE On-Prem
  1244  	// cluster. An onprem user-cluster who has no resourceLink is not
  1245  	// allowed to use this field, it should have a nil "type" instead.
  1246  	OnPremCluster *OnPremCluster `json:"onPremCluster,omitempty"`
  1247  
  1248  	// ForceSendFields is a list of field names (e.g. "ApplianceCluster") to
  1249  	// unconditionally include in API requests. By default, fields with
  1250  	// empty or default values are omitted from API requests. However, any
  1251  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1252  	// sent to the server regardless of whether the field is empty or not.
  1253  	// This may be used to include empty fields in Patch requests.
  1254  	ForceSendFields []string `json:"-"`
  1255  
  1256  	// NullFields is a list of field names (e.g. "ApplianceCluster") to
  1257  	// include in API requests with the JSON null value. By default, fields
  1258  	// with empty values are omitted from API requests. However, any field
  1259  	// with an empty value appearing in NullFields will be sent to the
  1260  	// server as null. It is an error if a field in this list has a
  1261  	// non-empty value. This may be used to include null fields in Patch
  1262  	// requests.
  1263  	NullFields []string `json:"-"`
  1264  }
  1265  
  1266  func (s *MembershipEndpoint) MarshalJSON() ([]byte, error) {
  1267  	type NoMethod MembershipEndpoint
  1268  	raw := NoMethod(*s)
  1269  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1270  }
  1271  
  1272  // MembershipState: MembershipState describes the state of a Membership
  1273  // resource.
  1274  type MembershipState struct {
  1275  	// Code: Output only. The current state of the Membership resource.
  1276  	//
  1277  	// Possible values:
  1278  	//   "CODE_UNSPECIFIED" - The code is not set.
  1279  	//   "CREATING" - The cluster is being registered.
  1280  	//   "READY" - The cluster is registered.
  1281  	//   "DELETING" - The cluster is being unregistered.
  1282  	//   "UPDATING" - The Membership is being updated.
  1283  	//   "SERVICE_UPDATING" - The Membership is being updated by the Hub
  1284  	// Service.
  1285  	Code string `json:"code,omitempty"`
  1286  
  1287  	// ForceSendFields is a list of field names (e.g. "Code") to
  1288  	// unconditionally include in API requests. By default, fields with
  1289  	// empty or default values are omitted from API requests. However, any
  1290  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1291  	// sent to the server regardless of whether the field is empty or not.
  1292  	// This may be used to include empty fields in Patch requests.
  1293  	ForceSendFields []string `json:"-"`
  1294  
  1295  	// NullFields is a list of field names (e.g. "Code") to include in API
  1296  	// requests with the JSON null value. By default, fields with empty
  1297  	// values are omitted from API requests. However, any field with an
  1298  	// empty value appearing in NullFields will be sent to the server as
  1299  	// null. It is an error if a field in this list has a non-empty value.
  1300  	// This may be used to include null fields in Patch requests.
  1301  	NullFields []string `json:"-"`
  1302  }
  1303  
  1304  func (s *MembershipState) MarshalJSON() ([]byte, error) {
  1305  	type NoMethod MembershipState
  1306  	raw := NoMethod(*s)
  1307  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1308  }
  1309  
  1310  // MonitoringConfig: MonitoringConfig informs Fleet-based
  1311  // applications/services/UIs how the metrics for the underlying cluster
  1312  // is reported to cloud monitoring services. It can be set from empty to
  1313  // non-empty, but can't be mutated directly to prevent accidentally
  1314  // breaking the constinousty of metrics.
  1315  type MonitoringConfig struct {
  1316  	// Cluster: Optional. Cluster name used to report metrics. For Anthos on
  1317  	// VMWare/Baremetal/MultiCloud clusters, it would be in format
  1318  	// {cluster_type}/{cluster_name}, e.g., "awsClusters/cluster_1".
  1319  	Cluster string `json:"cluster,omitempty"`
  1320  
  1321  	// ClusterHash: Optional. For GKE and Multicloud clusters, this is the
  1322  	// UUID of the cluster resource. For VMWare and Baremetal clusters, this
  1323  	// is the kube-system UID.
  1324  	ClusterHash string `json:"clusterHash,omitempty"`
  1325  
  1326  	// KubernetesMetricsPrefix: Optional. Kubernetes system metrics, if
  1327  	// available, are written to this prefix. This defaults to kubernetes.io
  1328  	// for GKE, and kubernetes.io/anthos for Anthos eventually. Noted:
  1329  	// Anthos MultiCloud will have kubernetes.io prefix today but will
  1330  	// migration to be under kubernetes.io/anthos.
  1331  	KubernetesMetricsPrefix string `json:"kubernetesMetricsPrefix,omitempty"`
  1332  
  1333  	// Location: Optional. Location used to report Metrics
  1334  	Location string `json:"location,omitempty"`
  1335  
  1336  	// ProjectId: Optional. Project used to report Metrics
  1337  	ProjectId string `json:"projectId,omitempty"`
  1338  
  1339  	// ForceSendFields is a list of field names (e.g. "Cluster") to
  1340  	// unconditionally include in API requests. By default, fields with
  1341  	// empty or default values are omitted from API requests. However, any
  1342  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1343  	// sent to the server regardless of whether the field is empty or not.
  1344  	// This may be used to include empty fields in Patch requests.
  1345  	ForceSendFields []string `json:"-"`
  1346  
  1347  	// NullFields is a list of field names (e.g. "Cluster") to include in
  1348  	// API requests with the JSON null value. By default, fields with empty
  1349  	// values are omitted from API requests. However, any field with an
  1350  	// empty value appearing in NullFields will be sent to the server as
  1351  	// null. It is an error if a field in this list has a non-empty value.
  1352  	// This may be used to include null fields in Patch requests.
  1353  	NullFields []string `json:"-"`
  1354  }
  1355  
  1356  func (s *MonitoringConfig) MarshalJSON() ([]byte, error) {
  1357  	type NoMethod MonitoringConfig
  1358  	raw := NoMethod(*s)
  1359  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1360  }
  1361  
  1362  // MultiCloudCluster: MultiCloudCluster contains information specific to
  1363  // GKE Multi-Cloud clusters.
  1364  type MultiCloudCluster struct {
  1365  	// ClusterMissing: Output only. If cluster_missing is set then it
  1366  	// denotes that API(gkemulticloud.googleapis.com) resource for this GKE
  1367  	// Multi-Cloud cluster no longer exists.
  1368  	ClusterMissing bool `json:"clusterMissing,omitempty"`
  1369  
  1370  	// ResourceLink: Immutable. Self-link of the Google Cloud resource for
  1371  	// the GKE Multi-Cloud cluster. For example:
  1372  	// //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-
  1373  	// a/awsClusters/my-cluster
  1374  	// //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-
  1375  	// a/azureClusters/my-cluster
  1376  	// //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-
  1377  	// a/attachedClusters/my-cluster
  1378  	ResourceLink string `json:"resourceLink,omitempty"`
  1379  
  1380  	// ForceSendFields is a list of field names (e.g. "ClusterMissing") to
  1381  	// unconditionally include in API requests. By default, fields with
  1382  	// empty or default values are omitted from API requests. However, any
  1383  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1384  	// sent to the server regardless of whether the field is empty or not.
  1385  	// This may be used to include empty fields in Patch requests.
  1386  	ForceSendFields []string `json:"-"`
  1387  
  1388  	// NullFields is a list of field names (e.g. "ClusterMissing") to
  1389  	// include in API requests with the JSON null value. By default, fields
  1390  	// with empty values are omitted from API requests. However, any field
  1391  	// with an empty value appearing in NullFields will be sent to the
  1392  	// server as null. It is an error if a field in this list has a
  1393  	// non-empty value. This may be used to include null fields in Patch
  1394  	// requests.
  1395  	NullFields []string `json:"-"`
  1396  }
  1397  
  1398  func (s *MultiCloudCluster) MarshalJSON() ([]byte, error) {
  1399  	type NoMethod MultiCloudCluster
  1400  	raw := NoMethod(*s)
  1401  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1402  }
  1403  
  1404  // OnPremCluster: OnPremCluster contains information specific to GKE
  1405  // On-Prem clusters.
  1406  type OnPremCluster struct {
  1407  	// AdminCluster: Immutable. Whether the cluster is an admin cluster.
  1408  	AdminCluster bool `json:"adminCluster,omitempty"`
  1409  
  1410  	// ClusterMissing: Output only. If cluster_missing is set then it
  1411  	// denotes that API(gkeonprem.googleapis.com) resource for this GKE
  1412  	// On-Prem cluster no longer exists.
  1413  	ClusterMissing bool `json:"clusterMissing,omitempty"`
  1414  
  1415  	// ClusterType: Immutable. The on prem cluster's type.
  1416  	//
  1417  	// Possible values:
  1418  	//   "CLUSTERTYPE_UNSPECIFIED" - The ClusterType is not set.
  1419  	//   "BOOTSTRAP" - The ClusterType is bootstrap cluster.
  1420  	//   "HYBRID" - The ClusterType is baremetal hybrid cluster.
  1421  	//   "STANDALONE" - The ClusterType is baremetal standalone cluster.
  1422  	//   "USER" - The ClusterType is user cluster.
  1423  	ClusterType string `json:"clusterType,omitempty"`
  1424  
  1425  	// ResourceLink: Immutable. Self-link of the Google Cloud resource for
  1426  	// the GKE On-Prem cluster. For example:
  1427  	// //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vm
  1428  	// wareClusters/my-cluster
  1429  	// //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/ba
  1430  	// reMetalClusters/my-cluster
  1431  	ResourceLink string `json:"resourceLink,omitempty"`
  1432  
  1433  	// ForceSendFields is a list of field names (e.g. "AdminCluster") to
  1434  	// unconditionally include in API requests. By default, fields with
  1435  	// empty or default values are omitted from API requests. However, any
  1436  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1437  	// sent to the server regardless of whether the field is empty or not.
  1438  	// This may be used to include empty fields in Patch requests.
  1439  	ForceSendFields []string `json:"-"`
  1440  
  1441  	// NullFields is a list of field names (e.g. "AdminCluster") to include
  1442  	// in API requests with the JSON null value. By default, fields with
  1443  	// empty values are omitted from API requests. However, any field with
  1444  	// an empty value appearing in NullFields will be sent to the server as
  1445  	// null. It is an error if a field in this list has a non-empty value.
  1446  	// This may be used to include null fields in Patch requests.
  1447  	NullFields []string `json:"-"`
  1448  }
  1449  
  1450  func (s *OnPremCluster) MarshalJSON() ([]byte, error) {
  1451  	type NoMethod OnPremCluster
  1452  	raw := NoMethod(*s)
  1453  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1454  }
  1455  
  1456  // Operation: This resource represents a long-running operation that is
  1457  // the result of a network API call.
  1458  type Operation struct {
  1459  	// Done: If the value is `false`, it means the operation is still in
  1460  	// progress. If `true`, the operation is completed, and either `error`
  1461  	// or `response` is available.
  1462  	Done bool `json:"done,omitempty"`
  1463  
  1464  	// Error: The error result of the operation in case of failure or
  1465  	// cancellation.
  1466  	Error *GoogleRpcStatus `json:"error,omitempty"`
  1467  
  1468  	// Metadata: Service-specific metadata associated with the operation. It
  1469  	// typically contains progress information and common metadata such as
  1470  	// create time. Some services might not provide such metadata. Any
  1471  	// method that returns a long-running operation should document the
  1472  	// metadata type, if any.
  1473  	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
  1474  
  1475  	// Name: The server-assigned name, which is only unique within the same
  1476  	// service that originally returns it. If you use the default HTTP
  1477  	// mapping, the `name` should be a resource name ending with
  1478  	// `operations/{unique_id}`.
  1479  	Name string `json:"name,omitempty"`
  1480  
  1481  	// Response: The normal, successful response of the operation. If the
  1482  	// original method returns no data on success, such as `Delete`, the
  1483  	// response is `google.protobuf.Empty`. If the original method is
  1484  	// standard `Get`/`Create`/`Update`, the response should be the
  1485  	// resource. For other methods, the response should have the type
  1486  	// `XxxResponse`, where `Xxx` is the original method name. For example,
  1487  	// if the original method name is `TakeSnapshot()`, the inferred
  1488  	// response type is `TakeSnapshotResponse`.
  1489  	Response googleapi.RawMessage `json:"response,omitempty"`
  1490  
  1491  	// ServerResponse contains the HTTP response code and headers from the
  1492  	// server.
  1493  	googleapi.ServerResponse `json:"-"`
  1494  
  1495  	// ForceSendFields is a list of field names (e.g. "Done") to
  1496  	// unconditionally include in API requests. By default, fields with
  1497  	// empty or default values are omitted from API requests. However, any
  1498  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1499  	// sent to the server regardless of whether the field is empty or not.
  1500  	// This may be used to include empty fields in Patch requests.
  1501  	ForceSendFields []string `json:"-"`
  1502  
  1503  	// NullFields is a list of field names (e.g. "Done") to include in API
  1504  	// requests with the JSON null value. By default, fields with empty
  1505  	// values are omitted from API requests. However, any field with an
  1506  	// empty value appearing in NullFields will be sent to the server as
  1507  	// null. It is an error if a field in this list has a non-empty value.
  1508  	// This may be used to include null fields in Patch requests.
  1509  	NullFields []string `json:"-"`
  1510  }
  1511  
  1512  func (s *Operation) MarshalJSON() ([]byte, error) {
  1513  	type NoMethod Operation
  1514  	raw := NoMethod(*s)
  1515  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1516  }
  1517  
  1518  // OperationMetadata: Represents the metadata of the long-running
  1519  // operation.
  1520  type OperationMetadata struct {
  1521  	// ApiVersion: Output only. API version used to start the operation.
  1522  	ApiVersion string `json:"apiVersion,omitempty"`
  1523  
  1524  	// CancelRequested: Output only. Identifies whether the user has
  1525  	// requested cancellation of the operation. Operations that have
  1526  	// successfully been cancelled have Operation.error value with a
  1527  	// google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
  1528  	CancelRequested bool `json:"cancelRequested,omitempty"`
  1529  
  1530  	// CreateTime: Output only. The time the operation was created.
  1531  	CreateTime string `json:"createTime,omitempty"`
  1532  
  1533  	// EndTime: Output only. The time the operation finished running.
  1534  	EndTime string `json:"endTime,omitempty"`
  1535  
  1536  	// StatusDetail: Output only. Human-readable status of the operation, if
  1537  	// any.
  1538  	StatusDetail string `json:"statusDetail,omitempty"`
  1539  
  1540  	// Target: Output only. Server-defined resource path for the target of
  1541  	// the operation.
  1542  	Target string `json:"target,omitempty"`
  1543  
  1544  	// Verb: Output only. Name of the verb executed by the operation.
  1545  	Verb string `json:"verb,omitempty"`
  1546  
  1547  	// ForceSendFields is a list of field names (e.g. "ApiVersion") to
  1548  	// unconditionally include in API requests. By default, fields with
  1549  	// empty or default values are omitted from API requests. However, any
  1550  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1551  	// sent to the server regardless of whether the field is empty or not.
  1552  	// This may be used to include empty fields in Patch requests.
  1553  	ForceSendFields []string `json:"-"`
  1554  
  1555  	// NullFields is a list of field names (e.g. "ApiVersion") to include in
  1556  	// API requests with the JSON null value. By default, fields with empty
  1557  	// values are omitted from API requests. However, any field with an
  1558  	// empty value appearing in NullFields will be sent to the server as
  1559  	// null. It is an error if a field in this list has a non-empty value.
  1560  	// This may be used to include null fields in Patch requests.
  1561  	NullFields []string `json:"-"`
  1562  }
  1563  
  1564  func (s *OperationMetadata) MarshalJSON() ([]byte, error) {
  1565  	type NoMethod OperationMetadata
  1566  	raw := NoMethod(*s)
  1567  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1568  }
  1569  
  1570  // Policy: An Identity and Access Management (IAM) policy, which
  1571  // specifies access controls for Google Cloud resources. A `Policy` is a
  1572  // collection of `bindings`. A `binding` binds one or more `members`, or
  1573  // principals, to a single `role`. Principals can be user accounts,
  1574  // service accounts, Google groups, and domains (such as G Suite). A
  1575  // `role` is a named list of permissions; each `role` can be an IAM
  1576  // predefined role or a user-created custom role. For some types of
  1577  // Google Cloud resources, a `binding` can also specify a `condition`,
  1578  // which is a logical expression that allows access to a resource only
  1579  // if the expression evaluates to `true`. A condition can add
  1580  // constraints based on attributes of the request, the resource, or
  1581  // both. To learn which resources support conditions in their IAM
  1582  // policies, see the IAM documentation
  1583  // (https://cloud.google.com/iam/help/conditions/resource-policies).
  1584  // **JSON example:** ``` { "bindings": [ { "role":
  1585  // "roles/resourcemanager.organizationAdmin", "members": [
  1586  // "user:mike@example.com", "group:admins@example.com",
  1587  // "domain:google.com",
  1588  // "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
  1589  // "role": "roles/resourcemanager.organizationViewer", "members": [
  1590  // "user:eve@example.com" ], "condition": { "title": "expirable access",
  1591  // "description": "Does not grant access after Sep 2020", "expression":
  1592  // "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
  1593  // "etag": "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ```
  1594  // bindings: - members: - user:mike@example.com -
  1595  // group:admins@example.com - domain:google.com -
  1596  // serviceAccount:my-project-id@appspot.gserviceaccount.com role:
  1597  // roles/resourcemanager.organizationAdmin - members: -
  1598  // user:eve@example.com role: roles/resourcemanager.organizationViewer
  1599  // condition: title: expirable access description: Does not grant access
  1600  // after Sep 2020 expression: request.time <
  1601  // timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3
  1602  // ``` For a description of IAM and its features, see the IAM
  1603  // documentation (https://cloud.google.com/iam/docs/).
  1604  type Policy struct {
  1605  	// AuditConfigs: Specifies cloud audit logging configuration for this
  1606  	// policy.
  1607  	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
  1608  
  1609  	// Bindings: Associates a list of `members`, or principals, with a
  1610  	// `role`. Optionally, may specify a `condition` that determines how and
  1611  	// when the `bindings` are applied. Each of the `bindings` must contain
  1612  	// at least one principal. The `bindings` in a `Policy` can refer to up
  1613  	// to 1,500 principals; up to 250 of these principals can be Google
  1614  	// groups. Each occurrence of a principal counts towards these limits.
  1615  	// For example, if the `bindings` grant 50 different roles to
  1616  	// `user:alice@example.com`, and not to any other principal, then you
  1617  	// can add another 1,450 principals to the `bindings` in the `Policy`.
  1618  	Bindings []*Binding `json:"bindings,omitempty"`
  1619  
  1620  	// Etag: `etag` is used for optimistic concurrency control as a way to
  1621  	// help prevent simultaneous updates of a policy from overwriting each
  1622  	// other. It is strongly suggested that systems make use of the `etag`
  1623  	// in the read-modify-write cycle to perform policy updates in order to
  1624  	// avoid race conditions: An `etag` is returned in the response to
  1625  	// `getIamPolicy`, and systems are expected to put that etag in the
  1626  	// request to `setIamPolicy` to ensure that their change will be applied
  1627  	// to the same version of the policy. **Important:** If you use IAM
  1628  	// Conditions, you must include the `etag` field whenever you call
  1629  	// `setIamPolicy`. If you omit this field, then IAM allows you to
  1630  	// overwrite a version `3` policy with a version `1` policy, and all of
  1631  	// the conditions in the version `3` policy are lost.
  1632  	Etag string `json:"etag,omitempty"`
  1633  
  1634  	// Version: Specifies the format of the policy. Valid values are `0`,
  1635  	// `1`, and `3`. Requests that specify an invalid value are rejected.
  1636  	// Any operation that affects conditional role bindings must specify
  1637  	// version `3`. This requirement applies to the following operations: *
  1638  	// Getting a policy that includes a conditional role binding * Adding a
  1639  	// conditional role binding to a policy * Changing a conditional role
  1640  	// binding in a policy * Removing any role binding, with or without a
  1641  	// condition, from a policy that includes conditions **Important:** If
  1642  	// you use IAM Conditions, you must include the `etag` field whenever
  1643  	// you call `setIamPolicy`. If you omit this field, then IAM allows you
  1644  	// to overwrite a version `3` policy with a version `1` policy, and all
  1645  	// of the conditions in the version `3` policy are lost. If a policy
  1646  	// does not include any conditions, operations on that policy may
  1647  	// specify any valid version or leave the field unset. To learn which
  1648  	// resources support conditions in their IAM policies, see the IAM
  1649  	// documentation
  1650  	// (https://cloud.google.com/iam/help/conditions/resource-policies).
  1651  	Version int64 `json:"version,omitempty"`
  1652  
  1653  	// ServerResponse contains the HTTP response code and headers from the
  1654  	// server.
  1655  	googleapi.ServerResponse `json:"-"`
  1656  
  1657  	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
  1658  	// unconditionally include in API requests. By default, fields with
  1659  	// empty or default values are omitted from API requests. However, any
  1660  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1661  	// sent to the server regardless of whether the field is empty or not.
  1662  	// This may be used to include empty fields in Patch requests.
  1663  	ForceSendFields []string `json:"-"`
  1664  
  1665  	// NullFields is a list of field names (e.g. "AuditConfigs") to include
  1666  	// in API requests with the JSON null value. By default, fields with
  1667  	// empty values are omitted from API requests. However, any field with
  1668  	// an empty value appearing in NullFields will be sent to the server as
  1669  	// null. It is an error if a field in this list has a non-empty value.
  1670  	// This may be used to include null fields in Patch requests.
  1671  	NullFields []string `json:"-"`
  1672  }
  1673  
  1674  func (s *Policy) MarshalJSON() ([]byte, error) {
  1675  	type NoMethod Policy
  1676  	raw := NoMethod(*s)
  1677  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1678  }
  1679  
  1680  // ResourceManifest: ResourceManifest represents a single Kubernetes
  1681  // resource to be applied to the cluster.
  1682  type ResourceManifest struct {
  1683  	// ClusterScoped: Whether the resource provided in the manifest is
  1684  	// `cluster_scoped`. If unset, the manifest is assumed to be namespace
  1685  	// scoped. This field is used for REST mapping when applying the
  1686  	// resource in a cluster.
  1687  	ClusterScoped bool `json:"clusterScoped,omitempty"`
  1688  
  1689  	// Manifest: YAML manifest of the resource.
  1690  	Manifest string `json:"manifest,omitempty"`
  1691  
  1692  	// ForceSendFields is a list of field names (e.g. "ClusterScoped") to
  1693  	// unconditionally include in API requests. By default, fields with
  1694  	// empty or default values are omitted from API requests. However, any
  1695  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1696  	// sent to the server regardless of whether the field is empty or not.
  1697  	// This may be used to include empty fields in Patch requests.
  1698  	ForceSendFields []string `json:"-"`
  1699  
  1700  	// NullFields is a list of field names (e.g. "ClusterScoped") to include
  1701  	// in API requests with the JSON null value. By default, fields with
  1702  	// empty values are omitted from API requests. However, any field with
  1703  	// an empty value appearing in NullFields will be sent to the server as
  1704  	// null. It is an error if a field in this list has a non-empty value.
  1705  	// This may be used to include null fields in Patch requests.
  1706  	NullFields []string `json:"-"`
  1707  }
  1708  
  1709  func (s *ResourceManifest) MarshalJSON() ([]byte, error) {
  1710  	type NoMethod ResourceManifest
  1711  	raw := NoMethod(*s)
  1712  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1713  }
  1714  
  1715  // ResourceOptions: ResourceOptions represent options for Kubernetes
  1716  // resource generation.
  1717  type ResourceOptions struct {
  1718  	// ConnectVersion: Optional. The Connect agent version to use for
  1719  	// connect_resources. Defaults to the latest GKE Connect version. The
  1720  	// version must be a currently supported version, obsolete versions will
  1721  	// be rejected.
  1722  	ConnectVersion string `json:"connectVersion,omitempty"`
  1723  
  1724  	// K8sVersion: Optional. Major version of the Kubernetes cluster. This
  1725  	// is only used to determine which version to use for the
  1726  	// CustomResourceDefinition resources, `apiextensions/v1beta1`
  1727  	// or`apiextensions/v1`.
  1728  	K8sVersion string `json:"k8sVersion,omitempty"`
  1729  
  1730  	// V1beta1Crd: Optional. Use `apiextensions/v1beta1` instead of
  1731  	// `apiextensions/v1` for CustomResourceDefinition resources. This
  1732  	// option should be set for clusters with Kubernetes apiserver versions
  1733  	// <1.16.
  1734  	V1beta1Crd bool `json:"v1beta1Crd,omitempty"`
  1735  
  1736  	// ForceSendFields is a list of field names (e.g. "ConnectVersion") to
  1737  	// unconditionally include in API requests. By default, fields with
  1738  	// empty or default values are omitted from API requests. However, any
  1739  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1740  	// sent to the server regardless of whether the field is empty or not.
  1741  	// This may be used to include empty fields in Patch requests.
  1742  	ForceSendFields []string `json:"-"`
  1743  
  1744  	// NullFields is a list of field names (e.g. "ConnectVersion") to
  1745  	// include in API requests with the JSON null value. By default, fields
  1746  	// with empty values are omitted from API requests. However, any field
  1747  	// with an empty value appearing in NullFields will be sent to the
  1748  	// server as null. It is an error if a field in this list has a
  1749  	// non-empty value. This may be used to include null fields in Patch
  1750  	// requests.
  1751  	NullFields []string `json:"-"`
  1752  }
  1753  
  1754  func (s *ResourceOptions) MarshalJSON() ([]byte, error) {
  1755  	type NoMethod ResourceOptions
  1756  	raw := NoMethod(*s)
  1757  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1758  }
  1759  
  1760  // SetIamPolicyRequest: Request message for `SetIamPolicy` method.
  1761  type SetIamPolicyRequest struct {
  1762  	// Policy: REQUIRED: The complete policy to be applied to the
  1763  	// `resource`. The size of the policy is limited to a few 10s of KB. An
  1764  	// empty policy is a valid policy but certain Google Cloud services
  1765  	// (such as Projects) might reject them.
  1766  	Policy *Policy `json:"policy,omitempty"`
  1767  
  1768  	// UpdateMask: OPTIONAL: A FieldMask specifying which fields of the
  1769  	// policy to modify. Only the fields in the mask will be modified. If no
  1770  	// mask is provided, the following default mask is used: `paths:
  1771  	// "bindings, etag"
  1772  	UpdateMask string `json:"updateMask,omitempty"`
  1773  
  1774  	// ForceSendFields is a list of field names (e.g. "Policy") to
  1775  	// unconditionally include in API requests. By default, fields with
  1776  	// empty or default values are omitted from API requests. However, any
  1777  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1778  	// sent to the server regardless of whether the field is empty or not.
  1779  	// This may be used to include empty fields in Patch requests.
  1780  	ForceSendFields []string `json:"-"`
  1781  
  1782  	// NullFields is a list of field names (e.g. "Policy") to include in API
  1783  	// requests with the JSON null value. By default, fields with empty
  1784  	// values are omitted from API requests. However, any field with an
  1785  	// empty value appearing in NullFields will be sent to the server as
  1786  	// null. It is an error if a field in this list has a non-empty value.
  1787  	// This may be used to include null fields in Patch requests.
  1788  	NullFields []string `json:"-"`
  1789  }
  1790  
  1791  func (s *SetIamPolicyRequest) MarshalJSON() ([]byte, error) {
  1792  	type NoMethod SetIamPolicyRequest
  1793  	raw := NoMethod(*s)
  1794  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1795  }
  1796  
  1797  // TestIamPermissionsRequest: Request message for `TestIamPermissions`
  1798  // method.
  1799  type TestIamPermissionsRequest struct {
  1800  	// Permissions: The set of permissions to check for the `resource`.
  1801  	// Permissions with wildcards (such as `*` or `storage.*`) are not
  1802  	// allowed. For more information see IAM Overview
  1803  	// (https://cloud.google.com/iam/docs/overview#permissions).
  1804  	Permissions []string `json:"permissions,omitempty"`
  1805  
  1806  	// ForceSendFields is a list of field names (e.g. "Permissions") to
  1807  	// unconditionally include in API requests. By default, fields with
  1808  	// empty or default values are omitted from API requests. However, any
  1809  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1810  	// sent to the server regardless of whether the field is empty or not.
  1811  	// This may be used to include empty fields in Patch requests.
  1812  	ForceSendFields []string `json:"-"`
  1813  
  1814  	// NullFields is a list of field names (e.g. "Permissions") to include
  1815  	// in API requests with the JSON null value. By default, fields with
  1816  	// empty values are omitted from API requests. However, any field with
  1817  	// an empty value appearing in NullFields will be sent to the server as
  1818  	// null. It is an error if a field in this list has a non-empty value.
  1819  	// This may be used to include null fields in Patch requests.
  1820  	NullFields []string `json:"-"`
  1821  }
  1822  
  1823  func (s *TestIamPermissionsRequest) MarshalJSON() ([]byte, error) {
  1824  	type NoMethod TestIamPermissionsRequest
  1825  	raw := NoMethod(*s)
  1826  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1827  }
  1828  
  1829  // TestIamPermissionsResponse: Response message for `TestIamPermissions`
  1830  // method.
  1831  type TestIamPermissionsResponse struct {
  1832  	// Permissions: A subset of `TestPermissionsRequest.permissions` that
  1833  	// the caller is allowed.
  1834  	Permissions []string `json:"permissions,omitempty"`
  1835  
  1836  	// ServerResponse contains the HTTP response code and headers from the
  1837  	// server.
  1838  	googleapi.ServerResponse `json:"-"`
  1839  
  1840  	// ForceSendFields is a list of field names (e.g. "Permissions") to
  1841  	// unconditionally include in API requests. By default, fields with
  1842  	// empty or default values are omitted from API requests. However, any
  1843  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1844  	// sent to the server regardless of whether the field is empty or not.
  1845  	// This may be used to include empty fields in Patch requests.
  1846  	ForceSendFields []string `json:"-"`
  1847  
  1848  	// NullFields is a list of field names (e.g. "Permissions") to include
  1849  	// in API requests with the JSON null value. By default, fields with
  1850  	// empty values are omitted from API requests. However, any field with
  1851  	// an empty value appearing in NullFields will be sent to the server as
  1852  	// null. It is an error if a field in this list has a non-empty value.
  1853  	// This may be used to include null fields in Patch requests.
  1854  	NullFields []string `json:"-"`
  1855  }
  1856  
  1857  func (s *TestIamPermissionsResponse) MarshalJSON() ([]byte, error) {
  1858  	type NoMethod TestIamPermissionsResponse
  1859  	raw := NoMethod(*s)
  1860  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1861  }
  1862  
  1863  // TypeMeta: TypeMeta is the type information needed for content
  1864  // unmarshalling of Kubernetes resources in the manifest.
  1865  type TypeMeta struct {
  1866  	// ApiVersion: APIVersion of the resource (e.g. v1).
  1867  	ApiVersion string `json:"apiVersion,omitempty"`
  1868  
  1869  	// Kind: Kind of the resource (e.g. Deployment).
  1870  	Kind string `json:"kind,omitempty"`
  1871  
  1872  	// ForceSendFields is a list of field names (e.g. "ApiVersion") to
  1873  	// unconditionally include in API requests. By default, fields with
  1874  	// empty or default values are omitted from API requests. However, any
  1875  	// non-pointer, non-interface field appearing in ForceSendFields will be
  1876  	// sent to the server regardless of whether the field is empty or not.
  1877  	// This may be used to include empty fields in Patch requests.
  1878  	ForceSendFields []string `json:"-"`
  1879  
  1880  	// NullFields is a list of field names (e.g. "ApiVersion") to include in
  1881  	// API requests with the JSON null value. By default, fields with empty
  1882  	// values are omitted from API requests. However, any field with an
  1883  	// empty value appearing in NullFields will be sent to the server as
  1884  	// null. It is an error if a field in this list has a non-empty value.
  1885  	// This may be used to include null fields in Patch requests.
  1886  	NullFields []string `json:"-"`
  1887  }
  1888  
  1889  func (s *TypeMeta) MarshalJSON() ([]byte, error) {
  1890  	type NoMethod TypeMeta
  1891  	raw := NoMethod(*s)
  1892  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1893  }
  1894  
  1895  // method id "gkehub.projects.locations.get":
  1896  
  1897  type ProjectsLocationsGetCall struct {
  1898  	s            *Service
  1899  	name         string
  1900  	urlParams_   gensupport.URLParams
  1901  	ifNoneMatch_ string
  1902  	ctx_         context.Context
  1903  	header_      http.Header
  1904  }
  1905  
  1906  // Get: Gets information about a location.
  1907  //
  1908  // - name: Resource name for the location.
  1909  func (r *ProjectsLocationsService) Get(name string) *ProjectsLocationsGetCall {
  1910  	c := &ProjectsLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  1911  	c.name = name
  1912  	return c
  1913  }
  1914  
  1915  // Fields allows partial responses to be retrieved. See
  1916  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  1917  // for more information.
  1918  func (c *ProjectsLocationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsGetCall {
  1919  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  1920  	return c
  1921  }
  1922  
  1923  // IfNoneMatch sets the optional parameter which makes the operation
  1924  // fail if the object's ETag matches the given value. This is useful for
  1925  // getting updates only after the object has changed since the last
  1926  // request. Use googleapi.IsNotModified to check whether the response
  1927  // error from Do is the result of In-None-Match.
  1928  func (c *ProjectsLocationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsGetCall {
  1929  	c.ifNoneMatch_ = entityTag
  1930  	return c
  1931  }
  1932  
  1933  // Context sets the context to be used in this call's Do method. Any
  1934  // pending HTTP request will be aborted if the provided context is
  1935  // canceled.
  1936  func (c *ProjectsLocationsGetCall) Context(ctx context.Context) *ProjectsLocationsGetCall {
  1937  	c.ctx_ = ctx
  1938  	return c
  1939  }
  1940  
  1941  // Header returns an http.Header that can be modified by the caller to
  1942  // add HTTP headers to the request.
  1943  func (c *ProjectsLocationsGetCall) Header() http.Header {
  1944  	if c.header_ == nil {
  1945  		c.header_ = make(http.Header)
  1946  	}
  1947  	return c.header_
  1948  }
  1949  
  1950  func (c *ProjectsLocationsGetCall) doRequest(alt string) (*http.Response, error) {
  1951  	reqHeaders := make(http.Header)
  1952  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
  1953  	for k, v := range c.header_ {
  1954  		reqHeaders[k] = v
  1955  	}
  1956  	reqHeaders.Set("User-Agent", c.s.userAgent())
  1957  	if c.ifNoneMatch_ != "" {
  1958  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  1959  	}
  1960  	var body io.Reader = nil
  1961  	c.urlParams_.Set("alt", alt)
  1962  	c.urlParams_.Set("prettyPrint", "false")
  1963  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+name}")
  1964  	urls += "?" + c.urlParams_.Encode()
  1965  	req, err := http.NewRequest("GET", urls, body)
  1966  	if err != nil {
  1967  		return nil, err
  1968  	}
  1969  	req.Header = reqHeaders
  1970  	googleapi.Expand(req.URL, map[string]string{
  1971  		"name": c.name,
  1972  	})
  1973  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  1974  }
  1975  
  1976  // Do executes the "gkehub.projects.locations.get" call.
  1977  // Exactly one of *Location or error will be non-nil. Any non-2xx status
  1978  // code is an error. Response headers are in either
  1979  // *Location.ServerResponse.Header or (if a response was returned at
  1980  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
  1981  // to check whether the returned error was because
  1982  // http.StatusNotModified was returned.
  1983  func (c *ProjectsLocationsGetCall) Do(opts ...googleapi.CallOption) (*Location, error) {
  1984  	gensupport.SetOptions(c.urlParams_, opts...)
  1985  	res, err := c.doRequest("json")
  1986  	if res != nil && res.StatusCode == http.StatusNotModified {
  1987  		if res.Body != nil {
  1988  			res.Body.Close()
  1989  		}
  1990  		return nil, gensupport.WrapError(&googleapi.Error{
  1991  			Code:   res.StatusCode,
  1992  			Header: res.Header,
  1993  		})
  1994  	}
  1995  	if err != nil {
  1996  		return nil, err
  1997  	}
  1998  	defer googleapi.CloseBody(res)
  1999  	if err := googleapi.CheckResponse(res); err != nil {
  2000  		return nil, gensupport.WrapError(err)
  2001  	}
  2002  	ret := &Location{
  2003  		ServerResponse: googleapi.ServerResponse{
  2004  			Header:         res.Header,
  2005  			HTTPStatusCode: res.StatusCode,
  2006  		},
  2007  	}
  2008  	target := &ret
  2009  	if err := gensupport.DecodeResponse(target, res); err != nil {
  2010  		return nil, err
  2011  	}
  2012  	return ret, nil
  2013  	// {
  2014  	//   "description": "Gets information about a location.",
  2015  	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}",
  2016  	//   "httpMethod": "GET",
  2017  	//   "id": "gkehub.projects.locations.get",
  2018  	//   "parameterOrder": [
  2019  	//     "name"
  2020  	//   ],
  2021  	//   "parameters": {
  2022  	//     "name": {
  2023  	//       "description": "Resource name for the location.",
  2024  	//       "location": "path",
  2025  	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
  2026  	//       "required": true,
  2027  	//       "type": "string"
  2028  	//     }
  2029  	//   },
  2030  	//   "path": "v1alpha2/{+name}",
  2031  	//   "response": {
  2032  	//     "$ref": "Location"
  2033  	//   },
  2034  	//   "scopes": [
  2035  	//     "https://www.googleapis.com/auth/cloud-platform"
  2036  	//   ]
  2037  	// }
  2038  
  2039  }
  2040  
  2041  // method id "gkehub.projects.locations.list":
  2042  
  2043  type ProjectsLocationsListCall struct {
  2044  	s            *Service
  2045  	name         string
  2046  	urlParams_   gensupport.URLParams
  2047  	ifNoneMatch_ string
  2048  	ctx_         context.Context
  2049  	header_      http.Header
  2050  }
  2051  
  2052  // List: Lists information about the supported locations for this
  2053  // service.
  2054  //
  2055  //   - name: The resource that owns the locations collection, if
  2056  //     applicable.
  2057  func (r *ProjectsLocationsService) List(name string) *ProjectsLocationsListCall {
  2058  	c := &ProjectsLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  2059  	c.name = name
  2060  	return c
  2061  }
  2062  
  2063  // Filter sets the optional parameter "filter": A filter to narrow down
  2064  // results to a preferred subset. The filtering language accepts strings
  2065  // like "displayName=tokyo", and is documented in more detail in
  2066  // AIP-160 (https://google.aip.dev/160).
  2067  func (c *ProjectsLocationsListCall) Filter(filter string) *ProjectsLocationsListCall {
  2068  	c.urlParams_.Set("filter", filter)
  2069  	return c
  2070  }
  2071  
  2072  // PageSize sets the optional parameter "pageSize": The maximum number
  2073  // of results to return. If not set, the service selects a default.
  2074  func (c *ProjectsLocationsListCall) PageSize(pageSize int64) *ProjectsLocationsListCall {
  2075  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  2076  	return c
  2077  }
  2078  
  2079  // PageToken sets the optional parameter "pageToken": A page token
  2080  // received from the `next_page_token` field in the response. Send that
  2081  // page token to receive the subsequent page.
  2082  func (c *ProjectsLocationsListCall) PageToken(pageToken string) *ProjectsLocationsListCall {
  2083  	c.urlParams_.Set("pageToken", pageToken)
  2084  	return c
  2085  }
  2086  
  2087  // Fields allows partial responses to be retrieved. See
  2088  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  2089  // for more information.
  2090  func (c *ProjectsLocationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsListCall {
  2091  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  2092  	return c
  2093  }
  2094  
  2095  // IfNoneMatch sets the optional parameter which makes the operation
  2096  // fail if the object's ETag matches the given value. This is useful for
  2097  // getting updates only after the object has changed since the last
  2098  // request. Use googleapi.IsNotModified to check whether the response
  2099  // error from Do is the result of In-None-Match.
  2100  func (c *ProjectsLocationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsListCall {
  2101  	c.ifNoneMatch_ = entityTag
  2102  	return c
  2103  }
  2104  
  2105  // Context sets the context to be used in this call's Do method. Any
  2106  // pending HTTP request will be aborted if the provided context is
  2107  // canceled.
  2108  func (c *ProjectsLocationsListCall) Context(ctx context.Context) *ProjectsLocationsListCall {
  2109  	c.ctx_ = ctx
  2110  	return c
  2111  }
  2112  
  2113  // Header returns an http.Header that can be modified by the caller to
  2114  // add HTTP headers to the request.
  2115  func (c *ProjectsLocationsListCall) Header() http.Header {
  2116  	if c.header_ == nil {
  2117  		c.header_ = make(http.Header)
  2118  	}
  2119  	return c.header_
  2120  }
  2121  
  2122  func (c *ProjectsLocationsListCall) doRequest(alt string) (*http.Response, error) {
  2123  	reqHeaders := make(http.Header)
  2124  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
  2125  	for k, v := range c.header_ {
  2126  		reqHeaders[k] = v
  2127  	}
  2128  	reqHeaders.Set("User-Agent", c.s.userAgent())
  2129  	if c.ifNoneMatch_ != "" {
  2130  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  2131  	}
  2132  	var body io.Reader = nil
  2133  	c.urlParams_.Set("alt", alt)
  2134  	c.urlParams_.Set("prettyPrint", "false")
  2135  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+name}/locations")
  2136  	urls += "?" + c.urlParams_.Encode()
  2137  	req, err := http.NewRequest("GET", urls, body)
  2138  	if err != nil {
  2139  		return nil, err
  2140  	}
  2141  	req.Header = reqHeaders
  2142  	googleapi.Expand(req.URL, map[string]string{
  2143  		"name": c.name,
  2144  	})
  2145  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  2146  }
  2147  
  2148  // Do executes the "gkehub.projects.locations.list" call.
  2149  // Exactly one of *ListLocationsResponse or error will be non-nil. Any
  2150  // non-2xx status code is an error. Response headers are in either
  2151  // *ListLocationsResponse.ServerResponse.Header or (if a response was
  2152  // returned at all) in error.(*googleapi.Error).Header. Use
  2153  // googleapi.IsNotModified to check whether the returned error was
  2154  // because http.StatusNotModified was returned.
  2155  func (c *ProjectsLocationsListCall) Do(opts ...googleapi.CallOption) (*ListLocationsResponse, error) {
  2156  	gensupport.SetOptions(c.urlParams_, opts...)
  2157  	res, err := c.doRequest("json")
  2158  	if res != nil && res.StatusCode == http.StatusNotModified {
  2159  		if res.Body != nil {
  2160  			res.Body.Close()
  2161  		}
  2162  		return nil, gensupport.WrapError(&googleapi.Error{
  2163  			Code:   res.StatusCode,
  2164  			Header: res.Header,
  2165  		})
  2166  	}
  2167  	if err != nil {
  2168  		return nil, err
  2169  	}
  2170  	defer googleapi.CloseBody(res)
  2171  	if err := googleapi.CheckResponse(res); err != nil {
  2172  		return nil, gensupport.WrapError(err)
  2173  	}
  2174  	ret := &ListLocationsResponse{
  2175  		ServerResponse: googleapi.ServerResponse{
  2176  			Header:         res.Header,
  2177  			HTTPStatusCode: res.StatusCode,
  2178  		},
  2179  	}
  2180  	target := &ret
  2181  	if err := gensupport.DecodeResponse(target, res); err != nil {
  2182  		return nil, err
  2183  	}
  2184  	return ret, nil
  2185  	// {
  2186  	//   "description": "Lists information about the supported locations for this service.",
  2187  	//   "flatPath": "v1alpha2/projects/{projectsId}/locations",
  2188  	//   "httpMethod": "GET",
  2189  	//   "id": "gkehub.projects.locations.list",
  2190  	//   "parameterOrder": [
  2191  	//     "name"
  2192  	//   ],
  2193  	//   "parameters": {
  2194  	//     "filter": {
  2195  	//       "description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).",
  2196  	//       "location": "query",
  2197  	//       "type": "string"
  2198  	//     },
  2199  	//     "name": {
  2200  	//       "description": "The resource that owns the locations collection, if applicable.",
  2201  	//       "location": "path",
  2202  	//       "pattern": "^projects/[^/]+$",
  2203  	//       "required": true,
  2204  	//       "type": "string"
  2205  	//     },
  2206  	//     "pageSize": {
  2207  	//       "description": "The maximum number of results to return. If not set, the service selects a default.",
  2208  	//       "format": "int32",
  2209  	//       "location": "query",
  2210  	//       "type": "integer"
  2211  	//     },
  2212  	//     "pageToken": {
  2213  	//       "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.",
  2214  	//       "location": "query",
  2215  	//       "type": "string"
  2216  	//     }
  2217  	//   },
  2218  	//   "path": "v1alpha2/{+name}/locations",
  2219  	//   "response": {
  2220  	//     "$ref": "ListLocationsResponse"
  2221  	//   },
  2222  	//   "scopes": [
  2223  	//     "https://www.googleapis.com/auth/cloud-platform"
  2224  	//   ]
  2225  	// }
  2226  
  2227  }
  2228  
  2229  // Pages invokes f for each page of results.
  2230  // A non-nil error returned from f will halt the iteration.
  2231  // The provided context supersedes any context provided to the Context method.
  2232  func (c *ProjectsLocationsListCall) Pages(ctx context.Context, f func(*ListLocationsResponse) error) error {
  2233  	c.ctx_ = ctx
  2234  	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
  2235  	for {
  2236  		x, err := c.Do()
  2237  		if err != nil {
  2238  			return err
  2239  		}
  2240  		if err := f(x); err != nil {
  2241  			return err
  2242  		}
  2243  		if x.NextPageToken == "" {
  2244  			return nil
  2245  		}
  2246  		c.PageToken(x.NextPageToken)
  2247  	}
  2248  }
  2249  
  2250  // method id "gkehub.projects.locations.global.memberships.initializeHub":
  2251  
  2252  type ProjectsLocationsGlobalMembershipsInitializeHubCall struct {
  2253  	s                    *Service
  2254  	project              string
  2255  	initializehubrequest *InitializeHubRequest
  2256  	urlParams_           gensupport.URLParams
  2257  	ctx_                 context.Context
  2258  	header_              http.Header
  2259  }
  2260  
  2261  // InitializeHub: Initializes the Hub in this project, which includes
  2262  // creating the default Hub Service Account and the Hub Workload
  2263  // Identity Pool. Initialization is optional, and happens automatically
  2264  // when the first Membership is created. InitializeHub should be called
  2265  // when the first Membership cannot be registered without these
  2266  // resources. A common example is granting the Hub Service Account
  2267  // access to another project, which requires the account to exist first.
  2268  //
  2269  //   - project: The Hub to initialize, in the format
  2270  //     `projects/*/locations/*/memberships/*`.
  2271  func (r *ProjectsLocationsGlobalMembershipsService) InitializeHub(project string, initializehubrequest *InitializeHubRequest) *ProjectsLocationsGlobalMembershipsInitializeHubCall {
  2272  	c := &ProjectsLocationsGlobalMembershipsInitializeHubCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  2273  	c.project = project
  2274  	c.initializehubrequest = initializehubrequest
  2275  	return c
  2276  }
  2277  
  2278  // Fields allows partial responses to be retrieved. See
  2279  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  2280  // for more information.
  2281  func (c *ProjectsLocationsGlobalMembershipsInitializeHubCall) Fields(s ...googleapi.Field) *ProjectsLocationsGlobalMembershipsInitializeHubCall {
  2282  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  2283  	return c
  2284  }
  2285  
  2286  // Context sets the context to be used in this call's Do method. Any
  2287  // pending HTTP request will be aborted if the provided context is
  2288  // canceled.
  2289  func (c *ProjectsLocationsGlobalMembershipsInitializeHubCall) Context(ctx context.Context) *ProjectsLocationsGlobalMembershipsInitializeHubCall {
  2290  	c.ctx_ = ctx
  2291  	return c
  2292  }
  2293  
  2294  // Header returns an http.Header that can be modified by the caller to
  2295  // add HTTP headers to the request.
  2296  func (c *ProjectsLocationsGlobalMembershipsInitializeHubCall) Header() http.Header {
  2297  	if c.header_ == nil {
  2298  		c.header_ = make(http.Header)
  2299  	}
  2300  	return c.header_
  2301  }
  2302  
  2303  func (c *ProjectsLocationsGlobalMembershipsInitializeHubCall) doRequest(alt string) (*http.Response, error) {
  2304  	reqHeaders := make(http.Header)
  2305  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
  2306  	for k, v := range c.header_ {
  2307  		reqHeaders[k] = v
  2308  	}
  2309  	reqHeaders.Set("User-Agent", c.s.userAgent())
  2310  	var body io.Reader = nil
  2311  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.initializehubrequest)
  2312  	if err != nil {
  2313  		return nil, err
  2314  	}
  2315  	reqHeaders.Set("Content-Type", "application/json")
  2316  	c.urlParams_.Set("alt", alt)
  2317  	c.urlParams_.Set("prettyPrint", "false")
  2318  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+project}:initializeHub")
  2319  	urls += "?" + c.urlParams_.Encode()
  2320  	req, err := http.NewRequest("POST", urls, body)
  2321  	if err != nil {
  2322  		return nil, err
  2323  	}
  2324  	req.Header = reqHeaders
  2325  	googleapi.Expand(req.URL, map[string]string{
  2326  		"project": c.project,
  2327  	})
  2328  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  2329  }
  2330  
  2331  // Do executes the "gkehub.projects.locations.global.memberships.initializeHub" call.
  2332  // Exactly one of *InitializeHubResponse or error will be non-nil. Any
  2333  // non-2xx status code is an error. Response headers are in either
  2334  // *InitializeHubResponse.ServerResponse.Header or (if a response was
  2335  // returned at all) in error.(*googleapi.Error).Header. Use
  2336  // googleapi.IsNotModified to check whether the returned error was
  2337  // because http.StatusNotModified was returned.
  2338  func (c *ProjectsLocationsGlobalMembershipsInitializeHubCall) Do(opts ...googleapi.CallOption) (*InitializeHubResponse, error) {
  2339  	gensupport.SetOptions(c.urlParams_, opts...)
  2340  	res, err := c.doRequest("json")
  2341  	if res != nil && res.StatusCode == http.StatusNotModified {
  2342  		if res.Body != nil {
  2343  			res.Body.Close()
  2344  		}
  2345  		return nil, gensupport.WrapError(&googleapi.Error{
  2346  			Code:   res.StatusCode,
  2347  			Header: res.Header,
  2348  		})
  2349  	}
  2350  	if err != nil {
  2351  		return nil, err
  2352  	}
  2353  	defer googleapi.CloseBody(res)
  2354  	if err := googleapi.CheckResponse(res); err != nil {
  2355  		return nil, gensupport.WrapError(err)
  2356  	}
  2357  	ret := &InitializeHubResponse{
  2358  		ServerResponse: googleapi.ServerResponse{
  2359  			Header:         res.Header,
  2360  			HTTPStatusCode: res.StatusCode,
  2361  		},
  2362  	}
  2363  	target := &ret
  2364  	if err := gensupport.DecodeResponse(target, res); err != nil {
  2365  		return nil, err
  2366  	}
  2367  	return ret, nil
  2368  	// {
  2369  	//   "description": "Initializes the Hub in this project, which includes creating the default Hub Service Account and the Hub Workload Identity Pool. Initialization is optional, and happens automatically when the first Membership is created. InitializeHub should be called when the first Membership cannot be registered without these resources. A common example is granting the Hub Service Account access to another project, which requires the account to exist first.",
  2370  	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/global/memberships:initializeHub",
  2371  	//   "httpMethod": "POST",
  2372  	//   "id": "gkehub.projects.locations.global.memberships.initializeHub",
  2373  	//   "parameterOrder": [
  2374  	//     "project"
  2375  	//   ],
  2376  	//   "parameters": {
  2377  	//     "project": {
  2378  	//       "description": "Required. The Hub to initialize, in the format `projects/*/locations/*/memberships/*`.",
  2379  	//       "location": "path",
  2380  	//       "pattern": "^projects/[^/]+/locations/global/memberships$",
  2381  	//       "required": true,
  2382  	//       "type": "string"
  2383  	//     }
  2384  	//   },
  2385  	//   "path": "v1alpha2/{+project}:initializeHub",
  2386  	//   "request": {
  2387  	//     "$ref": "InitializeHubRequest"
  2388  	//   },
  2389  	//   "response": {
  2390  	//     "$ref": "InitializeHubResponse"
  2391  	//   },
  2392  	//   "scopes": [
  2393  	//     "https://www.googleapis.com/auth/cloud-platform"
  2394  	//   ]
  2395  	// }
  2396  
  2397  }
  2398  
  2399  // method id "gkehub.projects.locations.memberships.create":
  2400  
  2401  type ProjectsLocationsMembershipsCreateCall struct {
  2402  	s          *Service
  2403  	parent     string
  2404  	membership *Membership
  2405  	urlParams_ gensupport.URLParams
  2406  	ctx_       context.Context
  2407  	header_    http.Header
  2408  }
  2409  
  2410  // Create: Creates a new Membership. **This is currently only supported
  2411  // for GKE clusters on Google Cloud**. To register other clusters,
  2412  // follow the instructions at
  2413  // https://cloud.google.com/anthos/multicluster-management/connect/registering-a-cluster.
  2414  //
  2415  //   - parent: The parent (project and location) where the Memberships
  2416  //     will be created. Specified in the format `projects/*/locations/*`.
  2417  func (r *ProjectsLocationsMembershipsService) Create(parent string, membership *Membership) *ProjectsLocationsMembershipsCreateCall {
  2418  	c := &ProjectsLocationsMembershipsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  2419  	c.parent = parent
  2420  	c.membership = membership
  2421  	return c
  2422  }
  2423  
  2424  // MembershipId sets the optional parameter "membershipId": Required.
  2425  // Client chosen ID for the membership. `membership_id` must be a valid
  2426  // RFC 1123 compliant DNS label: 1. At most 63 characters in length 2.
  2427  // It must consist of lower case alphanumeric characters or `-` 3. It
  2428  // must start and end with an alphanumeric character Which can be
  2429  // expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a
  2430  // maximum length of 63 characters.
  2431  func (c *ProjectsLocationsMembershipsCreateCall) MembershipId(membershipId string) *ProjectsLocationsMembershipsCreateCall {
  2432  	c.urlParams_.Set("membershipId", membershipId)
  2433  	return c
  2434  }
  2435  
  2436  // Fields allows partial responses to be retrieved. See
  2437  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  2438  // for more information.
  2439  func (c *ProjectsLocationsMembershipsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsCreateCall {
  2440  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  2441  	return c
  2442  }
  2443  
  2444  // Context sets the context to be used in this call's Do method. Any
  2445  // pending HTTP request will be aborted if the provided context is
  2446  // canceled.
  2447  func (c *ProjectsLocationsMembershipsCreateCall) Context(ctx context.Context) *ProjectsLocationsMembershipsCreateCall {
  2448  	c.ctx_ = ctx
  2449  	return c
  2450  }
  2451  
  2452  // Header returns an http.Header that can be modified by the caller to
  2453  // add HTTP headers to the request.
  2454  func (c *ProjectsLocationsMembershipsCreateCall) Header() http.Header {
  2455  	if c.header_ == nil {
  2456  		c.header_ = make(http.Header)
  2457  	}
  2458  	return c.header_
  2459  }
  2460  
  2461  func (c *ProjectsLocationsMembershipsCreateCall) doRequest(alt string) (*http.Response, error) {
  2462  	reqHeaders := make(http.Header)
  2463  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
  2464  	for k, v := range c.header_ {
  2465  		reqHeaders[k] = v
  2466  	}
  2467  	reqHeaders.Set("User-Agent", c.s.userAgent())
  2468  	var body io.Reader = nil
  2469  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.membership)
  2470  	if err != nil {
  2471  		return nil, err
  2472  	}
  2473  	reqHeaders.Set("Content-Type", "application/json")
  2474  	c.urlParams_.Set("alt", alt)
  2475  	c.urlParams_.Set("prettyPrint", "false")
  2476  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+parent}/memberships")
  2477  	urls += "?" + c.urlParams_.Encode()
  2478  	req, err := http.NewRequest("POST", urls, body)
  2479  	if err != nil {
  2480  		return nil, err
  2481  	}
  2482  	req.Header = reqHeaders
  2483  	googleapi.Expand(req.URL, map[string]string{
  2484  		"parent": c.parent,
  2485  	})
  2486  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  2487  }
  2488  
  2489  // Do executes the "gkehub.projects.locations.memberships.create" call.
  2490  // Exactly one of *Operation or error will be non-nil. Any non-2xx
  2491  // status code is an error. Response headers are in either
  2492  // *Operation.ServerResponse.Header or (if a response was returned at
  2493  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
  2494  // to check whether the returned error was because
  2495  // http.StatusNotModified was returned.
  2496  func (c *ProjectsLocationsMembershipsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  2497  	gensupport.SetOptions(c.urlParams_, opts...)
  2498  	res, err := c.doRequest("json")
  2499  	if res != nil && res.StatusCode == http.StatusNotModified {
  2500  		if res.Body != nil {
  2501  			res.Body.Close()
  2502  		}
  2503  		return nil, gensupport.WrapError(&googleapi.Error{
  2504  			Code:   res.StatusCode,
  2505  			Header: res.Header,
  2506  		})
  2507  	}
  2508  	if err != nil {
  2509  		return nil, err
  2510  	}
  2511  	defer googleapi.CloseBody(res)
  2512  	if err := googleapi.CheckResponse(res); err != nil {
  2513  		return nil, gensupport.WrapError(err)
  2514  	}
  2515  	ret := &Operation{
  2516  		ServerResponse: googleapi.ServerResponse{
  2517  			Header:         res.Header,
  2518  			HTTPStatusCode: res.StatusCode,
  2519  		},
  2520  	}
  2521  	target := &ret
  2522  	if err := gensupport.DecodeResponse(target, res); err != nil {
  2523  		return nil, err
  2524  	}
  2525  	return ret, nil
  2526  	// {
  2527  	//   "description": "Creates a new Membership. **This is currently only supported for GKE clusters on Google Cloud**. To register other clusters, follow the instructions at https://cloud.google.com/anthos/multicluster-management/connect/registering-a-cluster.",
  2528  	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/memberships",
  2529  	//   "httpMethod": "POST",
  2530  	//   "id": "gkehub.projects.locations.memberships.create",
  2531  	//   "parameterOrder": [
  2532  	//     "parent"
  2533  	//   ],
  2534  	//   "parameters": {
  2535  	//     "membershipId": {
  2536  	//       "description": "Required. Client chosen ID for the membership. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.",
  2537  	//       "location": "query",
  2538  	//       "type": "string"
  2539  	//     },
  2540  	//     "parent": {
  2541  	//       "description": "Required. The parent (project and location) where the Memberships will be created. Specified in the format `projects/*/locations/*`.",
  2542  	//       "location": "path",
  2543  	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
  2544  	//       "required": true,
  2545  	//       "type": "string"
  2546  	//     }
  2547  	//   },
  2548  	//   "path": "v1alpha2/{+parent}/memberships",
  2549  	//   "request": {
  2550  	//     "$ref": "Membership"
  2551  	//   },
  2552  	//   "response": {
  2553  	//     "$ref": "Operation"
  2554  	//   },
  2555  	//   "scopes": [
  2556  	//     "https://www.googleapis.com/auth/cloud-platform"
  2557  	//   ]
  2558  	// }
  2559  
  2560  }
  2561  
  2562  // method id "gkehub.projects.locations.memberships.delete":
  2563  
  2564  type ProjectsLocationsMembershipsDeleteCall struct {
  2565  	s          *Service
  2566  	name       string
  2567  	urlParams_ gensupport.URLParams
  2568  	ctx_       context.Context
  2569  	header_    http.Header
  2570  }
  2571  
  2572  // Delete: Removes a Membership. **This is currently only supported for
  2573  // GKE clusters on Google Cloud**. To unregister other clusters, follow
  2574  // the instructions at
  2575  // https://cloud.google.com/anthos/multicluster-management/connect/unregistering-a-cluster.
  2576  //
  2577  //   - name: The Membership resource name in the format
  2578  //     `projects/*/locations/*/memberships/*`.
  2579  func (r *ProjectsLocationsMembershipsService) Delete(name string) *ProjectsLocationsMembershipsDeleteCall {
  2580  	c := &ProjectsLocationsMembershipsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  2581  	c.name = name
  2582  	return c
  2583  }
  2584  
  2585  // Force sets the optional parameter "force": If set to true, any
  2586  // subresource from this Membership will also be deleted. Otherwise, the
  2587  // request will only work if the Membership has no subresource.
  2588  func (c *ProjectsLocationsMembershipsDeleteCall) Force(force bool) *ProjectsLocationsMembershipsDeleteCall {
  2589  	c.urlParams_.Set("force", fmt.Sprint(force))
  2590  	return c
  2591  }
  2592  
  2593  // Fields allows partial responses to be retrieved. See
  2594  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  2595  // for more information.
  2596  func (c *ProjectsLocationsMembershipsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsDeleteCall {
  2597  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  2598  	return c
  2599  }
  2600  
  2601  // Context sets the context to be used in this call's Do method. Any
  2602  // pending HTTP request will be aborted if the provided context is
  2603  // canceled.
  2604  func (c *ProjectsLocationsMembershipsDeleteCall) Context(ctx context.Context) *ProjectsLocationsMembershipsDeleteCall {
  2605  	c.ctx_ = ctx
  2606  	return c
  2607  }
  2608  
  2609  // Header returns an http.Header that can be modified by the caller to
  2610  // add HTTP headers to the request.
  2611  func (c *ProjectsLocationsMembershipsDeleteCall) Header() http.Header {
  2612  	if c.header_ == nil {
  2613  		c.header_ = make(http.Header)
  2614  	}
  2615  	return c.header_
  2616  }
  2617  
  2618  func (c *ProjectsLocationsMembershipsDeleteCall) doRequest(alt string) (*http.Response, error) {
  2619  	reqHeaders := make(http.Header)
  2620  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
  2621  	for k, v := range c.header_ {
  2622  		reqHeaders[k] = v
  2623  	}
  2624  	reqHeaders.Set("User-Agent", c.s.userAgent())
  2625  	var body io.Reader = nil
  2626  	c.urlParams_.Set("alt", alt)
  2627  	c.urlParams_.Set("prettyPrint", "false")
  2628  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+name}")
  2629  	urls += "?" + c.urlParams_.Encode()
  2630  	req, err := http.NewRequest("DELETE", urls, body)
  2631  	if err != nil {
  2632  		return nil, err
  2633  	}
  2634  	req.Header = reqHeaders
  2635  	googleapi.Expand(req.URL, map[string]string{
  2636  		"name": c.name,
  2637  	})
  2638  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  2639  }
  2640  
  2641  // Do executes the "gkehub.projects.locations.memberships.delete" call.
  2642  // Exactly one of *Operation or error will be non-nil. Any non-2xx
  2643  // status code is an error. Response headers are in either
  2644  // *Operation.ServerResponse.Header or (if a response was returned at
  2645  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
  2646  // to check whether the returned error was because
  2647  // http.StatusNotModified was returned.
  2648  func (c *ProjectsLocationsMembershipsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  2649  	gensupport.SetOptions(c.urlParams_, opts...)
  2650  	res, err := c.doRequest("json")
  2651  	if res != nil && res.StatusCode == http.StatusNotModified {
  2652  		if res.Body != nil {
  2653  			res.Body.Close()
  2654  		}
  2655  		return nil, gensupport.WrapError(&googleapi.Error{
  2656  			Code:   res.StatusCode,
  2657  			Header: res.Header,
  2658  		})
  2659  	}
  2660  	if err != nil {
  2661  		return nil, err
  2662  	}
  2663  	defer googleapi.CloseBody(res)
  2664  	if err := googleapi.CheckResponse(res); err != nil {
  2665  		return nil, gensupport.WrapError(err)
  2666  	}
  2667  	ret := &Operation{
  2668  		ServerResponse: googleapi.ServerResponse{
  2669  			Header:         res.Header,
  2670  			HTTPStatusCode: res.StatusCode,
  2671  		},
  2672  	}
  2673  	target := &ret
  2674  	if err := gensupport.DecodeResponse(target, res); err != nil {
  2675  		return nil, err
  2676  	}
  2677  	return ret, nil
  2678  	// {
  2679  	//   "description": "Removes a Membership. **This is currently only supported for GKE clusters on Google Cloud**. To unregister other clusters, follow the instructions at https://cloud.google.com/anthos/multicluster-management/connect/unregistering-a-cluster.",
  2680  	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}",
  2681  	//   "httpMethod": "DELETE",
  2682  	//   "id": "gkehub.projects.locations.memberships.delete",
  2683  	//   "parameterOrder": [
  2684  	//     "name"
  2685  	//   ],
  2686  	//   "parameters": {
  2687  	//     "force": {
  2688  	//       "description": "Optional. If set to true, any subresource from this Membership will also be deleted. Otherwise, the request will only work if the Membership has no subresource.",
  2689  	//       "location": "query",
  2690  	//       "type": "boolean"
  2691  	//     },
  2692  	//     "name": {
  2693  	//       "description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.",
  2694  	//       "location": "path",
  2695  	//       "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$",
  2696  	//       "required": true,
  2697  	//       "type": "string"
  2698  	//     }
  2699  	//   },
  2700  	//   "path": "v1alpha2/{+name}",
  2701  	//   "response": {
  2702  	//     "$ref": "Operation"
  2703  	//   },
  2704  	//   "scopes": [
  2705  	//     "https://www.googleapis.com/auth/cloud-platform"
  2706  	//   ]
  2707  	// }
  2708  
  2709  }
  2710  
  2711  // method id "gkehub.projects.locations.memberships.generateConnectManifest":
  2712  
  2713  type ProjectsLocationsMembershipsGenerateConnectManifestCall struct {
  2714  	s            *Service
  2715  	name         string
  2716  	urlParams_   gensupport.URLParams
  2717  	ifNoneMatch_ string
  2718  	ctx_         context.Context
  2719  	header_      http.Header
  2720  }
  2721  
  2722  // GenerateConnectManifest: Generates the manifest for deployment of the
  2723  // GKE connect agent. **This method is used internally by
  2724  // Google-provided libraries.** Most clients should not need to call
  2725  // this method directly.
  2726  //
  2727  //   - name: The Membership resource name the Agent will associate with,
  2728  //     in the format `projects/*/locations/*/memberships/*`.
  2729  func (r *ProjectsLocationsMembershipsService) GenerateConnectManifest(name string) *ProjectsLocationsMembershipsGenerateConnectManifestCall {
  2730  	c := &ProjectsLocationsMembershipsGenerateConnectManifestCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  2731  	c.name = name
  2732  	return c
  2733  }
  2734  
  2735  // ImagePullSecretContent sets the optional parameter
  2736  // "imagePullSecretContent": The image pull secret content for the
  2737  // registry, if not public.
  2738  func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) ImagePullSecretContent(imagePullSecretContent string) *ProjectsLocationsMembershipsGenerateConnectManifestCall {
  2739  	c.urlParams_.Set("imagePullSecretContent", imagePullSecretContent)
  2740  	return c
  2741  }
  2742  
  2743  // IsUpgrade sets the optional parameter "isUpgrade": If true, generate
  2744  // the resources for upgrade only. Some resources generated only for
  2745  // installation (e.g. secrets) will be excluded.
  2746  func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) IsUpgrade(isUpgrade bool) *ProjectsLocationsMembershipsGenerateConnectManifestCall {
  2747  	c.urlParams_.Set("isUpgrade", fmt.Sprint(isUpgrade))
  2748  	return c
  2749  }
  2750  
  2751  // Namespace sets the optional parameter "namespace": Namespace for GKE
  2752  // Connect agent resources. Defaults to `gke-connect`. The Connect Agent
  2753  // is authorized automatically when run in the default namespace.
  2754  // Otherwise, explicit authorization must be granted with an additional
  2755  // IAM binding.
  2756  func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) Namespace(namespace string) *ProjectsLocationsMembershipsGenerateConnectManifestCall {
  2757  	c.urlParams_.Set("namespace", namespace)
  2758  	return c
  2759  }
  2760  
  2761  // Proxy sets the optional parameter "proxy": URI of a proxy if
  2762  // connectivity from the agent to gkeconnect.googleapis.com requires the
  2763  // use of a proxy. Format must be in the form
  2764  // `http(s)://{proxy_address}`, depending on the HTTP/HTTPS protocol
  2765  // supported by the proxy. This will direct the connect agent's outbound
  2766  // traffic through a HTTP(S) proxy.
  2767  func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) Proxy(proxy string) *ProjectsLocationsMembershipsGenerateConnectManifestCall {
  2768  	c.urlParams_.Set("proxy", proxy)
  2769  	return c
  2770  }
  2771  
  2772  // Registry sets the optional parameter "registry": The registry to
  2773  // fetch the connect agent image from. Defaults to gcr.io/gkeconnect.
  2774  func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) Registry(registry string) *ProjectsLocationsMembershipsGenerateConnectManifestCall {
  2775  	c.urlParams_.Set("registry", registry)
  2776  	return c
  2777  }
  2778  
  2779  // Version sets the optional parameter "version": The Connect agent
  2780  // version to use. Defaults to the most current version.
  2781  func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) Version(version string) *ProjectsLocationsMembershipsGenerateConnectManifestCall {
  2782  	c.urlParams_.Set("version", version)
  2783  	return c
  2784  }
  2785  
  2786  // Fields allows partial responses to be retrieved. See
  2787  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  2788  // for more information.
  2789  func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsGenerateConnectManifestCall {
  2790  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  2791  	return c
  2792  }
  2793  
  2794  // IfNoneMatch sets the optional parameter which makes the operation
  2795  // fail if the object's ETag matches the given value. This is useful for
  2796  // getting updates only after the object has changed since the last
  2797  // request. Use googleapi.IsNotModified to check whether the response
  2798  // error from Do is the result of In-None-Match.
  2799  func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) IfNoneMatch(entityTag string) *ProjectsLocationsMembershipsGenerateConnectManifestCall {
  2800  	c.ifNoneMatch_ = entityTag
  2801  	return c
  2802  }
  2803  
  2804  // Context sets the context to be used in this call's Do method. Any
  2805  // pending HTTP request will be aborted if the provided context is
  2806  // canceled.
  2807  func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) Context(ctx context.Context) *ProjectsLocationsMembershipsGenerateConnectManifestCall {
  2808  	c.ctx_ = ctx
  2809  	return c
  2810  }
  2811  
  2812  // Header returns an http.Header that can be modified by the caller to
  2813  // add HTTP headers to the request.
  2814  func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) Header() http.Header {
  2815  	if c.header_ == nil {
  2816  		c.header_ = make(http.Header)
  2817  	}
  2818  	return c.header_
  2819  }
  2820  
  2821  func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) doRequest(alt string) (*http.Response, error) {
  2822  	reqHeaders := make(http.Header)
  2823  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
  2824  	for k, v := range c.header_ {
  2825  		reqHeaders[k] = v
  2826  	}
  2827  	reqHeaders.Set("User-Agent", c.s.userAgent())
  2828  	if c.ifNoneMatch_ != "" {
  2829  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  2830  	}
  2831  	var body io.Reader = nil
  2832  	c.urlParams_.Set("alt", alt)
  2833  	c.urlParams_.Set("prettyPrint", "false")
  2834  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+name}:generateConnectManifest")
  2835  	urls += "?" + c.urlParams_.Encode()
  2836  	req, err := http.NewRequest("GET", urls, body)
  2837  	if err != nil {
  2838  		return nil, err
  2839  	}
  2840  	req.Header = reqHeaders
  2841  	googleapi.Expand(req.URL, map[string]string{
  2842  		"name": c.name,
  2843  	})
  2844  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  2845  }
  2846  
  2847  // Do executes the "gkehub.projects.locations.memberships.generateConnectManifest" call.
  2848  // Exactly one of *GenerateConnectManifestResponse or error will be
  2849  // non-nil. Any non-2xx status code is an error. Response headers are in
  2850  // either *GenerateConnectManifestResponse.ServerResponse.Header or (if
  2851  // a response was returned at all) in error.(*googleapi.Error).Header.
  2852  // Use googleapi.IsNotModified to check whether the returned error was
  2853  // because http.StatusNotModified was returned.
  2854  func (c *ProjectsLocationsMembershipsGenerateConnectManifestCall) Do(opts ...googleapi.CallOption) (*GenerateConnectManifestResponse, error) {
  2855  	gensupport.SetOptions(c.urlParams_, opts...)
  2856  	res, err := c.doRequest("json")
  2857  	if res != nil && res.StatusCode == http.StatusNotModified {
  2858  		if res.Body != nil {
  2859  			res.Body.Close()
  2860  		}
  2861  		return nil, gensupport.WrapError(&googleapi.Error{
  2862  			Code:   res.StatusCode,
  2863  			Header: res.Header,
  2864  		})
  2865  	}
  2866  	if err != nil {
  2867  		return nil, err
  2868  	}
  2869  	defer googleapi.CloseBody(res)
  2870  	if err := googleapi.CheckResponse(res); err != nil {
  2871  		return nil, gensupport.WrapError(err)
  2872  	}
  2873  	ret := &GenerateConnectManifestResponse{
  2874  		ServerResponse: googleapi.ServerResponse{
  2875  			Header:         res.Header,
  2876  			HTTPStatusCode: res.StatusCode,
  2877  		},
  2878  	}
  2879  	target := &ret
  2880  	if err := gensupport.DecodeResponse(target, res); err != nil {
  2881  		return nil, err
  2882  	}
  2883  	return ret, nil
  2884  	// {
  2885  	//   "description": "Generates the manifest for deployment of the GKE connect agent. **This method is used internally by Google-provided libraries.** Most clients should not need to call this method directly.",
  2886  	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}:generateConnectManifest",
  2887  	//   "httpMethod": "GET",
  2888  	//   "id": "gkehub.projects.locations.memberships.generateConnectManifest",
  2889  	//   "parameterOrder": [
  2890  	//     "name"
  2891  	//   ],
  2892  	//   "parameters": {
  2893  	//     "imagePullSecretContent": {
  2894  	//       "description": "Optional. The image pull secret content for the registry, if not public.",
  2895  	//       "format": "byte",
  2896  	//       "location": "query",
  2897  	//       "type": "string"
  2898  	//     },
  2899  	//     "isUpgrade": {
  2900  	//       "description": "Optional. If true, generate the resources for upgrade only. Some resources generated only for installation (e.g. secrets) will be excluded.",
  2901  	//       "location": "query",
  2902  	//       "type": "boolean"
  2903  	//     },
  2904  	//     "name": {
  2905  	//       "description": "Required. The Membership resource name the Agent will associate with, in the format `projects/*/locations/*/memberships/*`.",
  2906  	//       "location": "path",
  2907  	//       "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$",
  2908  	//       "required": true,
  2909  	//       "type": "string"
  2910  	//     },
  2911  	//     "namespace": {
  2912  	//       "description": "Optional. Namespace for GKE Connect agent resources. Defaults to `gke-connect`. The Connect Agent is authorized automatically when run in the default namespace. Otherwise, explicit authorization must be granted with an additional IAM binding.",
  2913  	//       "location": "query",
  2914  	//       "type": "string"
  2915  	//     },
  2916  	//     "proxy": {
  2917  	//       "description": "Optional. URI of a proxy if connectivity from the agent to gkeconnect.googleapis.com requires the use of a proxy. Format must be in the form `http(s)://{proxy_address}`, depending on the HTTP/HTTPS protocol supported by the proxy. This will direct the connect agent's outbound traffic through a HTTP(S) proxy.",
  2918  	//       "format": "byte",
  2919  	//       "location": "query",
  2920  	//       "type": "string"
  2921  	//     },
  2922  	//     "registry": {
  2923  	//       "description": "Optional. The registry to fetch the connect agent image from. Defaults to gcr.io/gkeconnect.",
  2924  	//       "location": "query",
  2925  	//       "type": "string"
  2926  	//     },
  2927  	//     "version": {
  2928  	//       "description": "Optional. The Connect agent version to use. Defaults to the most current version.",
  2929  	//       "location": "query",
  2930  	//       "type": "string"
  2931  	//     }
  2932  	//   },
  2933  	//   "path": "v1alpha2/{+name}:generateConnectManifest",
  2934  	//   "response": {
  2935  	//     "$ref": "GenerateConnectManifestResponse"
  2936  	//   },
  2937  	//   "scopes": [
  2938  	//     "https://www.googleapis.com/auth/cloud-platform"
  2939  	//   ]
  2940  	// }
  2941  
  2942  }
  2943  
  2944  // method id "gkehub.projects.locations.memberships.get":
  2945  
  2946  type ProjectsLocationsMembershipsGetCall struct {
  2947  	s            *Service
  2948  	name         string
  2949  	urlParams_   gensupport.URLParams
  2950  	ifNoneMatch_ string
  2951  	ctx_         context.Context
  2952  	header_      http.Header
  2953  }
  2954  
  2955  // Get: Gets the details of a Membership.
  2956  //
  2957  //   - name: The Membership resource name in the format
  2958  //     `projects/*/locations/*/memberships/*`.
  2959  func (r *ProjectsLocationsMembershipsService) Get(name string) *ProjectsLocationsMembershipsGetCall {
  2960  	c := &ProjectsLocationsMembershipsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  2961  	c.name = name
  2962  	return c
  2963  }
  2964  
  2965  // Fields allows partial responses to be retrieved. See
  2966  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  2967  // for more information.
  2968  func (c *ProjectsLocationsMembershipsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsGetCall {
  2969  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  2970  	return c
  2971  }
  2972  
  2973  // IfNoneMatch sets the optional parameter which makes the operation
  2974  // fail if the object's ETag matches the given value. This is useful for
  2975  // getting updates only after the object has changed since the last
  2976  // request. Use googleapi.IsNotModified to check whether the response
  2977  // error from Do is the result of In-None-Match.
  2978  func (c *ProjectsLocationsMembershipsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsMembershipsGetCall {
  2979  	c.ifNoneMatch_ = entityTag
  2980  	return c
  2981  }
  2982  
  2983  // Context sets the context to be used in this call's Do method. Any
  2984  // pending HTTP request will be aborted if the provided context is
  2985  // canceled.
  2986  func (c *ProjectsLocationsMembershipsGetCall) Context(ctx context.Context) *ProjectsLocationsMembershipsGetCall {
  2987  	c.ctx_ = ctx
  2988  	return c
  2989  }
  2990  
  2991  // Header returns an http.Header that can be modified by the caller to
  2992  // add HTTP headers to the request.
  2993  func (c *ProjectsLocationsMembershipsGetCall) Header() http.Header {
  2994  	if c.header_ == nil {
  2995  		c.header_ = make(http.Header)
  2996  	}
  2997  	return c.header_
  2998  }
  2999  
  3000  func (c *ProjectsLocationsMembershipsGetCall) doRequest(alt string) (*http.Response, error) {
  3001  	reqHeaders := make(http.Header)
  3002  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
  3003  	for k, v := range c.header_ {
  3004  		reqHeaders[k] = v
  3005  	}
  3006  	reqHeaders.Set("User-Agent", c.s.userAgent())
  3007  	if c.ifNoneMatch_ != "" {
  3008  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3009  	}
  3010  	var body io.Reader = nil
  3011  	c.urlParams_.Set("alt", alt)
  3012  	c.urlParams_.Set("prettyPrint", "false")
  3013  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+name}")
  3014  	urls += "?" + c.urlParams_.Encode()
  3015  	req, err := http.NewRequest("GET", urls, body)
  3016  	if err != nil {
  3017  		return nil, err
  3018  	}
  3019  	req.Header = reqHeaders
  3020  	googleapi.Expand(req.URL, map[string]string{
  3021  		"name": c.name,
  3022  	})
  3023  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3024  }
  3025  
  3026  // Do executes the "gkehub.projects.locations.memberships.get" call.
  3027  // Exactly one of *Membership or error will be non-nil. Any non-2xx
  3028  // status code is an error. Response headers are in either
  3029  // *Membership.ServerResponse.Header or (if a response was returned at
  3030  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
  3031  // to check whether the returned error was because
  3032  // http.StatusNotModified was returned.
  3033  func (c *ProjectsLocationsMembershipsGetCall) Do(opts ...googleapi.CallOption) (*Membership, error) {
  3034  	gensupport.SetOptions(c.urlParams_, opts...)
  3035  	res, err := c.doRequest("json")
  3036  	if res != nil && res.StatusCode == http.StatusNotModified {
  3037  		if res.Body != nil {
  3038  			res.Body.Close()
  3039  		}
  3040  		return nil, gensupport.WrapError(&googleapi.Error{
  3041  			Code:   res.StatusCode,
  3042  			Header: res.Header,
  3043  		})
  3044  	}
  3045  	if err != nil {
  3046  		return nil, err
  3047  	}
  3048  	defer googleapi.CloseBody(res)
  3049  	if err := googleapi.CheckResponse(res); err != nil {
  3050  		return nil, gensupport.WrapError(err)
  3051  	}
  3052  	ret := &Membership{
  3053  		ServerResponse: googleapi.ServerResponse{
  3054  			Header:         res.Header,
  3055  			HTTPStatusCode: res.StatusCode,
  3056  		},
  3057  	}
  3058  	target := &ret
  3059  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3060  		return nil, err
  3061  	}
  3062  	return ret, nil
  3063  	// {
  3064  	//   "description": "Gets the details of a Membership.",
  3065  	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}",
  3066  	//   "httpMethod": "GET",
  3067  	//   "id": "gkehub.projects.locations.memberships.get",
  3068  	//   "parameterOrder": [
  3069  	//     "name"
  3070  	//   ],
  3071  	//   "parameters": {
  3072  	//     "name": {
  3073  	//       "description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.",
  3074  	//       "location": "path",
  3075  	//       "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$",
  3076  	//       "required": true,
  3077  	//       "type": "string"
  3078  	//     }
  3079  	//   },
  3080  	//   "path": "v1alpha2/{+name}",
  3081  	//   "response": {
  3082  	//     "$ref": "Membership"
  3083  	//   },
  3084  	//   "scopes": [
  3085  	//     "https://www.googleapis.com/auth/cloud-platform"
  3086  	//   ]
  3087  	// }
  3088  
  3089  }
  3090  
  3091  // method id "gkehub.projects.locations.memberships.getIamPolicy":
  3092  
  3093  type ProjectsLocationsMembershipsGetIamPolicyCall struct {
  3094  	s            *Service
  3095  	resource     string
  3096  	urlParams_   gensupport.URLParams
  3097  	ifNoneMatch_ string
  3098  	ctx_         context.Context
  3099  	header_      http.Header
  3100  }
  3101  
  3102  // GetIamPolicy: Gets the access control policy for a resource. Returns
  3103  // an empty policy if the resource exists and does not have a policy
  3104  // set.
  3105  //
  3106  //   - resource: REQUIRED: The resource for which the policy is being
  3107  //     requested. See Resource names
  3108  //     (https://cloud.google.com/apis/design/resource_names) for the
  3109  //     appropriate value for this field.
  3110  func (r *ProjectsLocationsMembershipsService) GetIamPolicy(resource string) *ProjectsLocationsMembershipsGetIamPolicyCall {
  3111  	c := &ProjectsLocationsMembershipsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3112  	c.resource = resource
  3113  	return c
  3114  }
  3115  
  3116  // OptionsRequestedPolicyVersion sets the optional parameter
  3117  // "options.requestedPolicyVersion": The maximum policy version that
  3118  // will be used to format the policy. Valid values are 0, 1, and 3.
  3119  // Requests specifying an invalid value will be rejected. Requests for
  3120  // policies with any conditional role bindings must specify version 3.
  3121  // Policies with no conditional role bindings may specify any valid
  3122  // value or leave the field unset. The policy in the response might use
  3123  // the policy version that you specified, or it might use a lower policy
  3124  // version. For example, if you specify version 3, but the policy has no
  3125  // conditional role bindings, the response uses version 1. To learn
  3126  // which resources support conditions in their IAM policies, see the IAM
  3127  // documentation
  3128  // (https://cloud.google.com/iam/help/conditions/resource-policies).
  3129  func (c *ProjectsLocationsMembershipsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ProjectsLocationsMembershipsGetIamPolicyCall {
  3130  	c.urlParams_.Set("options.requestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
  3131  	return c
  3132  }
  3133  
  3134  // Fields allows partial responses to be retrieved. See
  3135  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  3136  // for more information.
  3137  func (c *ProjectsLocationsMembershipsGetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsGetIamPolicyCall {
  3138  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3139  	return c
  3140  }
  3141  
  3142  // IfNoneMatch sets the optional parameter which makes the operation
  3143  // fail if the object's ETag matches the given value. This is useful for
  3144  // getting updates only after the object has changed since the last
  3145  // request. Use googleapi.IsNotModified to check whether the response
  3146  // error from Do is the result of In-None-Match.
  3147  func (c *ProjectsLocationsMembershipsGetIamPolicyCall) IfNoneMatch(entityTag string) *ProjectsLocationsMembershipsGetIamPolicyCall {
  3148  	c.ifNoneMatch_ = entityTag
  3149  	return c
  3150  }
  3151  
  3152  // Context sets the context to be used in this call's Do method. Any
  3153  // pending HTTP request will be aborted if the provided context is
  3154  // canceled.
  3155  func (c *ProjectsLocationsMembershipsGetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsMembershipsGetIamPolicyCall {
  3156  	c.ctx_ = ctx
  3157  	return c
  3158  }
  3159  
  3160  // Header returns an http.Header that can be modified by the caller to
  3161  // add HTTP headers to the request.
  3162  func (c *ProjectsLocationsMembershipsGetIamPolicyCall) Header() http.Header {
  3163  	if c.header_ == nil {
  3164  		c.header_ = make(http.Header)
  3165  	}
  3166  	return c.header_
  3167  }
  3168  
  3169  func (c *ProjectsLocationsMembershipsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
  3170  	reqHeaders := make(http.Header)
  3171  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
  3172  	for k, v := range c.header_ {
  3173  		reqHeaders[k] = v
  3174  	}
  3175  	reqHeaders.Set("User-Agent", c.s.userAgent())
  3176  	if c.ifNoneMatch_ != "" {
  3177  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3178  	}
  3179  	var body io.Reader = nil
  3180  	c.urlParams_.Set("alt", alt)
  3181  	c.urlParams_.Set("prettyPrint", "false")
  3182  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+resource}:getIamPolicy")
  3183  	urls += "?" + c.urlParams_.Encode()
  3184  	req, err := http.NewRequest("GET", urls, body)
  3185  	if err != nil {
  3186  		return nil, err
  3187  	}
  3188  	req.Header = reqHeaders
  3189  	googleapi.Expand(req.URL, map[string]string{
  3190  		"resource": c.resource,
  3191  	})
  3192  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3193  }
  3194  
  3195  // Do executes the "gkehub.projects.locations.memberships.getIamPolicy" call.
  3196  // Exactly one of *Policy or error will be non-nil. Any non-2xx status
  3197  // code is an error. Response headers are in either
  3198  // *Policy.ServerResponse.Header or (if a response was returned at all)
  3199  // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  3200  // check whether the returned error was because http.StatusNotModified
  3201  // was returned.
  3202  func (c *ProjectsLocationsMembershipsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
  3203  	gensupport.SetOptions(c.urlParams_, opts...)
  3204  	res, err := c.doRequest("json")
  3205  	if res != nil && res.StatusCode == http.StatusNotModified {
  3206  		if res.Body != nil {
  3207  			res.Body.Close()
  3208  		}
  3209  		return nil, gensupport.WrapError(&googleapi.Error{
  3210  			Code:   res.StatusCode,
  3211  			Header: res.Header,
  3212  		})
  3213  	}
  3214  	if err != nil {
  3215  		return nil, err
  3216  	}
  3217  	defer googleapi.CloseBody(res)
  3218  	if err := googleapi.CheckResponse(res); err != nil {
  3219  		return nil, gensupport.WrapError(err)
  3220  	}
  3221  	ret := &Policy{
  3222  		ServerResponse: googleapi.ServerResponse{
  3223  			Header:         res.Header,
  3224  			HTTPStatusCode: res.StatusCode,
  3225  		},
  3226  	}
  3227  	target := &ret
  3228  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3229  		return nil, err
  3230  	}
  3231  	return ret, nil
  3232  	// {
  3233  	//   "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
  3234  	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}:getIamPolicy",
  3235  	//   "httpMethod": "GET",
  3236  	//   "id": "gkehub.projects.locations.memberships.getIamPolicy",
  3237  	//   "parameterOrder": [
  3238  	//     "resource"
  3239  	//   ],
  3240  	//   "parameters": {
  3241  	//     "options.requestedPolicyVersion": {
  3242  	//       "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
  3243  	//       "format": "int32",
  3244  	//       "location": "query",
  3245  	//       "type": "integer"
  3246  	//     },
  3247  	//     "resource": {
  3248  	//       "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
  3249  	//       "location": "path",
  3250  	//       "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$",
  3251  	//       "required": true,
  3252  	//       "type": "string"
  3253  	//     }
  3254  	//   },
  3255  	//   "path": "v1alpha2/{+resource}:getIamPolicy",
  3256  	//   "response": {
  3257  	//     "$ref": "Policy"
  3258  	//   },
  3259  	//   "scopes": [
  3260  	//     "https://www.googleapis.com/auth/cloud-platform"
  3261  	//   ]
  3262  	// }
  3263  
  3264  }
  3265  
  3266  // method id "gkehub.projects.locations.memberships.list":
  3267  
  3268  type ProjectsLocationsMembershipsListCall struct {
  3269  	s            *Service
  3270  	parent       string
  3271  	urlParams_   gensupport.URLParams
  3272  	ifNoneMatch_ string
  3273  	ctx_         context.Context
  3274  	header_      http.Header
  3275  }
  3276  
  3277  // List: Lists Memberships in a given project and location.
  3278  //
  3279  //   - parent: The parent (project and location) where the Memberships
  3280  //     will be listed. Specified in the format `projects/*/locations/*`.
  3281  //     `projects/*/locations/-` list memberships in all the regions.
  3282  func (r *ProjectsLocationsMembershipsService) List(parent string) *ProjectsLocationsMembershipsListCall {
  3283  	c := &ProjectsLocationsMembershipsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3284  	c.parent = parent
  3285  	return c
  3286  }
  3287  
  3288  // Filter sets the optional parameter "filter": Lists Memberships that
  3289  // match the filter expression, following the syntax outlined in
  3290  // https://google.aip.dev/160. Examples: - Name is `bar` in project
  3291  // `foo-proj` and location `global`: name =
  3292  // "projects/foo-proj/locations/global/membership/bar" - Memberships
  3293  // that have a label called `foo`: labels.foo:* - Memberships that have
  3294  // a label called `foo` whose value is `bar`: labels.foo = bar -
  3295  // Memberships in the CREATING state: state = CREATING
  3296  func (c *ProjectsLocationsMembershipsListCall) Filter(filter string) *ProjectsLocationsMembershipsListCall {
  3297  	c.urlParams_.Set("filter", filter)
  3298  	return c
  3299  }
  3300  
  3301  // OrderBy sets the optional parameter "orderBy": One or more fields to
  3302  // compare and use to sort the output. See
  3303  // https://google.aip.dev/132#ordering.
  3304  func (c *ProjectsLocationsMembershipsListCall) OrderBy(orderBy string) *ProjectsLocationsMembershipsListCall {
  3305  	c.urlParams_.Set("orderBy", orderBy)
  3306  	return c
  3307  }
  3308  
  3309  // PageSize sets the optional parameter "pageSize": When requesting a
  3310  // 'page' of resources, `page_size` specifies number of resources to
  3311  // return. If unspecified or set to 0, all resources will be returned.
  3312  func (c *ProjectsLocationsMembershipsListCall) PageSize(pageSize int64) *ProjectsLocationsMembershipsListCall {
  3313  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  3314  	return c
  3315  }
  3316  
  3317  // PageToken sets the optional parameter "pageToken": Token returned by
  3318  // previous call to `ListMemberships` which specifies the position in
  3319  // the list from where to continue listing the resources.
  3320  func (c *ProjectsLocationsMembershipsListCall) PageToken(pageToken string) *ProjectsLocationsMembershipsListCall {
  3321  	c.urlParams_.Set("pageToken", pageToken)
  3322  	return c
  3323  }
  3324  
  3325  // Fields allows partial responses to be retrieved. See
  3326  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  3327  // for more information.
  3328  func (c *ProjectsLocationsMembershipsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsListCall {
  3329  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3330  	return c
  3331  }
  3332  
  3333  // IfNoneMatch sets the optional parameter which makes the operation
  3334  // fail if the object's ETag matches the given value. This is useful for
  3335  // getting updates only after the object has changed since the last
  3336  // request. Use googleapi.IsNotModified to check whether the response
  3337  // error from Do is the result of In-None-Match.
  3338  func (c *ProjectsLocationsMembershipsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsMembershipsListCall {
  3339  	c.ifNoneMatch_ = entityTag
  3340  	return c
  3341  }
  3342  
  3343  // Context sets the context to be used in this call's Do method. Any
  3344  // pending HTTP request will be aborted if the provided context is
  3345  // canceled.
  3346  func (c *ProjectsLocationsMembershipsListCall) Context(ctx context.Context) *ProjectsLocationsMembershipsListCall {
  3347  	c.ctx_ = ctx
  3348  	return c
  3349  }
  3350  
  3351  // Header returns an http.Header that can be modified by the caller to
  3352  // add HTTP headers to the request.
  3353  func (c *ProjectsLocationsMembershipsListCall) Header() http.Header {
  3354  	if c.header_ == nil {
  3355  		c.header_ = make(http.Header)
  3356  	}
  3357  	return c.header_
  3358  }
  3359  
  3360  func (c *ProjectsLocationsMembershipsListCall) doRequest(alt string) (*http.Response, error) {
  3361  	reqHeaders := make(http.Header)
  3362  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
  3363  	for k, v := range c.header_ {
  3364  		reqHeaders[k] = v
  3365  	}
  3366  	reqHeaders.Set("User-Agent", c.s.userAgent())
  3367  	if c.ifNoneMatch_ != "" {
  3368  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3369  	}
  3370  	var body io.Reader = nil
  3371  	c.urlParams_.Set("alt", alt)
  3372  	c.urlParams_.Set("prettyPrint", "false")
  3373  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+parent}/memberships")
  3374  	urls += "?" + c.urlParams_.Encode()
  3375  	req, err := http.NewRequest("GET", urls, body)
  3376  	if err != nil {
  3377  		return nil, err
  3378  	}
  3379  	req.Header = reqHeaders
  3380  	googleapi.Expand(req.URL, map[string]string{
  3381  		"parent": c.parent,
  3382  	})
  3383  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3384  }
  3385  
  3386  // Do executes the "gkehub.projects.locations.memberships.list" call.
  3387  // Exactly one of *ListMembershipsResponse or error will be non-nil. Any
  3388  // non-2xx status code is an error. Response headers are in either
  3389  // *ListMembershipsResponse.ServerResponse.Header or (if a response was
  3390  // returned at all) in error.(*googleapi.Error).Header. Use
  3391  // googleapi.IsNotModified to check whether the returned error was
  3392  // because http.StatusNotModified was returned.
  3393  func (c *ProjectsLocationsMembershipsListCall) Do(opts ...googleapi.CallOption) (*ListMembershipsResponse, error) {
  3394  	gensupport.SetOptions(c.urlParams_, opts...)
  3395  	res, err := c.doRequest("json")
  3396  	if res != nil && res.StatusCode == http.StatusNotModified {
  3397  		if res.Body != nil {
  3398  			res.Body.Close()
  3399  		}
  3400  		return nil, gensupport.WrapError(&googleapi.Error{
  3401  			Code:   res.StatusCode,
  3402  			Header: res.Header,
  3403  		})
  3404  	}
  3405  	if err != nil {
  3406  		return nil, err
  3407  	}
  3408  	defer googleapi.CloseBody(res)
  3409  	if err := googleapi.CheckResponse(res); err != nil {
  3410  		return nil, gensupport.WrapError(err)
  3411  	}
  3412  	ret := &ListMembershipsResponse{
  3413  		ServerResponse: googleapi.ServerResponse{
  3414  			Header:         res.Header,
  3415  			HTTPStatusCode: res.StatusCode,
  3416  		},
  3417  	}
  3418  	target := &ret
  3419  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3420  		return nil, err
  3421  	}
  3422  	return ret, nil
  3423  	// {
  3424  	//   "description": "Lists Memberships in a given project and location.",
  3425  	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/memberships",
  3426  	//   "httpMethod": "GET",
  3427  	//   "id": "gkehub.projects.locations.memberships.list",
  3428  	//   "parameterOrder": [
  3429  	//     "parent"
  3430  	//   ],
  3431  	//   "parameters": {
  3432  	//     "filter": {
  3433  	//       "description": "Optional. Lists Memberships that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Examples: - Name is `bar` in project `foo-proj` and location `global`: name = \"projects/foo-proj/locations/global/membership/bar\" - Memberships that have a label called `foo`: labels.foo:* - Memberships that have a label called `foo` whose value is `bar`: labels.foo = bar - Memberships in the CREATING state: state = CREATING",
  3434  	//       "location": "query",
  3435  	//       "type": "string"
  3436  	//     },
  3437  	//     "orderBy": {
  3438  	//       "description": "Optional. One or more fields to compare and use to sort the output. See https://google.aip.dev/132#ordering.",
  3439  	//       "location": "query",
  3440  	//       "type": "string"
  3441  	//     },
  3442  	//     "pageSize": {
  3443  	//       "description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.",
  3444  	//       "format": "int32",
  3445  	//       "location": "query",
  3446  	//       "type": "integer"
  3447  	//     },
  3448  	//     "pageToken": {
  3449  	//       "description": "Optional. Token returned by previous call to `ListMemberships` which specifies the position in the list from where to continue listing the resources.",
  3450  	//       "location": "query",
  3451  	//       "type": "string"
  3452  	//     },
  3453  	//     "parent": {
  3454  	//       "description": "Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`. `projects/*/locations/-` list memberships in all the regions.",
  3455  	//       "location": "path",
  3456  	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
  3457  	//       "required": true,
  3458  	//       "type": "string"
  3459  	//     }
  3460  	//   },
  3461  	//   "path": "v1alpha2/{+parent}/memberships",
  3462  	//   "response": {
  3463  	//     "$ref": "ListMembershipsResponse"
  3464  	//   },
  3465  	//   "scopes": [
  3466  	//     "https://www.googleapis.com/auth/cloud-platform"
  3467  	//   ]
  3468  	// }
  3469  
  3470  }
  3471  
  3472  // Pages invokes f for each page of results.
  3473  // A non-nil error returned from f will halt the iteration.
  3474  // The provided context supersedes any context provided to the Context method.
  3475  func (c *ProjectsLocationsMembershipsListCall) Pages(ctx context.Context, f func(*ListMembershipsResponse) error) error {
  3476  	c.ctx_ = ctx
  3477  	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
  3478  	for {
  3479  		x, err := c.Do()
  3480  		if err != nil {
  3481  			return err
  3482  		}
  3483  		if err := f(x); err != nil {
  3484  			return err
  3485  		}
  3486  		if x.NextPageToken == "" {
  3487  			return nil
  3488  		}
  3489  		c.PageToken(x.NextPageToken)
  3490  	}
  3491  }
  3492  
  3493  // method id "gkehub.projects.locations.memberships.patch":
  3494  
  3495  type ProjectsLocationsMembershipsPatchCall struct {
  3496  	s          *Service
  3497  	name       string
  3498  	membership *Membership
  3499  	urlParams_ gensupport.URLParams
  3500  	ctx_       context.Context
  3501  	header_    http.Header
  3502  }
  3503  
  3504  // Patch: Updates an existing Membership.
  3505  //
  3506  //   - name: The Membership resource name in the format
  3507  //     `projects/*/locations/*/memberships/*`.
  3508  func (r *ProjectsLocationsMembershipsService) Patch(name string, membership *Membership) *ProjectsLocationsMembershipsPatchCall {
  3509  	c := &ProjectsLocationsMembershipsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3510  	c.name = name
  3511  	c.membership = membership
  3512  	return c
  3513  }
  3514  
  3515  // UpdateMask sets the optional parameter "updateMask": Required. Mask
  3516  // of fields to update.
  3517  func (c *ProjectsLocationsMembershipsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsMembershipsPatchCall {
  3518  	c.urlParams_.Set("updateMask", updateMask)
  3519  	return c
  3520  }
  3521  
  3522  // Fields allows partial responses to be retrieved. See
  3523  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  3524  // for more information.
  3525  func (c *ProjectsLocationsMembershipsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsPatchCall {
  3526  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3527  	return c
  3528  }
  3529  
  3530  // Context sets the context to be used in this call's Do method. Any
  3531  // pending HTTP request will be aborted if the provided context is
  3532  // canceled.
  3533  func (c *ProjectsLocationsMembershipsPatchCall) Context(ctx context.Context) *ProjectsLocationsMembershipsPatchCall {
  3534  	c.ctx_ = ctx
  3535  	return c
  3536  }
  3537  
  3538  // Header returns an http.Header that can be modified by the caller to
  3539  // add HTTP headers to the request.
  3540  func (c *ProjectsLocationsMembershipsPatchCall) Header() http.Header {
  3541  	if c.header_ == nil {
  3542  		c.header_ = make(http.Header)
  3543  	}
  3544  	return c.header_
  3545  }
  3546  
  3547  func (c *ProjectsLocationsMembershipsPatchCall) doRequest(alt string) (*http.Response, error) {
  3548  	reqHeaders := make(http.Header)
  3549  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
  3550  	for k, v := range c.header_ {
  3551  		reqHeaders[k] = v
  3552  	}
  3553  	reqHeaders.Set("User-Agent", c.s.userAgent())
  3554  	var body io.Reader = nil
  3555  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.membership)
  3556  	if err != nil {
  3557  		return nil, err
  3558  	}
  3559  	reqHeaders.Set("Content-Type", "application/json")
  3560  	c.urlParams_.Set("alt", alt)
  3561  	c.urlParams_.Set("prettyPrint", "false")
  3562  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+name}")
  3563  	urls += "?" + c.urlParams_.Encode()
  3564  	req, err := http.NewRequest("PATCH", urls, body)
  3565  	if err != nil {
  3566  		return nil, err
  3567  	}
  3568  	req.Header = reqHeaders
  3569  	googleapi.Expand(req.URL, map[string]string{
  3570  		"name": c.name,
  3571  	})
  3572  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3573  }
  3574  
  3575  // Do executes the "gkehub.projects.locations.memberships.patch" call.
  3576  // Exactly one of *Operation or error will be non-nil. Any non-2xx
  3577  // status code is an error. Response headers are in either
  3578  // *Operation.ServerResponse.Header or (if a response was returned at
  3579  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
  3580  // to check whether the returned error was because
  3581  // http.StatusNotModified was returned.
  3582  func (c *ProjectsLocationsMembershipsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  3583  	gensupport.SetOptions(c.urlParams_, opts...)
  3584  	res, err := c.doRequest("json")
  3585  	if res != nil && res.StatusCode == http.StatusNotModified {
  3586  		if res.Body != nil {
  3587  			res.Body.Close()
  3588  		}
  3589  		return nil, gensupport.WrapError(&googleapi.Error{
  3590  			Code:   res.StatusCode,
  3591  			Header: res.Header,
  3592  		})
  3593  	}
  3594  	if err != nil {
  3595  		return nil, err
  3596  	}
  3597  	defer googleapi.CloseBody(res)
  3598  	if err := googleapi.CheckResponse(res); err != nil {
  3599  		return nil, gensupport.WrapError(err)
  3600  	}
  3601  	ret := &Operation{
  3602  		ServerResponse: googleapi.ServerResponse{
  3603  			Header:         res.Header,
  3604  			HTTPStatusCode: res.StatusCode,
  3605  		},
  3606  	}
  3607  	target := &ret
  3608  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3609  		return nil, err
  3610  	}
  3611  	return ret, nil
  3612  	// {
  3613  	//   "description": "Updates an existing Membership.",
  3614  	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}",
  3615  	//   "httpMethod": "PATCH",
  3616  	//   "id": "gkehub.projects.locations.memberships.patch",
  3617  	//   "parameterOrder": [
  3618  	//     "name"
  3619  	//   ],
  3620  	//   "parameters": {
  3621  	//     "name": {
  3622  	//       "description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.",
  3623  	//       "location": "path",
  3624  	//       "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$",
  3625  	//       "required": true,
  3626  	//       "type": "string"
  3627  	//     },
  3628  	//     "updateMask": {
  3629  	//       "description": "Required. Mask of fields to update.",
  3630  	//       "format": "google-fieldmask",
  3631  	//       "location": "query",
  3632  	//       "type": "string"
  3633  	//     }
  3634  	//   },
  3635  	//   "path": "v1alpha2/{+name}",
  3636  	//   "request": {
  3637  	//     "$ref": "Membership"
  3638  	//   },
  3639  	//   "response": {
  3640  	//     "$ref": "Operation"
  3641  	//   },
  3642  	//   "scopes": [
  3643  	//     "https://www.googleapis.com/auth/cloud-platform"
  3644  	//   ]
  3645  	// }
  3646  
  3647  }
  3648  
  3649  // method id "gkehub.projects.locations.memberships.setIamPolicy":
  3650  
  3651  type ProjectsLocationsMembershipsSetIamPolicyCall struct {
  3652  	s                   *Service
  3653  	resource            string
  3654  	setiampolicyrequest *SetIamPolicyRequest
  3655  	urlParams_          gensupport.URLParams
  3656  	ctx_                context.Context
  3657  	header_             http.Header
  3658  }
  3659  
  3660  // SetIamPolicy: Sets the access control policy on the specified
  3661  // resource. Replaces any existing policy. Can return `NOT_FOUND`,
  3662  // `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
  3663  //
  3664  //   - resource: REQUIRED: The resource for which the policy is being
  3665  //     specified. See Resource names
  3666  //     (https://cloud.google.com/apis/design/resource_names) for the
  3667  //     appropriate value for this field.
  3668  func (r *ProjectsLocationsMembershipsService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *ProjectsLocationsMembershipsSetIamPolicyCall {
  3669  	c := &ProjectsLocationsMembershipsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3670  	c.resource = resource
  3671  	c.setiampolicyrequest = setiampolicyrequest
  3672  	return c
  3673  }
  3674  
  3675  // Fields allows partial responses to be retrieved. See
  3676  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  3677  // for more information.
  3678  func (c *ProjectsLocationsMembershipsSetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsSetIamPolicyCall {
  3679  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3680  	return c
  3681  }
  3682  
  3683  // Context sets the context to be used in this call's Do method. Any
  3684  // pending HTTP request will be aborted if the provided context is
  3685  // canceled.
  3686  func (c *ProjectsLocationsMembershipsSetIamPolicyCall) Context(ctx context.Context) *ProjectsLocationsMembershipsSetIamPolicyCall {
  3687  	c.ctx_ = ctx
  3688  	return c
  3689  }
  3690  
  3691  // Header returns an http.Header that can be modified by the caller to
  3692  // add HTTP headers to the request.
  3693  func (c *ProjectsLocationsMembershipsSetIamPolicyCall) Header() http.Header {
  3694  	if c.header_ == nil {
  3695  		c.header_ = make(http.Header)
  3696  	}
  3697  	return c.header_
  3698  }
  3699  
  3700  func (c *ProjectsLocationsMembershipsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
  3701  	reqHeaders := make(http.Header)
  3702  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
  3703  	for k, v := range c.header_ {
  3704  		reqHeaders[k] = v
  3705  	}
  3706  	reqHeaders.Set("User-Agent", c.s.userAgent())
  3707  	var body io.Reader = nil
  3708  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest)
  3709  	if err != nil {
  3710  		return nil, err
  3711  	}
  3712  	reqHeaders.Set("Content-Type", "application/json")
  3713  	c.urlParams_.Set("alt", alt)
  3714  	c.urlParams_.Set("prettyPrint", "false")
  3715  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+resource}:setIamPolicy")
  3716  	urls += "?" + c.urlParams_.Encode()
  3717  	req, err := http.NewRequest("POST", urls, body)
  3718  	if err != nil {
  3719  		return nil, err
  3720  	}
  3721  	req.Header = reqHeaders
  3722  	googleapi.Expand(req.URL, map[string]string{
  3723  		"resource": c.resource,
  3724  	})
  3725  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3726  }
  3727  
  3728  // Do executes the "gkehub.projects.locations.memberships.setIamPolicy" call.
  3729  // Exactly one of *Policy or error will be non-nil. Any non-2xx status
  3730  // code is an error. Response headers are in either
  3731  // *Policy.ServerResponse.Header or (if a response was returned at all)
  3732  // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  3733  // check whether the returned error was because http.StatusNotModified
  3734  // was returned.
  3735  func (c *ProjectsLocationsMembershipsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
  3736  	gensupport.SetOptions(c.urlParams_, opts...)
  3737  	res, err := c.doRequest("json")
  3738  	if res != nil && res.StatusCode == http.StatusNotModified {
  3739  		if res.Body != nil {
  3740  			res.Body.Close()
  3741  		}
  3742  		return nil, gensupport.WrapError(&googleapi.Error{
  3743  			Code:   res.StatusCode,
  3744  			Header: res.Header,
  3745  		})
  3746  	}
  3747  	if err != nil {
  3748  		return nil, err
  3749  	}
  3750  	defer googleapi.CloseBody(res)
  3751  	if err := googleapi.CheckResponse(res); err != nil {
  3752  		return nil, gensupport.WrapError(err)
  3753  	}
  3754  	ret := &Policy{
  3755  		ServerResponse: googleapi.ServerResponse{
  3756  			Header:         res.Header,
  3757  			HTTPStatusCode: res.StatusCode,
  3758  		},
  3759  	}
  3760  	target := &ret
  3761  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3762  		return nil, err
  3763  	}
  3764  	return ret, nil
  3765  	// {
  3766  	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
  3767  	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}:setIamPolicy",
  3768  	//   "httpMethod": "POST",
  3769  	//   "id": "gkehub.projects.locations.memberships.setIamPolicy",
  3770  	//   "parameterOrder": [
  3771  	//     "resource"
  3772  	//   ],
  3773  	//   "parameters": {
  3774  	//     "resource": {
  3775  	//       "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
  3776  	//       "location": "path",
  3777  	//       "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$",
  3778  	//       "required": true,
  3779  	//       "type": "string"
  3780  	//     }
  3781  	//   },
  3782  	//   "path": "v1alpha2/{+resource}:setIamPolicy",
  3783  	//   "request": {
  3784  	//     "$ref": "SetIamPolicyRequest"
  3785  	//   },
  3786  	//   "response": {
  3787  	//     "$ref": "Policy"
  3788  	//   },
  3789  	//   "scopes": [
  3790  	//     "https://www.googleapis.com/auth/cloud-platform"
  3791  	//   ]
  3792  	// }
  3793  
  3794  }
  3795  
  3796  // method id "gkehub.projects.locations.memberships.testIamPermissions":
  3797  
  3798  type ProjectsLocationsMembershipsTestIamPermissionsCall struct {
  3799  	s                         *Service
  3800  	resource                  string
  3801  	testiampermissionsrequest *TestIamPermissionsRequest
  3802  	urlParams_                gensupport.URLParams
  3803  	ctx_                      context.Context
  3804  	header_                   http.Header
  3805  }
  3806  
  3807  // TestIamPermissions: Returns permissions that a caller has on the
  3808  // specified resource. If the resource does not exist, this will return
  3809  // an empty set of permissions, not a `NOT_FOUND` error. Note: This
  3810  // operation is designed to be used for building permission-aware UIs
  3811  // and command-line tools, not for authorization checking. This
  3812  // operation may "fail open" without warning.
  3813  //
  3814  //   - resource: REQUIRED: The resource for which the policy detail is
  3815  //     being requested. See Resource names
  3816  //     (https://cloud.google.com/apis/design/resource_names) for the
  3817  //     appropriate value for this field.
  3818  func (r *ProjectsLocationsMembershipsService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *ProjectsLocationsMembershipsTestIamPermissionsCall {
  3819  	c := &ProjectsLocationsMembershipsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3820  	c.resource = resource
  3821  	c.testiampermissionsrequest = testiampermissionsrequest
  3822  	return c
  3823  }
  3824  
  3825  // Fields allows partial responses to be retrieved. See
  3826  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  3827  // for more information.
  3828  func (c *ProjectsLocationsMembershipsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ProjectsLocationsMembershipsTestIamPermissionsCall {
  3829  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3830  	return c
  3831  }
  3832  
  3833  // Context sets the context to be used in this call's Do method. Any
  3834  // pending HTTP request will be aborted if the provided context is
  3835  // canceled.
  3836  func (c *ProjectsLocationsMembershipsTestIamPermissionsCall) Context(ctx context.Context) *ProjectsLocationsMembershipsTestIamPermissionsCall {
  3837  	c.ctx_ = ctx
  3838  	return c
  3839  }
  3840  
  3841  // Header returns an http.Header that can be modified by the caller to
  3842  // add HTTP headers to the request.
  3843  func (c *ProjectsLocationsMembershipsTestIamPermissionsCall) Header() http.Header {
  3844  	if c.header_ == nil {
  3845  		c.header_ = make(http.Header)
  3846  	}
  3847  	return c.header_
  3848  }
  3849  
  3850  func (c *ProjectsLocationsMembershipsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
  3851  	reqHeaders := make(http.Header)
  3852  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
  3853  	for k, v := range c.header_ {
  3854  		reqHeaders[k] = v
  3855  	}
  3856  	reqHeaders.Set("User-Agent", c.s.userAgent())
  3857  	var body io.Reader = nil
  3858  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest)
  3859  	if err != nil {
  3860  		return nil, err
  3861  	}
  3862  	reqHeaders.Set("Content-Type", "application/json")
  3863  	c.urlParams_.Set("alt", alt)
  3864  	c.urlParams_.Set("prettyPrint", "false")
  3865  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+resource}:testIamPermissions")
  3866  	urls += "?" + c.urlParams_.Encode()
  3867  	req, err := http.NewRequest("POST", urls, body)
  3868  	if err != nil {
  3869  		return nil, err
  3870  	}
  3871  	req.Header = reqHeaders
  3872  	googleapi.Expand(req.URL, map[string]string{
  3873  		"resource": c.resource,
  3874  	})
  3875  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3876  }
  3877  
  3878  // Do executes the "gkehub.projects.locations.memberships.testIamPermissions" call.
  3879  // Exactly one of *TestIamPermissionsResponse or error will be non-nil.
  3880  // Any non-2xx status code is an error. Response headers are in either
  3881  // *TestIamPermissionsResponse.ServerResponse.Header or (if a response
  3882  // was returned at all) in error.(*googleapi.Error).Header. Use
  3883  // googleapi.IsNotModified to check whether the returned error was
  3884  // because http.StatusNotModified was returned.
  3885  func (c *ProjectsLocationsMembershipsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) {
  3886  	gensupport.SetOptions(c.urlParams_, opts...)
  3887  	res, err := c.doRequest("json")
  3888  	if res != nil && res.StatusCode == http.StatusNotModified {
  3889  		if res.Body != nil {
  3890  			res.Body.Close()
  3891  		}
  3892  		return nil, gensupport.WrapError(&googleapi.Error{
  3893  			Code:   res.StatusCode,
  3894  			Header: res.Header,
  3895  		})
  3896  	}
  3897  	if err != nil {
  3898  		return nil, err
  3899  	}
  3900  	defer googleapi.CloseBody(res)
  3901  	if err := googleapi.CheckResponse(res); err != nil {
  3902  		return nil, gensupport.WrapError(err)
  3903  	}
  3904  	ret := &TestIamPermissionsResponse{
  3905  		ServerResponse: googleapi.ServerResponse{
  3906  			Header:         res.Header,
  3907  			HTTPStatusCode: res.StatusCode,
  3908  		},
  3909  	}
  3910  	target := &ret
  3911  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3912  		return nil, err
  3913  	}
  3914  	return ret, nil
  3915  	// {
  3916  	//   "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.",
  3917  	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}:testIamPermissions",
  3918  	//   "httpMethod": "POST",
  3919  	//   "id": "gkehub.projects.locations.memberships.testIamPermissions",
  3920  	//   "parameterOrder": [
  3921  	//     "resource"
  3922  	//   ],
  3923  	//   "parameters": {
  3924  	//     "resource": {
  3925  	//       "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
  3926  	//       "location": "path",
  3927  	//       "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$",
  3928  	//       "required": true,
  3929  	//       "type": "string"
  3930  	//     }
  3931  	//   },
  3932  	//   "path": "v1alpha2/{+resource}:testIamPermissions",
  3933  	//   "request": {
  3934  	//     "$ref": "TestIamPermissionsRequest"
  3935  	//   },
  3936  	//   "response": {
  3937  	//     "$ref": "TestIamPermissionsResponse"
  3938  	//   },
  3939  	//   "scopes": [
  3940  	//     "https://www.googleapis.com/auth/cloud-platform"
  3941  	//   ]
  3942  	// }
  3943  
  3944  }
  3945  
  3946  // method id "gkehub.projects.locations.operations.cancel":
  3947  
  3948  type ProjectsLocationsOperationsCancelCall struct {
  3949  	s                      *Service
  3950  	name                   string
  3951  	canceloperationrequest *CancelOperationRequest
  3952  	urlParams_             gensupport.URLParams
  3953  	ctx_                   context.Context
  3954  	header_                http.Header
  3955  }
  3956  
  3957  // Cancel: Starts asynchronous cancellation on a long-running operation.
  3958  // The server makes a best effort to cancel the operation, but success
  3959  // is not guaranteed. If the server doesn't support this method, it
  3960  // returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use
  3961  // Operations.GetOperation or other methods to check whether the
  3962  // cancellation succeeded or whether the operation completed despite
  3963  // cancellation. On successful cancellation, the operation is not
  3964  // deleted; instead, it becomes an operation with an Operation.error
  3965  // value with a google.rpc.Status.code of 1, corresponding to
  3966  // `Code.CANCELLED`.
  3967  //
  3968  // - name: The name of the operation resource to be cancelled.
  3969  func (r *ProjectsLocationsOperationsService) Cancel(name string, canceloperationrequest *CancelOperationRequest) *ProjectsLocationsOperationsCancelCall {
  3970  	c := &ProjectsLocationsOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3971  	c.name = name
  3972  	c.canceloperationrequest = canceloperationrequest
  3973  	return c
  3974  }
  3975  
  3976  // Fields allows partial responses to be retrieved. See
  3977  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  3978  // for more information.
  3979  func (c *ProjectsLocationsOperationsCancelCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsCancelCall {
  3980  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3981  	return c
  3982  }
  3983  
  3984  // Context sets the context to be used in this call's Do method. Any
  3985  // pending HTTP request will be aborted if the provided context is
  3986  // canceled.
  3987  func (c *ProjectsLocationsOperationsCancelCall) Context(ctx context.Context) *ProjectsLocationsOperationsCancelCall {
  3988  	c.ctx_ = ctx
  3989  	return c
  3990  }
  3991  
  3992  // Header returns an http.Header that can be modified by the caller to
  3993  // add HTTP headers to the request.
  3994  func (c *ProjectsLocationsOperationsCancelCall) Header() http.Header {
  3995  	if c.header_ == nil {
  3996  		c.header_ = make(http.Header)
  3997  	}
  3998  	return c.header_
  3999  }
  4000  
  4001  func (c *ProjectsLocationsOperationsCancelCall) doRequest(alt string) (*http.Response, error) {
  4002  	reqHeaders := make(http.Header)
  4003  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
  4004  	for k, v := range c.header_ {
  4005  		reqHeaders[k] = v
  4006  	}
  4007  	reqHeaders.Set("User-Agent", c.s.userAgent())
  4008  	var body io.Reader = nil
  4009  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.canceloperationrequest)
  4010  	if err != nil {
  4011  		return nil, err
  4012  	}
  4013  	reqHeaders.Set("Content-Type", "application/json")
  4014  	c.urlParams_.Set("alt", alt)
  4015  	c.urlParams_.Set("prettyPrint", "false")
  4016  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+name}:cancel")
  4017  	urls += "?" + c.urlParams_.Encode()
  4018  	req, err := http.NewRequest("POST", urls, body)
  4019  	if err != nil {
  4020  		return nil, err
  4021  	}
  4022  	req.Header = reqHeaders
  4023  	googleapi.Expand(req.URL, map[string]string{
  4024  		"name": c.name,
  4025  	})
  4026  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4027  }
  4028  
  4029  // Do executes the "gkehub.projects.locations.operations.cancel" call.
  4030  // Exactly one of *Empty or error will be non-nil. Any non-2xx status
  4031  // code is an error. Response headers are in either
  4032  // *Empty.ServerResponse.Header or (if a response was returned at all)
  4033  // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  4034  // check whether the returned error was because http.StatusNotModified
  4035  // was returned.
  4036  func (c *ProjectsLocationsOperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
  4037  	gensupport.SetOptions(c.urlParams_, opts...)
  4038  	res, err := c.doRequest("json")
  4039  	if res != nil && res.StatusCode == http.StatusNotModified {
  4040  		if res.Body != nil {
  4041  			res.Body.Close()
  4042  		}
  4043  		return nil, gensupport.WrapError(&googleapi.Error{
  4044  			Code:   res.StatusCode,
  4045  			Header: res.Header,
  4046  		})
  4047  	}
  4048  	if err != nil {
  4049  		return nil, err
  4050  	}
  4051  	defer googleapi.CloseBody(res)
  4052  	if err := googleapi.CheckResponse(res); err != nil {
  4053  		return nil, gensupport.WrapError(err)
  4054  	}
  4055  	ret := &Empty{
  4056  		ServerResponse: googleapi.ServerResponse{
  4057  			Header:         res.Header,
  4058  			HTTPStatusCode: res.StatusCode,
  4059  		},
  4060  	}
  4061  	target := &ret
  4062  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4063  		return nil, err
  4064  	}
  4065  	return ret, nil
  4066  	// {
  4067  	//   "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
  4068  	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
  4069  	//   "httpMethod": "POST",
  4070  	//   "id": "gkehub.projects.locations.operations.cancel",
  4071  	//   "parameterOrder": [
  4072  	//     "name"
  4073  	//   ],
  4074  	//   "parameters": {
  4075  	//     "name": {
  4076  	//       "description": "The name of the operation resource to be cancelled.",
  4077  	//       "location": "path",
  4078  	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
  4079  	//       "required": true,
  4080  	//       "type": "string"
  4081  	//     }
  4082  	//   },
  4083  	//   "path": "v1alpha2/{+name}:cancel",
  4084  	//   "request": {
  4085  	//     "$ref": "CancelOperationRequest"
  4086  	//   },
  4087  	//   "response": {
  4088  	//     "$ref": "Empty"
  4089  	//   },
  4090  	//   "scopes": [
  4091  	//     "https://www.googleapis.com/auth/cloud-platform"
  4092  	//   ]
  4093  	// }
  4094  
  4095  }
  4096  
  4097  // method id "gkehub.projects.locations.operations.delete":
  4098  
  4099  type ProjectsLocationsOperationsDeleteCall struct {
  4100  	s          *Service
  4101  	name       string
  4102  	urlParams_ gensupport.URLParams
  4103  	ctx_       context.Context
  4104  	header_    http.Header
  4105  }
  4106  
  4107  // Delete: Deletes a long-running operation. This method indicates that
  4108  // the client is no longer interested in the operation result. It does
  4109  // not cancel the operation. If the server doesn't support this method,
  4110  // it returns `google.rpc.Code.UNIMPLEMENTED`.
  4111  //
  4112  // - name: The name of the operation resource to be deleted.
  4113  func (r *ProjectsLocationsOperationsService) Delete(name string) *ProjectsLocationsOperationsDeleteCall {
  4114  	c := &ProjectsLocationsOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4115  	c.name = name
  4116  	return c
  4117  }
  4118  
  4119  // Fields allows partial responses to be retrieved. See
  4120  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  4121  // for more information.
  4122  func (c *ProjectsLocationsOperationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsDeleteCall {
  4123  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4124  	return c
  4125  }
  4126  
  4127  // Context sets the context to be used in this call's Do method. Any
  4128  // pending HTTP request will be aborted if the provided context is
  4129  // canceled.
  4130  func (c *ProjectsLocationsOperationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsOperationsDeleteCall {
  4131  	c.ctx_ = ctx
  4132  	return c
  4133  }
  4134  
  4135  // Header returns an http.Header that can be modified by the caller to
  4136  // add HTTP headers to the request.
  4137  func (c *ProjectsLocationsOperationsDeleteCall) Header() http.Header {
  4138  	if c.header_ == nil {
  4139  		c.header_ = make(http.Header)
  4140  	}
  4141  	return c.header_
  4142  }
  4143  
  4144  func (c *ProjectsLocationsOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
  4145  	reqHeaders := make(http.Header)
  4146  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
  4147  	for k, v := range c.header_ {
  4148  		reqHeaders[k] = v
  4149  	}
  4150  	reqHeaders.Set("User-Agent", c.s.userAgent())
  4151  	var body io.Reader = nil
  4152  	c.urlParams_.Set("alt", alt)
  4153  	c.urlParams_.Set("prettyPrint", "false")
  4154  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+name}")
  4155  	urls += "?" + c.urlParams_.Encode()
  4156  	req, err := http.NewRequest("DELETE", urls, body)
  4157  	if err != nil {
  4158  		return nil, err
  4159  	}
  4160  	req.Header = reqHeaders
  4161  	googleapi.Expand(req.URL, map[string]string{
  4162  		"name": c.name,
  4163  	})
  4164  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4165  }
  4166  
  4167  // Do executes the "gkehub.projects.locations.operations.delete" call.
  4168  // Exactly one of *Empty or error will be non-nil. Any non-2xx status
  4169  // code is an error. Response headers are in either
  4170  // *Empty.ServerResponse.Header or (if a response was returned at all)
  4171  // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  4172  // check whether the returned error was because http.StatusNotModified
  4173  // was returned.
  4174  func (c *ProjectsLocationsOperationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
  4175  	gensupport.SetOptions(c.urlParams_, opts...)
  4176  	res, err := c.doRequest("json")
  4177  	if res != nil && res.StatusCode == http.StatusNotModified {
  4178  		if res.Body != nil {
  4179  			res.Body.Close()
  4180  		}
  4181  		return nil, gensupport.WrapError(&googleapi.Error{
  4182  			Code:   res.StatusCode,
  4183  			Header: res.Header,
  4184  		})
  4185  	}
  4186  	if err != nil {
  4187  		return nil, err
  4188  	}
  4189  	defer googleapi.CloseBody(res)
  4190  	if err := googleapi.CheckResponse(res); err != nil {
  4191  		return nil, gensupport.WrapError(err)
  4192  	}
  4193  	ret := &Empty{
  4194  		ServerResponse: googleapi.ServerResponse{
  4195  			Header:         res.Header,
  4196  			HTTPStatusCode: res.StatusCode,
  4197  		},
  4198  	}
  4199  	target := &ret
  4200  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4201  		return nil, err
  4202  	}
  4203  	return ret, nil
  4204  	// {
  4205  	//   "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
  4206  	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
  4207  	//   "httpMethod": "DELETE",
  4208  	//   "id": "gkehub.projects.locations.operations.delete",
  4209  	//   "parameterOrder": [
  4210  	//     "name"
  4211  	//   ],
  4212  	//   "parameters": {
  4213  	//     "name": {
  4214  	//       "description": "The name of the operation resource to be deleted.",
  4215  	//       "location": "path",
  4216  	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
  4217  	//       "required": true,
  4218  	//       "type": "string"
  4219  	//     }
  4220  	//   },
  4221  	//   "path": "v1alpha2/{+name}",
  4222  	//   "response": {
  4223  	//     "$ref": "Empty"
  4224  	//   },
  4225  	//   "scopes": [
  4226  	//     "https://www.googleapis.com/auth/cloud-platform"
  4227  	//   ]
  4228  	// }
  4229  
  4230  }
  4231  
  4232  // method id "gkehub.projects.locations.operations.get":
  4233  
  4234  type ProjectsLocationsOperationsGetCall struct {
  4235  	s            *Service
  4236  	name         string
  4237  	urlParams_   gensupport.URLParams
  4238  	ifNoneMatch_ string
  4239  	ctx_         context.Context
  4240  	header_      http.Header
  4241  }
  4242  
  4243  // Get: Gets the latest state of a long-running operation. Clients can
  4244  // use this method to poll the operation result at intervals as
  4245  // recommended by the API service.
  4246  //
  4247  // - name: The name of the operation resource.
  4248  func (r *ProjectsLocationsOperationsService) Get(name string) *ProjectsLocationsOperationsGetCall {
  4249  	c := &ProjectsLocationsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4250  	c.name = name
  4251  	return c
  4252  }
  4253  
  4254  // Fields allows partial responses to be retrieved. See
  4255  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  4256  // for more information.
  4257  func (c *ProjectsLocationsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsGetCall {
  4258  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4259  	return c
  4260  }
  4261  
  4262  // IfNoneMatch sets the optional parameter which makes the operation
  4263  // fail if the object's ETag matches the given value. This is useful for
  4264  // getting updates only after the object has changed since the last
  4265  // request. Use googleapi.IsNotModified to check whether the response
  4266  // error from Do is the result of In-None-Match.
  4267  func (c *ProjectsLocationsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsGetCall {
  4268  	c.ifNoneMatch_ = entityTag
  4269  	return c
  4270  }
  4271  
  4272  // Context sets the context to be used in this call's Do method. Any
  4273  // pending HTTP request will be aborted if the provided context is
  4274  // canceled.
  4275  func (c *ProjectsLocationsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsOperationsGetCall {
  4276  	c.ctx_ = ctx
  4277  	return c
  4278  }
  4279  
  4280  // Header returns an http.Header that can be modified by the caller to
  4281  // add HTTP headers to the request.
  4282  func (c *ProjectsLocationsOperationsGetCall) Header() http.Header {
  4283  	if c.header_ == nil {
  4284  		c.header_ = make(http.Header)
  4285  	}
  4286  	return c.header_
  4287  }
  4288  
  4289  func (c *ProjectsLocationsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
  4290  	reqHeaders := make(http.Header)
  4291  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
  4292  	for k, v := range c.header_ {
  4293  		reqHeaders[k] = v
  4294  	}
  4295  	reqHeaders.Set("User-Agent", c.s.userAgent())
  4296  	if c.ifNoneMatch_ != "" {
  4297  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4298  	}
  4299  	var body io.Reader = nil
  4300  	c.urlParams_.Set("alt", alt)
  4301  	c.urlParams_.Set("prettyPrint", "false")
  4302  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+name}")
  4303  	urls += "?" + c.urlParams_.Encode()
  4304  	req, err := http.NewRequest("GET", urls, body)
  4305  	if err != nil {
  4306  		return nil, err
  4307  	}
  4308  	req.Header = reqHeaders
  4309  	googleapi.Expand(req.URL, map[string]string{
  4310  		"name": c.name,
  4311  	})
  4312  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4313  }
  4314  
  4315  // Do executes the "gkehub.projects.locations.operations.get" call.
  4316  // Exactly one of *Operation or error will be non-nil. Any non-2xx
  4317  // status code is an error. Response headers are in either
  4318  // *Operation.ServerResponse.Header or (if a response was returned at
  4319  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
  4320  // to check whether the returned error was because
  4321  // http.StatusNotModified was returned.
  4322  func (c *ProjectsLocationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  4323  	gensupport.SetOptions(c.urlParams_, opts...)
  4324  	res, err := c.doRequest("json")
  4325  	if res != nil && res.StatusCode == http.StatusNotModified {
  4326  		if res.Body != nil {
  4327  			res.Body.Close()
  4328  		}
  4329  		return nil, gensupport.WrapError(&googleapi.Error{
  4330  			Code:   res.StatusCode,
  4331  			Header: res.Header,
  4332  		})
  4333  	}
  4334  	if err != nil {
  4335  		return nil, err
  4336  	}
  4337  	defer googleapi.CloseBody(res)
  4338  	if err := googleapi.CheckResponse(res); err != nil {
  4339  		return nil, gensupport.WrapError(err)
  4340  	}
  4341  	ret := &Operation{
  4342  		ServerResponse: googleapi.ServerResponse{
  4343  			Header:         res.Header,
  4344  			HTTPStatusCode: res.StatusCode,
  4345  		},
  4346  	}
  4347  	target := &ret
  4348  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4349  		return nil, err
  4350  	}
  4351  	return ret, nil
  4352  	// {
  4353  	//   "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
  4354  	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
  4355  	//   "httpMethod": "GET",
  4356  	//   "id": "gkehub.projects.locations.operations.get",
  4357  	//   "parameterOrder": [
  4358  	//     "name"
  4359  	//   ],
  4360  	//   "parameters": {
  4361  	//     "name": {
  4362  	//       "description": "The name of the operation resource.",
  4363  	//       "location": "path",
  4364  	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
  4365  	//       "required": true,
  4366  	//       "type": "string"
  4367  	//     }
  4368  	//   },
  4369  	//   "path": "v1alpha2/{+name}",
  4370  	//   "response": {
  4371  	//     "$ref": "Operation"
  4372  	//   },
  4373  	//   "scopes": [
  4374  	//     "https://www.googleapis.com/auth/cloud-platform"
  4375  	//   ]
  4376  	// }
  4377  
  4378  }
  4379  
  4380  // method id "gkehub.projects.locations.operations.list":
  4381  
  4382  type ProjectsLocationsOperationsListCall struct {
  4383  	s            *Service
  4384  	name         string
  4385  	urlParams_   gensupport.URLParams
  4386  	ifNoneMatch_ string
  4387  	ctx_         context.Context
  4388  	header_      http.Header
  4389  }
  4390  
  4391  // List: Lists operations that match the specified filter in the
  4392  // request. If the server doesn't support this method, it returns
  4393  // `UNIMPLEMENTED`.
  4394  //
  4395  // - name: The name of the operation's parent resource.
  4396  func (r *ProjectsLocationsOperationsService) List(name string) *ProjectsLocationsOperationsListCall {
  4397  	c := &ProjectsLocationsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4398  	c.name = name
  4399  	return c
  4400  }
  4401  
  4402  // Filter sets the optional parameter "filter": The standard list
  4403  // filter.
  4404  func (c *ProjectsLocationsOperationsListCall) Filter(filter string) *ProjectsLocationsOperationsListCall {
  4405  	c.urlParams_.Set("filter", filter)
  4406  	return c
  4407  }
  4408  
  4409  // PageSize sets the optional parameter "pageSize": The standard list
  4410  // page size.
  4411  func (c *ProjectsLocationsOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsOperationsListCall {
  4412  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  4413  	return c
  4414  }
  4415  
  4416  // PageToken sets the optional parameter "pageToken": The standard list
  4417  // page token.
  4418  func (c *ProjectsLocationsOperationsListCall) PageToken(pageToken string) *ProjectsLocationsOperationsListCall {
  4419  	c.urlParams_.Set("pageToken", pageToken)
  4420  	return c
  4421  }
  4422  
  4423  // Fields allows partial responses to be retrieved. See
  4424  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  4425  // for more information.
  4426  func (c *ProjectsLocationsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsListCall {
  4427  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4428  	return c
  4429  }
  4430  
  4431  // IfNoneMatch sets the optional parameter which makes the operation
  4432  // fail if the object's ETag matches the given value. This is useful for
  4433  // getting updates only after the object has changed since the last
  4434  // request. Use googleapi.IsNotModified to check whether the response
  4435  // error from Do is the result of In-None-Match.
  4436  func (c *ProjectsLocationsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsListCall {
  4437  	c.ifNoneMatch_ = entityTag
  4438  	return c
  4439  }
  4440  
  4441  // Context sets the context to be used in this call's Do method. Any
  4442  // pending HTTP request will be aborted if the provided context is
  4443  // canceled.
  4444  func (c *ProjectsLocationsOperationsListCall) Context(ctx context.Context) *ProjectsLocationsOperationsListCall {
  4445  	c.ctx_ = ctx
  4446  	return c
  4447  }
  4448  
  4449  // Header returns an http.Header that can be modified by the caller to
  4450  // add HTTP headers to the request.
  4451  func (c *ProjectsLocationsOperationsListCall) Header() http.Header {
  4452  	if c.header_ == nil {
  4453  		c.header_ = make(http.Header)
  4454  	}
  4455  	return c.header_
  4456  }
  4457  
  4458  func (c *ProjectsLocationsOperationsListCall) doRequest(alt string) (*http.Response, error) {
  4459  	reqHeaders := make(http.Header)
  4460  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version)
  4461  	for k, v := range c.header_ {
  4462  		reqHeaders[k] = v
  4463  	}
  4464  	reqHeaders.Set("User-Agent", c.s.userAgent())
  4465  	if c.ifNoneMatch_ != "" {
  4466  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4467  	}
  4468  	var body io.Reader = nil
  4469  	c.urlParams_.Set("alt", alt)
  4470  	c.urlParams_.Set("prettyPrint", "false")
  4471  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha2/{+name}/operations")
  4472  	urls += "?" + c.urlParams_.Encode()
  4473  	req, err := http.NewRequest("GET", urls, body)
  4474  	if err != nil {
  4475  		return nil, err
  4476  	}
  4477  	req.Header = reqHeaders
  4478  	googleapi.Expand(req.URL, map[string]string{
  4479  		"name": c.name,
  4480  	})
  4481  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4482  }
  4483  
  4484  // Do executes the "gkehub.projects.locations.operations.list" call.
  4485  // Exactly one of *ListOperationsResponse or error will be non-nil. Any
  4486  // non-2xx status code is an error. Response headers are in either
  4487  // *ListOperationsResponse.ServerResponse.Header or (if a response was
  4488  // returned at all) in error.(*googleapi.Error).Header. Use
  4489  // googleapi.IsNotModified to check whether the returned error was
  4490  // because http.StatusNotModified was returned.
  4491  func (c *ProjectsLocationsOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
  4492  	gensupport.SetOptions(c.urlParams_, opts...)
  4493  	res, err := c.doRequest("json")
  4494  	if res != nil && res.StatusCode == http.StatusNotModified {
  4495  		if res.Body != nil {
  4496  			res.Body.Close()
  4497  		}
  4498  		return nil, gensupport.WrapError(&googleapi.Error{
  4499  			Code:   res.StatusCode,
  4500  			Header: res.Header,
  4501  		})
  4502  	}
  4503  	if err != nil {
  4504  		return nil, err
  4505  	}
  4506  	defer googleapi.CloseBody(res)
  4507  	if err := googleapi.CheckResponse(res); err != nil {
  4508  		return nil, gensupport.WrapError(err)
  4509  	}
  4510  	ret := &ListOperationsResponse{
  4511  		ServerResponse: googleapi.ServerResponse{
  4512  			Header:         res.Header,
  4513  			HTTPStatusCode: res.StatusCode,
  4514  		},
  4515  	}
  4516  	target := &ret
  4517  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4518  		return nil, err
  4519  	}
  4520  	return ret, nil
  4521  	// {
  4522  	//   "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
  4523  	//   "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/operations",
  4524  	//   "httpMethod": "GET",
  4525  	//   "id": "gkehub.projects.locations.operations.list",
  4526  	//   "parameterOrder": [
  4527  	//     "name"
  4528  	//   ],
  4529  	//   "parameters": {
  4530  	//     "filter": {
  4531  	//       "description": "The standard list filter.",
  4532  	//       "location": "query",
  4533  	//       "type": "string"
  4534  	//     },
  4535  	//     "name": {
  4536  	//       "description": "The name of the operation's parent resource.",
  4537  	//       "location": "path",
  4538  	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
  4539  	//       "required": true,
  4540  	//       "type": "string"
  4541  	//     },
  4542  	//     "pageSize": {
  4543  	//       "description": "The standard list page size.",
  4544  	//       "format": "int32",
  4545  	//       "location": "query",
  4546  	//       "type": "integer"
  4547  	//     },
  4548  	//     "pageToken": {
  4549  	//       "description": "The standard list page token.",
  4550  	//       "location": "query",
  4551  	//       "type": "string"
  4552  	//     }
  4553  	//   },
  4554  	//   "path": "v1alpha2/{+name}/operations",
  4555  	//   "response": {
  4556  	//     "$ref": "ListOperationsResponse"
  4557  	//   },
  4558  	//   "scopes": [
  4559  	//     "https://www.googleapis.com/auth/cloud-platform"
  4560  	//   ]
  4561  	// }
  4562  
  4563  }
  4564  
  4565  // Pages invokes f for each page of results.
  4566  // A non-nil error returned from f will halt the iteration.
  4567  // The provided context supersedes any context provided to the Context method.
  4568  func (c *ProjectsLocationsOperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
  4569  	c.ctx_ = ctx
  4570  	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
  4571  	for {
  4572  		x, err := c.Do()
  4573  		if err != nil {
  4574  			return err
  4575  		}
  4576  		if err := f(x); err != nil {
  4577  			return err
  4578  		}
  4579  		if x.NextPageToken == "" {
  4580  			return nil
  4581  		}
  4582  		c.PageToken(x.NextPageToken)
  4583  	}
  4584  }
  4585  

View as plain text