1// Copyright 2021 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 bigtableadmin provides access to the Cloud Bigtable Admin API.
8//
9// For product documentation, see: https://cloud.google.com/bigtable/
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/bigtableadmin/v2"
16//   ...
17//   ctx := context.Background()
18//   bigtableadminService, err := bigtableadmin.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
27//
28//   bigtableadminService, err := bigtableadmin.NewService(ctx, option.WithScopes(bigtableadmin.CloudPlatformReadOnlyScope))
29//
30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
31//
32//   bigtableadminService, err := bigtableadmin.NewService(ctx, option.WithAPIKey("AIza..."))
33//
34// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
35//
36//   config := &oauth2.Config{...}
37//   // ...
38//   token, err := config.Exchange(ctx, ...)
39//   bigtableadminService, err := bigtableadmin.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
40//
41// See https://godoc.org/google.golang.org/api/option/ for details on options.
42package bigtableadmin // import "google.golang.org/api/bigtableadmin/v2"
43
44import (
45	"bytes"
46	"context"
47	"encoding/json"
48	"errors"
49	"fmt"
50	"io"
51	"net/http"
52	"net/url"
53	"strconv"
54	"strings"
55
56	googleapi "google.golang.org/api/googleapi"
57	gensupport "google.golang.org/api/internal/gensupport"
58	option "google.golang.org/api/option"
59	internaloption "google.golang.org/api/option/internaloption"
60	htransport "google.golang.org/api/transport/http"
61)
62
63// Always reference these packages, just in case the auto-generated code
64// below doesn't.
65var _ = bytes.NewBuffer
66var _ = strconv.Itoa
67var _ = fmt.Sprintf
68var _ = json.NewDecoder
69var _ = io.Copy
70var _ = url.Parse
71var _ = gensupport.MarshalJSON
72var _ = googleapi.Version
73var _ = errors.New
74var _ = strings.Replace
75var _ = context.Canceled
76var _ = internaloption.WithDefaultEndpoint
77
78const apiId = "bigtableadmin:v2"
79const apiName = "bigtableadmin"
80const apiVersion = "v2"
81const basePath = "https://bigtableadmin.googleapis.com/"
82const mtlsBasePath = "https://bigtableadmin.mtls.googleapis.com/"
83
84// OAuth2 scopes used by this API.
85const (
86	// Administer your Cloud Bigtable tables and clusters
87	BigtableAdminScope = "https://www.googleapis.com/auth/bigtable.admin"
88
89	// Administer your Cloud Bigtable clusters
90	BigtableAdminClusterScope = "https://www.googleapis.com/auth/bigtable.admin.cluster"
91
92	// Administer your Cloud Bigtable clusters
93	BigtableAdminInstanceScope = "https://www.googleapis.com/auth/bigtable.admin.instance"
94
95	// Administer your Cloud Bigtable tables
96	BigtableAdminTableScope = "https://www.googleapis.com/auth/bigtable.admin.table"
97
98	// Administer your Cloud Bigtable tables and clusters
99	CloudBigtableAdminScope = "https://www.googleapis.com/auth/cloud-bigtable.admin"
100
101	// Administer your Cloud Bigtable clusters
102	CloudBigtableAdminClusterScope = "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster"
103
104	// Administer your Cloud Bigtable tables
105	CloudBigtableAdminTableScope = "https://www.googleapis.com/auth/cloud-bigtable.admin.table"
106
107	// See, edit, configure, and delete your Google Cloud data and see the
108	// email address for your Google Account.
109	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
110
111	// View your data across Google Cloud services and see the email address
112	// of your Google Account
113	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
114)
115
116// NewService creates a new Service.
117func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
118	scopesOption := option.WithScopes(
119		"https://www.googleapis.com/auth/bigtable.admin",
120		"https://www.googleapis.com/auth/bigtable.admin.cluster",
121		"https://www.googleapis.com/auth/bigtable.admin.instance",
122		"https://www.googleapis.com/auth/bigtable.admin.table",
123		"https://www.googleapis.com/auth/cloud-bigtable.admin",
124		"https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
125		"https://www.googleapis.com/auth/cloud-bigtable.admin.table",
126		"https://www.googleapis.com/auth/cloud-platform",
127		"https://www.googleapis.com/auth/cloud-platform.read-only",
128	)
129	// NOTE: prepend, so we don't override user-specified scopes.
130	opts = append([]option.ClientOption{scopesOption}, opts...)
131	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
132	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
133	client, endpoint, err := htransport.NewClient(ctx, opts...)
134	if err != nil {
135		return nil, err
136	}
137	s, err := New(client)
138	if err != nil {
139		return nil, err
140	}
141	if endpoint != "" {
142		s.BasePath = endpoint
143	}
144	return s, nil
145}
146
147// New creates a new Service. It uses the provided http.Client for requests.
148//
149// Deprecated: please use NewService instead.
150// To provide a custom HTTP client, use option.WithHTTPClient.
151// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
152func New(client *http.Client) (*Service, error) {
153	if client == nil {
154		return nil, errors.New("client is nil")
155	}
156	s := &Service{client: client, BasePath: basePath}
157	s.Operations = NewOperationsService(s)
158	s.Projects = NewProjectsService(s)
159	return s, nil
160}
161
162type Service struct {
163	client    *http.Client
164	BasePath  string // API endpoint base URL
165	UserAgent string // optional additional User-Agent fragment
166
167	Operations *OperationsService
168
169	Projects *ProjectsService
170}
171
172func (s *Service) userAgent() string {
173	if s.UserAgent == "" {
174		return googleapi.UserAgent
175	}
176	return googleapi.UserAgent + " " + s.UserAgent
177}
178
179func NewOperationsService(s *Service) *OperationsService {
180	rs := &OperationsService{s: s}
181	rs.Projects = NewOperationsProjectsService(s)
182	return rs
183}
184
185type OperationsService struct {
186	s *Service
187
188	Projects *OperationsProjectsService
189}
190
191func NewOperationsProjectsService(s *Service) *OperationsProjectsService {
192	rs := &OperationsProjectsService{s: s}
193	rs.Operations = NewOperationsProjectsOperationsService(s)
194	return rs
195}
196
197type OperationsProjectsService struct {
198	s *Service
199
200	Operations *OperationsProjectsOperationsService
201}
202
203func NewOperationsProjectsOperationsService(s *Service) *OperationsProjectsOperationsService {
204	rs := &OperationsProjectsOperationsService{s: s}
205	return rs
206}
207
208type OperationsProjectsOperationsService struct {
209	s *Service
210}
211
212func NewProjectsService(s *Service) *ProjectsService {
213	rs := &ProjectsService{s: s}
214	rs.Instances = NewProjectsInstancesService(s)
215	rs.Locations = NewProjectsLocationsService(s)
216	return rs
217}
218
219type ProjectsService struct {
220	s *Service
221
222	Instances *ProjectsInstancesService
223
224	Locations *ProjectsLocationsService
225}
226
227func NewProjectsInstancesService(s *Service) *ProjectsInstancesService {
228	rs := &ProjectsInstancesService{s: s}
229	rs.AppProfiles = NewProjectsInstancesAppProfilesService(s)
230	rs.Clusters = NewProjectsInstancesClustersService(s)
231	rs.Tables = NewProjectsInstancesTablesService(s)
232	return rs
233}
234
235type ProjectsInstancesService struct {
236	s *Service
237
238	AppProfiles *ProjectsInstancesAppProfilesService
239
240	Clusters *ProjectsInstancesClustersService
241
242	Tables *ProjectsInstancesTablesService
243}
244
245func NewProjectsInstancesAppProfilesService(s *Service) *ProjectsInstancesAppProfilesService {
246	rs := &ProjectsInstancesAppProfilesService{s: s}
247	return rs
248}
249
250type ProjectsInstancesAppProfilesService struct {
251	s *Service
252}
253
254func NewProjectsInstancesClustersService(s *Service) *ProjectsInstancesClustersService {
255	rs := &ProjectsInstancesClustersService{s: s}
256	rs.Backups = NewProjectsInstancesClustersBackupsService(s)
257	return rs
258}
259
260type ProjectsInstancesClustersService struct {
261	s *Service
262
263	Backups *ProjectsInstancesClustersBackupsService
264}
265
266func NewProjectsInstancesClustersBackupsService(s *Service) *ProjectsInstancesClustersBackupsService {
267	rs := &ProjectsInstancesClustersBackupsService{s: s}
268	return rs
269}
270
271type ProjectsInstancesClustersBackupsService struct {
272	s *Service
273}
274
275func NewProjectsInstancesTablesService(s *Service) *ProjectsInstancesTablesService {
276	rs := &ProjectsInstancesTablesService{s: s}
277	return rs
278}
279
280type ProjectsInstancesTablesService struct {
281	s *Service
282}
283
284func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
285	rs := &ProjectsLocationsService{s: s}
286	return rs
287}
288
289type ProjectsLocationsService struct {
290	s *Service
291}
292
293// AppProfile: A configuration object describing how Cloud Bigtable
294// should treat traffic from a particular end user application.
295type AppProfile struct {
296	// Description: Long form description of the use case for this
297	// AppProfile.
298	Description string `json:"description,omitempty"`
299
300	// Etag: Strongly validated etag for optimistic concurrency control.
301	// Preserve the value returned from `GetAppProfile` when calling
302	// `UpdateAppProfile` to fail the request if there has been a
303	// modification in the mean time. The `update_mask` of the request need
304	// not include `etag` for this protection to apply. See Wikipedia
305	// (https://en.wikipedia.org/wiki/HTTP_ETag) and RFC 7232
306	// (https://tools.ietf.org/html/rfc7232#section-2.3) for more details.
307	Etag string `json:"etag,omitempty"`
308
309	// MultiClusterRoutingUseAny: Use a multi-cluster routing policy.
310	MultiClusterRoutingUseAny *MultiClusterRoutingUseAny `json:"multiClusterRoutingUseAny,omitempty"`
311
312	// Name: The unique name of the app profile. Values are of the form
313	// `projects/{project}/instances/{instance}/appProfiles/_a-zA-Z0-9*`.
314	Name string `json:"name,omitempty"`
315
316	// SingleClusterRouting: Use a single-cluster routing policy.
317	SingleClusterRouting *SingleClusterRouting `json:"singleClusterRouting,omitempty"`
318
319	// ServerResponse contains the HTTP response code and headers from the
320	// server.
321	googleapi.ServerResponse `json:"-"`
322
323	// ForceSendFields is a list of field names (e.g. "Description") to
324	// unconditionally include in API requests. By default, fields with
325	// empty or default values are omitted from API requests. However, any
326	// non-pointer, non-interface field appearing in ForceSendFields will be
327	// sent to the server regardless of whether the field is empty or not.
328	// This may be used to include empty fields in Patch requests.
329	ForceSendFields []string `json:"-"`
330
331	// NullFields is a list of field names (e.g. "Description") to include
332	// in API requests with the JSON null value. By default, fields with
333	// empty values are omitted from API requests. However, any field with
334	// an empty value appearing in NullFields will be sent to the server as
335	// null. It is an error if a field in this list has a non-empty value.
336	// This may be used to include null fields in Patch requests.
337	NullFields []string `json:"-"`
338}
339
340func (s *AppProfile) MarshalJSON() ([]byte, error) {
341	type NoMethod AppProfile
342	raw := NoMethod(*s)
343	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
344}
345
346// AuditConfig: Specifies the audit configuration for a service. The
347// configuration determines which permission types are logged, and what
348// identities, if any, are exempted from logging. An AuditConfig must
349// have one or more AuditLogConfigs. If there are AuditConfigs for both
350// `allServices` and a specific service, the union of the two
351// AuditConfigs is used for that service: the log_types specified in
352// each AuditConfig are enabled, and the exempted_members in each
353// AuditLogConfig are exempted. Example Policy with multiple
354// AuditConfigs: { "audit_configs": [ { "service": "allServices",
355// "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members":
356// [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, {
357// "log_type": "ADMIN_READ" } ] }, { "service":
358// "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type":
359// "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [
360// "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy
361// enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts
362// jose@example.com from DATA_READ logging, and aliya@example.com from
363// DATA_WRITE logging.
364type AuditConfig struct {
365	// AuditLogConfigs: The configuration for logging of each type of
366	// permission.
367	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
368
369	// Service: Specifies a service that will be enabled for audit logging.
370	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
371	// `allServices` is a special value that covers all services.
372	Service string `json:"service,omitempty"`
373
374	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
375	// unconditionally include in API requests. By default, fields with
376	// empty or default values are omitted from API requests. However, any
377	// non-pointer, non-interface field appearing in ForceSendFields will be
378	// sent to the server regardless of whether the field is empty or not.
379	// This may be used to include empty fields in Patch requests.
380	ForceSendFields []string `json:"-"`
381
382	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
383	// include in API requests with the JSON null value. By default, fields
384	// with empty values are omitted from API requests. However, any field
385	// with an empty value appearing in NullFields will be sent to the
386	// server as null. It is an error if a field in this list has a
387	// non-empty value. This may be used to include null fields in Patch
388	// requests.
389	NullFields []string `json:"-"`
390}
391
392func (s *AuditConfig) MarshalJSON() ([]byte, error) {
393	type NoMethod AuditConfig
394	raw := NoMethod(*s)
395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
396}
397
398// AuditLogConfig: Provides the configuration for logging a type of
399// permissions. Example: { "audit_log_configs": [ { "log_type":
400// "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, {
401// "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and
402// 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ
403// logging.
404type AuditLogConfig struct {
405	// ExemptedMembers: Specifies the identities that do not cause logging
406	// for this type of permission. Follows the same format of
407	// Binding.members.
408	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
409
410	// LogType: The log type that this config enables.
411	//
412	// Possible values:
413	//   "LOG_TYPE_UNSPECIFIED" - Default case. Should never be this.
414	//   "ADMIN_READ" - Admin reads. Example: CloudIAM getIamPolicy
415	//   "DATA_WRITE" - Data writes. Example: CloudSQL Users create
416	//   "DATA_READ" - Data reads. Example: CloudSQL Users list
417	LogType string `json:"logType,omitempty"`
418
419	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
420	// unconditionally include in API requests. By default, fields with
421	// empty or default values are omitted from API requests. However, any
422	// non-pointer, non-interface field appearing in ForceSendFields will be
423	// sent to the server regardless of whether the field is empty or not.
424	// This may be used to include empty fields in Patch requests.
425	ForceSendFields []string `json:"-"`
426
427	// NullFields is a list of field names (e.g. "ExemptedMembers") to
428	// include in API requests with the JSON null value. By default, fields
429	// with empty values are omitted from API requests. However, any field
430	// with an empty value appearing in NullFields will be sent to the
431	// server as null. It is an error if a field in this list has a
432	// non-empty value. This may be used to include null fields in Patch
433	// requests.
434	NullFields []string `json:"-"`
435}
436
437func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
438	type NoMethod AuditLogConfig
439	raw := NoMethod(*s)
440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
441}
442
443// Backup: A backup of a Cloud Bigtable table.
444type Backup struct {
445	// EncryptionInfo: Output only. The encryption information for the
446	// backup.
447	EncryptionInfo *EncryptionInfo `json:"encryptionInfo,omitempty"`
448
449	// EndTime: Output only. `end_time` is the time that the backup was
450	// finished. The row data in the backup will be no newer than this
451	// timestamp.
452	EndTime string `json:"endTime,omitempty"`
453
454	// ExpireTime: Required. The expiration time of the backup, with
455	// microseconds granularity that must be at least 6 hours and at most 30
456	// days from the time the request is received. Once the `expire_time`
457	// has passed, Cloud Bigtable will delete the backup and free the
458	// resources used by the backup.
459	ExpireTime string `json:"expireTime,omitempty"`
460
461	// Name: A globally unique identifier for the backup which cannot be
462	// changed. Values are of the form
463	// `projects/{project}/instances/{instance}/clusters/{cluster}/
464	// backups/_a-zA-Z0-9*` The final segment of the name must be between 1
465	// and 50 characters in length. The backup is stored in the cluster
466	// identified by the prefix of the backup name of the form
467	// `projects/{project}/instances/{instance}/clusters/{cluster}`.
468	Name string `json:"name,omitempty"`
469
470	// SizeBytes: Output only. Size of the backup in bytes.
471	SizeBytes int64 `json:"sizeBytes,omitempty,string"`
472
473	// SourceTable: Required. Immutable. Name of the table from which this
474	// backup was created. This needs to be in the same instance as the
475	// backup. Values are of the form
476	// `projects/{project}/instances/{instance}/tables/{source_table}`.
477	SourceTable string `json:"sourceTable,omitempty"`
478
479	// StartTime: Output only. `start_time` is the time that the backup was
480	// started (i.e. approximately the time the CreateBackup request is
481	// received). The row data in this backup will be no older than this
482	// timestamp.
483	StartTime string `json:"startTime,omitempty"`
484
485	// State: Output only. The current state of the backup.
486	//
487	// Possible values:
488	//   "STATE_UNSPECIFIED" - Not specified.
489	//   "CREATING" - The pending backup is still being created. Operations
490	// on the backup may fail with `FAILED_PRECONDITION` in this state.
491	//   "READY" - The backup is complete and ready for use.
492	State string `json:"state,omitempty"`
493
494	// ServerResponse contains the HTTP response code and headers from the
495	// server.
496	googleapi.ServerResponse `json:"-"`
497
498	// ForceSendFields is a list of field names (e.g. "EncryptionInfo") to
499	// unconditionally include in API requests. By default, fields with
500	// empty or default values are omitted from API requests. However, any
501	// non-pointer, non-interface field appearing in ForceSendFields will be
502	// sent to the server regardless of whether the field is empty or not.
503	// This may be used to include empty fields in Patch requests.
504	ForceSendFields []string `json:"-"`
505
506	// NullFields is a list of field names (e.g. "EncryptionInfo") to
507	// include in API requests with the JSON null value. By default, fields
508	// with empty values are omitted from API requests. However, any field
509	// with an empty value appearing in NullFields will be sent to the
510	// server as null. It is an error if a field in this list has a
511	// non-empty value. This may be used to include null fields in Patch
512	// requests.
513	NullFields []string `json:"-"`
514}
515
516func (s *Backup) MarshalJSON() ([]byte, error) {
517	type NoMethod Backup
518	raw := NoMethod(*s)
519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
520}
521
522// BackupInfo: Information about a backup.
523type BackupInfo struct {
524	// Backup: Output only. Name of the backup.
525	Backup string `json:"backup,omitempty"`
526
527	// EndTime: Output only. This time that the backup was finished. Row
528	// data in the backup will be no newer than this timestamp.
529	EndTime string `json:"endTime,omitempty"`
530
531	// SourceTable: Output only. Name of the table the backup was created
532	// from.
533	SourceTable string `json:"sourceTable,omitempty"`
534
535	// StartTime: Output only. The time that the backup was started. Row
536	// data in the backup will be no older than this timestamp.
537	StartTime string `json:"startTime,omitempty"`
538
539	// ForceSendFields is a list of field names (e.g. "Backup") to
540	// unconditionally include in API requests. By default, fields with
541	// empty or default values are omitted from API requests. However, any
542	// non-pointer, non-interface field appearing in ForceSendFields will be
543	// sent to the server regardless of whether the field is empty or not.
544	// This may be used to include empty fields in Patch requests.
545	ForceSendFields []string `json:"-"`
546
547	// NullFields is a list of field names (e.g. "Backup") to include in API
548	// requests with the JSON null value. By default, fields with empty
549	// values are omitted from API requests. However, any field with an
550	// empty value appearing in NullFields will be sent to the server as
551	// null. It is an error if a field in this list has a non-empty value.
552	// This may be used to include null fields in Patch requests.
553	NullFields []string `json:"-"`
554}
555
556func (s *BackupInfo) MarshalJSON() ([]byte, error) {
557	type NoMethod BackupInfo
558	raw := NoMethod(*s)
559	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
560}
561
562// Binding: Associates `members` with a `role`.
563type Binding struct {
564	// Condition: The condition that is associated with this binding. If the
565	// condition evaluates to `true`, then this binding applies to the
566	// current request. If the condition evaluates to `false`, then this
567	// binding does not apply to the current request. However, a different
568	// role binding might grant the same role to one or more of the members
569	// in this binding. To learn which resources support conditions in their
570	// IAM policies, see the IAM documentation
571	// (https://cloud.google.com/iam/help/conditions/resource-policies).
572	Condition *Expr `json:"condition,omitempty"`
573
574	// Members: Specifies the identities requesting access for a Cloud
575	// Platform resource. `members` can have the following values: *
576	// `allUsers`: A special identifier that represents anyone who is on the
577	// internet; with or without a Google account. *
578	// `allAuthenticatedUsers`: A special identifier that represents anyone
579	// who is authenticated with a Google account or a service account. *
580	// `user:{emailid}`: An email address that represents a specific Google
581	// account. For example, `alice@example.com` . *
582	// `serviceAccount:{emailid}`: An email address that represents a
583	// service account. For example,
584	// `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An
585	// email address that represents a Google group. For example,
586	// `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An
587	// email address (plus unique identifier) representing a user that has
588	// been recently deleted. For example,
589	// `alice@example.com?uid=123456789012345678901`. If the user is
590	// recovered, this value reverts to `user:{emailid}` and the recovered
591	// user retains the role in the binding. *
592	// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
593	// (plus unique identifier) representing a service account that has been
594	// recently deleted. For example,
595	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
596	// If the service account is undeleted, this value reverts to
597	// `serviceAccount:{emailid}` and the undeleted service account retains
598	// the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`:
599	// An email address (plus unique identifier) representing a Google group
600	// that has been recently deleted. For example,
601	// `admins@example.com?uid=123456789012345678901`. If the group is
602	// recovered, this value reverts to `group:{emailid}` and the recovered
603	// group retains the role in the binding. * `domain:{domain}`: The G
604	// Suite domain (primary) that represents all the users of that domain.
605	// For example, `google.com` or `example.com`.
606	Members []string `json:"members,omitempty"`
607
608	// Role: Role that is assigned to `members`. For example,
609	// `roles/viewer`, `roles/editor`, or `roles/owner`.
610	Role string `json:"role,omitempty"`
611
612	// ForceSendFields is a list of field names (e.g. "Condition") to
613	// unconditionally include in API requests. By default, fields with
614	// empty or default values are omitted from API requests. However, any
615	// non-pointer, non-interface field appearing in ForceSendFields will be
616	// sent to the server regardless of whether the field is empty or not.
617	// This may be used to include empty fields in Patch requests.
618	ForceSendFields []string `json:"-"`
619
620	// NullFields is a list of field names (e.g. "Condition") to include in
621	// API requests with the JSON null value. By default, fields with empty
622	// values are omitted from API requests. However, any field with an
623	// empty value appearing in NullFields will be sent to the server as
624	// null. It is an error if a field in this list has a non-empty value.
625	// This may be used to include null fields in Patch requests.
626	NullFields []string `json:"-"`
627}
628
629func (s *Binding) MarshalJSON() ([]byte, error) {
630	type NoMethod Binding
631	raw := NoMethod(*s)
632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
633}
634
635// CheckConsistencyRequest: Request message for
636// google.bigtable.admin.v2.BigtableTableAdmin.CheckConsistency
637type CheckConsistencyRequest struct {
638	// ConsistencyToken: Required. The token created using
639	// GenerateConsistencyToken for the Table.
640	ConsistencyToken string `json:"consistencyToken,omitempty"`
641
642	// ForceSendFields is a list of field names (e.g. "ConsistencyToken") to
643	// unconditionally include in API requests. By default, fields with
644	// empty or default values are omitted from API requests. However, any
645	// non-pointer, non-interface field appearing in ForceSendFields will be
646	// sent to the server regardless of whether the field is empty or not.
647	// This may be used to include empty fields in Patch requests.
648	ForceSendFields []string `json:"-"`
649
650	// NullFields is a list of field names (e.g. "ConsistencyToken") to
651	// include in API requests with the JSON null value. By default, fields
652	// with empty values are omitted from API requests. However, any field
653	// with an empty value appearing in NullFields will be sent to the
654	// server as null. It is an error if a field in this list has a
655	// non-empty value. This may be used to include null fields in Patch
656	// requests.
657	NullFields []string `json:"-"`
658}
659
660func (s *CheckConsistencyRequest) MarshalJSON() ([]byte, error) {
661	type NoMethod CheckConsistencyRequest
662	raw := NoMethod(*s)
663	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
664}
665
666// CheckConsistencyResponse: Response message for
667// google.bigtable.admin.v2.BigtableTableAdmin.CheckConsistency
668type CheckConsistencyResponse struct {
669	// Consistent: True only if the token is consistent. A token is
670	// consistent if replication has caught up with the restrictions
671	// specified in the request.
672	Consistent bool `json:"consistent,omitempty"`
673
674	// ServerResponse contains the HTTP response code and headers from the
675	// server.
676	googleapi.ServerResponse `json:"-"`
677
678	// ForceSendFields is a list of field names (e.g. "Consistent") to
679	// unconditionally include in API requests. By default, fields with
680	// empty or default values are omitted from API requests. However, any
681	// non-pointer, non-interface field appearing in ForceSendFields will be
682	// sent to the server regardless of whether the field is empty or not.
683	// This may be used to include empty fields in Patch requests.
684	ForceSendFields []string `json:"-"`
685
686	// NullFields is a list of field names (e.g. "Consistent") to include in
687	// API requests with the JSON null value. By default, fields with empty
688	// values are omitted from API requests. However, any field with an
689	// empty value appearing in NullFields will be sent to the server as
690	// null. It is an error if a field in this list has a non-empty value.
691	// This may be used to include null fields in Patch requests.
692	NullFields []string `json:"-"`
693}
694
695func (s *CheckConsistencyResponse) MarshalJSON() ([]byte, error) {
696	type NoMethod CheckConsistencyResponse
697	raw := NoMethod(*s)
698	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
699}
700
701// Cluster: A resizable group of nodes in a particular cloud location,
702// capable of serving all Tables in the parent Instance.
703type Cluster struct {
704	// DefaultStorageType: Immutable. The type of storage used by this
705	// cluster to serve its parent instance's tables, unless explicitly
706	// overridden.
707	//
708	// Possible values:
709	//   "STORAGE_TYPE_UNSPECIFIED" - The user did not specify a storage
710	// type.
711	//   "SSD" - Flash (SSD) storage should be used.
712	//   "HDD" - Magnetic drive (HDD) storage should be used.
713	DefaultStorageType string `json:"defaultStorageType,omitempty"`
714
715	// EncryptionConfig: Immutable. The encryption configuration for
716	// CMEK-protected clusters.
717	EncryptionConfig *EncryptionConfig `json:"encryptionConfig,omitempty"`
718
719	// Location: Immutable. The location where this cluster's nodes and
720	// storage reside. For best performance, clients should be located as
721	// close as possible to this cluster. Currently only zones are
722	// supported, so values should be of the form
723	// `projects/{project}/locations/{zone}`.
724	Location string `json:"location,omitempty"`
725
726	// Name: The unique name of the cluster. Values are of the form
727	// `projects/{project}/instances/{instance}/clusters/a-z*`.
728	Name string `json:"name,omitempty"`
729
730	// ServeNodes: Required. The number of nodes allocated to this cluster.
731	// More nodes enable higher throughput and more consistent performance.
732	ServeNodes int64 `json:"serveNodes,omitempty"`
733
734	// State: Output only. The current state of the cluster.
735	//
736	// Possible values:
737	//   "STATE_NOT_KNOWN" - The state of the cluster could not be
738	// determined.
739	//   "READY" - The cluster has been successfully created and is ready to
740	// serve requests.
741	//   "CREATING" - The cluster is currently being created, and may be
742	// destroyed if the creation process encounters an error. A cluster may
743	// not be able to serve requests while being created.
744	//   "RESIZING" - The cluster is currently being resized, and may revert
745	// to its previous node count if the process encounters an error. A
746	// cluster is still capable of serving requests while being resized, but
747	// may exhibit performance as if its number of allocated nodes is
748	// between the starting and requested states.
749	//   "DISABLED" - The cluster has no backing nodes. The data (tables)
750	// still exist, but no operations can be performed on the cluster.
751	State string `json:"state,omitempty"`
752
753	// ServerResponse contains the HTTP response code and headers from the
754	// server.
755	googleapi.ServerResponse `json:"-"`
756
757	// ForceSendFields is a list of field names (e.g. "DefaultStorageType")
758	// to 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. "DefaultStorageType") to
766	// include in API requests with the JSON null value. By default, fields
767	// with empty values are omitted from API requests. However, any field
768	// with an empty value appearing in NullFields will be sent to the
769	// server as null. It is an error if a field in this list has a
770	// non-empty value. This may be used to include null fields in Patch
771	// requests.
772	NullFields []string `json:"-"`
773}
774
775func (s *Cluster) MarshalJSON() ([]byte, error) {
776	type NoMethod Cluster
777	raw := NoMethod(*s)
778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
779}
780
781// ClusterState: The state of a table's data in a particular cluster.
782type ClusterState struct {
783	// EncryptionInfo: Output only. The encryption information for the table
784	// in this cluster. If the encryption key protecting this resource is
785	// customer managed, then its version can be rotated in Cloud Key
786	// Management Service (Cloud KMS). The primary version of the key and
787	// its status will be reflected here when changes propagate from Cloud
788	// KMS.
789	EncryptionInfo []*EncryptionInfo `json:"encryptionInfo,omitempty"`
790
791	// ReplicationState: Output only. The state of replication for the table
792	// in this cluster.
793	//
794	// Possible values:
795	//   "STATE_NOT_KNOWN" - The replication state of the table is unknown
796	// in this cluster.
797	//   "INITIALIZING" - The cluster was recently created, and the table
798	// must finish copying over pre-existing data from other clusters before
799	// it can begin receiving live replication updates and serving Data API
800	// requests.
801	//   "PLANNED_MAINTENANCE" - The table is temporarily unable to serve
802	// Data API requests from this cluster due to planned internal
803	// maintenance.
804	//   "UNPLANNED_MAINTENANCE" - The table is temporarily unable to serve
805	// Data API requests from this cluster due to unplanned or emergency
806	// maintenance.
807	//   "READY" - The table can serve Data API requests from this cluster.
808	// Depending on replication delay, reads may not immediately reflect the
809	// state of the table in other clusters.
810	//   "READY_OPTIMIZING" - The table is fully created and ready for use
811	// after a restore, and is being optimized for performance. When
812	// optimizations are complete, the table will transition to `READY`
813	// state.
814	ReplicationState string `json:"replicationState,omitempty"`
815
816	// ForceSendFields is a list of field names (e.g. "EncryptionInfo") to
817	// unconditionally include in API requests. By default, fields with
818	// empty or default values are omitted from API requests. However, any
819	// non-pointer, non-interface field appearing in ForceSendFields will be
820	// sent to the server regardless of whether the field is empty or not.
821	// This may be used to include empty fields in Patch requests.
822	ForceSendFields []string `json:"-"`
823
824	// NullFields is a list of field names (e.g. "EncryptionInfo") to
825	// include in API requests with the JSON null value. By default, fields
826	// with empty values are omitted from API requests. However, any field
827	// with an empty value appearing in NullFields will be sent to the
828	// server as null. It is an error if a field in this list has a
829	// non-empty value. This may be used to include null fields in Patch
830	// requests.
831	NullFields []string `json:"-"`
832}
833
834func (s *ClusterState) MarshalJSON() ([]byte, error) {
835	type NoMethod ClusterState
836	raw := NoMethod(*s)
837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
838}
839
840// ColumnFamily: A set of columns within a table which share a common
841// configuration.
842type ColumnFamily struct {
843	// GcRule: Garbage collection rule specified as a protobuf. Must
844	// serialize to at most 500 bytes. NOTE: Garbage collection executes
845	// opportunistically in the background, and so it's possible for reads
846	// to return a cell even if it matches the active GC expression for its
847	// family.
848	GcRule *GcRule `json:"gcRule,omitempty"`
849
850	// ForceSendFields is a list of field names (e.g. "GcRule") to
851	// unconditionally include in API requests. By default, fields with
852	// empty or default values are omitted from API requests. However, any
853	// non-pointer, non-interface field appearing in ForceSendFields will be
854	// sent to the server regardless of whether the field is empty or not.
855	// This may be used to include empty fields in Patch requests.
856	ForceSendFields []string `json:"-"`
857
858	// NullFields is a list of field names (e.g. "GcRule") to include in API
859	// requests with the JSON null value. By default, fields with empty
860	// values are omitted from API requests. However, any field with an
861	// empty value appearing in NullFields will be sent to the server as
862	// null. It is an error if a field in this list has a non-empty value.
863	// This may be used to include null fields in Patch requests.
864	NullFields []string `json:"-"`
865}
866
867func (s *ColumnFamily) MarshalJSON() ([]byte, error) {
868	type NoMethod ColumnFamily
869	raw := NoMethod(*s)
870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
871}
872
873// CreateBackupMetadata: Metadata type for the operation returned by
874// CreateBackup.
875type CreateBackupMetadata struct {
876	// EndTime: If set, the time at which this operation finished or was
877	// cancelled.
878	EndTime string `json:"endTime,omitempty"`
879
880	// Name: The name of the backup being created.
881	Name string `json:"name,omitempty"`
882
883	// SourceTable: The name of the table the backup is created from.
884	SourceTable string `json:"sourceTable,omitempty"`
885
886	// StartTime: The time at which this operation started.
887	StartTime string `json:"startTime,omitempty"`
888
889	// ForceSendFields is a list of field names (e.g. "EndTime") to
890	// unconditionally include in API requests. By default, fields with
891	// empty or default values are omitted from API requests. However, any
892	// non-pointer, non-interface field appearing in ForceSendFields will be
893	// sent to the server regardless of whether the field is empty or not.
894	// This may be used to include empty fields in Patch requests.
895	ForceSendFields []string `json:"-"`
896
897	// NullFields is a list of field names (e.g. "EndTime") to include in
898	// API requests with the JSON null value. By default, fields with empty
899	// values are omitted from API requests. However, any field with an
900	// empty value appearing in NullFields will be sent to the server as
901	// null. It is an error if a field in this list has a non-empty value.
902	// This may be used to include null fields in Patch requests.
903	NullFields []string `json:"-"`
904}
905
906func (s *CreateBackupMetadata) MarshalJSON() ([]byte, error) {
907	type NoMethod CreateBackupMetadata
908	raw := NoMethod(*s)
909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
910}
911
912// CreateClusterMetadata: The metadata for the Operation returned by
913// CreateCluster.
914type CreateClusterMetadata struct {
915	// FinishTime: The time at which the operation failed or was completed
916	// successfully.
917	FinishTime string `json:"finishTime,omitempty"`
918
919	// OriginalRequest: The request that prompted the initiation of this
920	// CreateCluster operation.
921	OriginalRequest *CreateClusterRequest `json:"originalRequest,omitempty"`
922
923	// RequestTime: The time at which the original request was received.
924	RequestTime string `json:"requestTime,omitempty"`
925
926	// Tables: Keys: the full `name` of each table that existed in the
927	// instance when CreateCluster was first called, i.e.
928	// `projects//instances//tables/`. Any table added to the instance by a
929	// later API call will be created in the new cluster by that API call,
930	// not this one. Values: information on how much of a table's data has
931	// been copied to the newly-created cluster so far.
932	Tables map[string]TableProgress `json:"tables,omitempty"`
933
934	// ForceSendFields is a list of field names (e.g. "FinishTime") to
935	// unconditionally include in API requests. By default, fields with
936	// empty or default values are omitted from API requests. However, any
937	// non-pointer, non-interface field appearing in ForceSendFields will be
938	// sent to the server regardless of whether the field is empty or not.
939	// This may be used to include empty fields in Patch requests.
940	ForceSendFields []string `json:"-"`
941
942	// NullFields is a list of field names (e.g. "FinishTime") to include in
943	// API requests with the JSON null value. By default, fields with empty
944	// values are omitted from API requests. However, any field with an
945	// empty value appearing in NullFields will be sent to the server as
946	// null. It is an error if a field in this list has a non-empty value.
947	// This may be used to include null fields in Patch requests.
948	NullFields []string `json:"-"`
949}
950
951func (s *CreateClusterMetadata) MarshalJSON() ([]byte, error) {
952	type NoMethod CreateClusterMetadata
953	raw := NoMethod(*s)
954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
955}
956
957// CreateClusterRequest: Request message for
958// BigtableInstanceAdmin.CreateCluster.
959type CreateClusterRequest struct {
960	// Cluster: Required. The cluster to be created. Fields marked
961	// `OutputOnly` must be left blank.
962	Cluster *Cluster `json:"cluster,omitempty"`
963
964	// ClusterId: Required. The ID to be used when referring to the new
965	// cluster within its instance, e.g., just `mycluster` rather than
966	// `projects/myproject/instances/myinstance/clusters/mycluster`.
967	ClusterId string `json:"clusterId,omitempty"`
968
969	// Parent: Required. The unique name of the instance in which to create
970	// the new cluster. Values are of the form
971	// `projects/{project}/instances/{instance}`.
972	Parent string `json:"parent,omitempty"`
973
974	// ForceSendFields is a list of field names (e.g. "Cluster") to
975	// unconditionally include in API requests. By default, fields with
976	// empty or default values are omitted from API requests. However, any
977	// non-pointer, non-interface field appearing in ForceSendFields will be
978	// sent to the server regardless of whether the field is empty or not.
979	// This may be used to include empty fields in Patch requests.
980	ForceSendFields []string `json:"-"`
981
982	// NullFields is a list of field names (e.g. "Cluster") to include in
983	// API requests with the JSON null value. By default, fields with empty
984	// values are omitted from API requests. However, any field with an
985	// empty value appearing in NullFields will be sent to the server as
986	// null. It is an error if a field in this list has a non-empty value.
987	// This may be used to include null fields in Patch requests.
988	NullFields []string `json:"-"`
989}
990
991func (s *CreateClusterRequest) MarshalJSON() ([]byte, error) {
992	type NoMethod CreateClusterRequest
993	raw := NoMethod(*s)
994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
995}
996
997// CreateInstanceMetadata: The metadata for the Operation returned by
998// CreateInstance.
999type CreateInstanceMetadata struct {
1000	// FinishTime: The time at which the operation failed or was completed
1001	// successfully.
1002	FinishTime string `json:"finishTime,omitempty"`
1003
1004	// OriginalRequest: The request that prompted the initiation of this
1005	// CreateInstance operation.
1006	OriginalRequest *CreateInstanceRequest `json:"originalRequest,omitempty"`
1007
1008	// RequestTime: The time at which the original request was received.
1009	RequestTime string `json:"requestTime,omitempty"`
1010
1011	// ForceSendFields is a list of field names (e.g. "FinishTime") to
1012	// unconditionally include in API requests. By default, fields with
1013	// empty or default values are omitted from API requests. However, any
1014	// non-pointer, non-interface field appearing in ForceSendFields will be
1015	// sent to the server regardless of whether the field is empty or not.
1016	// This may be used to include empty fields in Patch requests.
1017	ForceSendFields []string `json:"-"`
1018
1019	// NullFields is a list of field names (e.g. "FinishTime") to include in
1020	// API requests with the JSON null value. By default, fields with empty
1021	// values are omitted from API requests. However, any field with an
1022	// empty value appearing in NullFields will be sent to the server as
1023	// null. It is an error if a field in this list has a non-empty value.
1024	// This may be used to include null fields in Patch requests.
1025	NullFields []string `json:"-"`
1026}
1027
1028func (s *CreateInstanceMetadata) MarshalJSON() ([]byte, error) {
1029	type NoMethod CreateInstanceMetadata
1030	raw := NoMethod(*s)
1031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1032}
1033
1034// CreateInstanceRequest: Request message for
1035// BigtableInstanceAdmin.CreateInstance.
1036type CreateInstanceRequest struct {
1037	// Clusters: Required. The clusters to be created within the instance,
1038	// mapped by desired cluster ID, e.g., just `mycluster` rather than
1039	// `projects/myproject/instances/myinstance/clusters/mycluster`. Fields
1040	// marked `OutputOnly` must be left blank. Currently, at most four
1041	// clusters can be specified.
1042	Clusters map[string]Cluster `json:"clusters,omitempty"`
1043
1044	// Instance: Required. The instance to create. Fields marked
1045	// `OutputOnly` must be left blank.
1046	Instance *Instance `json:"instance,omitempty"`
1047
1048	// InstanceId: Required. The ID to be used when referring to the new
1049	// instance within its project, e.g., just `myinstance` rather than
1050	// `projects/myproject/instances/myinstance`.
1051	InstanceId string `json:"instanceId,omitempty"`
1052
1053	// Parent: Required. The unique name of the project in which to create
1054	// the new instance. Values are of the form `projects/{project}`.
1055	Parent string `json:"parent,omitempty"`
1056
1057	// ForceSendFields is a list of field names (e.g. "Clusters") to
1058	// unconditionally include in API requests. By default, fields with
1059	// empty or default values are omitted from API requests. However, any
1060	// non-pointer, non-interface field appearing in ForceSendFields will be
1061	// sent to the server regardless of whether the field is empty or not.
1062	// This may be used to include empty fields in Patch requests.
1063	ForceSendFields []string `json:"-"`
1064
1065	// NullFields is a list of field names (e.g. "Clusters") to include in
1066	// API requests with the JSON null value. By default, fields with empty
1067	// values are omitted from API requests. However, any field with an
1068	// empty value appearing in NullFields will be sent to the server as
1069	// null. It is an error if a field in this list has a non-empty value.
1070	// This may be used to include null fields in Patch requests.
1071	NullFields []string `json:"-"`
1072}
1073
1074func (s *CreateInstanceRequest) MarshalJSON() ([]byte, error) {
1075	type NoMethod CreateInstanceRequest
1076	raw := NoMethod(*s)
1077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1078}
1079
1080// CreateTableRequest: Request message for
1081// google.bigtable.admin.v2.BigtableTableAdmin.CreateTable
1082type CreateTableRequest struct {
1083	// InitialSplits: The optional list of row keys that will be used to
1084	// initially split the table into several tablets (tablets are similar
1085	// to HBase regions). Given two split keys, `s1` and `s2`, three tablets
1086	// will be created, spanning the key ranges: `[, s1), [s1, s2), [s2, )`.
1087	// Example: * Row keys := `["a", "apple", "custom", "customer_1",
1088	// "customer_2",` "other", "zz"]` * initial_split_keys := `["apple",
1089	// "customer_1", "customer_2", "other"]` * Key assignment: - Tablet 1
1090	// `[, apple) => {"a"}.` - Tablet 2 `[apple, customer_1) => {"apple",
1091	// "custom"}.` - Tablet 3 `[customer_1, customer_2) => {"customer_1"}.`
1092	// - Tablet 4 `[customer_2, other) => {"customer_2"}.` - Tablet 5
1093	// `[other, ) => {"other", "zz"}.`
1094	InitialSplits []*Split `json:"initialSplits,omitempty"`
1095
1096	// Table: Required. The Table to create.
1097	Table *Table `json:"table,omitempty"`
1098
1099	// TableId: Required. The name by which the new table should be referred
1100	// to within the parent instance, e.g., `foobar` rather than
1101	// `{parent}/tables/foobar`. Maximum 50 characters.
1102	TableId string `json:"tableId,omitempty"`
1103
1104	// ForceSendFields is a list of field names (e.g. "InitialSplits") to
1105	// unconditionally include in API requests. By default, fields with
1106	// empty or default values are omitted from API requests. However, any
1107	// non-pointer, non-interface field appearing in ForceSendFields will be
1108	// sent to the server regardless of whether the field is empty or not.
1109	// This may be used to include empty fields in Patch requests.
1110	ForceSendFields []string `json:"-"`
1111
1112	// NullFields is a list of field names (e.g. "InitialSplits") to include
1113	// in API requests with the JSON null value. By default, fields with
1114	// empty values are omitted from API requests. However, any field with
1115	// an empty value appearing in NullFields will be sent to the server as
1116	// null. It is an error if a field in this list has a non-empty value.
1117	// This may be used to include null fields in Patch requests.
1118	NullFields []string `json:"-"`
1119}
1120
1121func (s *CreateTableRequest) MarshalJSON() ([]byte, error) {
1122	type NoMethod CreateTableRequest
1123	raw := NoMethod(*s)
1124	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1125}
1126
1127// DropRowRangeRequest: Request message for
1128// google.bigtable.admin.v2.BigtableTableAdmin.DropRowRange
1129type DropRowRangeRequest struct {
1130	// DeleteAllDataFromTable: Delete all rows in the table. Setting this to
1131	// false is a no-op.
1132	DeleteAllDataFromTable bool `json:"deleteAllDataFromTable,omitempty"`
1133
1134	// RowKeyPrefix: Delete all rows that start with this row key prefix.
1135	// Prefix cannot be zero length.
1136	RowKeyPrefix string `json:"rowKeyPrefix,omitempty"`
1137
1138	// ForceSendFields is a list of field names (e.g.
1139	// "DeleteAllDataFromTable") to unconditionally include in API requests.
1140	// By default, fields with empty or default values are omitted from API
1141	// requests. However, any non-pointer, non-interface field appearing in
1142	// ForceSendFields will be sent to the server regardless of whether the
1143	// field is empty or not. This may be used to include empty fields in
1144	// Patch requests.
1145	ForceSendFields []string `json:"-"`
1146
1147	// NullFields is a list of field names (e.g. "DeleteAllDataFromTable")
1148	// to include in API requests with the JSON null value. By default,
1149	// fields with empty values are omitted from API requests. However, any
1150	// field with an empty value appearing in NullFields will be sent to the
1151	// server as null. It is an error if a field in this list has a
1152	// non-empty value. This may be used to include null fields in Patch
1153	// requests.
1154	NullFields []string `json:"-"`
1155}
1156
1157func (s *DropRowRangeRequest) MarshalJSON() ([]byte, error) {
1158	type NoMethod DropRowRangeRequest
1159	raw := NoMethod(*s)
1160	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1161}
1162
1163// Empty: A generic empty message that you can re-use to avoid defining
1164// duplicated empty messages in your APIs. A typical example is to use
1165// it as the request or the response type of an API method. For
1166// instance: service Foo { rpc Bar(google.protobuf.Empty) returns
1167// (google.protobuf.Empty); } The JSON representation for `Empty` is
1168// empty JSON object `{}`.
1169type Empty struct {
1170	// ServerResponse contains the HTTP response code and headers from the
1171	// server.
1172	googleapi.ServerResponse `json:"-"`
1173}
1174
1175// EncryptionConfig: Cloud Key Management Service (Cloud KMS) settings
1176// for a CMEK-protected cluster.
1177type EncryptionConfig struct {
1178	// KmsKeyName: Describes the Cloud KMS encryption key that will be used
1179	// to protect the destination Bigtable cluster. The requirements for
1180	// this key are: 1) The Cloud Bigtable service account associated with
1181	// the project that contains this cluster must be granted the
1182	// `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only
1183	// regional keys can be used and the region of the CMEK key must match
1184	// the region of the cluster. 3) All clusters within an instance must
1185	// use the same CMEK key. Values are of the form
1186	// `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys
1187	// /{key}`
1188	KmsKeyName string `json:"kmsKeyName,omitempty"`
1189
1190	// ForceSendFields is a list of field names (e.g. "KmsKeyName") to
1191	// unconditionally include in API requests. By default, fields with
1192	// empty or default values are omitted from API requests. However, any
1193	// non-pointer, non-interface field appearing in ForceSendFields will be
1194	// sent to the server regardless of whether the field is empty or not.
1195	// This may be used to include empty fields in Patch requests.
1196	ForceSendFields []string `json:"-"`
1197
1198	// NullFields is a list of field names (e.g. "KmsKeyName") to include in
1199	// API requests with the JSON null value. By default, fields with empty
1200	// values are omitted from API requests. However, any field with an
1201	// empty value appearing in NullFields will be sent to the server as
1202	// null. It is an error if a field in this list has a non-empty value.
1203	// This may be used to include null fields in Patch requests.
1204	NullFields []string `json:"-"`
1205}
1206
1207func (s *EncryptionConfig) MarshalJSON() ([]byte, error) {
1208	type NoMethod EncryptionConfig
1209	raw := NoMethod(*s)
1210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1211}
1212
1213// EncryptionInfo: Encryption information for a given resource. If this
1214// resource is protected with customer managed encryption, the in-use
1215// Cloud Key Management Service (Cloud KMS) key version is specified
1216// along with its status.
1217type EncryptionInfo struct {
1218	// EncryptionStatus: Output only. The status of encrypt/decrypt calls on
1219	// underlying data for this resource. Regardless of status, the existing
1220	// data is always encrypted at rest.
1221	EncryptionStatus *Status `json:"encryptionStatus,omitempty"`
1222
1223	// EncryptionType: Output only. The type of encryption used to protect
1224	// this resource.
1225	//
1226	// Possible values:
1227	//   "ENCRYPTION_TYPE_UNSPECIFIED" - Encryption type was not specified,
1228	// though data at rest remains encrypted.
1229	//   "GOOGLE_DEFAULT_ENCRYPTION" - The data backing this resource is
1230	// encrypted at rest with a key that is fully managed by Google. No key
1231	// version or status will be populated. This is the default state.
1232	//   "CUSTOMER_MANAGED_ENCRYPTION" - The data backing this resource is
1233	// encrypted at rest with a key that is managed by the customer. The
1234	// in-use version of the key and its status are populated for
1235	// CMEK-protected tables. CMEK-protected backups are pinned to the key
1236	// version that was in use at the time the backup was taken. This key
1237	// version is populated but its status is not tracked and is reported as
1238	// `UNKNOWN`.
1239	EncryptionType string `json:"encryptionType,omitempty"`
1240
1241	// KmsKeyVersion: Output only. The version of the Cloud KMS key
1242	// specified in the parent cluster that is in use for the data
1243	// underlying this table.
1244	KmsKeyVersion string `json:"kmsKeyVersion,omitempty"`
1245
1246	// ForceSendFields is a list of field names (e.g. "EncryptionStatus") to
1247	// unconditionally include in API requests. By default, fields with
1248	// empty or default values are omitted from API requests. However, any
1249	// non-pointer, non-interface field appearing in ForceSendFields will be
1250	// sent to the server regardless of whether the field is empty or not.
1251	// This may be used to include empty fields in Patch requests.
1252	ForceSendFields []string `json:"-"`
1253
1254	// NullFields is a list of field names (e.g. "EncryptionStatus") to
1255	// include in API requests with the JSON null value. By default, fields
1256	// with empty values are omitted from API requests. However, any field
1257	// with an empty value appearing in NullFields will be sent to the
1258	// server as null. It is an error if a field in this list has a
1259	// non-empty value. This may be used to include null fields in Patch
1260	// requests.
1261	NullFields []string `json:"-"`
1262}
1263
1264func (s *EncryptionInfo) MarshalJSON() ([]byte, error) {
1265	type NoMethod EncryptionInfo
1266	raw := NoMethod(*s)
1267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1268}
1269
1270// Expr: Represents a textual expression in the Common Expression
1271// Language (CEL) syntax. CEL is a C-like expression language. The
1272// syntax and semantics of CEL are documented at
1273// https://github.com/google/cel-spec. Example (Comparison): title:
1274// "Summary size limit" description: "Determines if a summary is less
1275// than 100 chars" expression: "document.summary.size() < 100" Example
1276// (Equality): title: "Requestor is owner" description: "Determines if
1277// requestor is the document owner" expression: "document.owner ==
1278// request.auth.claims.email" Example (Logic): title: "Public documents"
1279// description: "Determine whether the document should be publicly
1280// visible" expression: "document.type != 'private' && document.type !=
1281// 'internal'" Example (Data Manipulation): title: "Notification string"
1282// description: "Create a notification string with a timestamp."
1283// expression: "'New message received at ' +
1284// string(document.create_time)" The exact variables and functions that
1285// may be referenced within an expression are determined by the service
1286// that evaluates it. See the service documentation for additional
1287// information.
1288type Expr struct {
1289	// Description: Optional. Description of the expression. This is a
1290	// longer text which describes the expression, e.g. when hovered over it
1291	// in a UI.
1292	Description string `json:"description,omitempty"`
1293
1294	// Expression: Textual representation of an expression in Common
1295	// Expression Language syntax.
1296	Expression string `json:"expression,omitempty"`
1297
1298	// Location: Optional. String indicating the location of the expression
1299	// for error reporting, e.g. a file name and a position in the file.
1300	Location string `json:"location,omitempty"`
1301
1302	// Title: Optional. Title for the expression, i.e. a short string
1303	// describing its purpose. This can be used e.g. in UIs which allow to
1304	// enter the expression.
1305	Title string `json:"title,omitempty"`
1306
1307	// ForceSendFields is a list of field names (e.g. "Description") to
1308	// unconditionally include in API requests. By default, fields with
1309	// empty or default values are omitted from API requests. However, any
1310	// non-pointer, non-interface field appearing in ForceSendFields will be
1311	// sent to the server regardless of whether the field is empty or not.
1312	// This may be used to include empty fields in Patch requests.
1313	ForceSendFields []string `json:"-"`
1314
1315	// NullFields is a list of field names (e.g. "Description") to include
1316	// in API requests with the JSON null value. By default, fields with
1317	// empty values are omitted from API requests. However, any field with
1318	// an empty value appearing in NullFields will be sent to the server as
1319	// null. It is an error if a field in this list has a non-empty value.
1320	// This may be used to include null fields in Patch requests.
1321	NullFields []string `json:"-"`
1322}
1323
1324func (s *Expr) MarshalJSON() ([]byte, error) {
1325	type NoMethod Expr
1326	raw := NoMethod(*s)
1327	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1328}
1329
1330// FailureTrace: Added to the error payload.
1331type FailureTrace struct {
1332	Frames []*Frame `json:"frames,omitempty"`
1333
1334	// ForceSendFields is a list of field names (e.g. "Frames") to
1335	// unconditionally include in API requests. By default, fields with
1336	// empty or default values are omitted from API requests. However, any
1337	// non-pointer, non-interface field appearing in ForceSendFields will be
1338	// sent to the server regardless of whether the field is empty or not.
1339	// This may be used to include empty fields in Patch requests.
1340	ForceSendFields []string `json:"-"`
1341
1342	// NullFields is a list of field names (e.g. "Frames") to include in API
1343	// requests with the JSON null value. By default, fields with empty
1344	// values are omitted from API requests. However, any field with an
1345	// empty value appearing in NullFields will be sent to the server as
1346	// null. It is an error if a field in this list has a non-empty value.
1347	// This may be used to include null fields in Patch requests.
1348	NullFields []string `json:"-"`
1349}
1350
1351func (s *FailureTrace) MarshalJSON() ([]byte, error) {
1352	type NoMethod FailureTrace
1353	raw := NoMethod(*s)
1354	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1355}
1356
1357type Frame struct {
1358	TargetName string `json:"targetName,omitempty"`
1359
1360	WorkflowGuid string `json:"workflowGuid,omitempty"`
1361
1362	ZoneId string `json:"zoneId,omitempty"`
1363
1364	// ForceSendFields is a list of field names (e.g. "TargetName") to
1365	// unconditionally include in API requests. By default, fields with
1366	// empty or default values are omitted from API requests. However, any
1367	// non-pointer, non-interface field appearing in ForceSendFields will be
1368	// sent to the server regardless of whether the field is empty or not.
1369	// This may be used to include empty fields in Patch requests.
1370	ForceSendFields []string `json:"-"`
1371
1372	// NullFields is a list of field names (e.g. "TargetName") to include in
1373	// API requests with the JSON null value. By default, fields with empty
1374	// values are omitted from API requests. However, any field with an
1375	// empty value appearing in NullFields will be sent to the server as
1376	// null. It is an error if a field in this list has a non-empty value.
1377	// This may be used to include null fields in Patch requests.
1378	NullFields []string `json:"-"`
1379}
1380
1381func (s *Frame) MarshalJSON() ([]byte, error) {
1382	type NoMethod Frame
1383	raw := NoMethod(*s)
1384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1385}
1386
1387// GcRule: Rule for determining which cells to delete during garbage
1388// collection.
1389type GcRule struct {
1390	// Intersection: Delete cells that would be deleted by every nested
1391	// rule.
1392	Intersection *Intersection `json:"intersection,omitempty"`
1393
1394	// MaxAge: Delete cells in a column older than the given age. Values
1395	// must be at least one millisecond, and will be truncated to
1396	// microsecond granularity.
1397	MaxAge string `json:"maxAge,omitempty"`
1398
1399	// MaxNumVersions: Delete all cells in a column except the most recent
1400	// N.
1401	MaxNumVersions int64 `json:"maxNumVersions,omitempty"`
1402
1403	// Union: Delete cells that would be deleted by any nested rule.
1404	Union *Union `json:"union,omitempty"`
1405
1406	// ForceSendFields is a list of field names (e.g. "Intersection") to
1407	// unconditionally include in API requests. By default, fields with
1408	// empty or default values are omitted from API requests. However, any
1409	// non-pointer, non-interface field appearing in ForceSendFields will be
1410	// sent to the server regardless of whether the field is empty or not.
1411	// This may be used to include empty fields in Patch requests.
1412	ForceSendFields []string `json:"-"`
1413
1414	// NullFields is a list of field names (e.g. "Intersection") to include
1415	// in API requests with the JSON null value. By default, fields with
1416	// empty values are omitted from API requests. However, any field with
1417	// an empty value appearing in NullFields will be sent to the server as
1418	// null. It is an error if a field in this list has a non-empty value.
1419	// This may be used to include null fields in Patch requests.
1420	NullFields []string `json:"-"`
1421}
1422
1423func (s *GcRule) MarshalJSON() ([]byte, error) {
1424	type NoMethod GcRule
1425	raw := NoMethod(*s)
1426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1427}
1428
1429// GenerateConsistencyTokenRequest: Request message for
1430// google.bigtable.admin.v2.BigtableTableAdmin.GenerateConsistencyToken
1431type GenerateConsistencyTokenRequest struct {
1432}
1433
1434// GenerateConsistencyTokenResponse: Response message for
1435// google.bigtable.admin.v2.BigtableTableAdmin.GenerateConsistencyToken
1436type GenerateConsistencyTokenResponse struct {
1437	// ConsistencyToken: The generated consistency token.
1438	ConsistencyToken string `json:"consistencyToken,omitempty"`
1439
1440	// ServerResponse contains the HTTP response code and headers from the
1441	// server.
1442	googleapi.ServerResponse `json:"-"`
1443
1444	// ForceSendFields is a list of field names (e.g. "ConsistencyToken") to
1445	// unconditionally include in API requests. By default, fields with
1446	// empty or default values are omitted from API requests. However, any
1447	// non-pointer, non-interface field appearing in ForceSendFields will be
1448	// sent to the server regardless of whether the field is empty or not.
1449	// This may be used to include empty fields in Patch requests.
1450	ForceSendFields []string `json:"-"`
1451
1452	// NullFields is a list of field names (e.g. "ConsistencyToken") to
1453	// include in API requests with the JSON null value. By default, fields
1454	// with empty values are omitted from API requests. However, any field
1455	// with an empty value appearing in NullFields will be sent to the
1456	// server as null. It is an error if a field in this list has a
1457	// non-empty value. This may be used to include null fields in Patch
1458	// requests.
1459	NullFields []string `json:"-"`
1460}
1461
1462func (s *GenerateConsistencyTokenResponse) MarshalJSON() ([]byte, error) {
1463	type NoMethod GenerateConsistencyTokenResponse
1464	raw := NoMethod(*s)
1465	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1466}
1467
1468// GetIamPolicyRequest: Request message for `GetIamPolicy` method.
1469type GetIamPolicyRequest struct {
1470	// Options: OPTIONAL: A `GetPolicyOptions` object for specifying options
1471	// to `GetIamPolicy`.
1472	Options *GetPolicyOptions `json:"options,omitempty"`
1473
1474	// ForceSendFields is a list of field names (e.g. "Options") to
1475	// unconditionally include in API requests. By default, fields with
1476	// empty or default values are omitted from API requests. However, any
1477	// non-pointer, non-interface field appearing in ForceSendFields will be
1478	// sent to the server regardless of whether the field is empty or not.
1479	// This may be used to include empty fields in Patch requests.
1480	ForceSendFields []string `json:"-"`
1481
1482	// NullFields is a list of field names (e.g. "Options") to include in
1483	// API requests with the JSON null value. By default, fields with empty
1484	// values are omitted from API requests. However, any field with an
1485	// empty value appearing in NullFields will be sent to the server as
1486	// null. It is an error if a field in this list has a non-empty value.
1487	// This may be used to include null fields in Patch requests.
1488	NullFields []string `json:"-"`
1489}
1490
1491func (s *GetIamPolicyRequest) MarshalJSON() ([]byte, error) {
1492	type NoMethod GetIamPolicyRequest
1493	raw := NoMethod(*s)
1494	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1495}
1496
1497// GetPolicyOptions: Encapsulates settings provided to GetIamPolicy.
1498type GetPolicyOptions struct {
1499	// RequestedPolicyVersion: Optional. The policy format version to be
1500	// returned. Valid values are 0, 1, and 3. Requests specifying an
1501	// invalid value will be rejected. Requests for policies with any
1502	// conditional bindings must specify version 3. Policies without any
1503	// conditional bindings may specify any valid value or leave the field
1504	// unset. To learn which resources support conditions in their IAM
1505	// policies, see the IAM documentation
1506	// (https://cloud.google.com/iam/help/conditions/resource-policies).
1507	RequestedPolicyVersion int64 `json:"requestedPolicyVersion,omitempty"`
1508
1509	// ForceSendFields is a list of field names (e.g.
1510	// "RequestedPolicyVersion") to unconditionally include in API requests.
1511	// By default, fields with empty or default values are omitted from API
1512	// requests. However, any non-pointer, non-interface field appearing in
1513	// ForceSendFields will be sent to the server regardless of whether the
1514	// field is empty or not. This may be used to include empty fields in
1515	// Patch requests.
1516	ForceSendFields []string `json:"-"`
1517
1518	// NullFields is a list of field names (e.g. "RequestedPolicyVersion")
1519	// to include in API requests with the JSON null value. By default,
1520	// fields with empty values are omitted from API requests. However, any
1521	// field with an empty value appearing in NullFields will be sent to the
1522	// server as null. It is an error if a field in this list has a
1523	// non-empty value. This may be used to include null fields in Patch
1524	// requests.
1525	NullFields []string `json:"-"`
1526}
1527
1528func (s *GetPolicyOptions) MarshalJSON() ([]byte, error) {
1529	type NoMethod GetPolicyOptions
1530	raw := NoMethod(*s)
1531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1532}
1533
1534// Instance: A collection of Bigtable Tables and the resources that
1535// serve them. All tables in an instance are served from all Clusters in
1536// the instance.
1537type Instance struct {
1538	// CreateTime: Output only. A server-assigned timestamp representing
1539	// when this Instance was created.
1540	CreateTime string `json:"createTime,omitempty"`
1541
1542	// DisplayName: Required. The descriptive name for this instance as it
1543	// appears in UIs. Can be changed at any time, but should be kept
1544	// globally unique to avoid confusion.
1545	DisplayName string `json:"displayName,omitempty"`
1546
1547	// Labels: Required. Labels are a flexible and lightweight mechanism for
1548	// organizing cloud resources into groups that reflect a customer's
1549	// organizational needs and deployment strategies. They can be used to
1550	// filter resources and aggregate metrics. * Label keys must be between
1551	// 1 and 63 characters long and must conform to the regular expression:
1552	// `\p{Ll}\p{Lo}{0,62}`. * Label values must be between 0 and 63
1553	// characters long and must conform to the regular expression:
1554	// `[\p{Ll}\p{Lo}\p{N}_-]{0,63}`. * No more than 64 labels can be
1555	// associated with a given resource. * Keys and values must both be
1556	// under 128 bytes.
1557	Labels map[string]string `json:"labels,omitempty"`
1558
1559	// Name: The unique name of the instance. Values are of the form
1560	// `projects/{project}/instances/a-z+[a-z0-9]`.
1561	Name string `json:"name,omitempty"`
1562
1563	// State: Output only. The current state of the instance.
1564	//
1565	// Possible values:
1566	//   "STATE_NOT_KNOWN" - The state of the instance could not be
1567	// determined.
1568	//   "READY" - The instance has been successfully created and can serve
1569	// requests to its tables.
1570	//   "CREATING" - The instance is currently being created, and may be
1571	// destroyed if the creation process encounters an error.
1572	State string `json:"state,omitempty"`
1573
1574	// Type: Required. The type of the instance. Defaults to `PRODUCTION`.
1575	//
1576	// Possible values:
1577	//   "TYPE_UNSPECIFIED" - The type of the instance is unspecified. If
1578	// set when creating an instance, a `PRODUCTION` instance will be
1579	// created. If set when updating an instance, the type will be left
1580	// unchanged.
1581	//   "PRODUCTION" - An instance meant for production use. `serve_nodes`
1582	// must be set on the cluster.
1583	//   "DEVELOPMENT" - DEPRECATED: Prefer PRODUCTION for all use cases, as
1584	// it no longer enforces a higher minimum node count than DEVELOPMENT.
1585	Type string `json:"type,omitempty"`
1586
1587	// ServerResponse contains the HTTP response code and headers from the
1588	// server.
1589	googleapi.ServerResponse `json:"-"`
1590
1591	// ForceSendFields is a list of field names (e.g. "CreateTime") to
1592	// unconditionally include in API requests. By default, fields with
1593	// empty or default values are omitted from API requests. However, any
1594	// non-pointer, non-interface field appearing in ForceSendFields will be
1595	// sent to the server regardless of whether the field is empty or not.
1596	// This may be used to include empty fields in Patch requests.
1597	ForceSendFields []string `json:"-"`
1598
1599	// NullFields is a list of field names (e.g. "CreateTime") to include in
1600	// API requests with the JSON null value. By default, fields with empty
1601	// values are omitted from API requests. However, any field with an
1602	// empty value appearing in NullFields will be sent to the server as
1603	// null. It is an error if a field in this list has a non-empty value.
1604	// This may be used to include null fields in Patch requests.
1605	NullFields []string `json:"-"`
1606}
1607
1608func (s *Instance) MarshalJSON() ([]byte, error) {
1609	type NoMethod Instance
1610	raw := NoMethod(*s)
1611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1612}
1613
1614// Intersection: A GcRule which deletes cells matching all of the given
1615// rules.
1616type Intersection struct {
1617	// Rules: Only delete cells which would be deleted by every element of
1618	// `rules`.
1619	Rules []*GcRule `json:"rules,omitempty"`
1620
1621	// ForceSendFields is a list of field names (e.g. "Rules") to
1622	// unconditionally include in API requests. By default, fields with
1623	// empty or default values are omitted from API requests. However, any
1624	// non-pointer, non-interface field appearing in ForceSendFields will be
1625	// sent to the server regardless of whether the field is empty or not.
1626	// This may be used to include empty fields in Patch requests.
1627	ForceSendFields []string `json:"-"`
1628
1629	// NullFields is a list of field names (e.g. "Rules") to include in API
1630	// requests with the JSON null value. By default, fields with empty
1631	// values are omitted from API requests. However, any field with an
1632	// empty value appearing in NullFields will be sent to the server as
1633	// null. It is an error if a field in this list has a non-empty value.
1634	// This may be used to include null fields in Patch requests.
1635	NullFields []string `json:"-"`
1636}
1637
1638func (s *Intersection) MarshalJSON() ([]byte, error) {
1639	type NoMethod Intersection
1640	raw := NoMethod(*s)
1641	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1642}
1643
1644// ListAppProfilesResponse: Response message for
1645// BigtableInstanceAdmin.ListAppProfiles.
1646type ListAppProfilesResponse struct {
1647	// AppProfiles: The list of requested app profiles.
1648	AppProfiles []*AppProfile `json:"appProfiles,omitempty"`
1649
1650	// FailedLocations: Locations from which AppProfile information could
1651	// not be retrieved, due to an outage or some other transient condition.
1652	// AppProfiles from these locations may be missing from `app_profiles`.
1653	// Values are of the form `projects//locations/`
1654	FailedLocations []string `json:"failedLocations,omitempty"`
1655
1656	// NextPageToken: Set if not all app profiles could be returned in a
1657	// single response. Pass this value to `page_token` in another request
1658	// to get the next page of results.
1659	NextPageToken string `json:"nextPageToken,omitempty"`
1660
1661	// ServerResponse contains the HTTP response code and headers from the
1662	// server.
1663	googleapi.ServerResponse `json:"-"`
1664
1665	// ForceSendFields is a list of field names (e.g. "AppProfiles") to
1666	// unconditionally include in API requests. By default, fields with
1667	// empty or default values are omitted from API requests. However, any
1668	// non-pointer, non-interface field appearing in ForceSendFields will be
1669	// sent to the server regardless of whether the field is empty or not.
1670	// This may be used to include empty fields in Patch requests.
1671	ForceSendFields []string `json:"-"`
1672
1673	// NullFields is a list of field names (e.g. "AppProfiles") to include
1674	// in API requests with the JSON null value. By default, fields with
1675	// empty values are omitted from API requests. However, any field with
1676	// an empty value appearing in NullFields will be sent to the server as
1677	// null. It is an error if a field in this list has a non-empty value.
1678	// This may be used to include null fields in Patch requests.
1679	NullFields []string `json:"-"`
1680}
1681
1682func (s *ListAppProfilesResponse) MarshalJSON() ([]byte, error) {
1683	type NoMethod ListAppProfilesResponse
1684	raw := NoMethod(*s)
1685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1686}
1687
1688// ListBackupsResponse: The response for ListBackups.
1689type ListBackupsResponse struct {
1690	// Backups: The list of matching backups.
1691	Backups []*Backup `json:"backups,omitempty"`
1692
1693	// NextPageToken: `next_page_token` can be sent in a subsequent
1694	// ListBackups call to fetch more of the matching backups.
1695	NextPageToken string `json:"nextPageToken,omitempty"`
1696
1697	// ServerResponse contains the HTTP response code and headers from the
1698	// server.
1699	googleapi.ServerResponse `json:"-"`
1700
1701	// ForceSendFields is a list of field names (e.g. "Backups") to
1702	// unconditionally include in API requests. By default, fields with
1703	// empty or default values are omitted from API requests. However, any
1704	// non-pointer, non-interface field appearing in ForceSendFields will be
1705	// sent to the server regardless of whether the field is empty or not.
1706	// This may be used to include empty fields in Patch requests.
1707	ForceSendFields []string `json:"-"`
1708
1709	// NullFields is a list of field names (e.g. "Backups") to include in
1710	// API requests with the JSON null value. By default, fields with empty
1711	// values are omitted from API requests. However, any field with an
1712	// empty value appearing in NullFields will be sent to the server as
1713	// null. It is an error if a field in this list has a non-empty value.
1714	// This may be used to include null fields in Patch requests.
1715	NullFields []string `json:"-"`
1716}
1717
1718func (s *ListBackupsResponse) MarshalJSON() ([]byte, error) {
1719	type NoMethod ListBackupsResponse
1720	raw := NoMethod(*s)
1721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1722}
1723
1724// ListClustersResponse: Response message for
1725// BigtableInstanceAdmin.ListClusters.
1726type ListClustersResponse struct {
1727	// Clusters: The list of requested clusters.
1728	Clusters []*Cluster `json:"clusters,omitempty"`
1729
1730	// FailedLocations: Locations from which Cluster information could not
1731	// be retrieved, due to an outage or some other transient condition.
1732	// Clusters from these locations may be missing from `clusters`, or may
1733	// only have partial information returned. Values are of the form
1734	// `projects//locations/`
1735	FailedLocations []string `json:"failedLocations,omitempty"`
1736
1737	// NextPageToken: DEPRECATED: This field is unused and ignored.
1738	NextPageToken string `json:"nextPageToken,omitempty"`
1739
1740	// ServerResponse contains the HTTP response code and headers from the
1741	// server.
1742	googleapi.ServerResponse `json:"-"`
1743
1744	// ForceSendFields is a list of field names (e.g. "Clusters") to
1745	// unconditionally include in API requests. By default, fields with
1746	// empty or default values are omitted from API requests. However, any
1747	// non-pointer, non-interface field appearing in ForceSendFields will be
1748	// sent to the server regardless of whether the field is empty or not.
1749	// This may be used to include empty fields in Patch requests.
1750	ForceSendFields []string `json:"-"`
1751
1752	// NullFields is a list of field names (e.g. "Clusters") to include in
1753	// API requests with the JSON null value. By default, fields with empty
1754	// values are omitted from API requests. However, any field with an
1755	// empty value appearing in NullFields will be sent to the server as
1756	// null. It is an error if a field in this list has a non-empty value.
1757	// This may be used to include null fields in Patch requests.
1758	NullFields []string `json:"-"`
1759}
1760
1761func (s *ListClustersResponse) MarshalJSON() ([]byte, error) {
1762	type NoMethod ListClustersResponse
1763	raw := NoMethod(*s)
1764	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1765}
1766
1767// ListInstancesResponse: Response message for
1768// BigtableInstanceAdmin.ListInstances.
1769type ListInstancesResponse struct {
1770	// FailedLocations: Locations from which Instance information could not
1771	// be retrieved, due to an outage or some other transient condition.
1772	// Instances whose Clusters are all in one of the failed locations may
1773	// be missing from `instances`, and Instances with at least one Cluster
1774	// in a failed location may only have partial information returned.
1775	// Values are of the form `projects//locations/`
1776	FailedLocations []string `json:"failedLocations,omitempty"`
1777
1778	// Instances: The list of requested instances.
1779	Instances []*Instance `json:"instances,omitempty"`
1780
1781	// NextPageToken: DEPRECATED: This field is unused and ignored.
1782	NextPageToken string `json:"nextPageToken,omitempty"`
1783
1784	// ServerResponse contains the HTTP response code and headers from the
1785	// server.
1786	googleapi.ServerResponse `json:"-"`
1787
1788	// ForceSendFields is a list of field names (e.g. "FailedLocations") to
1789	// unconditionally include in API requests. By default, fields with
1790	// empty or default values are omitted from API requests. However, any
1791	// non-pointer, non-interface field appearing in ForceSendFields will be
1792	// sent to the server regardless of whether the field is empty or not.
1793	// This may be used to include empty fields in Patch requests.
1794	ForceSendFields []string `json:"-"`
1795
1796	// NullFields is a list of field names (e.g. "FailedLocations") to
1797	// include in API requests with the JSON null value. By default, fields
1798	// with empty values are omitted from API requests. However, any field
1799	// with an empty value appearing in NullFields will be sent to the
1800	// server as null. It is an error if a field in this list has a
1801	// non-empty value. This may be used to include null fields in Patch
1802	// requests.
1803	NullFields []string `json:"-"`
1804}
1805
1806func (s *ListInstancesResponse) MarshalJSON() ([]byte, error) {
1807	type NoMethod ListInstancesResponse
1808	raw := NoMethod(*s)
1809	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1810}
1811
1812// ListLocationsResponse: The response message for
1813// Locations.ListLocations.
1814type ListLocationsResponse struct {
1815	// Locations: A list of locations that matches the specified filter in
1816	// the request.
1817	Locations []*Location `json:"locations,omitempty"`
1818
1819	// NextPageToken: The standard List next-page token.
1820	NextPageToken string `json:"nextPageToken,omitempty"`
1821
1822	// ServerResponse contains the HTTP response code and headers from the
1823	// server.
1824	googleapi.ServerResponse `json:"-"`
1825
1826	// ForceSendFields is a list of field names (e.g. "Locations") to
1827	// unconditionally include in API requests. By default, fields with
1828	// empty or default values are omitted from API requests. However, any
1829	// non-pointer, non-interface field appearing in ForceSendFields will be
1830	// sent to the server regardless of whether the field is empty or not.
1831	// This may be used to include empty fields in Patch requests.
1832	ForceSendFields []string `json:"-"`
1833
1834	// NullFields is a list of field names (e.g. "Locations") to include in
1835	// API requests with the JSON null value. By default, fields with empty
1836	// values are omitted from API requests. However, any field with an
1837	// empty value appearing in NullFields will be sent to the server as
1838	// null. It is an error if a field in this list has a non-empty value.
1839	// This may be used to include null fields in Patch requests.
1840	NullFields []string `json:"-"`
1841}
1842
1843func (s *ListLocationsResponse) MarshalJSON() ([]byte, error) {
1844	type NoMethod ListLocationsResponse
1845	raw := NoMethod(*s)
1846	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1847}
1848
1849// ListOperationsResponse: The response message for
1850// Operations.ListOperations.
1851type ListOperationsResponse struct {
1852	// NextPageToken: The standard List next-page token.
1853	NextPageToken string `json:"nextPageToken,omitempty"`
1854
1855	// Operations: A list of operations that matches the specified filter in
1856	// the request.
1857	Operations []*Operation `json:"operations,omitempty"`
1858
1859	// ServerResponse contains the HTTP response code and headers from the
1860	// server.
1861	googleapi.ServerResponse `json:"-"`
1862
1863	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1864	// unconditionally include in API requests. By default, fields with
1865	// empty or default values are omitted from API requests. However, any
1866	// non-pointer, non-interface field appearing in ForceSendFields will be
1867	// sent to the server regardless of whether the field is empty or not.
1868	// This may be used to include empty fields in Patch requests.
1869	ForceSendFields []string `json:"-"`
1870
1871	// NullFields is a list of field names (e.g. "NextPageToken") to include
1872	// in API requests with the JSON null value. By default, fields with
1873	// empty values are omitted from API requests. However, any field with
1874	// an empty value appearing in NullFields will be sent to the server as
1875	// null. It is an error if a field in this list has a non-empty value.
1876	// This may be used to include null fields in Patch requests.
1877	NullFields []string `json:"-"`
1878}
1879
1880func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) {
1881	type NoMethod ListOperationsResponse
1882	raw := NoMethod(*s)
1883	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1884}
1885
1886// ListTablesResponse: Response message for
1887// google.bigtable.admin.v2.BigtableTableAdmin.ListTables
1888type ListTablesResponse struct {
1889	// NextPageToken: Set if not all tables could be returned in a single
1890	// response. Pass this value to `page_token` in another request to get
1891	// the next page of results.
1892	NextPageToken string `json:"nextPageToken,omitempty"`
1893
1894	// Tables: The tables present in the requested instance.
1895	Tables []*Table `json:"tables,omitempty"`
1896
1897	// ServerResponse contains the HTTP response code and headers from the
1898	// server.
1899	googleapi.ServerResponse `json:"-"`
1900
1901	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1902	// unconditionally include in API requests. By default, fields with
1903	// empty or default values are omitted from API requests. However, any
1904	// non-pointer, non-interface field appearing in ForceSendFields will be
1905	// sent to the server regardless of whether the field is empty or not.
1906	// This may be used to include empty fields in Patch requests.
1907	ForceSendFields []string `json:"-"`
1908
1909	// NullFields is a list of field names (e.g. "NextPageToken") to include
1910	// in API requests with the JSON null value. By default, fields with
1911	// empty values are omitted from API requests. However, any field with
1912	// an empty value appearing in NullFields will be sent to the server as
1913	// null. It is an error if a field in this list has a non-empty value.
1914	// This may be used to include null fields in Patch requests.
1915	NullFields []string `json:"-"`
1916}
1917
1918func (s *ListTablesResponse) MarshalJSON() ([]byte, error) {
1919	type NoMethod ListTablesResponse
1920	raw := NoMethod(*s)
1921	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1922}
1923
1924// Location: A resource that represents Google Cloud Platform location.
1925type Location struct {
1926	// DisplayName: The friendly name for this location, typically a nearby
1927	// city name. For example, "Tokyo".
1928	DisplayName string `json:"displayName,omitempty"`
1929
1930	// Labels: Cross-service attributes for the location. For example
1931	// {"cloud.googleapis.com/region": "us-east1"}
1932	Labels map[string]string `json:"labels,omitempty"`
1933
1934	// LocationId: The canonical id for this location. For example:
1935	// "us-east1".
1936	LocationId string `json:"locationId,omitempty"`
1937
1938	// Metadata: Service-specific metadata. For example the available
1939	// capacity at the given location.
1940	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
1941
1942	// Name: Resource name for the location, which may vary between
1943	// implementations. For example:
1944	// "projects/example-project/locations/us-east1"
1945	Name string `json:"name,omitempty"`
1946
1947	// ServerResponse contains the HTTP response code and headers from the
1948	// server.
1949	googleapi.ServerResponse `json:"-"`
1950
1951	// ForceSendFields is a list of field names (e.g. "DisplayName") to
1952	// unconditionally include in API requests. By default, fields with
1953	// empty or default values are omitted from API requests. However, any
1954	// non-pointer, non-interface field appearing in ForceSendFields will be
1955	// sent to the server regardless of whether the field is empty or not.
1956	// This may be used to include empty fields in Patch requests.
1957	ForceSendFields []string `json:"-"`
1958
1959	// NullFields is a list of field names (e.g. "DisplayName") to include
1960	// in API requests with the JSON null value. By default, fields with
1961	// empty values are omitted from API requests. However, any field with
1962	// an empty value appearing in NullFields will be sent to the server as
1963	// null. It is an error if a field in this list has a non-empty value.
1964	// This may be used to include null fields in Patch requests.
1965	NullFields []string `json:"-"`
1966}
1967
1968func (s *Location) MarshalJSON() ([]byte, error) {
1969	type NoMethod Location
1970	raw := NoMethod(*s)
1971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1972}
1973
1974// Modification: A create, update, or delete of a particular column
1975// family.
1976type Modification struct {
1977	// Create: Create a new column family with the specified schema, or fail
1978	// if one already exists with the given ID.
1979	Create *ColumnFamily `json:"create,omitempty"`
1980
1981	// Drop: Drop (delete) the column family with the given ID, or fail if
1982	// no such family exists.
1983	Drop bool `json:"drop,omitempty"`
1984
1985	// Id: The ID of the column family to be modified.
1986	Id string `json:"id,omitempty"`
1987
1988	// Update: Update an existing column family to the specified schema, or
1989	// fail if no column family exists with the given ID.
1990	Update *ColumnFamily `json:"update,omitempty"`
1991
1992	// ForceSendFields is a list of field names (e.g. "Create") to
1993	// unconditionally include in API requests. By default, fields with
1994	// empty or default values are omitted from API requests. However, any
1995	// non-pointer, non-interface field appearing in ForceSendFields will be
1996	// sent to the server regardless of whether the field is empty or not.
1997	// This may be used to include empty fields in Patch requests.
1998	ForceSendFields []string `json:"-"`
1999
2000	// NullFields is a list of field names (e.g. "Create") to include in API
2001	// requests with the JSON null value. By default, fields with empty
2002	// values are omitted from API requests. However, any field with an
2003	// empty value appearing in NullFields will be sent to the server as
2004	// null. It is an error if a field in this list has a non-empty value.
2005	// This may be used to include null fields in Patch requests.
2006	NullFields []string `json:"-"`
2007}
2008
2009func (s *Modification) MarshalJSON() ([]byte, error) {
2010	type NoMethod Modification
2011	raw := NoMethod(*s)
2012	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2013}
2014
2015// ModifyColumnFamiliesRequest: Request message for
2016// google.bigtable.admin.v2.BigtableTableAdmin.ModifyColumnFamilies
2017type ModifyColumnFamiliesRequest struct {
2018	// Modifications: Required. Modifications to be atomically applied to
2019	// the specified table's families. Entries are applied in order, meaning
2020	// that earlier modifications can be masked by later ones (in the case
2021	// of repeated updates to the same family, for example).
2022	Modifications []*Modification `json:"modifications,omitempty"`
2023
2024	// ForceSendFields is a list of field names (e.g. "Modifications") to
2025	// unconditionally include in API requests. By default, fields with
2026	// empty or default values are omitted from API requests. However, any
2027	// non-pointer, non-interface field appearing in ForceSendFields will be
2028	// sent to the server regardless of whether the field is empty or not.
2029	// This may be used to include empty fields in Patch requests.
2030	ForceSendFields []string `json:"-"`
2031
2032	// NullFields is a list of field names (e.g. "Modifications") to include
2033	// in API requests with the JSON null value. By default, fields with
2034	// empty values are omitted from API requests. However, any field with
2035	// an empty value appearing in NullFields will be sent to the server as
2036	// null. It is an error if a field in this list has a non-empty value.
2037	// This may be used to include null fields in Patch requests.
2038	NullFields []string `json:"-"`
2039}
2040
2041func (s *ModifyColumnFamiliesRequest) MarshalJSON() ([]byte, error) {
2042	type NoMethod ModifyColumnFamiliesRequest
2043	raw := NoMethod(*s)
2044	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2045}
2046
2047// MultiClusterRoutingUseAny: Read/write requests are routed to the
2048// nearest cluster in the instance, and will fail over to the nearest
2049// cluster that is available in the event of transient errors or delays.
2050// Clusters in a region are considered equidistant. Choosing this option
2051// sacrifices read-your-writes consistency to improve availability.
2052type MultiClusterRoutingUseAny struct {
2053}
2054
2055// Operation: This resource represents a long-running operation that is
2056// the result of a network API call.
2057type Operation struct {
2058	// Done: If the value is `false`, it means the operation is still in
2059	// progress. If `true`, the operation is completed, and either `error`
2060	// or `response` is available.
2061	Done bool `json:"done,omitempty"`
2062
2063	// Error: The error result of the operation in case of failure or
2064	// cancellation.
2065	Error *Status `json:"error,omitempty"`
2066
2067	// Metadata: Service-specific metadata associated with the operation. It
2068	// typically contains progress information and common metadata such as
2069	// create time. Some services might not provide such metadata. Any
2070	// method that returns a long-running operation should document the
2071	// metadata type, if any.
2072	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
2073
2074	// Name: The server-assigned name, which is only unique within the same
2075	// service that originally returns it. If you use the default HTTP
2076	// mapping, the `name` should be a resource name ending with
2077	// `operations/{unique_id}`.
2078	Name string `json:"name,omitempty"`
2079
2080	// Response: The normal response of the operation in case of success. If
2081	// the original method returns no data on success, such as `Delete`, the
2082	// response is `google.protobuf.Empty`. If the original method is
2083	// standard `Get`/`Create`/`Update`, the response should be the
2084	// resource. For other methods, the response should have the type
2085	// `XxxResponse`, where `Xxx` is the original method name. For example,
2086	// if the original method name is `TakeSnapshot()`, the inferred
2087	// response type is `TakeSnapshotResponse`.
2088	Response googleapi.RawMessage `json:"response,omitempty"`
2089
2090	// ServerResponse contains the HTTP response code and headers from the
2091	// server.
2092	googleapi.ServerResponse `json:"-"`
2093
2094	// ForceSendFields is a list of field names (e.g. "Done") to
2095	// unconditionally include in API requests. By default, fields with
2096	// empty or default values are omitted from API requests. However, any
2097	// non-pointer, non-interface field appearing in ForceSendFields will be
2098	// sent to the server regardless of whether the field is empty or not.
2099	// This may be used to include empty fields in Patch requests.
2100	ForceSendFields []string `json:"-"`
2101
2102	// NullFields is a list of field names (e.g. "Done") to include in API
2103	// requests with the JSON null value. By default, fields with empty
2104	// values are omitted from API requests. However, any field with an
2105	// empty value appearing in NullFields will be sent to the server as
2106	// null. It is an error if a field in this list has a non-empty value.
2107	// This may be used to include null fields in Patch requests.
2108	NullFields []string `json:"-"`
2109}
2110
2111func (s *Operation) MarshalJSON() ([]byte, error) {
2112	type NoMethod Operation
2113	raw := NoMethod(*s)
2114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2115}
2116
2117// OperationProgress: Encapsulates progress related information for a
2118// Cloud Bigtable long running operation.
2119type OperationProgress struct {
2120	// EndTime: If set, the time at which this operation failed or was
2121	// completed successfully.
2122	EndTime string `json:"endTime,omitempty"`
2123
2124	// ProgressPercent: Percent completion of the operation. Values are
2125	// between 0 and 100 inclusive.
2126	ProgressPercent int64 `json:"progressPercent,omitempty"`
2127
2128	// StartTime: Time the request was received.
2129	StartTime string `json:"startTime,omitempty"`
2130
2131	// ForceSendFields is a list of field names (e.g. "EndTime") to
2132	// unconditionally include in API requests. By default, fields with
2133	// empty or default values are omitted from API requests. However, any
2134	// non-pointer, non-interface field appearing in ForceSendFields will be
2135	// sent to the server regardless of whether the field is empty or not.
2136	// This may be used to include empty fields in Patch requests.
2137	ForceSendFields []string `json:"-"`
2138
2139	// NullFields is a list of field names (e.g. "EndTime") to include in
2140	// API requests with the JSON null value. By default, fields with empty
2141	// values are omitted from API requests. However, any field with an
2142	// empty value appearing in NullFields will be sent to the server as
2143	// null. It is an error if a field in this list has a non-empty value.
2144	// This may be used to include null fields in Patch requests.
2145	NullFields []string `json:"-"`
2146}
2147
2148func (s *OperationProgress) MarshalJSON() ([]byte, error) {
2149	type NoMethod OperationProgress
2150	raw := NoMethod(*s)
2151	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2152}
2153
2154// OptimizeRestoredTableMetadata: Metadata type for the long-running
2155// operation used to track the progress of optimizations performed on a
2156// newly restored table. This long-running operation is automatically
2157// created by the system after the successful completion of a table
2158// restore, and cannot be cancelled.
2159type OptimizeRestoredTableMetadata struct {
2160	// Name: Name of the restored table being optimized.
2161	Name string `json:"name,omitempty"`
2162
2163	// Progress: The progress of the post-restore optimizations.
2164	Progress *OperationProgress `json:"progress,omitempty"`
2165
2166	// ForceSendFields is a list of field names (e.g. "Name") to
2167	// unconditionally include in API requests. By default, fields with
2168	// empty or default values are omitted from API requests. However, any
2169	// non-pointer, non-interface field appearing in ForceSendFields will be
2170	// sent to the server regardless of whether the field is empty or not.
2171	// This may be used to include empty fields in Patch requests.
2172	ForceSendFields []string `json:"-"`
2173
2174	// NullFields is a list of field names (e.g. "Name") to include in API
2175	// requests with the JSON null value. By default, fields with empty
2176	// values are omitted from API requests. However, any field with an
2177	// empty value appearing in NullFields will be sent to the server as
2178	// null. It is an error if a field in this list has a non-empty value.
2179	// This may be used to include null fields in Patch requests.
2180	NullFields []string `json:"-"`
2181}
2182
2183func (s *OptimizeRestoredTableMetadata) MarshalJSON() ([]byte, error) {
2184	type NoMethod OptimizeRestoredTableMetadata
2185	raw := NoMethod(*s)
2186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2187}
2188
2189// PartialUpdateInstanceRequest: Request message for
2190// BigtableInstanceAdmin.PartialUpdateInstance.
2191type PartialUpdateInstanceRequest struct {
2192	// Instance: Required. The Instance which will (partially) replace the
2193	// current value.
2194	Instance *Instance `json:"instance,omitempty"`
2195
2196	// UpdateMask: Required. The subset of Instance fields which should be
2197	// replaced. Must be explicitly set.
2198	UpdateMask string `json:"updateMask,omitempty"`
2199
2200	// ForceSendFields is a list of field names (e.g. "Instance") to
2201	// unconditionally include in API requests. By default, fields with
2202	// empty or default values are omitted from API requests. However, any
2203	// non-pointer, non-interface field appearing in ForceSendFields will be
2204	// sent to the server regardless of whether the field is empty or not.
2205	// This may be used to include empty fields in Patch requests.
2206	ForceSendFields []string `json:"-"`
2207
2208	// NullFields is a list of field names (e.g. "Instance") to include in
2209	// API requests with the JSON null value. By default, fields with empty
2210	// values are omitted from API requests. However, any field with an
2211	// empty value appearing in NullFields will be sent to the server as
2212	// null. It is an error if a field in this list has a non-empty value.
2213	// This may be used to include null fields in Patch requests.
2214	NullFields []string `json:"-"`
2215}
2216
2217func (s *PartialUpdateInstanceRequest) MarshalJSON() ([]byte, error) {
2218	type NoMethod PartialUpdateInstanceRequest
2219	raw := NoMethod(*s)
2220	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2221}
2222
2223// Policy: An Identity and Access Management (IAM) policy, which
2224// specifies access controls for Google Cloud resources. A `Policy` is a
2225// collection of `bindings`. A `binding` binds one or more `members` to
2226// a single `role`. Members can be user accounts, service accounts,
2227// Google groups, and domains (such as G Suite). A `role` is a named
2228// list of permissions; each `role` can be an IAM predefined role or a
2229// user-created custom role. For some types of Google Cloud resources, a
2230// `binding` can also specify a `condition`, which is a logical
2231// expression that allows access to a resource only if the expression
2232// evaluates to `true`. A condition can add constraints based on
2233// attributes of the request, the resource, or both. To learn which
2234// resources support conditions in their IAM policies, see the IAM
2235// documentation
2236// (https://cloud.google.com/iam/help/conditions/resource-policies).
2237// **JSON example:** { "bindings": [ { "role":
2238// "roles/resourcemanager.organizationAdmin", "members": [
2239// "user:mike@example.com", "group:admins@example.com",
2240// "domain:google.com",
2241// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
2242// "role": "roles/resourcemanager.organizationViewer", "members": [
2243// "user:eve@example.com" ], "condition": { "title": "expirable access",
2244// "description": "Does not grant access after Sep 2020", "expression":
2245// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
2246// "etag": "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: -
2247// members: - user:mike@example.com - group:admins@example.com -
2248// domain:google.com -
2249// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
2250// roles/resourcemanager.organizationAdmin - members: -
2251// user:eve@example.com role: roles/resourcemanager.organizationViewer
2252// condition: title: expirable access description: Does not grant access
2253// after Sep 2020 expression: request.time <
2254// timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3
2255// For a description of IAM and its features, see the IAM documentation
2256// (https://cloud.google.com/iam/docs/).
2257type Policy struct {
2258	// AuditConfigs: Specifies cloud audit logging configuration for this
2259	// policy.
2260	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
2261
2262	// Bindings: Associates a list of `members` to a `role`. Optionally, may
2263	// specify a `condition` that determines how and when the `bindings` are
2264	// applied. Each of the `bindings` must contain at least one member.
2265	Bindings []*Binding `json:"bindings,omitempty"`
2266
2267	// Etag: `etag` is used for optimistic concurrency control as a way to
2268	// help prevent simultaneous updates of a policy from overwriting each
2269	// other. It is strongly suggested that systems make use of the `etag`
2270	// in the read-modify-write cycle to perform policy updates in order to
2271	// avoid race conditions: An `etag` is returned in the response to
2272	// `getIamPolicy`, and systems are expected to put that etag in the
2273	// request to `setIamPolicy` to ensure that their change will be applied
2274	// to the same version of the policy. **Important:** If you use IAM
2275	// Conditions, you must include the `etag` field whenever you call
2276	// `setIamPolicy`. If you omit this field, then IAM allows you to
2277	// overwrite a version `3` policy with a version `1` policy, and all of
2278	// the conditions in the version `3` policy are lost.
2279	Etag string `json:"etag,omitempty"`
2280
2281	// Version: Specifies the format of the policy. Valid values are `0`,
2282	// `1`, and `3`. Requests that specify an invalid value are rejected.
2283	// Any operation that affects conditional role bindings must specify
2284	// version `3`. This requirement applies to the following operations: *
2285	// Getting a policy that includes a conditional role binding * Adding a
2286	// conditional role binding to a policy * Changing a conditional role
2287	// binding in a policy * Removing any role binding, with or without a
2288	// condition, from a policy that includes conditions **Important:** If
2289	// you use IAM Conditions, you must include the `etag` field whenever
2290	// you call `setIamPolicy`. If you omit this field, then IAM allows you
2291	// to overwrite a version `3` policy with a version `1` policy, and all
2292	// of the conditions in the version `3` policy are lost. If a policy
2293	// does not include any conditions, operations on that policy may
2294	// specify any valid version or leave the field unset. To learn which
2295	// resources support conditions in their IAM policies, see the IAM
2296	// documentation
2297	// (https://cloud.google.com/iam/help/conditions/resource-policies).
2298	Version int64 `json:"version,omitempty"`
2299
2300	// ServerResponse contains the HTTP response code and headers from the
2301	// server.
2302	googleapi.ServerResponse `json:"-"`
2303
2304	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
2305	// unconditionally include in API requests. By default, fields with
2306	// empty or default values are omitted from API requests. However, any
2307	// non-pointer, non-interface field appearing in ForceSendFields will be
2308	// sent to the server regardless of whether the field is empty or not.
2309	// This may be used to include empty fields in Patch requests.
2310	ForceSendFields []string `json:"-"`
2311
2312	// NullFields is a list of field names (e.g. "AuditConfigs") to include
2313	// in API requests with the JSON null value. By default, fields with
2314	// empty values are omitted from API requests. However, any field with
2315	// an empty value appearing in NullFields will be sent to the server as
2316	// null. It is an error if a field in this list has a non-empty value.
2317	// This may be used to include null fields in Patch requests.
2318	NullFields []string `json:"-"`
2319}
2320
2321func (s *Policy) MarshalJSON() ([]byte, error) {
2322	type NoMethod Policy
2323	raw := NoMethod(*s)
2324	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2325}
2326
2327// RestoreInfo: Information about a table restore.
2328type RestoreInfo struct {
2329	// BackupInfo: Information about the backup used to restore the table.
2330	// The backup may no longer exist.
2331	BackupInfo *BackupInfo `json:"backupInfo,omitempty"`
2332
2333	// SourceType: The type of the restore source.
2334	//
2335	// Possible values:
2336	//   "RESTORE_SOURCE_TYPE_UNSPECIFIED" - No restore associated.
2337	//   "BACKUP" - A backup was used as the source of the restore.
2338	SourceType string `json:"sourceType,omitempty"`
2339
2340	// ForceSendFields is a list of field names (e.g. "BackupInfo") to
2341	// unconditionally include in API requests. By default, fields with
2342	// empty or default values are omitted from API requests. However, any
2343	// non-pointer, non-interface field appearing in ForceSendFields will be
2344	// sent to the server regardless of whether the field is empty or not.
2345	// This may be used to include empty fields in Patch requests.
2346	ForceSendFields []string `json:"-"`
2347
2348	// NullFields is a list of field names (e.g. "BackupInfo") to include in
2349	// API requests with the JSON null value. By default, fields with empty
2350	// values are omitted from API requests. However, any field with an
2351	// empty value appearing in NullFields will be sent to the server as
2352	// null. It is an error if a field in this list has a non-empty value.
2353	// This may be used to include null fields in Patch requests.
2354	NullFields []string `json:"-"`
2355}
2356
2357func (s *RestoreInfo) MarshalJSON() ([]byte, error) {
2358	type NoMethod RestoreInfo
2359	raw := NoMethod(*s)
2360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2361}
2362
2363// RestoreTableMetadata: Metadata type for the long-running operation
2364// returned by RestoreTable.
2365type RestoreTableMetadata struct {
2366	BackupInfo *BackupInfo `json:"backupInfo,omitempty"`
2367
2368	// Name: Name of the table being created and restored to.
2369	Name string `json:"name,omitempty"`
2370
2371	// OptimizeTableOperationName: If exists, the name of the long-running
2372	// operation that will be used to track the post-restore optimization
2373	// process to optimize the performance of the restored table. The
2374	// metadata type of the long-running operation is
2375	// OptimizeRestoreTableMetadata. The response type is Empty. This
2376	// long-running operation may be automatically created by the system if
2377	// applicable after the RestoreTable long-running operation completes
2378	// successfully. This operation may not be created if the table is
2379	// already optimized or the restore was not successful.
2380	OptimizeTableOperationName string `json:"optimizeTableOperationName,omitempty"`
2381
2382	// Progress: The progress of the RestoreTable operation.
2383	Progress *OperationProgress `json:"progress,omitempty"`
2384
2385	// SourceType: The type of the restore source.
2386	//
2387	// Possible values:
2388	//   "RESTORE_SOURCE_TYPE_UNSPECIFIED" - No restore associated.
2389	//   "BACKUP" - A backup was used as the source of the restore.
2390	SourceType string `json:"sourceType,omitempty"`
2391
2392	// ForceSendFields is a list of field names (e.g. "BackupInfo") to
2393	// unconditionally include in API requests. By default, fields with
2394	// empty or default values are omitted from API requests. However, any
2395	// non-pointer, non-interface field appearing in ForceSendFields will be
2396	// sent to the server regardless of whether the field is empty or not.
2397	// This may be used to include empty fields in Patch requests.
2398	ForceSendFields []string `json:"-"`
2399
2400	// NullFields is a list of field names (e.g. "BackupInfo") to include in
2401	// API requests with the JSON null value. By default, fields with empty
2402	// values are omitted from API requests. However, any field with an
2403	// empty value appearing in NullFields will be sent to the server as
2404	// null. It is an error if a field in this list has a non-empty value.
2405	// This may be used to include null fields in Patch requests.
2406	NullFields []string `json:"-"`
2407}
2408
2409func (s *RestoreTableMetadata) MarshalJSON() ([]byte, error) {
2410	type NoMethod RestoreTableMetadata
2411	raw := NoMethod(*s)
2412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2413}
2414
2415// RestoreTableRequest: The request for RestoreTable.
2416type RestoreTableRequest struct {
2417	// Backup: Name of the backup from which to restore. Values are of the
2418	// form `projects//instances//clusters//backups/`.
2419	Backup string `json:"backup,omitempty"`
2420
2421	// TableId: Required. The id of the table to create and restore to. This
2422	// table must not already exist. The `table_id` appended to `parent`
2423	// forms the full table name of the form `projects//instances//tables/`.
2424	TableId string `json:"tableId,omitempty"`
2425
2426	// ForceSendFields is a list of field names (e.g. "Backup") to
2427	// unconditionally include in API requests. By default, fields with
2428	// empty or default values are omitted from API requests. However, any
2429	// non-pointer, non-interface field appearing in ForceSendFields will be
2430	// sent to the server regardless of whether the field is empty or not.
2431	// This may be used to include empty fields in Patch requests.
2432	ForceSendFields []string `json:"-"`
2433
2434	// NullFields is a list of field names (e.g. "Backup") to include in API
2435	// requests with the JSON null value. By default, fields with empty
2436	// values are omitted from API requests. However, any field with an
2437	// empty value appearing in NullFields will be sent to the server as
2438	// null. It is an error if a field in this list has a non-empty value.
2439	// This may be used to include null fields in Patch requests.
2440	NullFields []string `json:"-"`
2441}
2442
2443func (s *RestoreTableRequest) MarshalJSON() ([]byte, error) {
2444	type NoMethod RestoreTableRequest
2445	raw := NoMethod(*s)
2446	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2447}
2448
2449// SetIamPolicyRequest: Request message for `SetIamPolicy` method.
2450type SetIamPolicyRequest struct {
2451	// Policy: REQUIRED: The complete policy to be applied to the
2452	// `resource`. The size of the policy is limited to a few 10s of KB. An
2453	// empty policy is a valid policy but certain Cloud Platform services
2454	// (such as Projects) might reject them.
2455	Policy *Policy `json:"policy,omitempty"`
2456
2457	// UpdateMask: OPTIONAL: A FieldMask specifying which fields of the
2458	// policy to modify. Only the fields in the mask will be modified. If no
2459	// mask is provided, the following default mask is used: `paths:
2460	// "bindings, etag"
2461	UpdateMask string `json:"updateMask,omitempty"`
2462
2463	// ForceSendFields is a list of field names (e.g. "Policy") to
2464	// unconditionally include in API requests. By default, fields with
2465	// empty or default values are omitted from API requests. However, any
2466	// non-pointer, non-interface field appearing in ForceSendFields will be
2467	// sent to the server regardless of whether the field is empty or not.
2468	// This may be used to include empty fields in Patch requests.
2469	ForceSendFields []string `json:"-"`
2470
2471	// NullFields is a list of field names (e.g. "Policy") to include in API
2472	// requests with the JSON null value. By default, fields with empty
2473	// values are omitted from API requests. However, any field with an
2474	// empty value appearing in NullFields will be sent to the server as
2475	// null. It is an error if a field in this list has a non-empty value.
2476	// This may be used to include null fields in Patch requests.
2477	NullFields []string `json:"-"`
2478}
2479
2480func (s *SetIamPolicyRequest) MarshalJSON() ([]byte, error) {
2481	type NoMethod SetIamPolicyRequest
2482	raw := NoMethod(*s)
2483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2484}
2485
2486// SingleClusterRouting: Unconditionally routes all read/write requests
2487// to a specific cluster. This option preserves read-your-writes
2488// consistency but does not improve availability.
2489type SingleClusterRouting struct {
2490	// AllowTransactionalWrites: Whether or not `CheckAndMutateRow` and
2491	// `ReadModifyWriteRow` requests are allowed by this app profile. It is
2492	// unsafe to send these requests to the same table/row/column in
2493	// multiple clusters.
2494	AllowTransactionalWrites bool `json:"allowTransactionalWrites,omitempty"`
2495
2496	// ClusterId: The cluster to which read/write requests should be routed.
2497	ClusterId string `json:"clusterId,omitempty"`
2498
2499	// ForceSendFields is a list of field names (e.g.
2500	// "AllowTransactionalWrites") to unconditionally include in API
2501	// requests. By default, fields with empty or default values are omitted
2502	// from API requests. However, any non-pointer, non-interface field
2503	// appearing in ForceSendFields will be sent to the server regardless of
2504	// whether the field is empty or not. This may be used to include empty
2505	// fields in Patch requests.
2506	ForceSendFields []string `json:"-"`
2507
2508	// NullFields is a list of field names (e.g. "AllowTransactionalWrites")
2509	// to include in API requests with the JSON null value. By default,
2510	// fields with empty values are omitted from API requests. However, any
2511	// field with an empty value appearing in NullFields will be sent to the
2512	// server as null. It is an error if a field in this list has a
2513	// non-empty value. This may be used to include null fields in Patch
2514	// requests.
2515	NullFields []string `json:"-"`
2516}
2517
2518func (s *SingleClusterRouting) MarshalJSON() ([]byte, error) {
2519	type NoMethod SingleClusterRouting
2520	raw := NoMethod(*s)
2521	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2522}
2523
2524// Split: An initial split point for a newly created table.
2525type Split struct {
2526	// Key: Row key to use as an initial tablet boundary.
2527	Key string `json:"key,omitempty"`
2528
2529	// ForceSendFields is a list of field names (e.g. "Key") to
2530	// unconditionally include in API requests. By default, fields with
2531	// empty or default values are omitted from API requests. However, any
2532	// non-pointer, non-interface field appearing in ForceSendFields will be
2533	// sent to the server regardless of whether the field is empty or not.
2534	// This may be used to include empty fields in Patch requests.
2535	ForceSendFields []string `json:"-"`
2536
2537	// NullFields is a list of field names (e.g. "Key") to include in API
2538	// requests with the JSON null value. By default, fields with empty
2539	// values are omitted from API requests. However, any field with an
2540	// empty value appearing in NullFields will be sent to the server as
2541	// null. It is an error if a field in this list has a non-empty value.
2542	// This may be used to include null fields in Patch requests.
2543	NullFields []string `json:"-"`
2544}
2545
2546func (s *Split) MarshalJSON() ([]byte, error) {
2547	type NoMethod Split
2548	raw := NoMethod(*s)
2549	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2550}
2551
2552// Status: The `Status` type defines a logical error model that is
2553// suitable for different programming environments, including REST APIs
2554// and RPC APIs. It is used by gRPC (https://github.com/grpc). Each
2555// `Status` message contains three pieces of data: error code, error
2556// message, and error details. You can find out more about this error
2557// model and how to work with it in the API Design Guide
2558// (https://cloud.google.com/apis/design/errors).
2559type Status struct {
2560	// Code: The status code, which should be an enum value of
2561	// google.rpc.Code.
2562	Code int64 `json:"code,omitempty"`
2563
2564	// Details: A list of messages that carry the error details. There is a
2565	// common set of message types for APIs to use.
2566	Details []googleapi.RawMessage `json:"details,omitempty"`
2567
2568	// Message: A developer-facing error message, which should be in
2569	// English. Any user-facing error message should be localized and sent
2570	// in the google.rpc.Status.details field, or localized by the client.
2571	Message string `json:"message,omitempty"`
2572
2573	// ForceSendFields is a list of field names (e.g. "Code") to
2574	// unconditionally include in API requests. By default, fields with
2575	// empty or default values are omitted from API requests. However, any
2576	// non-pointer, non-interface field appearing in ForceSendFields will be
2577	// sent to the server regardless of whether the field is empty or not.
2578	// This may be used to include empty fields in Patch requests.
2579	ForceSendFields []string `json:"-"`
2580
2581	// NullFields is a list of field names (e.g. "Code") to include in API
2582	// requests with the JSON null value. By default, fields with empty
2583	// values are omitted from API requests. However, any field with an
2584	// empty value appearing in NullFields will be sent to the server as
2585	// null. It is an error if a field in this list has a non-empty value.
2586	// This may be used to include null fields in Patch requests.
2587	NullFields []string `json:"-"`
2588}
2589
2590func (s *Status) MarshalJSON() ([]byte, error) {
2591	type NoMethod Status
2592	raw := NoMethod(*s)
2593	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2594}
2595
2596// Table: A collection of user data indexed by row, column, and
2597// timestamp. Each table is served using the resources of its parent
2598// cluster.
2599type Table struct {
2600	// ClusterStates: Output only. Map from cluster ID to per-cluster table
2601	// state. If it could not be determined whether or not the table has
2602	// data in a particular cluster (for example, if its zone is
2603	// unavailable), then there will be an entry for the cluster with
2604	// UNKNOWN `replication_status`. Views: `REPLICATION_VIEW`,
2605	// `ENCRYPTION_VIEW`, `FULL`
2606	ClusterStates map[string]ClusterState `json:"clusterStates,omitempty"`
2607
2608	// ColumnFamilies: The column families configured for this table, mapped
2609	// by column family ID. Views: `SCHEMA_VIEW`, `FULL`
2610	ColumnFamilies map[string]ColumnFamily `json:"columnFamilies,omitempty"`
2611
2612	// Granularity: Immutable. The granularity (i.e. `MILLIS`) at which
2613	// timestamps are stored in this table. Timestamps not matching the
2614	// granularity will be rejected. If unspecified at creation time, the
2615	// value will be set to `MILLIS`. Views: `SCHEMA_VIEW`, `FULL`.
2616	//
2617	// Possible values:
2618	//   "TIMESTAMP_GRANULARITY_UNSPECIFIED" - The user did not specify a
2619	// granularity. Should not be returned. When specified during table
2620	// creation, MILLIS will be used.
2621	//   "MILLIS" - The table keeps data versioned at a granularity of 1ms.
2622	Granularity string `json:"granularity,omitempty"`
2623
2624	// Name: The unique name of the table. Values are of the form
2625	// `projects/{project}/instances/{instance}/tables/_a-zA-Z0-9*`. Views:
2626	// `NAME_ONLY`, `SCHEMA_VIEW`, `REPLICATION_VIEW`, `FULL`
2627	Name string `json:"name,omitempty"`
2628
2629	// RestoreInfo: Output only. If this table was restored from another
2630	// data source (e.g. a backup), this field will be populated with
2631	// information about the restore.
2632	RestoreInfo *RestoreInfo `json:"restoreInfo,omitempty"`
2633
2634	// ServerResponse contains the HTTP response code and headers from the
2635	// server.
2636	googleapi.ServerResponse `json:"-"`
2637
2638	// ForceSendFields is a list of field names (e.g. "ClusterStates") to
2639	// unconditionally include in API requests. By default, fields with
2640	// empty or default values are omitted from API requests. However, any
2641	// non-pointer, non-interface field appearing in ForceSendFields will be
2642	// sent to the server regardless of whether the field is empty or not.
2643	// This may be used to include empty fields in Patch requests.
2644	ForceSendFields []string `json:"-"`
2645
2646	// NullFields is a list of field names (e.g. "ClusterStates") to include
2647	// in API requests with the JSON null value. By default, fields with
2648	// empty values are omitted from API requests. However, any field with
2649	// an empty value appearing in NullFields will be sent to the server as
2650	// null. It is an error if a field in this list has a non-empty value.
2651	// This may be used to include null fields in Patch requests.
2652	NullFields []string `json:"-"`
2653}
2654
2655func (s *Table) MarshalJSON() ([]byte, error) {
2656	type NoMethod Table
2657	raw := NoMethod(*s)
2658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2659}
2660
2661// TableProgress: Progress info for copying a table's data to the new
2662// cluster.
2663type TableProgress struct {
2664	// EstimatedCopiedBytes: Estimate of the number of bytes copied so far
2665	// for this table. This will eventually reach 'estimated_size_bytes'
2666	// unless the table copy is CANCELLED.
2667	EstimatedCopiedBytes int64 `json:"estimatedCopiedBytes,omitempty,string"`
2668
2669	// EstimatedSizeBytes: Estimate of the size of the table to be copied.
2670	EstimatedSizeBytes int64 `json:"estimatedSizeBytes,omitempty,string"`
2671
2672	// Possible values:
2673	//   "STATE_UNSPECIFIED"
2674	//   "PENDING" - The table has not yet begun copying to the new cluster.
2675	//   "COPYING" - The table is actively being copied to the new cluster.
2676	//   "COMPLETED" - The table has been fully copied to the new cluster.
2677	//   "CANCELLED" - The table was deleted before it finished copying to
2678	// the new cluster. Note that tables deleted after completion will stay
2679	// marked as COMPLETED, not CANCELLED.
2680	State string `json:"state,omitempty"`
2681
2682	// ForceSendFields is a list of field names (e.g.
2683	// "EstimatedCopiedBytes") to unconditionally include in API requests.
2684	// By default, fields with empty or default values are omitted from API
2685	// requests. However, any non-pointer, non-interface field appearing in
2686	// ForceSendFields will be sent to the server regardless of whether the
2687	// field is empty or not. This may be used to include empty fields in
2688	// Patch requests.
2689	ForceSendFields []string `json:"-"`
2690
2691	// NullFields is a list of field names (e.g. "EstimatedCopiedBytes") to
2692	// include in API requests with the JSON null value. By default, fields
2693	// with empty values are omitted from API requests. However, any field
2694	// with an empty value appearing in NullFields will be sent to the
2695	// server as null. It is an error if a field in this list has a
2696	// non-empty value. This may be used to include null fields in Patch
2697	// requests.
2698	NullFields []string `json:"-"`
2699}
2700
2701func (s *TableProgress) MarshalJSON() ([]byte, error) {
2702	type NoMethod TableProgress
2703	raw := NoMethod(*s)
2704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2705}
2706
2707// TestIamPermissionsRequest: Request message for `TestIamPermissions`
2708// method.
2709type TestIamPermissionsRequest struct {
2710	// Permissions: The set of permissions to check for the `resource`.
2711	// Permissions with wildcards (such as '*' or 'storage.*') are not
2712	// allowed. For more information see IAM Overview
2713	// (https://cloud.google.com/iam/docs/overview#permissions).
2714	Permissions []string `json:"permissions,omitempty"`
2715
2716	// ForceSendFields is a list of field names (e.g. "Permissions") to
2717	// unconditionally include in API requests. By default, fields with
2718	// empty or default values are omitted from API requests. However, any
2719	// non-pointer, non-interface field appearing in ForceSendFields will be
2720	// sent to the server regardless of whether the field is empty or not.
2721	// This may be used to include empty fields in Patch requests.
2722	ForceSendFields []string `json:"-"`
2723
2724	// NullFields is a list of field names (e.g. "Permissions") to include
2725	// in API requests with the JSON null value. By default, fields with
2726	// empty values are omitted from API requests. However, any field with
2727	// an empty value appearing in NullFields will be sent to the server as
2728	// null. It is an error if a field in this list has a non-empty value.
2729	// This may be used to include null fields in Patch requests.
2730	NullFields []string `json:"-"`
2731}
2732
2733func (s *TestIamPermissionsRequest) MarshalJSON() ([]byte, error) {
2734	type NoMethod TestIamPermissionsRequest
2735	raw := NoMethod(*s)
2736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2737}
2738
2739// TestIamPermissionsResponse: Response message for `TestIamPermissions`
2740// method.
2741type TestIamPermissionsResponse struct {
2742	// Permissions: A subset of `TestPermissionsRequest.permissions` that
2743	// the caller is allowed.
2744	Permissions []string `json:"permissions,omitempty"`
2745
2746	// ServerResponse contains the HTTP response code and headers from the
2747	// server.
2748	googleapi.ServerResponse `json:"-"`
2749
2750	// ForceSendFields is a list of field names (e.g. "Permissions") to
2751	// unconditionally include in API requests. By default, fields with
2752	// empty or default values are omitted from API requests. However, any
2753	// non-pointer, non-interface field appearing in ForceSendFields will be
2754	// sent to the server regardless of whether the field is empty or not.
2755	// This may be used to include empty fields in Patch requests.
2756	ForceSendFields []string `json:"-"`
2757
2758	// NullFields is a list of field names (e.g. "Permissions") to include
2759	// in API requests with the JSON null value. By default, fields with
2760	// empty values are omitted from API requests. However, any field with
2761	// an empty value appearing in NullFields will be sent to the server as
2762	// null. It is an error if a field in this list has a non-empty value.
2763	// This may be used to include null fields in Patch requests.
2764	NullFields []string `json:"-"`
2765}
2766
2767func (s *TestIamPermissionsResponse) MarshalJSON() ([]byte, error) {
2768	type NoMethod TestIamPermissionsResponse
2769	raw := NoMethod(*s)
2770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2771}
2772
2773// Union: A GcRule which deletes cells matching any of the given rules.
2774type Union struct {
2775	// Rules: Delete cells which would be deleted by any element of `rules`.
2776	Rules []*GcRule `json:"rules,omitempty"`
2777
2778	// ForceSendFields is a list of field names (e.g. "Rules") to
2779	// unconditionally include in API requests. By default, fields with
2780	// empty or default values are omitted from API requests. However, any
2781	// non-pointer, non-interface field appearing in ForceSendFields will be
2782	// sent to the server regardless of whether the field is empty or not.
2783	// This may be used to include empty fields in Patch requests.
2784	ForceSendFields []string `json:"-"`
2785
2786	// NullFields is a list of field names (e.g. "Rules") to include in API
2787	// requests with the JSON null value. By default, fields with empty
2788	// values are omitted from API requests. However, any field with an
2789	// empty value appearing in NullFields will be sent to the server as
2790	// null. It is an error if a field in this list has a non-empty value.
2791	// This may be used to include null fields in Patch requests.
2792	NullFields []string `json:"-"`
2793}
2794
2795func (s *Union) MarshalJSON() ([]byte, error) {
2796	type NoMethod Union
2797	raw := NoMethod(*s)
2798	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2799}
2800
2801// UpdateAppProfileMetadata: The metadata for the Operation returned by
2802// UpdateAppProfile.
2803type UpdateAppProfileMetadata struct {
2804}
2805
2806// UpdateClusterMetadata: The metadata for the Operation returned by
2807// UpdateCluster.
2808type UpdateClusterMetadata struct {
2809	// FinishTime: The time at which the operation failed or was completed
2810	// successfully.
2811	FinishTime string `json:"finishTime,omitempty"`
2812
2813	// OriginalRequest: The request that prompted the initiation of this
2814	// UpdateCluster operation.
2815	OriginalRequest *Cluster `json:"originalRequest,omitempty"`
2816
2817	// RequestTime: The time at which the original request was received.
2818	RequestTime string `json:"requestTime,omitempty"`
2819
2820	// ForceSendFields is a list of field names (e.g. "FinishTime") to
2821	// unconditionally include in API requests. By default, fields with
2822	// empty or default values are omitted from API requests. However, any
2823	// non-pointer, non-interface field appearing in ForceSendFields will be
2824	// sent to the server regardless of whether the field is empty or not.
2825	// This may be used to include empty fields in Patch requests.
2826	ForceSendFields []string `json:"-"`
2827
2828	// NullFields is a list of field names (e.g. "FinishTime") to include in
2829	// API requests with the JSON null value. By default, fields with empty
2830	// values are omitted from API requests. However, any field with an
2831	// empty value appearing in NullFields will be sent to the server as
2832	// null. It is an error if a field in this list has a non-empty value.
2833	// This may be used to include null fields in Patch requests.
2834	NullFields []string `json:"-"`
2835}
2836
2837func (s *UpdateClusterMetadata) MarshalJSON() ([]byte, error) {
2838	type NoMethod UpdateClusterMetadata
2839	raw := NoMethod(*s)
2840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2841}
2842
2843// UpdateInstanceMetadata: The metadata for the Operation returned by
2844// UpdateInstance.
2845type UpdateInstanceMetadata struct {
2846	// FinishTime: The time at which the operation failed or was completed
2847	// successfully.
2848	FinishTime string `json:"finishTime,omitempty"`
2849
2850	// OriginalRequest: The request that prompted the initiation of this
2851	// UpdateInstance operation.
2852	OriginalRequest *PartialUpdateInstanceRequest `json:"originalRequest,omitempty"`
2853
2854	// RequestTime: The time at which the original request was received.
2855	RequestTime string `json:"requestTime,omitempty"`
2856
2857	// ForceSendFields is a list of field names (e.g. "FinishTime") to
2858	// unconditionally include in API requests. By default, fields with
2859	// empty or default values are omitted from API requests. However, any
2860	// non-pointer, non-interface field appearing in ForceSendFields will be
2861	// sent to the server regardless of whether the field is empty or not.
2862	// This may be used to include empty fields in Patch requests.
2863	ForceSendFields []string `json:"-"`
2864
2865	// NullFields is a list of field names (e.g. "FinishTime") to include in
2866	// API requests with the JSON null value. By default, fields with empty
2867	// values are omitted from API requests. However, any field with an
2868	// empty value appearing in NullFields will be sent to the server as
2869	// null. It is an error if a field in this list has a non-empty value.
2870	// This may be used to include null fields in Patch requests.
2871	NullFields []string `json:"-"`
2872}
2873
2874func (s *UpdateInstanceMetadata) MarshalJSON() ([]byte, error) {
2875	type NoMethod UpdateInstanceMetadata
2876	raw := NoMethod(*s)
2877	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2878}
2879
2880// method id "bigtableadmin.operations.cancel":
2881
2882type OperationsCancelCall struct {
2883	s          *Service
2884	name       string
2885	urlParams_ gensupport.URLParams
2886	ctx_       context.Context
2887	header_    http.Header
2888}
2889
2890// Cancel: Starts asynchronous cancellation on a long-running operation.
2891// The server makes a best effort to cancel the operation, but success
2892// is not guaranteed. If the server doesn't support this method, it
2893// returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use
2894// Operations.GetOperation or other methods to check whether the
2895// cancellation succeeded or whether the operation completed despite
2896// cancellation. On successful cancellation, the operation is not
2897// deleted; instead, it becomes an operation with an Operation.error
2898// value with a google.rpc.Status.code of 1, corresponding to
2899// `Code.CANCELLED`.
2900//
2901// - name: The name of the operation resource to be cancelled.
2902func (r *OperationsService) Cancel(name string) *OperationsCancelCall {
2903	c := &OperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2904	c.name = name
2905	return c
2906}
2907
2908// Fields allows partial responses to be retrieved. See
2909// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2910// for more information.
2911func (c *OperationsCancelCall) Fields(s ...googleapi.Field) *OperationsCancelCall {
2912	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2913	return c
2914}
2915
2916// Context sets the context to be used in this call's Do method. Any
2917// pending HTTP request will be aborted if the provided context is
2918// canceled.
2919func (c *OperationsCancelCall) Context(ctx context.Context) *OperationsCancelCall {
2920	c.ctx_ = ctx
2921	return c
2922}
2923
2924// Header returns an http.Header that can be modified by the caller to
2925// add HTTP headers to the request.
2926func (c *OperationsCancelCall) Header() http.Header {
2927	if c.header_ == nil {
2928		c.header_ = make(http.Header)
2929	}
2930	return c.header_
2931}
2932
2933func (c *OperationsCancelCall) doRequest(alt string) (*http.Response, error) {
2934	reqHeaders := make(http.Header)
2935	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
2936	for k, v := range c.header_ {
2937		reqHeaders[k] = v
2938	}
2939	reqHeaders.Set("User-Agent", c.s.userAgent())
2940	var body io.Reader = nil
2941	c.urlParams_.Set("alt", alt)
2942	c.urlParams_.Set("prettyPrint", "false")
2943	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}:cancel")
2944	urls += "?" + c.urlParams_.Encode()
2945	req, err := http.NewRequest("POST", urls, body)
2946	if err != nil {
2947		return nil, err
2948	}
2949	req.Header = reqHeaders
2950	googleapi.Expand(req.URL, map[string]string{
2951		"name": c.name,
2952	})
2953	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2954}
2955
2956// Do executes the "bigtableadmin.operations.cancel" call.
2957// Exactly one of *Empty or error will be non-nil. Any non-2xx status
2958// code is an error. Response headers are in either
2959// *Empty.ServerResponse.Header or (if a response was returned at all)
2960// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
2961// check whether the returned error was because http.StatusNotModified
2962// was returned.
2963func (c *OperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
2964	gensupport.SetOptions(c.urlParams_, opts...)
2965	res, err := c.doRequest("json")
2966	if res != nil && res.StatusCode == http.StatusNotModified {
2967		if res.Body != nil {
2968			res.Body.Close()
2969		}
2970		return nil, &googleapi.Error{
2971			Code:   res.StatusCode,
2972			Header: res.Header,
2973		}
2974	}
2975	if err != nil {
2976		return nil, err
2977	}
2978	defer googleapi.CloseBody(res)
2979	if err := googleapi.CheckResponse(res); err != nil {
2980		return nil, err
2981	}
2982	ret := &Empty{
2983		ServerResponse: googleapi.ServerResponse{
2984			Header:         res.Header,
2985			HTTPStatusCode: res.StatusCode,
2986		},
2987	}
2988	target := &ret
2989	if err := gensupport.DecodeResponse(target, res); err != nil {
2990		return nil, err
2991	}
2992	return ret, nil
2993	// {
2994	//   "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`.",
2995	//   "flatPath": "v2/operations/{operationsId}:cancel",
2996	//   "httpMethod": "POST",
2997	//   "id": "bigtableadmin.operations.cancel",
2998	//   "parameterOrder": [
2999	//     "name"
3000	//   ],
3001	//   "parameters": {
3002	//     "name": {
3003	//       "description": "The name of the operation resource to be cancelled.",
3004	//       "location": "path",
3005	//       "pattern": "^operations/.*$",
3006	//       "required": true,
3007	//       "type": "string"
3008	//     }
3009	//   },
3010	//   "path": "v2/{+name}:cancel",
3011	//   "response": {
3012	//     "$ref": "Empty"
3013	//   },
3014	//   "scopes": [
3015	//     "https://www.googleapis.com/auth/bigtable.admin",
3016	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
3017	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
3018	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
3019	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
3020	//     "https://www.googleapis.com/auth/cloud-platform"
3021	//   ]
3022	// }
3023
3024}
3025
3026// method id "bigtableadmin.operations.delete":
3027
3028type OperationsDeleteCall struct {
3029	s          *Service
3030	name       string
3031	urlParams_ gensupport.URLParams
3032	ctx_       context.Context
3033	header_    http.Header
3034}
3035
3036// Delete: Deletes a long-running operation. This method indicates that
3037// the client is no longer interested in the operation result. It does
3038// not cancel the operation. If the server doesn't support this method,
3039// it returns `google.rpc.Code.UNIMPLEMENTED`.
3040//
3041// - name: The name of the operation resource to be deleted.
3042func (r *OperationsService) Delete(name string) *OperationsDeleteCall {
3043	c := &OperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3044	c.name = name
3045	return c
3046}
3047
3048// Fields allows partial responses to be retrieved. See
3049// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3050// for more information.
3051func (c *OperationsDeleteCall) Fields(s ...googleapi.Field) *OperationsDeleteCall {
3052	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3053	return c
3054}
3055
3056// Context sets the context to be used in this call's Do method. Any
3057// pending HTTP request will be aborted if the provided context is
3058// canceled.
3059func (c *OperationsDeleteCall) Context(ctx context.Context) *OperationsDeleteCall {
3060	c.ctx_ = ctx
3061	return c
3062}
3063
3064// Header returns an http.Header that can be modified by the caller to
3065// add HTTP headers to the request.
3066func (c *OperationsDeleteCall) Header() http.Header {
3067	if c.header_ == nil {
3068		c.header_ = make(http.Header)
3069	}
3070	return c.header_
3071}
3072
3073func (c *OperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
3074	reqHeaders := make(http.Header)
3075	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
3076	for k, v := range c.header_ {
3077		reqHeaders[k] = v
3078	}
3079	reqHeaders.Set("User-Agent", c.s.userAgent())
3080	var body io.Reader = nil
3081	c.urlParams_.Set("alt", alt)
3082	c.urlParams_.Set("prettyPrint", "false")
3083	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
3084	urls += "?" + c.urlParams_.Encode()
3085	req, err := http.NewRequest("DELETE", urls, body)
3086	if err != nil {
3087		return nil, err
3088	}
3089	req.Header = reqHeaders
3090	googleapi.Expand(req.URL, map[string]string{
3091		"name": c.name,
3092	})
3093	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3094}
3095
3096// Do executes the "bigtableadmin.operations.delete" call.
3097// Exactly one of *Empty or error will be non-nil. Any non-2xx status
3098// code is an error. Response headers are in either
3099// *Empty.ServerResponse.Header or (if a response was returned at all)
3100// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
3101// check whether the returned error was because http.StatusNotModified
3102// was returned.
3103func (c *OperationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
3104	gensupport.SetOptions(c.urlParams_, opts...)
3105	res, err := c.doRequest("json")
3106	if res != nil && res.StatusCode == http.StatusNotModified {
3107		if res.Body != nil {
3108			res.Body.Close()
3109		}
3110		return nil, &googleapi.Error{
3111			Code:   res.StatusCode,
3112			Header: res.Header,
3113		}
3114	}
3115	if err != nil {
3116		return nil, err
3117	}
3118	defer googleapi.CloseBody(res)
3119	if err := googleapi.CheckResponse(res); err != nil {
3120		return nil, err
3121	}
3122	ret := &Empty{
3123		ServerResponse: googleapi.ServerResponse{
3124			Header:         res.Header,
3125			HTTPStatusCode: res.StatusCode,
3126		},
3127	}
3128	target := &ret
3129	if err := gensupport.DecodeResponse(target, res); err != nil {
3130		return nil, err
3131	}
3132	return ret, nil
3133	// {
3134	//   "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`.",
3135	//   "flatPath": "v2/operations/{operationsId}",
3136	//   "httpMethod": "DELETE",
3137	//   "id": "bigtableadmin.operations.delete",
3138	//   "parameterOrder": [
3139	//     "name"
3140	//   ],
3141	//   "parameters": {
3142	//     "name": {
3143	//       "description": "The name of the operation resource to be deleted.",
3144	//       "location": "path",
3145	//       "pattern": "^operations/.*$",
3146	//       "required": true,
3147	//       "type": "string"
3148	//     }
3149	//   },
3150	//   "path": "v2/{+name}",
3151	//   "response": {
3152	//     "$ref": "Empty"
3153	//   },
3154	//   "scopes": [
3155	//     "https://www.googleapis.com/auth/bigtable.admin",
3156	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
3157	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
3158	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
3159	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
3160	//     "https://www.googleapis.com/auth/cloud-platform"
3161	//   ]
3162	// }
3163
3164}
3165
3166// method id "bigtableadmin.operations.get":
3167
3168type OperationsGetCall struct {
3169	s            *Service
3170	name         string
3171	urlParams_   gensupport.URLParams
3172	ifNoneMatch_ string
3173	ctx_         context.Context
3174	header_      http.Header
3175}
3176
3177// Get: Gets the latest state of a long-running operation. Clients can
3178// use this method to poll the operation result at intervals as
3179// recommended by the API service.
3180//
3181// - name: The name of the operation resource.
3182func (r *OperationsService) Get(name string) *OperationsGetCall {
3183	c := &OperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3184	c.name = name
3185	return c
3186}
3187
3188// Fields allows partial responses to be retrieved. See
3189// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3190// for more information.
3191func (c *OperationsGetCall) Fields(s ...googleapi.Field) *OperationsGetCall {
3192	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3193	return c
3194}
3195
3196// IfNoneMatch sets the optional parameter which makes the operation
3197// fail if the object's ETag matches the given value. This is useful for
3198// getting updates only after the object has changed since the last
3199// request. Use googleapi.IsNotModified to check whether the response
3200// error from Do is the result of In-None-Match.
3201func (c *OperationsGetCall) IfNoneMatch(entityTag string) *OperationsGetCall {
3202	c.ifNoneMatch_ = entityTag
3203	return c
3204}
3205
3206// Context sets the context to be used in this call's Do method. Any
3207// pending HTTP request will be aborted if the provided context is
3208// canceled.
3209func (c *OperationsGetCall) Context(ctx context.Context) *OperationsGetCall {
3210	c.ctx_ = ctx
3211	return c
3212}
3213
3214// Header returns an http.Header that can be modified by the caller to
3215// add HTTP headers to the request.
3216func (c *OperationsGetCall) Header() http.Header {
3217	if c.header_ == nil {
3218		c.header_ = make(http.Header)
3219	}
3220	return c.header_
3221}
3222
3223func (c *OperationsGetCall) doRequest(alt string) (*http.Response, error) {
3224	reqHeaders := make(http.Header)
3225	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
3226	for k, v := range c.header_ {
3227		reqHeaders[k] = v
3228	}
3229	reqHeaders.Set("User-Agent", c.s.userAgent())
3230	if c.ifNoneMatch_ != "" {
3231		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3232	}
3233	var body io.Reader = nil
3234	c.urlParams_.Set("alt", alt)
3235	c.urlParams_.Set("prettyPrint", "false")
3236	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
3237	urls += "?" + c.urlParams_.Encode()
3238	req, err := http.NewRequest("GET", urls, body)
3239	if err != nil {
3240		return nil, err
3241	}
3242	req.Header = reqHeaders
3243	googleapi.Expand(req.URL, map[string]string{
3244		"name": c.name,
3245	})
3246	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3247}
3248
3249// Do executes the "bigtableadmin.operations.get" call.
3250// Exactly one of *Operation or error will be non-nil. Any non-2xx
3251// status code is an error. Response headers are in either
3252// *Operation.ServerResponse.Header or (if a response was returned at
3253// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
3254// to check whether the returned error was because
3255// http.StatusNotModified was returned.
3256func (c *OperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
3257	gensupport.SetOptions(c.urlParams_, opts...)
3258	res, err := c.doRequest("json")
3259	if res != nil && res.StatusCode == http.StatusNotModified {
3260		if res.Body != nil {
3261			res.Body.Close()
3262		}
3263		return nil, &googleapi.Error{
3264			Code:   res.StatusCode,
3265			Header: res.Header,
3266		}
3267	}
3268	if err != nil {
3269		return nil, err
3270	}
3271	defer googleapi.CloseBody(res)
3272	if err := googleapi.CheckResponse(res); err != nil {
3273		return nil, err
3274	}
3275	ret := &Operation{
3276		ServerResponse: googleapi.ServerResponse{
3277			Header:         res.Header,
3278			HTTPStatusCode: res.StatusCode,
3279		},
3280	}
3281	target := &ret
3282	if err := gensupport.DecodeResponse(target, res); err != nil {
3283		return nil, err
3284	}
3285	return ret, nil
3286	// {
3287	//   "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.",
3288	//   "flatPath": "v2/operations/{operationsId}",
3289	//   "httpMethod": "GET",
3290	//   "id": "bigtableadmin.operations.get",
3291	//   "parameterOrder": [
3292	//     "name"
3293	//   ],
3294	//   "parameters": {
3295	//     "name": {
3296	//       "description": "The name of the operation resource.",
3297	//       "location": "path",
3298	//       "pattern": "^operations/.*$",
3299	//       "required": true,
3300	//       "type": "string"
3301	//     }
3302	//   },
3303	//   "path": "v2/{+name}",
3304	//   "response": {
3305	//     "$ref": "Operation"
3306	//   },
3307	//   "scopes": [
3308	//     "https://www.googleapis.com/auth/bigtable.admin",
3309	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
3310	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
3311	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
3312	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
3313	//     "https://www.googleapis.com/auth/cloud-platform",
3314	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
3315	//   ]
3316	// }
3317
3318}
3319
3320// method id "bigtableadmin.operations.projects.operations.list":
3321
3322type OperationsProjectsOperationsListCall struct {
3323	s            *Service
3324	name         string
3325	urlParams_   gensupport.URLParams
3326	ifNoneMatch_ string
3327	ctx_         context.Context
3328	header_      http.Header
3329}
3330
3331// List: Lists operations that match the specified filter in the
3332// request. If the server doesn't support this method, it returns
3333// `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to
3334// override the binding to use different resource name schemes, such as
3335// `users/*/operations`. To override the binding, API services can add a
3336// binding such as "/v1/{name=users/*}/operations" to their service
3337// configuration. For backwards compatibility, the default name includes
3338// the operations collection id, however overriding users must ensure
3339// the name binding is the parent resource, without the operations
3340// collection id.
3341//
3342// - name: The name of the operation's parent resource.
3343func (r *OperationsProjectsOperationsService) List(name string) *OperationsProjectsOperationsListCall {
3344	c := &OperationsProjectsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3345	c.name = name
3346	return c
3347}
3348
3349// Filter sets the optional parameter "filter": The standard list
3350// filter.
3351func (c *OperationsProjectsOperationsListCall) Filter(filter string) *OperationsProjectsOperationsListCall {
3352	c.urlParams_.Set("filter", filter)
3353	return c
3354}
3355
3356// PageSize sets the optional parameter "pageSize": The standard list
3357// page size.
3358func (c *OperationsProjectsOperationsListCall) PageSize(pageSize int64) *OperationsProjectsOperationsListCall {
3359	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
3360	return c
3361}
3362
3363// PageToken sets the optional parameter "pageToken": The standard list
3364// page token.
3365func (c *OperationsProjectsOperationsListCall) PageToken(pageToken string) *OperationsProjectsOperationsListCall {
3366	c.urlParams_.Set("pageToken", pageToken)
3367	return c
3368}
3369
3370// Fields allows partial responses to be retrieved. See
3371// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3372// for more information.
3373func (c *OperationsProjectsOperationsListCall) Fields(s ...googleapi.Field) *OperationsProjectsOperationsListCall {
3374	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3375	return c
3376}
3377
3378// IfNoneMatch sets the optional parameter which makes the operation
3379// fail if the object's ETag matches the given value. This is useful for
3380// getting updates only after the object has changed since the last
3381// request. Use googleapi.IsNotModified to check whether the response
3382// error from Do is the result of In-None-Match.
3383func (c *OperationsProjectsOperationsListCall) IfNoneMatch(entityTag string) *OperationsProjectsOperationsListCall {
3384	c.ifNoneMatch_ = entityTag
3385	return c
3386}
3387
3388// Context sets the context to be used in this call's Do method. Any
3389// pending HTTP request will be aborted if the provided context is
3390// canceled.
3391func (c *OperationsProjectsOperationsListCall) Context(ctx context.Context) *OperationsProjectsOperationsListCall {
3392	c.ctx_ = ctx
3393	return c
3394}
3395
3396// Header returns an http.Header that can be modified by the caller to
3397// add HTTP headers to the request.
3398func (c *OperationsProjectsOperationsListCall) Header() http.Header {
3399	if c.header_ == nil {
3400		c.header_ = make(http.Header)
3401	}
3402	return c.header_
3403}
3404
3405func (c *OperationsProjectsOperationsListCall) doRequest(alt string) (*http.Response, error) {
3406	reqHeaders := make(http.Header)
3407	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
3408	for k, v := range c.header_ {
3409		reqHeaders[k] = v
3410	}
3411	reqHeaders.Set("User-Agent", c.s.userAgent())
3412	if c.ifNoneMatch_ != "" {
3413		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3414	}
3415	var body io.Reader = nil
3416	c.urlParams_.Set("alt", alt)
3417	c.urlParams_.Set("prettyPrint", "false")
3418	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}/operations")
3419	urls += "?" + c.urlParams_.Encode()
3420	req, err := http.NewRequest("GET", urls, body)
3421	if err != nil {
3422		return nil, err
3423	}
3424	req.Header = reqHeaders
3425	googleapi.Expand(req.URL, map[string]string{
3426		"name": c.name,
3427	})
3428	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3429}
3430
3431// Do executes the "bigtableadmin.operations.projects.operations.list" call.
3432// Exactly one of *ListOperationsResponse or error will be non-nil. Any
3433// non-2xx status code is an error. Response headers are in either
3434// *ListOperationsResponse.ServerResponse.Header or (if a response was
3435// returned at all) in error.(*googleapi.Error).Header. Use
3436// googleapi.IsNotModified to check whether the returned error was
3437// because http.StatusNotModified was returned.
3438func (c *OperationsProjectsOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
3439	gensupport.SetOptions(c.urlParams_, opts...)
3440	res, err := c.doRequest("json")
3441	if res != nil && res.StatusCode == http.StatusNotModified {
3442		if res.Body != nil {
3443			res.Body.Close()
3444		}
3445		return nil, &googleapi.Error{
3446			Code:   res.StatusCode,
3447			Header: res.Header,
3448		}
3449	}
3450	if err != nil {
3451		return nil, err
3452	}
3453	defer googleapi.CloseBody(res)
3454	if err := googleapi.CheckResponse(res); err != nil {
3455		return nil, err
3456	}
3457	ret := &ListOperationsResponse{
3458		ServerResponse: googleapi.ServerResponse{
3459			Header:         res.Header,
3460			HTTPStatusCode: res.StatusCode,
3461		},
3462	}
3463	target := &ret
3464	if err := gensupport.DecodeResponse(target, res); err != nil {
3465		return nil, err
3466	}
3467	return ret, nil
3468	// {
3469	//   "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.",
3470	//   "flatPath": "v2/operations/projects/{projectsId}/operations",
3471	//   "httpMethod": "GET",
3472	//   "id": "bigtableadmin.operations.projects.operations.list",
3473	//   "parameterOrder": [
3474	//     "name"
3475	//   ],
3476	//   "parameters": {
3477	//     "filter": {
3478	//       "description": "The standard list filter.",
3479	//       "location": "query",
3480	//       "type": "string"
3481	//     },
3482	//     "name": {
3483	//       "description": "The name of the operation's parent resource.",
3484	//       "location": "path",
3485	//       "pattern": "^operations/projects/.*$",
3486	//       "required": true,
3487	//       "type": "string"
3488	//     },
3489	//     "pageSize": {
3490	//       "description": "The standard list page size.",
3491	//       "format": "int32",
3492	//       "location": "query",
3493	//       "type": "integer"
3494	//     },
3495	//     "pageToken": {
3496	//       "description": "The standard list page token.",
3497	//       "location": "query",
3498	//       "type": "string"
3499	//     }
3500	//   },
3501	//   "path": "v2/{+name}/operations",
3502	//   "response": {
3503	//     "$ref": "ListOperationsResponse"
3504	//   },
3505	//   "scopes": [
3506	//     "https://www.googleapis.com/auth/bigtable.admin",
3507	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
3508	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
3509	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
3510	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
3511	//     "https://www.googleapis.com/auth/cloud-platform",
3512	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
3513	//   ]
3514	// }
3515
3516}
3517
3518// Pages invokes f for each page of results.
3519// A non-nil error returned from f will halt the iteration.
3520// The provided context supersedes any context provided to the Context method.
3521func (c *OperationsProjectsOperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
3522	c.ctx_ = ctx
3523	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
3524	for {
3525		x, err := c.Do()
3526		if err != nil {
3527			return err
3528		}
3529		if err := f(x); err != nil {
3530			return err
3531		}
3532		if x.NextPageToken == "" {
3533			return nil
3534		}
3535		c.PageToken(x.NextPageToken)
3536	}
3537}
3538
3539// method id "bigtableadmin.projects.instances.create":
3540
3541type ProjectsInstancesCreateCall struct {
3542	s                     *Service
3543	parent                string
3544	createinstancerequest *CreateInstanceRequest
3545	urlParams_            gensupport.URLParams
3546	ctx_                  context.Context
3547	header_               http.Header
3548}
3549
3550// Create: Create an instance within a project.
3551//
3552// - parent: The unique name of the project in which to create the new
3553//   instance. Values are of the form `projects/{project}`.
3554func (r *ProjectsInstancesService) Create(parent string, createinstancerequest *CreateInstanceRequest) *ProjectsInstancesCreateCall {
3555	c := &ProjectsInstancesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3556	c.parent = parent
3557	c.createinstancerequest = createinstancerequest
3558	return c
3559}
3560
3561// Fields allows partial responses to be retrieved. See
3562// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3563// for more information.
3564func (c *ProjectsInstancesCreateCall) Fields(s ...googleapi.Field) *ProjectsInstancesCreateCall {
3565	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3566	return c
3567}
3568
3569// Context sets the context to be used in this call's Do method. Any
3570// pending HTTP request will be aborted if the provided context is
3571// canceled.
3572func (c *ProjectsInstancesCreateCall) Context(ctx context.Context) *ProjectsInstancesCreateCall {
3573	c.ctx_ = ctx
3574	return c
3575}
3576
3577// Header returns an http.Header that can be modified by the caller to
3578// add HTTP headers to the request.
3579func (c *ProjectsInstancesCreateCall) Header() http.Header {
3580	if c.header_ == nil {
3581		c.header_ = make(http.Header)
3582	}
3583	return c.header_
3584}
3585
3586func (c *ProjectsInstancesCreateCall) doRequest(alt string) (*http.Response, error) {
3587	reqHeaders := make(http.Header)
3588	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
3589	for k, v := range c.header_ {
3590		reqHeaders[k] = v
3591	}
3592	reqHeaders.Set("User-Agent", c.s.userAgent())
3593	var body io.Reader = nil
3594	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createinstancerequest)
3595	if err != nil {
3596		return nil, err
3597	}
3598	reqHeaders.Set("Content-Type", "application/json")
3599	c.urlParams_.Set("alt", alt)
3600	c.urlParams_.Set("prettyPrint", "false")
3601	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+parent}/instances")
3602	urls += "?" + c.urlParams_.Encode()
3603	req, err := http.NewRequest("POST", urls, body)
3604	if err != nil {
3605		return nil, err
3606	}
3607	req.Header = reqHeaders
3608	googleapi.Expand(req.URL, map[string]string{
3609		"parent": c.parent,
3610	})
3611	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3612}
3613
3614// Do executes the "bigtableadmin.projects.instances.create" call.
3615// Exactly one of *Operation or error will be non-nil. Any non-2xx
3616// status code is an error. Response headers are in either
3617// *Operation.ServerResponse.Header or (if a response was returned at
3618// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
3619// to check whether the returned error was because
3620// http.StatusNotModified was returned.
3621func (c *ProjectsInstancesCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
3622	gensupport.SetOptions(c.urlParams_, opts...)
3623	res, err := c.doRequest("json")
3624	if res != nil && res.StatusCode == http.StatusNotModified {
3625		if res.Body != nil {
3626			res.Body.Close()
3627		}
3628		return nil, &googleapi.Error{
3629			Code:   res.StatusCode,
3630			Header: res.Header,
3631		}
3632	}
3633	if err != nil {
3634		return nil, err
3635	}
3636	defer googleapi.CloseBody(res)
3637	if err := googleapi.CheckResponse(res); err != nil {
3638		return nil, err
3639	}
3640	ret := &Operation{
3641		ServerResponse: googleapi.ServerResponse{
3642			Header:         res.Header,
3643			HTTPStatusCode: res.StatusCode,
3644		},
3645	}
3646	target := &ret
3647	if err := gensupport.DecodeResponse(target, res); err != nil {
3648		return nil, err
3649	}
3650	return ret, nil
3651	// {
3652	//   "description": "Create an instance within a project.",
3653	//   "flatPath": "v2/projects/{projectsId}/instances",
3654	//   "httpMethod": "POST",
3655	//   "id": "bigtableadmin.projects.instances.create",
3656	//   "parameterOrder": [
3657	//     "parent"
3658	//   ],
3659	//   "parameters": {
3660	//     "parent": {
3661	//       "description": "Required. The unique name of the project in which to create the new instance. Values are of the form `projects/{project}`.",
3662	//       "location": "path",
3663	//       "pattern": "^projects/[^/]+$",
3664	//       "required": true,
3665	//       "type": "string"
3666	//     }
3667	//   },
3668	//   "path": "v2/{+parent}/instances",
3669	//   "request": {
3670	//     "$ref": "CreateInstanceRequest"
3671	//   },
3672	//   "response": {
3673	//     "$ref": "Operation"
3674	//   },
3675	//   "scopes": [
3676	//     "https://www.googleapis.com/auth/bigtable.admin",
3677	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
3678	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
3679	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
3680	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
3681	//     "https://www.googleapis.com/auth/cloud-platform"
3682	//   ]
3683	// }
3684
3685}
3686
3687// method id "bigtableadmin.projects.instances.delete":
3688
3689type ProjectsInstancesDeleteCall struct {
3690	s          *Service
3691	name       string
3692	urlParams_ gensupport.URLParams
3693	ctx_       context.Context
3694	header_    http.Header
3695}
3696
3697// Delete: Delete an instance from a project.
3698//
3699// - name: The unique name of the instance to be deleted. Values are of
3700//   the form `projects/{project}/instances/{instance}`.
3701func (r *ProjectsInstancesService) Delete(name string) *ProjectsInstancesDeleteCall {
3702	c := &ProjectsInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3703	c.name = name
3704	return c
3705}
3706
3707// Fields allows partial responses to be retrieved. See
3708// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3709// for more information.
3710func (c *ProjectsInstancesDeleteCall) Fields(s ...googleapi.Field) *ProjectsInstancesDeleteCall {
3711	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3712	return c
3713}
3714
3715// Context sets the context to be used in this call's Do method. Any
3716// pending HTTP request will be aborted if the provided context is
3717// canceled.
3718func (c *ProjectsInstancesDeleteCall) Context(ctx context.Context) *ProjectsInstancesDeleteCall {
3719	c.ctx_ = ctx
3720	return c
3721}
3722
3723// Header returns an http.Header that can be modified by the caller to
3724// add HTTP headers to the request.
3725func (c *ProjectsInstancesDeleteCall) Header() http.Header {
3726	if c.header_ == nil {
3727		c.header_ = make(http.Header)
3728	}
3729	return c.header_
3730}
3731
3732func (c *ProjectsInstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
3733	reqHeaders := make(http.Header)
3734	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
3735	for k, v := range c.header_ {
3736		reqHeaders[k] = v
3737	}
3738	reqHeaders.Set("User-Agent", c.s.userAgent())
3739	var body io.Reader = nil
3740	c.urlParams_.Set("alt", alt)
3741	c.urlParams_.Set("prettyPrint", "false")
3742	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
3743	urls += "?" + c.urlParams_.Encode()
3744	req, err := http.NewRequest("DELETE", urls, body)
3745	if err != nil {
3746		return nil, err
3747	}
3748	req.Header = reqHeaders
3749	googleapi.Expand(req.URL, map[string]string{
3750		"name": c.name,
3751	})
3752	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3753}
3754
3755// Do executes the "bigtableadmin.projects.instances.delete" call.
3756// Exactly one of *Empty or error will be non-nil. Any non-2xx status
3757// code is an error. Response headers are in either
3758// *Empty.ServerResponse.Header or (if a response was returned at all)
3759// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
3760// check whether the returned error was because http.StatusNotModified
3761// was returned.
3762func (c *ProjectsInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
3763	gensupport.SetOptions(c.urlParams_, opts...)
3764	res, err := c.doRequest("json")
3765	if res != nil && res.StatusCode == http.StatusNotModified {
3766		if res.Body != nil {
3767			res.Body.Close()
3768		}
3769		return nil, &googleapi.Error{
3770			Code:   res.StatusCode,
3771			Header: res.Header,
3772		}
3773	}
3774	if err != nil {
3775		return nil, err
3776	}
3777	defer googleapi.CloseBody(res)
3778	if err := googleapi.CheckResponse(res); err != nil {
3779		return nil, err
3780	}
3781	ret := &Empty{
3782		ServerResponse: googleapi.ServerResponse{
3783			Header:         res.Header,
3784			HTTPStatusCode: res.StatusCode,
3785		},
3786	}
3787	target := &ret
3788	if err := gensupport.DecodeResponse(target, res); err != nil {
3789		return nil, err
3790	}
3791	return ret, nil
3792	// {
3793	//   "description": "Delete an instance from a project.",
3794	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}",
3795	//   "httpMethod": "DELETE",
3796	//   "id": "bigtableadmin.projects.instances.delete",
3797	//   "parameterOrder": [
3798	//     "name"
3799	//   ],
3800	//   "parameters": {
3801	//     "name": {
3802	//       "description": "Required. The unique name of the instance to be deleted. Values are of the form `projects/{project}/instances/{instance}`.",
3803	//       "location": "path",
3804	//       "pattern": "^projects/[^/]+/instances/[^/]+$",
3805	//       "required": true,
3806	//       "type": "string"
3807	//     }
3808	//   },
3809	//   "path": "v2/{+name}",
3810	//   "response": {
3811	//     "$ref": "Empty"
3812	//   },
3813	//   "scopes": [
3814	//     "https://www.googleapis.com/auth/bigtable.admin",
3815	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
3816	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
3817	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
3818	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
3819	//     "https://www.googleapis.com/auth/cloud-platform"
3820	//   ]
3821	// }
3822
3823}
3824
3825// method id "bigtableadmin.projects.instances.get":
3826
3827type ProjectsInstancesGetCall struct {
3828	s            *Service
3829	name         string
3830	urlParams_   gensupport.URLParams
3831	ifNoneMatch_ string
3832	ctx_         context.Context
3833	header_      http.Header
3834}
3835
3836// Get: Gets information about an instance.
3837//
3838// - name: The unique name of the requested instance. Values are of the
3839//   form `projects/{project}/instances/{instance}`.
3840func (r *ProjectsInstancesService) Get(name string) *ProjectsInstancesGetCall {
3841	c := &ProjectsInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3842	c.name = name
3843	return c
3844}
3845
3846// Fields allows partial responses to be retrieved. See
3847// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3848// for more information.
3849func (c *ProjectsInstancesGetCall) Fields(s ...googleapi.Field) *ProjectsInstancesGetCall {
3850	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3851	return c
3852}
3853
3854// IfNoneMatch sets the optional parameter which makes the operation
3855// fail if the object's ETag matches the given value. This is useful for
3856// getting updates only after the object has changed since the last
3857// request. Use googleapi.IsNotModified to check whether the response
3858// error from Do is the result of In-None-Match.
3859func (c *ProjectsInstancesGetCall) IfNoneMatch(entityTag string) *ProjectsInstancesGetCall {
3860	c.ifNoneMatch_ = entityTag
3861	return c
3862}
3863
3864// Context sets the context to be used in this call's Do method. Any
3865// pending HTTP request will be aborted if the provided context is
3866// canceled.
3867func (c *ProjectsInstancesGetCall) Context(ctx context.Context) *ProjectsInstancesGetCall {
3868	c.ctx_ = ctx
3869	return c
3870}
3871
3872// Header returns an http.Header that can be modified by the caller to
3873// add HTTP headers to the request.
3874func (c *ProjectsInstancesGetCall) Header() http.Header {
3875	if c.header_ == nil {
3876		c.header_ = make(http.Header)
3877	}
3878	return c.header_
3879}
3880
3881func (c *ProjectsInstancesGetCall) doRequest(alt string) (*http.Response, error) {
3882	reqHeaders := make(http.Header)
3883	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
3884	for k, v := range c.header_ {
3885		reqHeaders[k] = v
3886	}
3887	reqHeaders.Set("User-Agent", c.s.userAgent())
3888	if c.ifNoneMatch_ != "" {
3889		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3890	}
3891	var body io.Reader = nil
3892	c.urlParams_.Set("alt", alt)
3893	c.urlParams_.Set("prettyPrint", "false")
3894	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
3895	urls += "?" + c.urlParams_.Encode()
3896	req, err := http.NewRequest("GET", urls, body)
3897	if err != nil {
3898		return nil, err
3899	}
3900	req.Header = reqHeaders
3901	googleapi.Expand(req.URL, map[string]string{
3902		"name": c.name,
3903	})
3904	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3905}
3906
3907// Do executes the "bigtableadmin.projects.instances.get" call.
3908// Exactly one of *Instance or error will be non-nil. Any non-2xx status
3909// code is an error. Response headers are in either
3910// *Instance.ServerResponse.Header or (if a response was returned at
3911// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
3912// to check whether the returned error was because
3913// http.StatusNotModified was returned.
3914func (c *ProjectsInstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
3915	gensupport.SetOptions(c.urlParams_, opts...)
3916	res, err := c.doRequest("json")
3917	if res != nil && res.StatusCode == http.StatusNotModified {
3918		if res.Body != nil {
3919			res.Body.Close()
3920		}
3921		return nil, &googleapi.Error{
3922			Code:   res.StatusCode,
3923			Header: res.Header,
3924		}
3925	}
3926	if err != nil {
3927		return nil, err
3928	}
3929	defer googleapi.CloseBody(res)
3930	if err := googleapi.CheckResponse(res); err != nil {
3931		return nil, err
3932	}
3933	ret := &Instance{
3934		ServerResponse: googleapi.ServerResponse{
3935			Header:         res.Header,
3936			HTTPStatusCode: res.StatusCode,
3937		},
3938	}
3939	target := &ret
3940	if err := gensupport.DecodeResponse(target, res); err != nil {
3941		return nil, err
3942	}
3943	return ret, nil
3944	// {
3945	//   "description": "Gets information about an instance.",
3946	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}",
3947	//   "httpMethod": "GET",
3948	//   "id": "bigtableadmin.projects.instances.get",
3949	//   "parameterOrder": [
3950	//     "name"
3951	//   ],
3952	//   "parameters": {
3953	//     "name": {
3954	//       "description": "Required. The unique name of the requested instance. Values are of the form `projects/{project}/instances/{instance}`.",
3955	//       "location": "path",
3956	//       "pattern": "^projects/[^/]+/instances/[^/]+$",
3957	//       "required": true,
3958	//       "type": "string"
3959	//     }
3960	//   },
3961	//   "path": "v2/{+name}",
3962	//   "response": {
3963	//     "$ref": "Instance"
3964	//   },
3965	//   "scopes": [
3966	//     "https://www.googleapis.com/auth/bigtable.admin",
3967	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
3968	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
3969	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
3970	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
3971	//     "https://www.googleapis.com/auth/cloud-platform",
3972	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
3973	//   ]
3974	// }
3975
3976}
3977
3978// method id "bigtableadmin.projects.instances.getIamPolicy":
3979
3980type ProjectsInstancesGetIamPolicyCall struct {
3981	s                   *Service
3982	resource            string
3983	getiampolicyrequest *GetIamPolicyRequest
3984	urlParams_          gensupport.URLParams
3985	ctx_                context.Context
3986	header_             http.Header
3987}
3988
3989// GetIamPolicy: Gets the access control policy for an instance
3990// resource. Returns an empty policy if an instance exists but does not
3991// have a policy set.
3992//
3993// - resource: REQUIRED: The resource for which the policy is being
3994//   requested. See the operation documentation for the appropriate
3995//   value for this field.
3996func (r *ProjectsInstancesService) GetIamPolicy(resource string, getiampolicyrequest *GetIamPolicyRequest) *ProjectsInstancesGetIamPolicyCall {
3997	c := &ProjectsInstancesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3998	c.resource = resource
3999	c.getiampolicyrequest = getiampolicyrequest
4000	return c
4001}
4002
4003// Fields allows partial responses to be retrieved. See
4004// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4005// for more information.
4006func (c *ProjectsInstancesGetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsInstancesGetIamPolicyCall {
4007	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4008	return c
4009}
4010
4011// Context sets the context to be used in this call's Do method. Any
4012// pending HTTP request will be aborted if the provided context is
4013// canceled.
4014func (c *ProjectsInstancesGetIamPolicyCall) Context(ctx context.Context) *ProjectsInstancesGetIamPolicyCall {
4015	c.ctx_ = ctx
4016	return c
4017}
4018
4019// Header returns an http.Header that can be modified by the caller to
4020// add HTTP headers to the request.
4021func (c *ProjectsInstancesGetIamPolicyCall) Header() http.Header {
4022	if c.header_ == nil {
4023		c.header_ = make(http.Header)
4024	}
4025	return c.header_
4026}
4027
4028func (c *ProjectsInstancesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
4029	reqHeaders := make(http.Header)
4030	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
4031	for k, v := range c.header_ {
4032		reqHeaders[k] = v
4033	}
4034	reqHeaders.Set("User-Agent", c.s.userAgent())
4035	var body io.Reader = nil
4036	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getiampolicyrequest)
4037	if err != nil {
4038		return nil, err
4039	}
4040	reqHeaders.Set("Content-Type", "application/json")
4041	c.urlParams_.Set("alt", alt)
4042	c.urlParams_.Set("prettyPrint", "false")
4043	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+resource}:getIamPolicy")
4044	urls += "?" + c.urlParams_.Encode()
4045	req, err := http.NewRequest("POST", urls, body)
4046	if err != nil {
4047		return nil, err
4048	}
4049	req.Header = reqHeaders
4050	googleapi.Expand(req.URL, map[string]string{
4051		"resource": c.resource,
4052	})
4053	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4054}
4055
4056// Do executes the "bigtableadmin.projects.instances.getIamPolicy" call.
4057// Exactly one of *Policy or error will be non-nil. Any non-2xx status
4058// code is an error. Response headers are in either
4059// *Policy.ServerResponse.Header or (if a response was returned at all)
4060// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
4061// check whether the returned error was because http.StatusNotModified
4062// was returned.
4063func (c *ProjectsInstancesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
4064	gensupport.SetOptions(c.urlParams_, opts...)
4065	res, err := c.doRequest("json")
4066	if res != nil && res.StatusCode == http.StatusNotModified {
4067		if res.Body != nil {
4068			res.Body.Close()
4069		}
4070		return nil, &googleapi.Error{
4071			Code:   res.StatusCode,
4072			Header: res.Header,
4073		}
4074	}
4075	if err != nil {
4076		return nil, err
4077	}
4078	defer googleapi.CloseBody(res)
4079	if err := googleapi.CheckResponse(res); err != nil {
4080		return nil, err
4081	}
4082	ret := &Policy{
4083		ServerResponse: googleapi.ServerResponse{
4084			Header:         res.Header,
4085			HTTPStatusCode: res.StatusCode,
4086		},
4087	}
4088	target := &ret
4089	if err := gensupport.DecodeResponse(target, res); err != nil {
4090		return nil, err
4091	}
4092	return ret, nil
4093	// {
4094	//   "description": "Gets the access control policy for an instance resource. Returns an empty policy if an instance exists but does not have a policy set.",
4095	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}:getIamPolicy",
4096	//   "httpMethod": "POST",
4097	//   "id": "bigtableadmin.projects.instances.getIamPolicy",
4098	//   "parameterOrder": [
4099	//     "resource"
4100	//   ],
4101	//   "parameters": {
4102	//     "resource": {
4103	//       "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.",
4104	//       "location": "path",
4105	//       "pattern": "^projects/[^/]+/instances/[^/]+$",
4106	//       "required": true,
4107	//       "type": "string"
4108	//     }
4109	//   },
4110	//   "path": "v2/{+resource}:getIamPolicy",
4111	//   "request": {
4112	//     "$ref": "GetIamPolicyRequest"
4113	//   },
4114	//   "response": {
4115	//     "$ref": "Policy"
4116	//   },
4117	//   "scopes": [
4118	//     "https://www.googleapis.com/auth/bigtable.admin",
4119	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
4120	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
4121	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
4122	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
4123	//     "https://www.googleapis.com/auth/cloud-platform"
4124	//   ]
4125	// }
4126
4127}
4128
4129// method id "bigtableadmin.projects.instances.list":
4130
4131type ProjectsInstancesListCall struct {
4132	s            *Service
4133	parent       string
4134	urlParams_   gensupport.URLParams
4135	ifNoneMatch_ string
4136	ctx_         context.Context
4137	header_      http.Header
4138}
4139
4140// List: Lists information about instances in a project.
4141//
4142// - parent: The unique name of the project for which a list of
4143//   instances is requested. Values are of the form
4144//   `projects/{project}`.
4145func (r *ProjectsInstancesService) List(parent string) *ProjectsInstancesListCall {
4146	c := &ProjectsInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4147	c.parent = parent
4148	return c
4149}
4150
4151// PageToken sets the optional parameter "pageToken": DEPRECATED: This
4152// field is unused and ignored.
4153func (c *ProjectsInstancesListCall) PageToken(pageToken string) *ProjectsInstancesListCall {
4154	c.urlParams_.Set("pageToken", pageToken)
4155	return c
4156}
4157
4158// Fields allows partial responses to be retrieved. See
4159// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4160// for more information.
4161func (c *ProjectsInstancesListCall) Fields(s ...googleapi.Field) *ProjectsInstancesListCall {
4162	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4163	return c
4164}
4165
4166// IfNoneMatch sets the optional parameter which makes the operation
4167// fail if the object's ETag matches the given value. This is useful for
4168// getting updates only after the object has changed since the last
4169// request. Use googleapi.IsNotModified to check whether the response
4170// error from Do is the result of In-None-Match.
4171func (c *ProjectsInstancesListCall) IfNoneMatch(entityTag string) *ProjectsInstancesListCall {
4172	c.ifNoneMatch_ = entityTag
4173	return c
4174}
4175
4176// Context sets the context to be used in this call's Do method. Any
4177// pending HTTP request will be aborted if the provided context is
4178// canceled.
4179func (c *ProjectsInstancesListCall) Context(ctx context.Context) *ProjectsInstancesListCall {
4180	c.ctx_ = ctx
4181	return c
4182}
4183
4184// Header returns an http.Header that can be modified by the caller to
4185// add HTTP headers to the request.
4186func (c *ProjectsInstancesListCall) Header() http.Header {
4187	if c.header_ == nil {
4188		c.header_ = make(http.Header)
4189	}
4190	return c.header_
4191}
4192
4193func (c *ProjectsInstancesListCall) doRequest(alt string) (*http.Response, error) {
4194	reqHeaders := make(http.Header)
4195	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
4196	for k, v := range c.header_ {
4197		reqHeaders[k] = v
4198	}
4199	reqHeaders.Set("User-Agent", c.s.userAgent())
4200	if c.ifNoneMatch_ != "" {
4201		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4202	}
4203	var body io.Reader = nil
4204	c.urlParams_.Set("alt", alt)
4205	c.urlParams_.Set("prettyPrint", "false")
4206	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+parent}/instances")
4207	urls += "?" + c.urlParams_.Encode()
4208	req, err := http.NewRequest("GET", urls, body)
4209	if err != nil {
4210		return nil, err
4211	}
4212	req.Header = reqHeaders
4213	googleapi.Expand(req.URL, map[string]string{
4214		"parent": c.parent,
4215	})
4216	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4217}
4218
4219// Do executes the "bigtableadmin.projects.instances.list" call.
4220// Exactly one of *ListInstancesResponse or error will be non-nil. Any
4221// non-2xx status code is an error. Response headers are in either
4222// *ListInstancesResponse.ServerResponse.Header or (if a response was
4223// returned at all) in error.(*googleapi.Error).Header. Use
4224// googleapi.IsNotModified to check whether the returned error was
4225// because http.StatusNotModified was returned.
4226func (c *ProjectsInstancesListCall) Do(opts ...googleapi.CallOption) (*ListInstancesResponse, error) {
4227	gensupport.SetOptions(c.urlParams_, opts...)
4228	res, err := c.doRequest("json")
4229	if res != nil && res.StatusCode == http.StatusNotModified {
4230		if res.Body != nil {
4231			res.Body.Close()
4232		}
4233		return nil, &googleapi.Error{
4234			Code:   res.StatusCode,
4235			Header: res.Header,
4236		}
4237	}
4238	if err != nil {
4239		return nil, err
4240	}
4241	defer googleapi.CloseBody(res)
4242	if err := googleapi.CheckResponse(res); err != nil {
4243		return nil, err
4244	}
4245	ret := &ListInstancesResponse{
4246		ServerResponse: googleapi.ServerResponse{
4247			Header:         res.Header,
4248			HTTPStatusCode: res.StatusCode,
4249		},
4250	}
4251	target := &ret
4252	if err := gensupport.DecodeResponse(target, res); err != nil {
4253		return nil, err
4254	}
4255	return ret, nil
4256	// {
4257	//   "description": "Lists information about instances in a project.",
4258	//   "flatPath": "v2/projects/{projectsId}/instances",
4259	//   "httpMethod": "GET",
4260	//   "id": "bigtableadmin.projects.instances.list",
4261	//   "parameterOrder": [
4262	//     "parent"
4263	//   ],
4264	//   "parameters": {
4265	//     "pageToken": {
4266	//       "description": "DEPRECATED: This field is unused and ignored.",
4267	//       "location": "query",
4268	//       "type": "string"
4269	//     },
4270	//     "parent": {
4271	//       "description": "Required. The unique name of the project for which a list of instances is requested. Values are of the form `projects/{project}`.",
4272	//       "location": "path",
4273	//       "pattern": "^projects/[^/]+$",
4274	//       "required": true,
4275	//       "type": "string"
4276	//     }
4277	//   },
4278	//   "path": "v2/{+parent}/instances",
4279	//   "response": {
4280	//     "$ref": "ListInstancesResponse"
4281	//   },
4282	//   "scopes": [
4283	//     "https://www.googleapis.com/auth/bigtable.admin",
4284	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
4285	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
4286	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
4287	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
4288	//     "https://www.googleapis.com/auth/cloud-platform",
4289	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
4290	//   ]
4291	// }
4292
4293}
4294
4295// Pages invokes f for each page of results.
4296// A non-nil error returned from f will halt the iteration.
4297// The provided context supersedes any context provided to the Context method.
4298func (c *ProjectsInstancesListCall) Pages(ctx context.Context, f func(*ListInstancesResponse) error) error {
4299	c.ctx_ = ctx
4300	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
4301	for {
4302		x, err := c.Do()
4303		if err != nil {
4304			return err
4305		}
4306		if err := f(x); err != nil {
4307			return err
4308		}
4309		if x.NextPageToken == "" {
4310			return nil
4311		}
4312		c.PageToken(x.NextPageToken)
4313	}
4314}
4315
4316// method id "bigtableadmin.projects.instances.partialUpdateInstance":
4317
4318type ProjectsInstancesPartialUpdateInstanceCall struct {
4319	s          *Service
4320	name       string
4321	instance   *Instance
4322	urlParams_ gensupport.URLParams
4323	ctx_       context.Context
4324	header_    http.Header
4325}
4326
4327// PartialUpdateInstance: Partially updates an instance within a
4328// project. This method can modify all fields of an Instance and is the
4329// preferred way to update an Instance.
4330//
4331// - name: The unique name of the instance. Values are of the form
4332//   `projects/{project}/instances/a-z+[a-z0-9]`.
4333func (r *ProjectsInstancesService) PartialUpdateInstance(name string, instance *Instance) *ProjectsInstancesPartialUpdateInstanceCall {
4334	c := &ProjectsInstancesPartialUpdateInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4335	c.name = name
4336	c.instance = instance
4337	return c
4338}
4339
4340// UpdateMask sets the optional parameter "updateMask": Required. The
4341// subset of Instance fields which should be replaced. Must be
4342// explicitly set.
4343func (c *ProjectsInstancesPartialUpdateInstanceCall) UpdateMask(updateMask string) *ProjectsInstancesPartialUpdateInstanceCall {
4344	c.urlParams_.Set("updateMask", updateMask)
4345	return c
4346}
4347
4348// Fields allows partial responses to be retrieved. See
4349// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4350// for more information.
4351func (c *ProjectsInstancesPartialUpdateInstanceCall) Fields(s ...googleapi.Field) *ProjectsInstancesPartialUpdateInstanceCall {
4352	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4353	return c
4354}
4355
4356// Context sets the context to be used in this call's Do method. Any
4357// pending HTTP request will be aborted if the provided context is
4358// canceled.
4359func (c *ProjectsInstancesPartialUpdateInstanceCall) Context(ctx context.Context) *ProjectsInstancesPartialUpdateInstanceCall {
4360	c.ctx_ = ctx
4361	return c
4362}
4363
4364// Header returns an http.Header that can be modified by the caller to
4365// add HTTP headers to the request.
4366func (c *ProjectsInstancesPartialUpdateInstanceCall) Header() http.Header {
4367	if c.header_ == nil {
4368		c.header_ = make(http.Header)
4369	}
4370	return c.header_
4371}
4372
4373func (c *ProjectsInstancesPartialUpdateInstanceCall) doRequest(alt string) (*http.Response, error) {
4374	reqHeaders := make(http.Header)
4375	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
4376	for k, v := range c.header_ {
4377		reqHeaders[k] = v
4378	}
4379	reqHeaders.Set("User-Agent", c.s.userAgent())
4380	var body io.Reader = nil
4381	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
4382	if err != nil {
4383		return nil, err
4384	}
4385	reqHeaders.Set("Content-Type", "application/json")
4386	c.urlParams_.Set("alt", alt)
4387	c.urlParams_.Set("prettyPrint", "false")
4388	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
4389	urls += "?" + c.urlParams_.Encode()
4390	req, err := http.NewRequest("PATCH", urls, body)
4391	if err != nil {
4392		return nil, err
4393	}
4394	req.Header = reqHeaders
4395	googleapi.Expand(req.URL, map[string]string{
4396		"name": c.name,
4397	})
4398	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4399}
4400
4401// Do executes the "bigtableadmin.projects.instances.partialUpdateInstance" call.
4402// Exactly one of *Operation or error will be non-nil. Any non-2xx
4403// status code is an error. Response headers are in either
4404// *Operation.ServerResponse.Header or (if a response was returned at
4405// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4406// to check whether the returned error was because
4407// http.StatusNotModified was returned.
4408func (c *ProjectsInstancesPartialUpdateInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
4409	gensupport.SetOptions(c.urlParams_, opts...)
4410	res, err := c.doRequest("json")
4411	if res != nil && res.StatusCode == http.StatusNotModified {
4412		if res.Body != nil {
4413			res.Body.Close()
4414		}
4415		return nil, &googleapi.Error{
4416			Code:   res.StatusCode,
4417			Header: res.Header,
4418		}
4419	}
4420	if err != nil {
4421		return nil, err
4422	}
4423	defer googleapi.CloseBody(res)
4424	if err := googleapi.CheckResponse(res); err != nil {
4425		return nil, err
4426	}
4427	ret := &Operation{
4428		ServerResponse: googleapi.ServerResponse{
4429			Header:         res.Header,
4430			HTTPStatusCode: res.StatusCode,
4431		},
4432	}
4433	target := &ret
4434	if err := gensupport.DecodeResponse(target, res); err != nil {
4435		return nil, err
4436	}
4437	return ret, nil
4438	// {
4439	//   "description": "Partially updates an instance within a project. This method can modify all fields of an Instance and is the preferred way to update an Instance.",
4440	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}",
4441	//   "httpMethod": "PATCH",
4442	//   "id": "bigtableadmin.projects.instances.partialUpdateInstance",
4443	//   "parameterOrder": [
4444	//     "name"
4445	//   ],
4446	//   "parameters": {
4447	//     "name": {
4448	//       "description": "The unique name of the instance. Values are of the form `projects/{project}/instances/a-z+[a-z0-9]`.",
4449	//       "location": "path",
4450	//       "pattern": "^projects/[^/]+/instances/[^/]+$",
4451	//       "required": true,
4452	//       "type": "string"
4453	//     },
4454	//     "updateMask": {
4455	//       "description": "Required. The subset of Instance fields which should be replaced. Must be explicitly set.",
4456	//       "format": "google-fieldmask",
4457	//       "location": "query",
4458	//       "type": "string"
4459	//     }
4460	//   },
4461	//   "path": "v2/{+name}",
4462	//   "request": {
4463	//     "$ref": "Instance"
4464	//   },
4465	//   "response": {
4466	//     "$ref": "Operation"
4467	//   },
4468	//   "scopes": [
4469	//     "https://www.googleapis.com/auth/bigtable.admin",
4470	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
4471	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
4472	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
4473	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
4474	//     "https://www.googleapis.com/auth/cloud-platform"
4475	//   ]
4476	// }
4477
4478}
4479
4480// method id "bigtableadmin.projects.instances.setIamPolicy":
4481
4482type ProjectsInstancesSetIamPolicyCall struct {
4483	s                   *Service
4484	resource            string
4485	setiampolicyrequest *SetIamPolicyRequest
4486	urlParams_          gensupport.URLParams
4487	ctx_                context.Context
4488	header_             http.Header
4489}
4490
4491// SetIamPolicy: Sets the access control policy on an instance resource.
4492// Replaces any existing policy.
4493//
4494// - resource: REQUIRED: The resource for which the policy is being
4495//   specified. See the operation documentation for the appropriate
4496//   value for this field.
4497func (r *ProjectsInstancesService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *ProjectsInstancesSetIamPolicyCall {
4498	c := &ProjectsInstancesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4499	c.resource = resource
4500	c.setiampolicyrequest = setiampolicyrequest
4501	return c
4502}
4503
4504// Fields allows partial responses to be retrieved. See
4505// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4506// for more information.
4507func (c *ProjectsInstancesSetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsInstancesSetIamPolicyCall {
4508	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4509	return c
4510}
4511
4512// Context sets the context to be used in this call's Do method. Any
4513// pending HTTP request will be aborted if the provided context is
4514// canceled.
4515func (c *ProjectsInstancesSetIamPolicyCall) Context(ctx context.Context) *ProjectsInstancesSetIamPolicyCall {
4516	c.ctx_ = ctx
4517	return c
4518}
4519
4520// Header returns an http.Header that can be modified by the caller to
4521// add HTTP headers to the request.
4522func (c *ProjectsInstancesSetIamPolicyCall) Header() http.Header {
4523	if c.header_ == nil {
4524		c.header_ = make(http.Header)
4525	}
4526	return c.header_
4527}
4528
4529func (c *ProjectsInstancesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
4530	reqHeaders := make(http.Header)
4531	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
4532	for k, v := range c.header_ {
4533		reqHeaders[k] = v
4534	}
4535	reqHeaders.Set("User-Agent", c.s.userAgent())
4536	var body io.Reader = nil
4537	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest)
4538	if err != nil {
4539		return nil, err
4540	}
4541	reqHeaders.Set("Content-Type", "application/json")
4542	c.urlParams_.Set("alt", alt)
4543	c.urlParams_.Set("prettyPrint", "false")
4544	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+resource}:setIamPolicy")
4545	urls += "?" + c.urlParams_.Encode()
4546	req, err := http.NewRequest("POST", urls, body)
4547	if err != nil {
4548		return nil, err
4549	}
4550	req.Header = reqHeaders
4551	googleapi.Expand(req.URL, map[string]string{
4552		"resource": c.resource,
4553	})
4554	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4555}
4556
4557// Do executes the "bigtableadmin.projects.instances.setIamPolicy" call.
4558// Exactly one of *Policy or error will be non-nil. Any non-2xx status
4559// code is an error. Response headers are in either
4560// *Policy.ServerResponse.Header or (if a response was returned at all)
4561// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
4562// check whether the returned error was because http.StatusNotModified
4563// was returned.
4564func (c *ProjectsInstancesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
4565	gensupport.SetOptions(c.urlParams_, opts...)
4566	res, err := c.doRequest("json")
4567	if res != nil && res.StatusCode == http.StatusNotModified {
4568		if res.Body != nil {
4569			res.Body.Close()
4570		}
4571		return nil, &googleapi.Error{
4572			Code:   res.StatusCode,
4573			Header: res.Header,
4574		}
4575	}
4576	if err != nil {
4577		return nil, err
4578	}
4579	defer googleapi.CloseBody(res)
4580	if err := googleapi.CheckResponse(res); err != nil {
4581		return nil, err
4582	}
4583	ret := &Policy{
4584		ServerResponse: googleapi.ServerResponse{
4585			Header:         res.Header,
4586			HTTPStatusCode: res.StatusCode,
4587		},
4588	}
4589	target := &ret
4590	if err := gensupport.DecodeResponse(target, res); err != nil {
4591		return nil, err
4592	}
4593	return ret, nil
4594	// {
4595	//   "description": "Sets the access control policy on an instance resource. Replaces any existing policy.",
4596	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}:setIamPolicy",
4597	//   "httpMethod": "POST",
4598	//   "id": "bigtableadmin.projects.instances.setIamPolicy",
4599	//   "parameterOrder": [
4600	//     "resource"
4601	//   ],
4602	//   "parameters": {
4603	//     "resource": {
4604	//       "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.",
4605	//       "location": "path",
4606	//       "pattern": "^projects/[^/]+/instances/[^/]+$",
4607	//       "required": true,
4608	//       "type": "string"
4609	//     }
4610	//   },
4611	//   "path": "v2/{+resource}:setIamPolicy",
4612	//   "request": {
4613	//     "$ref": "SetIamPolicyRequest"
4614	//   },
4615	//   "response": {
4616	//     "$ref": "Policy"
4617	//   },
4618	//   "scopes": [
4619	//     "https://www.googleapis.com/auth/bigtable.admin",
4620	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
4621	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
4622	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
4623	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
4624	//     "https://www.googleapis.com/auth/cloud-platform"
4625	//   ]
4626	// }
4627
4628}
4629
4630// method id "bigtableadmin.projects.instances.testIamPermissions":
4631
4632type ProjectsInstancesTestIamPermissionsCall struct {
4633	s                         *Service
4634	resource                  string
4635	testiampermissionsrequest *TestIamPermissionsRequest
4636	urlParams_                gensupport.URLParams
4637	ctx_                      context.Context
4638	header_                   http.Header
4639}
4640
4641// TestIamPermissions: Returns permissions that the caller has on the
4642// specified instance resource.
4643//
4644// - resource: REQUIRED: The resource for which the policy detail is
4645//   being requested. See the operation documentation for the
4646//   appropriate value for this field.
4647func (r *ProjectsInstancesService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *ProjectsInstancesTestIamPermissionsCall {
4648	c := &ProjectsInstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4649	c.resource = resource
4650	c.testiampermissionsrequest = testiampermissionsrequest
4651	return c
4652}
4653
4654// Fields allows partial responses to be retrieved. See
4655// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4656// for more information.
4657func (c *ProjectsInstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ProjectsInstancesTestIamPermissionsCall {
4658	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4659	return c
4660}
4661
4662// Context sets the context to be used in this call's Do method. Any
4663// pending HTTP request will be aborted if the provided context is
4664// canceled.
4665func (c *ProjectsInstancesTestIamPermissionsCall) Context(ctx context.Context) *ProjectsInstancesTestIamPermissionsCall {
4666	c.ctx_ = ctx
4667	return c
4668}
4669
4670// Header returns an http.Header that can be modified by the caller to
4671// add HTTP headers to the request.
4672func (c *ProjectsInstancesTestIamPermissionsCall) Header() http.Header {
4673	if c.header_ == nil {
4674		c.header_ = make(http.Header)
4675	}
4676	return c.header_
4677}
4678
4679func (c *ProjectsInstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
4680	reqHeaders := make(http.Header)
4681	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
4682	for k, v := range c.header_ {
4683		reqHeaders[k] = v
4684	}
4685	reqHeaders.Set("User-Agent", c.s.userAgent())
4686	var body io.Reader = nil
4687	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest)
4688	if err != nil {
4689		return nil, err
4690	}
4691	reqHeaders.Set("Content-Type", "application/json")
4692	c.urlParams_.Set("alt", alt)
4693	c.urlParams_.Set("prettyPrint", "false")
4694	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+resource}:testIamPermissions")
4695	urls += "?" + c.urlParams_.Encode()
4696	req, err := http.NewRequest("POST", urls, body)
4697	if err != nil {
4698		return nil, err
4699	}
4700	req.Header = reqHeaders
4701	googleapi.Expand(req.URL, map[string]string{
4702		"resource": c.resource,
4703	})
4704	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4705}
4706
4707// Do executes the "bigtableadmin.projects.instances.testIamPermissions" call.
4708// Exactly one of *TestIamPermissionsResponse or error will be non-nil.
4709// Any non-2xx status code is an error. Response headers are in either
4710// *TestIamPermissionsResponse.ServerResponse.Header or (if a response
4711// was returned at all) in error.(*googleapi.Error).Header. Use
4712// googleapi.IsNotModified to check whether the returned error was
4713// because http.StatusNotModified was returned.
4714func (c *ProjectsInstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) {
4715	gensupport.SetOptions(c.urlParams_, opts...)
4716	res, err := c.doRequest("json")
4717	if res != nil && res.StatusCode == http.StatusNotModified {
4718		if res.Body != nil {
4719			res.Body.Close()
4720		}
4721		return nil, &googleapi.Error{
4722			Code:   res.StatusCode,
4723			Header: res.Header,
4724		}
4725	}
4726	if err != nil {
4727		return nil, err
4728	}
4729	defer googleapi.CloseBody(res)
4730	if err := googleapi.CheckResponse(res); err != nil {
4731		return nil, err
4732	}
4733	ret := &TestIamPermissionsResponse{
4734		ServerResponse: googleapi.ServerResponse{
4735			Header:         res.Header,
4736			HTTPStatusCode: res.StatusCode,
4737		},
4738	}
4739	target := &ret
4740	if err := gensupport.DecodeResponse(target, res); err != nil {
4741		return nil, err
4742	}
4743	return ret, nil
4744	// {
4745	//   "description": "Returns permissions that the caller has on the specified instance resource.",
4746	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}:testIamPermissions",
4747	//   "httpMethod": "POST",
4748	//   "id": "bigtableadmin.projects.instances.testIamPermissions",
4749	//   "parameterOrder": [
4750	//     "resource"
4751	//   ],
4752	//   "parameters": {
4753	//     "resource": {
4754	//       "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.",
4755	//       "location": "path",
4756	//       "pattern": "^projects/[^/]+/instances/[^/]+$",
4757	//       "required": true,
4758	//       "type": "string"
4759	//     }
4760	//   },
4761	//   "path": "v2/{+resource}:testIamPermissions",
4762	//   "request": {
4763	//     "$ref": "TestIamPermissionsRequest"
4764	//   },
4765	//   "response": {
4766	//     "$ref": "TestIamPermissionsResponse"
4767	//   },
4768	//   "scopes": [
4769	//     "https://www.googleapis.com/auth/bigtable.admin",
4770	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
4771	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
4772	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
4773	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
4774	//     "https://www.googleapis.com/auth/cloud-platform"
4775	//   ]
4776	// }
4777
4778}
4779
4780// method id "bigtableadmin.projects.instances.update":
4781
4782type ProjectsInstancesUpdateCall struct {
4783	s          *Service
4784	name       string
4785	instance   *Instance
4786	urlParams_ gensupport.URLParams
4787	ctx_       context.Context
4788	header_    http.Header
4789}
4790
4791// Update: Updates an instance within a project. This method updates
4792// only the display name and type for an Instance. To update other
4793// Instance properties, such as labels, use PartialUpdateInstance.
4794//
4795// - name: The unique name of the instance. Values are of the form
4796//   `projects/{project}/instances/a-z+[a-z0-9]`.
4797func (r *ProjectsInstancesService) Update(name string, instance *Instance) *ProjectsInstancesUpdateCall {
4798	c := &ProjectsInstancesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4799	c.name = name
4800	c.instance = instance
4801	return c
4802}
4803
4804// Fields allows partial responses to be retrieved. See
4805// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4806// for more information.
4807func (c *ProjectsInstancesUpdateCall) Fields(s ...googleapi.Field) *ProjectsInstancesUpdateCall {
4808	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4809	return c
4810}
4811
4812// Context sets the context to be used in this call's Do method. Any
4813// pending HTTP request will be aborted if the provided context is
4814// canceled.
4815func (c *ProjectsInstancesUpdateCall) Context(ctx context.Context) *ProjectsInstancesUpdateCall {
4816	c.ctx_ = ctx
4817	return c
4818}
4819
4820// Header returns an http.Header that can be modified by the caller to
4821// add HTTP headers to the request.
4822func (c *ProjectsInstancesUpdateCall) Header() http.Header {
4823	if c.header_ == nil {
4824		c.header_ = make(http.Header)
4825	}
4826	return c.header_
4827}
4828
4829func (c *ProjectsInstancesUpdateCall) doRequest(alt string) (*http.Response, error) {
4830	reqHeaders := make(http.Header)
4831	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
4832	for k, v := range c.header_ {
4833		reqHeaders[k] = v
4834	}
4835	reqHeaders.Set("User-Agent", c.s.userAgent())
4836	var body io.Reader = nil
4837	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
4838	if err != nil {
4839		return nil, err
4840	}
4841	reqHeaders.Set("Content-Type", "application/json")
4842	c.urlParams_.Set("alt", alt)
4843	c.urlParams_.Set("prettyPrint", "false")
4844	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
4845	urls += "?" + c.urlParams_.Encode()
4846	req, err := http.NewRequest("PUT", urls, body)
4847	if err != nil {
4848		return nil, err
4849	}
4850	req.Header = reqHeaders
4851	googleapi.Expand(req.URL, map[string]string{
4852		"name": c.name,
4853	})
4854	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4855}
4856
4857// Do executes the "bigtableadmin.projects.instances.update" call.
4858// Exactly one of *Instance or error will be non-nil. Any non-2xx status
4859// code is an error. Response headers are in either
4860// *Instance.ServerResponse.Header or (if a response was returned at
4861// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4862// to check whether the returned error was because
4863// http.StatusNotModified was returned.
4864func (c *ProjectsInstancesUpdateCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
4865	gensupport.SetOptions(c.urlParams_, opts...)
4866	res, err := c.doRequest("json")
4867	if res != nil && res.StatusCode == http.StatusNotModified {
4868		if res.Body != nil {
4869			res.Body.Close()
4870		}
4871		return nil, &googleapi.Error{
4872			Code:   res.StatusCode,
4873			Header: res.Header,
4874		}
4875	}
4876	if err != nil {
4877		return nil, err
4878	}
4879	defer googleapi.CloseBody(res)
4880	if err := googleapi.CheckResponse(res); err != nil {
4881		return nil, err
4882	}
4883	ret := &Instance{
4884		ServerResponse: googleapi.ServerResponse{
4885			Header:         res.Header,
4886			HTTPStatusCode: res.StatusCode,
4887		},
4888	}
4889	target := &ret
4890	if err := gensupport.DecodeResponse(target, res); err != nil {
4891		return nil, err
4892	}
4893	return ret, nil
4894	// {
4895	//   "description": "Updates an instance within a project. This method updates only the display name and type for an Instance. To update other Instance properties, such as labels, use PartialUpdateInstance.",
4896	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}",
4897	//   "httpMethod": "PUT",
4898	//   "id": "bigtableadmin.projects.instances.update",
4899	//   "parameterOrder": [
4900	//     "name"
4901	//   ],
4902	//   "parameters": {
4903	//     "name": {
4904	//       "description": "The unique name of the instance. Values are of the form `projects/{project}/instances/a-z+[a-z0-9]`.",
4905	//       "location": "path",
4906	//       "pattern": "^projects/[^/]+/instances/[^/]+$",
4907	//       "required": true,
4908	//       "type": "string"
4909	//     }
4910	//   },
4911	//   "path": "v2/{+name}",
4912	//   "request": {
4913	//     "$ref": "Instance"
4914	//   },
4915	//   "response": {
4916	//     "$ref": "Instance"
4917	//   },
4918	//   "scopes": [
4919	//     "https://www.googleapis.com/auth/bigtable.admin",
4920	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
4921	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
4922	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
4923	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
4924	//     "https://www.googleapis.com/auth/cloud-platform"
4925	//   ]
4926	// }
4927
4928}
4929
4930// method id "bigtableadmin.projects.instances.appProfiles.create":
4931
4932type ProjectsInstancesAppProfilesCreateCall struct {
4933	s          *Service
4934	parent     string
4935	appprofile *AppProfile
4936	urlParams_ gensupport.URLParams
4937	ctx_       context.Context
4938	header_    http.Header
4939}
4940
4941// Create: Creates an app profile within an instance.
4942//
4943// - parent: The unique name of the instance in which to create the new
4944//   app profile. Values are of the form
4945//   `projects/{project}/instances/{instance}`.
4946func (r *ProjectsInstancesAppProfilesService) Create(parent string, appprofile *AppProfile) *ProjectsInstancesAppProfilesCreateCall {
4947	c := &ProjectsInstancesAppProfilesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4948	c.parent = parent
4949	c.appprofile = appprofile
4950	return c
4951}
4952
4953// AppProfileId sets the optional parameter "appProfileId": Required.
4954// The ID to be used when referring to the new app profile within its
4955// instance, e.g., just `myprofile` rather than
4956// `projects/myproject/instances/myinstance/appProfiles/myprofile`.
4957func (c *ProjectsInstancesAppProfilesCreateCall) AppProfileId(appProfileId string) *ProjectsInstancesAppProfilesCreateCall {
4958	c.urlParams_.Set("appProfileId", appProfileId)
4959	return c
4960}
4961
4962// IgnoreWarnings sets the optional parameter "ignoreWarnings": If true,
4963// ignore safety checks when creating the app profile.
4964func (c *ProjectsInstancesAppProfilesCreateCall) IgnoreWarnings(ignoreWarnings bool) *ProjectsInstancesAppProfilesCreateCall {
4965	c.urlParams_.Set("ignoreWarnings", fmt.Sprint(ignoreWarnings))
4966	return c
4967}
4968
4969// Fields allows partial responses to be retrieved. See
4970// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4971// for more information.
4972func (c *ProjectsInstancesAppProfilesCreateCall) Fields(s ...googleapi.Field) *ProjectsInstancesAppProfilesCreateCall {
4973	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4974	return c
4975}
4976
4977// Context sets the context to be used in this call's Do method. Any
4978// pending HTTP request will be aborted if the provided context is
4979// canceled.
4980func (c *ProjectsInstancesAppProfilesCreateCall) Context(ctx context.Context) *ProjectsInstancesAppProfilesCreateCall {
4981	c.ctx_ = ctx
4982	return c
4983}
4984
4985// Header returns an http.Header that can be modified by the caller to
4986// add HTTP headers to the request.
4987func (c *ProjectsInstancesAppProfilesCreateCall) Header() http.Header {
4988	if c.header_ == nil {
4989		c.header_ = make(http.Header)
4990	}
4991	return c.header_
4992}
4993
4994func (c *ProjectsInstancesAppProfilesCreateCall) doRequest(alt string) (*http.Response, error) {
4995	reqHeaders := make(http.Header)
4996	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
4997	for k, v := range c.header_ {
4998		reqHeaders[k] = v
4999	}
5000	reqHeaders.Set("User-Agent", c.s.userAgent())
5001	var body io.Reader = nil
5002	body, err := googleapi.WithoutDataWrapper.JSONReader(c.appprofile)
5003	if err != nil {
5004		return nil, err
5005	}
5006	reqHeaders.Set("Content-Type", "application/json")
5007	c.urlParams_.Set("alt", alt)
5008	c.urlParams_.Set("prettyPrint", "false")
5009	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+parent}/appProfiles")
5010	urls += "?" + c.urlParams_.Encode()
5011	req, err := http.NewRequest("POST", urls, body)
5012	if err != nil {
5013		return nil, err
5014	}
5015	req.Header = reqHeaders
5016	googleapi.Expand(req.URL, map[string]string{
5017		"parent": c.parent,
5018	})
5019	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5020}
5021
5022// Do executes the "bigtableadmin.projects.instances.appProfiles.create" call.
5023// Exactly one of *AppProfile or error will be non-nil. Any non-2xx
5024// status code is an error. Response headers are in either
5025// *AppProfile.ServerResponse.Header or (if a response was returned at
5026// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5027// to check whether the returned error was because
5028// http.StatusNotModified was returned.
5029func (c *ProjectsInstancesAppProfilesCreateCall) Do(opts ...googleapi.CallOption) (*AppProfile, error) {
5030	gensupport.SetOptions(c.urlParams_, opts...)
5031	res, err := c.doRequest("json")
5032	if res != nil && res.StatusCode == http.StatusNotModified {
5033		if res.Body != nil {
5034			res.Body.Close()
5035		}
5036		return nil, &googleapi.Error{
5037			Code:   res.StatusCode,
5038			Header: res.Header,
5039		}
5040	}
5041	if err != nil {
5042		return nil, err
5043	}
5044	defer googleapi.CloseBody(res)
5045	if err := googleapi.CheckResponse(res); err != nil {
5046		return nil, err
5047	}
5048	ret := &AppProfile{
5049		ServerResponse: googleapi.ServerResponse{
5050			Header:         res.Header,
5051			HTTPStatusCode: res.StatusCode,
5052		},
5053	}
5054	target := &ret
5055	if err := gensupport.DecodeResponse(target, res); err != nil {
5056		return nil, err
5057	}
5058	return ret, nil
5059	// {
5060	//   "description": "Creates an app profile within an instance.",
5061	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/appProfiles",
5062	//   "httpMethod": "POST",
5063	//   "id": "bigtableadmin.projects.instances.appProfiles.create",
5064	//   "parameterOrder": [
5065	//     "parent"
5066	//   ],
5067	//   "parameters": {
5068	//     "appProfileId": {
5069	//       "description": "Required. The ID to be used when referring to the new app profile within its instance, e.g., just `myprofile` rather than `projects/myproject/instances/myinstance/appProfiles/myprofile`.",
5070	//       "location": "query",
5071	//       "type": "string"
5072	//     },
5073	//     "ignoreWarnings": {
5074	//       "description": "If true, ignore safety checks when creating the app profile.",
5075	//       "location": "query",
5076	//       "type": "boolean"
5077	//     },
5078	//     "parent": {
5079	//       "description": "Required. The unique name of the instance in which to create the new app profile. Values are of the form `projects/{project}/instances/{instance}`.",
5080	//       "location": "path",
5081	//       "pattern": "^projects/[^/]+/instances/[^/]+$",
5082	//       "required": true,
5083	//       "type": "string"
5084	//     }
5085	//   },
5086	//   "path": "v2/{+parent}/appProfiles",
5087	//   "request": {
5088	//     "$ref": "AppProfile"
5089	//   },
5090	//   "response": {
5091	//     "$ref": "AppProfile"
5092	//   },
5093	//   "scopes": [
5094	//     "https://www.googleapis.com/auth/bigtable.admin",
5095	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
5096	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
5097	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
5098	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
5099	//     "https://www.googleapis.com/auth/cloud-platform"
5100	//   ]
5101	// }
5102
5103}
5104
5105// method id "bigtableadmin.projects.instances.appProfiles.delete":
5106
5107type ProjectsInstancesAppProfilesDeleteCall struct {
5108	s          *Service
5109	name       string
5110	urlParams_ gensupport.URLParams
5111	ctx_       context.Context
5112	header_    http.Header
5113}
5114
5115// Delete: Deletes an app profile from an instance.
5116//
5117// - name: The unique name of the app profile to be deleted. Values are
5118//   of the form
5119//   `projects/{project}/instances/{instance}/appProfiles/{app_profile}`.
5120func (r *ProjectsInstancesAppProfilesService) Delete(name string) *ProjectsInstancesAppProfilesDeleteCall {
5121	c := &ProjectsInstancesAppProfilesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5122	c.name = name
5123	return c
5124}
5125
5126// IgnoreWarnings sets the optional parameter "ignoreWarnings":
5127// Required. If true, ignore safety checks when deleting the app
5128// profile.
5129func (c *ProjectsInstancesAppProfilesDeleteCall) IgnoreWarnings(ignoreWarnings bool) *ProjectsInstancesAppProfilesDeleteCall {
5130	c.urlParams_.Set("ignoreWarnings", fmt.Sprint(ignoreWarnings))
5131	return c
5132}
5133
5134// Fields allows partial responses to be retrieved. See
5135// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5136// for more information.
5137func (c *ProjectsInstancesAppProfilesDeleteCall) Fields(s ...googleapi.Field) *ProjectsInstancesAppProfilesDeleteCall {
5138	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5139	return c
5140}
5141
5142// Context sets the context to be used in this call's Do method. Any
5143// pending HTTP request will be aborted if the provided context is
5144// canceled.
5145func (c *ProjectsInstancesAppProfilesDeleteCall) Context(ctx context.Context) *ProjectsInstancesAppProfilesDeleteCall {
5146	c.ctx_ = ctx
5147	return c
5148}
5149
5150// Header returns an http.Header that can be modified by the caller to
5151// add HTTP headers to the request.
5152func (c *ProjectsInstancesAppProfilesDeleteCall) Header() http.Header {
5153	if c.header_ == nil {
5154		c.header_ = make(http.Header)
5155	}
5156	return c.header_
5157}
5158
5159func (c *ProjectsInstancesAppProfilesDeleteCall) doRequest(alt string) (*http.Response, error) {
5160	reqHeaders := make(http.Header)
5161	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
5162	for k, v := range c.header_ {
5163		reqHeaders[k] = v
5164	}
5165	reqHeaders.Set("User-Agent", c.s.userAgent())
5166	var body io.Reader = nil
5167	c.urlParams_.Set("alt", alt)
5168	c.urlParams_.Set("prettyPrint", "false")
5169	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
5170	urls += "?" + c.urlParams_.Encode()
5171	req, err := http.NewRequest("DELETE", urls, body)
5172	if err != nil {
5173		return nil, err
5174	}
5175	req.Header = reqHeaders
5176	googleapi.Expand(req.URL, map[string]string{
5177		"name": c.name,
5178	})
5179	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5180}
5181
5182// Do executes the "bigtableadmin.projects.instances.appProfiles.delete" call.
5183// Exactly one of *Empty or error will be non-nil. Any non-2xx status
5184// code is an error. Response headers are in either
5185// *Empty.ServerResponse.Header or (if a response was returned at all)
5186// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5187// check whether the returned error was because http.StatusNotModified
5188// was returned.
5189func (c *ProjectsInstancesAppProfilesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
5190	gensupport.SetOptions(c.urlParams_, opts...)
5191	res, err := c.doRequest("json")
5192	if res != nil && res.StatusCode == http.StatusNotModified {
5193		if res.Body != nil {
5194			res.Body.Close()
5195		}
5196		return nil, &googleapi.Error{
5197			Code:   res.StatusCode,
5198			Header: res.Header,
5199		}
5200	}
5201	if err != nil {
5202		return nil, err
5203	}
5204	defer googleapi.CloseBody(res)
5205	if err := googleapi.CheckResponse(res); err != nil {
5206		return nil, err
5207	}
5208	ret := &Empty{
5209		ServerResponse: googleapi.ServerResponse{
5210			Header:         res.Header,
5211			HTTPStatusCode: res.StatusCode,
5212		},
5213	}
5214	target := &ret
5215	if err := gensupport.DecodeResponse(target, res); err != nil {
5216		return nil, err
5217	}
5218	return ret, nil
5219	// {
5220	//   "description": "Deletes an app profile from an instance.",
5221	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/appProfiles/{appProfilesId}",
5222	//   "httpMethod": "DELETE",
5223	//   "id": "bigtableadmin.projects.instances.appProfiles.delete",
5224	//   "parameterOrder": [
5225	//     "name"
5226	//   ],
5227	//   "parameters": {
5228	//     "ignoreWarnings": {
5229	//       "description": "Required. If true, ignore safety checks when deleting the app profile.",
5230	//       "location": "query",
5231	//       "type": "boolean"
5232	//     },
5233	//     "name": {
5234	//       "description": "Required. The unique name of the app profile to be deleted. Values are of the form `projects/{project}/instances/{instance}/appProfiles/{app_profile}`.",
5235	//       "location": "path",
5236	//       "pattern": "^projects/[^/]+/instances/[^/]+/appProfiles/[^/]+$",
5237	//       "required": true,
5238	//       "type": "string"
5239	//     }
5240	//   },
5241	//   "path": "v2/{+name}",
5242	//   "response": {
5243	//     "$ref": "Empty"
5244	//   },
5245	//   "scopes": [
5246	//     "https://www.googleapis.com/auth/bigtable.admin",
5247	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
5248	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
5249	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
5250	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
5251	//     "https://www.googleapis.com/auth/cloud-platform"
5252	//   ]
5253	// }
5254
5255}
5256
5257// method id "bigtableadmin.projects.instances.appProfiles.get":
5258
5259type ProjectsInstancesAppProfilesGetCall struct {
5260	s            *Service
5261	name         string
5262	urlParams_   gensupport.URLParams
5263	ifNoneMatch_ string
5264	ctx_         context.Context
5265	header_      http.Header
5266}
5267
5268// Get: Gets information about an app profile.
5269//
5270// - name: The unique name of the requested app profile. Values are of
5271//   the form
5272//   `projects/{project}/instances/{instance}/appProfiles/{app_profile}`.
5273func (r *ProjectsInstancesAppProfilesService) Get(name string) *ProjectsInstancesAppProfilesGetCall {
5274	c := &ProjectsInstancesAppProfilesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5275	c.name = name
5276	return c
5277}
5278
5279// Fields allows partial responses to be retrieved. See
5280// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5281// for more information.
5282func (c *ProjectsInstancesAppProfilesGetCall) Fields(s ...googleapi.Field) *ProjectsInstancesAppProfilesGetCall {
5283	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5284	return c
5285}
5286
5287// IfNoneMatch sets the optional parameter which makes the operation
5288// fail if the object's ETag matches the given value. This is useful for
5289// getting updates only after the object has changed since the last
5290// request. Use googleapi.IsNotModified to check whether the response
5291// error from Do is the result of In-None-Match.
5292func (c *ProjectsInstancesAppProfilesGetCall) IfNoneMatch(entityTag string) *ProjectsInstancesAppProfilesGetCall {
5293	c.ifNoneMatch_ = entityTag
5294	return c
5295}
5296
5297// Context sets the context to be used in this call's Do method. Any
5298// pending HTTP request will be aborted if the provided context is
5299// canceled.
5300func (c *ProjectsInstancesAppProfilesGetCall) Context(ctx context.Context) *ProjectsInstancesAppProfilesGetCall {
5301	c.ctx_ = ctx
5302	return c
5303}
5304
5305// Header returns an http.Header that can be modified by the caller to
5306// add HTTP headers to the request.
5307func (c *ProjectsInstancesAppProfilesGetCall) Header() http.Header {
5308	if c.header_ == nil {
5309		c.header_ = make(http.Header)
5310	}
5311	return c.header_
5312}
5313
5314func (c *ProjectsInstancesAppProfilesGetCall) doRequest(alt string) (*http.Response, error) {
5315	reqHeaders := make(http.Header)
5316	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
5317	for k, v := range c.header_ {
5318		reqHeaders[k] = v
5319	}
5320	reqHeaders.Set("User-Agent", c.s.userAgent())
5321	if c.ifNoneMatch_ != "" {
5322		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5323	}
5324	var body io.Reader = nil
5325	c.urlParams_.Set("alt", alt)
5326	c.urlParams_.Set("prettyPrint", "false")
5327	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
5328	urls += "?" + c.urlParams_.Encode()
5329	req, err := http.NewRequest("GET", urls, body)
5330	if err != nil {
5331		return nil, err
5332	}
5333	req.Header = reqHeaders
5334	googleapi.Expand(req.URL, map[string]string{
5335		"name": c.name,
5336	})
5337	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5338}
5339
5340// Do executes the "bigtableadmin.projects.instances.appProfiles.get" call.
5341// Exactly one of *AppProfile or error will be non-nil. Any non-2xx
5342// status code is an error. Response headers are in either
5343// *AppProfile.ServerResponse.Header or (if a response was returned at
5344// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5345// to check whether the returned error was because
5346// http.StatusNotModified was returned.
5347func (c *ProjectsInstancesAppProfilesGetCall) Do(opts ...googleapi.CallOption) (*AppProfile, error) {
5348	gensupport.SetOptions(c.urlParams_, opts...)
5349	res, err := c.doRequest("json")
5350	if res != nil && res.StatusCode == http.StatusNotModified {
5351		if res.Body != nil {
5352			res.Body.Close()
5353		}
5354		return nil, &googleapi.Error{
5355			Code:   res.StatusCode,
5356			Header: res.Header,
5357		}
5358	}
5359	if err != nil {
5360		return nil, err
5361	}
5362	defer googleapi.CloseBody(res)
5363	if err := googleapi.CheckResponse(res); err != nil {
5364		return nil, err
5365	}
5366	ret := &AppProfile{
5367		ServerResponse: googleapi.ServerResponse{
5368			Header:         res.Header,
5369			HTTPStatusCode: res.StatusCode,
5370		},
5371	}
5372	target := &ret
5373	if err := gensupport.DecodeResponse(target, res); err != nil {
5374		return nil, err
5375	}
5376	return ret, nil
5377	// {
5378	//   "description": "Gets information about an app profile.",
5379	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/appProfiles/{appProfilesId}",
5380	//   "httpMethod": "GET",
5381	//   "id": "bigtableadmin.projects.instances.appProfiles.get",
5382	//   "parameterOrder": [
5383	//     "name"
5384	//   ],
5385	//   "parameters": {
5386	//     "name": {
5387	//       "description": "Required. The unique name of the requested app profile. Values are of the form `projects/{project}/instances/{instance}/appProfiles/{app_profile}`.",
5388	//       "location": "path",
5389	//       "pattern": "^projects/[^/]+/instances/[^/]+/appProfiles/[^/]+$",
5390	//       "required": true,
5391	//       "type": "string"
5392	//     }
5393	//   },
5394	//   "path": "v2/{+name}",
5395	//   "response": {
5396	//     "$ref": "AppProfile"
5397	//   },
5398	//   "scopes": [
5399	//     "https://www.googleapis.com/auth/bigtable.admin",
5400	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
5401	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
5402	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
5403	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
5404	//     "https://www.googleapis.com/auth/cloud-platform",
5405	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
5406	//   ]
5407	// }
5408
5409}
5410
5411// method id "bigtableadmin.projects.instances.appProfiles.list":
5412
5413type ProjectsInstancesAppProfilesListCall struct {
5414	s            *Service
5415	parent       string
5416	urlParams_   gensupport.URLParams
5417	ifNoneMatch_ string
5418	ctx_         context.Context
5419	header_      http.Header
5420}
5421
5422// List: Lists information about app profiles in an instance.
5423//
5424// - parent: The unique name of the instance for which a list of app
5425//   profiles is requested. Values are of the form
5426//   `projects/{project}/instances/{instance}`. Use `{instance} = '-'`
5427//   to list AppProfiles for all Instances in a project, e.g.,
5428//   `projects/myproject/instances/-`.
5429func (r *ProjectsInstancesAppProfilesService) List(parent string) *ProjectsInstancesAppProfilesListCall {
5430	c := &ProjectsInstancesAppProfilesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5431	c.parent = parent
5432	return c
5433}
5434
5435// PageSize sets the optional parameter "pageSize": Maximum number of
5436// results per page. A page_size of zero lets the server choose the
5437// number of items to return. A page_size which is strictly positive
5438// will return at most that many items. A negative page_size will cause
5439// an error. Following the first request, subsequent paginated calls are
5440// not required to pass a page_size. If a page_size is set in subsequent
5441// calls, it must match the page_size given in the first request.
5442func (c *ProjectsInstancesAppProfilesListCall) PageSize(pageSize int64) *ProjectsInstancesAppProfilesListCall {
5443	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
5444	return c
5445}
5446
5447// PageToken sets the optional parameter "pageToken": The value of
5448// `next_page_token` returned by a previous call.
5449func (c *ProjectsInstancesAppProfilesListCall) PageToken(pageToken string) *ProjectsInstancesAppProfilesListCall {
5450	c.urlParams_.Set("pageToken", pageToken)
5451	return c
5452}
5453
5454// Fields allows partial responses to be retrieved. See
5455// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5456// for more information.
5457func (c *ProjectsInstancesAppProfilesListCall) Fields(s ...googleapi.Field) *ProjectsInstancesAppProfilesListCall {
5458	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5459	return c
5460}
5461
5462// IfNoneMatch sets the optional parameter which makes the operation
5463// fail if the object's ETag matches the given value. This is useful for
5464// getting updates only after the object has changed since the last
5465// request. Use googleapi.IsNotModified to check whether the response
5466// error from Do is the result of In-None-Match.
5467func (c *ProjectsInstancesAppProfilesListCall) IfNoneMatch(entityTag string) *ProjectsInstancesAppProfilesListCall {
5468	c.ifNoneMatch_ = entityTag
5469	return c
5470}
5471
5472// Context sets the context to be used in this call's Do method. Any
5473// pending HTTP request will be aborted if the provided context is
5474// canceled.
5475func (c *ProjectsInstancesAppProfilesListCall) Context(ctx context.Context) *ProjectsInstancesAppProfilesListCall {
5476	c.ctx_ = ctx
5477	return c
5478}
5479
5480// Header returns an http.Header that can be modified by the caller to
5481// add HTTP headers to the request.
5482func (c *ProjectsInstancesAppProfilesListCall) Header() http.Header {
5483	if c.header_ == nil {
5484		c.header_ = make(http.Header)
5485	}
5486	return c.header_
5487}
5488
5489func (c *ProjectsInstancesAppProfilesListCall) doRequest(alt string) (*http.Response, error) {
5490	reqHeaders := make(http.Header)
5491	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
5492	for k, v := range c.header_ {
5493		reqHeaders[k] = v
5494	}
5495	reqHeaders.Set("User-Agent", c.s.userAgent())
5496	if c.ifNoneMatch_ != "" {
5497		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5498	}
5499	var body io.Reader = nil
5500	c.urlParams_.Set("alt", alt)
5501	c.urlParams_.Set("prettyPrint", "false")
5502	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+parent}/appProfiles")
5503	urls += "?" + c.urlParams_.Encode()
5504	req, err := http.NewRequest("GET", urls, body)
5505	if err != nil {
5506		return nil, err
5507	}
5508	req.Header = reqHeaders
5509	googleapi.Expand(req.URL, map[string]string{
5510		"parent": c.parent,
5511	})
5512	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5513}
5514
5515// Do executes the "bigtableadmin.projects.instances.appProfiles.list" call.
5516// Exactly one of *ListAppProfilesResponse or error will be non-nil. Any
5517// non-2xx status code is an error. Response headers are in either
5518// *ListAppProfilesResponse.ServerResponse.Header or (if a response was
5519// returned at all) in error.(*googleapi.Error).Header. Use
5520// googleapi.IsNotModified to check whether the returned error was
5521// because http.StatusNotModified was returned.
5522func (c *ProjectsInstancesAppProfilesListCall) Do(opts ...googleapi.CallOption) (*ListAppProfilesResponse, error) {
5523	gensupport.SetOptions(c.urlParams_, opts...)
5524	res, err := c.doRequest("json")
5525	if res != nil && res.StatusCode == http.StatusNotModified {
5526		if res.Body != nil {
5527			res.Body.Close()
5528		}
5529		return nil, &googleapi.Error{
5530			Code:   res.StatusCode,
5531			Header: res.Header,
5532		}
5533	}
5534	if err != nil {
5535		return nil, err
5536	}
5537	defer googleapi.CloseBody(res)
5538	if err := googleapi.CheckResponse(res); err != nil {
5539		return nil, err
5540	}
5541	ret := &ListAppProfilesResponse{
5542		ServerResponse: googleapi.ServerResponse{
5543			Header:         res.Header,
5544			HTTPStatusCode: res.StatusCode,
5545		},
5546	}
5547	target := &ret
5548	if err := gensupport.DecodeResponse(target, res); err != nil {
5549		return nil, err
5550	}
5551	return ret, nil
5552	// {
5553	//   "description": "Lists information about app profiles in an instance.",
5554	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/appProfiles",
5555	//   "httpMethod": "GET",
5556	//   "id": "bigtableadmin.projects.instances.appProfiles.list",
5557	//   "parameterOrder": [
5558	//     "parent"
5559	//   ],
5560	//   "parameters": {
5561	//     "pageSize": {
5562	//       "description": "Maximum number of results per page. A page_size of zero lets the server choose the number of items to return. A page_size which is strictly positive will return at most that many items. A negative page_size will cause an error. Following the first request, subsequent paginated calls are not required to pass a page_size. If a page_size is set in subsequent calls, it must match the page_size given in the first request.",
5563	//       "format": "int32",
5564	//       "location": "query",
5565	//       "type": "integer"
5566	//     },
5567	//     "pageToken": {
5568	//       "description": "The value of `next_page_token` returned by a previous call.",
5569	//       "location": "query",
5570	//       "type": "string"
5571	//     },
5572	//     "parent": {
5573	//       "description": "Required. The unique name of the instance for which a list of app profiles is requested. Values are of the form `projects/{project}/instances/{instance}`. Use `{instance} = '-'` to list AppProfiles for all Instances in a project, e.g., `projects/myproject/instances/-`.",
5574	//       "location": "path",
5575	//       "pattern": "^projects/[^/]+/instances/[^/]+$",
5576	//       "required": true,
5577	//       "type": "string"
5578	//     }
5579	//   },
5580	//   "path": "v2/{+parent}/appProfiles",
5581	//   "response": {
5582	//     "$ref": "ListAppProfilesResponse"
5583	//   },
5584	//   "scopes": [
5585	//     "https://www.googleapis.com/auth/bigtable.admin",
5586	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
5587	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
5588	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
5589	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
5590	//     "https://www.googleapis.com/auth/cloud-platform"
5591	//   ]
5592	// }
5593
5594}
5595
5596// Pages invokes f for each page of results.
5597// A non-nil error returned from f will halt the iteration.
5598// The provided context supersedes any context provided to the Context method.
5599func (c *ProjectsInstancesAppProfilesListCall) Pages(ctx context.Context, f func(*ListAppProfilesResponse) error) error {
5600	c.ctx_ = ctx
5601	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
5602	for {
5603		x, err := c.Do()
5604		if err != nil {
5605			return err
5606		}
5607		if err := f(x); err != nil {
5608			return err
5609		}
5610		if x.NextPageToken == "" {
5611			return nil
5612		}
5613		c.PageToken(x.NextPageToken)
5614	}
5615}
5616
5617// method id "bigtableadmin.projects.instances.appProfiles.patch":
5618
5619type ProjectsInstancesAppProfilesPatchCall struct {
5620	s          *Service
5621	name       string
5622	appprofile *AppProfile
5623	urlParams_ gensupport.URLParams
5624	ctx_       context.Context
5625	header_    http.Header
5626}
5627
5628// Patch: Updates an app profile within an instance.
5629//
5630// - name: The unique name of the app profile. Values are of the form
5631//   `projects/{project}/instances/{instance}/appProfiles/_a-zA-Z0-9*`.
5632func (r *ProjectsInstancesAppProfilesService) Patch(name string, appprofile *AppProfile) *ProjectsInstancesAppProfilesPatchCall {
5633	c := &ProjectsInstancesAppProfilesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5634	c.name = name
5635	c.appprofile = appprofile
5636	return c
5637}
5638
5639// IgnoreWarnings sets the optional parameter "ignoreWarnings": If true,
5640// ignore safety checks when updating the app profile.
5641func (c *ProjectsInstancesAppProfilesPatchCall) IgnoreWarnings(ignoreWarnings bool) *ProjectsInstancesAppProfilesPatchCall {
5642	c.urlParams_.Set("ignoreWarnings", fmt.Sprint(ignoreWarnings))
5643	return c
5644}
5645
5646// UpdateMask sets the optional parameter "updateMask": Required. The
5647// subset of app profile fields which should be replaced. If unset, all
5648// fields will be replaced.
5649func (c *ProjectsInstancesAppProfilesPatchCall) UpdateMask(updateMask string) *ProjectsInstancesAppProfilesPatchCall {
5650	c.urlParams_.Set("updateMask", updateMask)
5651	return c
5652}
5653
5654// Fields allows partial responses to be retrieved. See
5655// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5656// for more information.
5657func (c *ProjectsInstancesAppProfilesPatchCall) Fields(s ...googleapi.Field) *ProjectsInstancesAppProfilesPatchCall {
5658	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5659	return c
5660}
5661
5662// Context sets the context to be used in this call's Do method. Any
5663// pending HTTP request will be aborted if the provided context is
5664// canceled.
5665func (c *ProjectsInstancesAppProfilesPatchCall) Context(ctx context.Context) *ProjectsInstancesAppProfilesPatchCall {
5666	c.ctx_ = ctx
5667	return c
5668}
5669
5670// Header returns an http.Header that can be modified by the caller to
5671// add HTTP headers to the request.
5672func (c *ProjectsInstancesAppProfilesPatchCall) Header() http.Header {
5673	if c.header_ == nil {
5674		c.header_ = make(http.Header)
5675	}
5676	return c.header_
5677}
5678
5679func (c *ProjectsInstancesAppProfilesPatchCall) doRequest(alt string) (*http.Response, error) {
5680	reqHeaders := make(http.Header)
5681	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
5682	for k, v := range c.header_ {
5683		reqHeaders[k] = v
5684	}
5685	reqHeaders.Set("User-Agent", c.s.userAgent())
5686	var body io.Reader = nil
5687	body, err := googleapi.WithoutDataWrapper.JSONReader(c.appprofile)
5688	if err != nil {
5689		return nil, err
5690	}
5691	reqHeaders.Set("Content-Type", "application/json")
5692	c.urlParams_.Set("alt", alt)
5693	c.urlParams_.Set("prettyPrint", "false")
5694	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
5695	urls += "?" + c.urlParams_.Encode()
5696	req, err := http.NewRequest("PATCH", urls, body)
5697	if err != nil {
5698		return nil, err
5699	}
5700	req.Header = reqHeaders
5701	googleapi.Expand(req.URL, map[string]string{
5702		"name": c.name,
5703	})
5704	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5705}
5706
5707// Do executes the "bigtableadmin.projects.instances.appProfiles.patch" call.
5708// Exactly one of *Operation or error will be non-nil. Any non-2xx
5709// status code is an error. Response headers are in either
5710// *Operation.ServerResponse.Header or (if a response was returned at
5711// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5712// to check whether the returned error was because
5713// http.StatusNotModified was returned.
5714func (c *ProjectsInstancesAppProfilesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
5715	gensupport.SetOptions(c.urlParams_, opts...)
5716	res, err := c.doRequest("json")
5717	if res != nil && res.StatusCode == http.StatusNotModified {
5718		if res.Body != nil {
5719			res.Body.Close()
5720		}
5721		return nil, &googleapi.Error{
5722			Code:   res.StatusCode,
5723			Header: res.Header,
5724		}
5725	}
5726	if err != nil {
5727		return nil, err
5728	}
5729	defer googleapi.CloseBody(res)
5730	if err := googleapi.CheckResponse(res); err != nil {
5731		return nil, err
5732	}
5733	ret := &Operation{
5734		ServerResponse: googleapi.ServerResponse{
5735			Header:         res.Header,
5736			HTTPStatusCode: res.StatusCode,
5737		},
5738	}
5739	target := &ret
5740	if err := gensupport.DecodeResponse(target, res); err != nil {
5741		return nil, err
5742	}
5743	return ret, nil
5744	// {
5745	//   "description": "Updates an app profile within an instance.",
5746	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/appProfiles/{appProfilesId}",
5747	//   "httpMethod": "PATCH",
5748	//   "id": "bigtableadmin.projects.instances.appProfiles.patch",
5749	//   "parameterOrder": [
5750	//     "name"
5751	//   ],
5752	//   "parameters": {
5753	//     "ignoreWarnings": {
5754	//       "description": "If true, ignore safety checks when updating the app profile.",
5755	//       "location": "query",
5756	//       "type": "boolean"
5757	//     },
5758	//     "name": {
5759	//       "description": "The unique name of the app profile. Values are of the form `projects/{project}/instances/{instance}/appProfiles/_a-zA-Z0-9*`.",
5760	//       "location": "path",
5761	//       "pattern": "^projects/[^/]+/instances/[^/]+/appProfiles/[^/]+$",
5762	//       "required": true,
5763	//       "type": "string"
5764	//     },
5765	//     "updateMask": {
5766	//       "description": "Required. The subset of app profile fields which should be replaced. If unset, all fields will be replaced.",
5767	//       "format": "google-fieldmask",
5768	//       "location": "query",
5769	//       "type": "string"
5770	//     }
5771	//   },
5772	//   "path": "v2/{+name}",
5773	//   "request": {
5774	//     "$ref": "AppProfile"
5775	//   },
5776	//   "response": {
5777	//     "$ref": "Operation"
5778	//   },
5779	//   "scopes": [
5780	//     "https://www.googleapis.com/auth/bigtable.admin",
5781	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
5782	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
5783	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
5784	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
5785	//     "https://www.googleapis.com/auth/cloud-platform"
5786	//   ]
5787	// }
5788
5789}
5790
5791// method id "bigtableadmin.projects.instances.clusters.create":
5792
5793type ProjectsInstancesClustersCreateCall struct {
5794	s          *Service
5795	parent     string
5796	cluster    *Cluster
5797	urlParams_ gensupport.URLParams
5798	ctx_       context.Context
5799	header_    http.Header
5800}
5801
5802// Create: Creates a cluster within an instance.
5803//
5804// - parent: The unique name of the instance in which to create the new
5805//   cluster. Values are of the form
5806//   `projects/{project}/instances/{instance}`.
5807func (r *ProjectsInstancesClustersService) Create(parent string, cluster *Cluster) *ProjectsInstancesClustersCreateCall {
5808	c := &ProjectsInstancesClustersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5809	c.parent = parent
5810	c.cluster = cluster
5811	return c
5812}
5813
5814// ClusterId sets the optional parameter "clusterId": Required. The ID
5815// to be used when referring to the new cluster within its instance,
5816// e.g., just `mycluster` rather than
5817// `projects/myproject/instances/myinstance/clusters/mycluster`.
5818func (c *ProjectsInstancesClustersCreateCall) ClusterId(clusterId string) *ProjectsInstancesClustersCreateCall {
5819	c.urlParams_.Set("clusterId", clusterId)
5820	return c
5821}
5822
5823// Fields allows partial responses to be retrieved. See
5824// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5825// for more information.
5826func (c *ProjectsInstancesClustersCreateCall) Fields(s ...googleapi.Field) *ProjectsInstancesClustersCreateCall {
5827	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5828	return c
5829}
5830
5831// Context sets the context to be used in this call's Do method. Any
5832// pending HTTP request will be aborted if the provided context is
5833// canceled.
5834func (c *ProjectsInstancesClustersCreateCall) Context(ctx context.Context) *ProjectsInstancesClustersCreateCall {
5835	c.ctx_ = ctx
5836	return c
5837}
5838
5839// Header returns an http.Header that can be modified by the caller to
5840// add HTTP headers to the request.
5841func (c *ProjectsInstancesClustersCreateCall) Header() http.Header {
5842	if c.header_ == nil {
5843		c.header_ = make(http.Header)
5844	}
5845	return c.header_
5846}
5847
5848func (c *ProjectsInstancesClustersCreateCall) doRequest(alt string) (*http.Response, error) {
5849	reqHeaders := make(http.Header)
5850	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
5851	for k, v := range c.header_ {
5852		reqHeaders[k] = v
5853	}
5854	reqHeaders.Set("User-Agent", c.s.userAgent())
5855	var body io.Reader = nil
5856	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cluster)
5857	if err != nil {
5858		return nil, err
5859	}
5860	reqHeaders.Set("Content-Type", "application/json")
5861	c.urlParams_.Set("alt", alt)
5862	c.urlParams_.Set("prettyPrint", "false")
5863	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+parent}/clusters")
5864	urls += "?" + c.urlParams_.Encode()
5865	req, err := http.NewRequest("POST", urls, body)
5866	if err != nil {
5867		return nil, err
5868	}
5869	req.Header = reqHeaders
5870	googleapi.Expand(req.URL, map[string]string{
5871		"parent": c.parent,
5872	})
5873	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5874}
5875
5876// Do executes the "bigtableadmin.projects.instances.clusters.create" call.
5877// Exactly one of *Operation or error will be non-nil. Any non-2xx
5878// status code is an error. Response headers are in either
5879// *Operation.ServerResponse.Header or (if a response was returned at
5880// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5881// to check whether the returned error was because
5882// http.StatusNotModified was returned.
5883func (c *ProjectsInstancesClustersCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
5884	gensupport.SetOptions(c.urlParams_, opts...)
5885	res, err := c.doRequest("json")
5886	if res != nil && res.StatusCode == http.StatusNotModified {
5887		if res.Body != nil {
5888			res.Body.Close()
5889		}
5890		return nil, &googleapi.Error{
5891			Code:   res.StatusCode,
5892			Header: res.Header,
5893		}
5894	}
5895	if err != nil {
5896		return nil, err
5897	}
5898	defer googleapi.CloseBody(res)
5899	if err := googleapi.CheckResponse(res); err != nil {
5900		return nil, err
5901	}
5902	ret := &Operation{
5903		ServerResponse: googleapi.ServerResponse{
5904			Header:         res.Header,
5905			HTTPStatusCode: res.StatusCode,
5906		},
5907	}
5908	target := &ret
5909	if err := gensupport.DecodeResponse(target, res); err != nil {
5910		return nil, err
5911	}
5912	return ret, nil
5913	// {
5914	//   "description": "Creates a cluster within an instance.",
5915	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters",
5916	//   "httpMethod": "POST",
5917	//   "id": "bigtableadmin.projects.instances.clusters.create",
5918	//   "parameterOrder": [
5919	//     "parent"
5920	//   ],
5921	//   "parameters": {
5922	//     "clusterId": {
5923	//       "description": "Required. The ID to be used when referring to the new cluster within its instance, e.g., just `mycluster` rather than `projects/myproject/instances/myinstance/clusters/mycluster`.",
5924	//       "location": "query",
5925	//       "type": "string"
5926	//     },
5927	//     "parent": {
5928	//       "description": "Required. The unique name of the instance in which to create the new cluster. Values are of the form `projects/{project}/instances/{instance}`.",
5929	//       "location": "path",
5930	//       "pattern": "^projects/[^/]+/instances/[^/]+$",
5931	//       "required": true,
5932	//       "type": "string"
5933	//     }
5934	//   },
5935	//   "path": "v2/{+parent}/clusters",
5936	//   "request": {
5937	//     "$ref": "Cluster"
5938	//   },
5939	//   "response": {
5940	//     "$ref": "Operation"
5941	//   },
5942	//   "scopes": [
5943	//     "https://www.googleapis.com/auth/bigtable.admin",
5944	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
5945	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
5946	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
5947	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
5948	//     "https://www.googleapis.com/auth/cloud-platform"
5949	//   ]
5950	// }
5951
5952}
5953
5954// method id "bigtableadmin.projects.instances.clusters.delete":
5955
5956type ProjectsInstancesClustersDeleteCall struct {
5957	s          *Service
5958	name       string
5959	urlParams_ gensupport.URLParams
5960	ctx_       context.Context
5961	header_    http.Header
5962}
5963
5964// Delete: Deletes a cluster from an instance.
5965//
5966// - name: The unique name of the cluster to be deleted. Values are of
5967//   the form
5968//   `projects/{project}/instances/{instance}/clusters/{cluster}`.
5969func (r *ProjectsInstancesClustersService) Delete(name string) *ProjectsInstancesClustersDeleteCall {
5970	c := &ProjectsInstancesClustersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5971	c.name = name
5972	return c
5973}
5974
5975// Fields allows partial responses to be retrieved. See
5976// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5977// for more information.
5978func (c *ProjectsInstancesClustersDeleteCall) Fields(s ...googleapi.Field) *ProjectsInstancesClustersDeleteCall {
5979	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5980	return c
5981}
5982
5983// Context sets the context to be used in this call's Do method. Any
5984// pending HTTP request will be aborted if the provided context is
5985// canceled.
5986func (c *ProjectsInstancesClustersDeleteCall) Context(ctx context.Context) *ProjectsInstancesClustersDeleteCall {
5987	c.ctx_ = ctx
5988	return c
5989}
5990
5991// Header returns an http.Header that can be modified by the caller to
5992// add HTTP headers to the request.
5993func (c *ProjectsInstancesClustersDeleteCall) Header() http.Header {
5994	if c.header_ == nil {
5995		c.header_ = make(http.Header)
5996	}
5997	return c.header_
5998}
5999
6000func (c *ProjectsInstancesClustersDeleteCall) doRequest(alt string) (*http.Response, error) {
6001	reqHeaders := make(http.Header)
6002	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
6003	for k, v := range c.header_ {
6004		reqHeaders[k] = v
6005	}
6006	reqHeaders.Set("User-Agent", c.s.userAgent())
6007	var body io.Reader = nil
6008	c.urlParams_.Set("alt", alt)
6009	c.urlParams_.Set("prettyPrint", "false")
6010	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
6011	urls += "?" + c.urlParams_.Encode()
6012	req, err := http.NewRequest("DELETE", urls, body)
6013	if err != nil {
6014		return nil, err
6015	}
6016	req.Header = reqHeaders
6017	googleapi.Expand(req.URL, map[string]string{
6018		"name": c.name,
6019	})
6020	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6021}
6022
6023// Do executes the "bigtableadmin.projects.instances.clusters.delete" call.
6024// Exactly one of *Empty or error will be non-nil. Any non-2xx status
6025// code is an error. Response headers are in either
6026// *Empty.ServerResponse.Header or (if a response was returned at all)
6027// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
6028// check whether the returned error was because http.StatusNotModified
6029// was returned.
6030func (c *ProjectsInstancesClustersDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
6031	gensupport.SetOptions(c.urlParams_, opts...)
6032	res, err := c.doRequest("json")
6033	if res != nil && res.StatusCode == http.StatusNotModified {
6034		if res.Body != nil {
6035			res.Body.Close()
6036		}
6037		return nil, &googleapi.Error{
6038			Code:   res.StatusCode,
6039			Header: res.Header,
6040		}
6041	}
6042	if err != nil {
6043		return nil, err
6044	}
6045	defer googleapi.CloseBody(res)
6046	if err := googleapi.CheckResponse(res); err != nil {
6047		return nil, err
6048	}
6049	ret := &Empty{
6050		ServerResponse: googleapi.ServerResponse{
6051			Header:         res.Header,
6052			HTTPStatusCode: res.StatusCode,
6053		},
6054	}
6055	target := &ret
6056	if err := gensupport.DecodeResponse(target, res); err != nil {
6057		return nil, err
6058	}
6059	return ret, nil
6060	// {
6061	//   "description": "Deletes a cluster from an instance.",
6062	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}",
6063	//   "httpMethod": "DELETE",
6064	//   "id": "bigtableadmin.projects.instances.clusters.delete",
6065	//   "parameterOrder": [
6066	//     "name"
6067	//   ],
6068	//   "parameters": {
6069	//     "name": {
6070	//       "description": "Required. The unique name of the cluster to be deleted. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}`.",
6071	//       "location": "path",
6072	//       "pattern": "^projects/[^/]+/instances/[^/]+/clusters/[^/]+$",
6073	//       "required": true,
6074	//       "type": "string"
6075	//     }
6076	//   },
6077	//   "path": "v2/{+name}",
6078	//   "response": {
6079	//     "$ref": "Empty"
6080	//   },
6081	//   "scopes": [
6082	//     "https://www.googleapis.com/auth/bigtable.admin",
6083	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
6084	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
6085	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
6086	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
6087	//     "https://www.googleapis.com/auth/cloud-platform"
6088	//   ]
6089	// }
6090
6091}
6092
6093// method id "bigtableadmin.projects.instances.clusters.get":
6094
6095type ProjectsInstancesClustersGetCall struct {
6096	s            *Service
6097	name         string
6098	urlParams_   gensupport.URLParams
6099	ifNoneMatch_ string
6100	ctx_         context.Context
6101	header_      http.Header
6102}
6103
6104// Get: Gets information about a cluster.
6105//
6106// - name: The unique name of the requested cluster. Values are of the
6107//   form `projects/{project}/instances/{instance}/clusters/{cluster}`.
6108func (r *ProjectsInstancesClustersService) Get(name string) *ProjectsInstancesClustersGetCall {
6109	c := &ProjectsInstancesClustersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6110	c.name = name
6111	return c
6112}
6113
6114// Fields allows partial responses to be retrieved. See
6115// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6116// for more information.
6117func (c *ProjectsInstancesClustersGetCall) Fields(s ...googleapi.Field) *ProjectsInstancesClustersGetCall {
6118	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6119	return c
6120}
6121
6122// IfNoneMatch sets the optional parameter which makes the operation
6123// fail if the object's ETag matches the given value. This is useful for
6124// getting updates only after the object has changed since the last
6125// request. Use googleapi.IsNotModified to check whether the response
6126// error from Do is the result of In-None-Match.
6127func (c *ProjectsInstancesClustersGetCall) IfNoneMatch(entityTag string) *ProjectsInstancesClustersGetCall {
6128	c.ifNoneMatch_ = entityTag
6129	return c
6130}
6131
6132// Context sets the context to be used in this call's Do method. Any
6133// pending HTTP request will be aborted if the provided context is
6134// canceled.
6135func (c *ProjectsInstancesClustersGetCall) Context(ctx context.Context) *ProjectsInstancesClustersGetCall {
6136	c.ctx_ = ctx
6137	return c
6138}
6139
6140// Header returns an http.Header that can be modified by the caller to
6141// add HTTP headers to the request.
6142func (c *ProjectsInstancesClustersGetCall) Header() http.Header {
6143	if c.header_ == nil {
6144		c.header_ = make(http.Header)
6145	}
6146	return c.header_
6147}
6148
6149func (c *ProjectsInstancesClustersGetCall) doRequest(alt string) (*http.Response, error) {
6150	reqHeaders := make(http.Header)
6151	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
6152	for k, v := range c.header_ {
6153		reqHeaders[k] = v
6154	}
6155	reqHeaders.Set("User-Agent", c.s.userAgent())
6156	if c.ifNoneMatch_ != "" {
6157		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6158	}
6159	var body io.Reader = nil
6160	c.urlParams_.Set("alt", alt)
6161	c.urlParams_.Set("prettyPrint", "false")
6162	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
6163	urls += "?" + c.urlParams_.Encode()
6164	req, err := http.NewRequest("GET", urls, body)
6165	if err != nil {
6166		return nil, err
6167	}
6168	req.Header = reqHeaders
6169	googleapi.Expand(req.URL, map[string]string{
6170		"name": c.name,
6171	})
6172	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6173}
6174
6175// Do executes the "bigtableadmin.projects.instances.clusters.get" call.
6176// Exactly one of *Cluster or error will be non-nil. Any non-2xx status
6177// code is an error. Response headers are in either
6178// *Cluster.ServerResponse.Header or (if a response was returned at all)
6179// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
6180// check whether the returned error was because http.StatusNotModified
6181// was returned.
6182func (c *ProjectsInstancesClustersGetCall) Do(opts ...googleapi.CallOption) (*Cluster, error) {
6183	gensupport.SetOptions(c.urlParams_, opts...)
6184	res, err := c.doRequest("json")
6185	if res != nil && res.StatusCode == http.StatusNotModified {
6186		if res.Body != nil {
6187			res.Body.Close()
6188		}
6189		return nil, &googleapi.Error{
6190			Code:   res.StatusCode,
6191			Header: res.Header,
6192		}
6193	}
6194	if err != nil {
6195		return nil, err
6196	}
6197	defer googleapi.CloseBody(res)
6198	if err := googleapi.CheckResponse(res); err != nil {
6199		return nil, err
6200	}
6201	ret := &Cluster{
6202		ServerResponse: googleapi.ServerResponse{
6203			Header:         res.Header,
6204			HTTPStatusCode: res.StatusCode,
6205		},
6206	}
6207	target := &ret
6208	if err := gensupport.DecodeResponse(target, res); err != nil {
6209		return nil, err
6210	}
6211	return ret, nil
6212	// {
6213	//   "description": "Gets information about a cluster.",
6214	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}",
6215	//   "httpMethod": "GET",
6216	//   "id": "bigtableadmin.projects.instances.clusters.get",
6217	//   "parameterOrder": [
6218	//     "name"
6219	//   ],
6220	//   "parameters": {
6221	//     "name": {
6222	//       "description": "Required. The unique name of the requested cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}`.",
6223	//       "location": "path",
6224	//       "pattern": "^projects/[^/]+/instances/[^/]+/clusters/[^/]+$",
6225	//       "required": true,
6226	//       "type": "string"
6227	//     }
6228	//   },
6229	//   "path": "v2/{+name}",
6230	//   "response": {
6231	//     "$ref": "Cluster"
6232	//   },
6233	//   "scopes": [
6234	//     "https://www.googleapis.com/auth/bigtable.admin",
6235	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
6236	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
6237	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
6238	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
6239	//     "https://www.googleapis.com/auth/cloud-platform",
6240	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
6241	//   ]
6242	// }
6243
6244}
6245
6246// method id "bigtableadmin.projects.instances.clusters.list":
6247
6248type ProjectsInstancesClustersListCall struct {
6249	s            *Service
6250	parent       string
6251	urlParams_   gensupport.URLParams
6252	ifNoneMatch_ string
6253	ctx_         context.Context
6254	header_      http.Header
6255}
6256
6257// List: Lists information about clusters in an instance.
6258//
6259// - parent: The unique name of the instance for which a list of
6260//   clusters is requested. Values are of the form
6261//   `projects/{project}/instances/{instance}`. Use `{instance} = '-'`
6262//   to list Clusters for all Instances in a project, e.g.,
6263//   `projects/myproject/instances/-`.
6264func (r *ProjectsInstancesClustersService) List(parent string) *ProjectsInstancesClustersListCall {
6265	c := &ProjectsInstancesClustersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6266	c.parent = parent
6267	return c
6268}
6269
6270// PageToken sets the optional parameter "pageToken": DEPRECATED: This
6271// field is unused and ignored.
6272func (c *ProjectsInstancesClustersListCall) PageToken(pageToken string) *ProjectsInstancesClustersListCall {
6273	c.urlParams_.Set("pageToken", pageToken)
6274	return c
6275}
6276
6277// Fields allows partial responses to be retrieved. See
6278// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6279// for more information.
6280func (c *ProjectsInstancesClustersListCall) Fields(s ...googleapi.Field) *ProjectsInstancesClustersListCall {
6281	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6282	return c
6283}
6284
6285// IfNoneMatch sets the optional parameter which makes the operation
6286// fail if the object's ETag matches the given value. This is useful for
6287// getting updates only after the object has changed since the last
6288// request. Use googleapi.IsNotModified to check whether the response
6289// error from Do is the result of In-None-Match.
6290func (c *ProjectsInstancesClustersListCall) IfNoneMatch(entityTag string) *ProjectsInstancesClustersListCall {
6291	c.ifNoneMatch_ = entityTag
6292	return c
6293}
6294
6295// Context sets the context to be used in this call's Do method. Any
6296// pending HTTP request will be aborted if the provided context is
6297// canceled.
6298func (c *ProjectsInstancesClustersListCall) Context(ctx context.Context) *ProjectsInstancesClustersListCall {
6299	c.ctx_ = ctx
6300	return c
6301}
6302
6303// Header returns an http.Header that can be modified by the caller to
6304// add HTTP headers to the request.
6305func (c *ProjectsInstancesClustersListCall) Header() http.Header {
6306	if c.header_ == nil {
6307		c.header_ = make(http.Header)
6308	}
6309	return c.header_
6310}
6311
6312func (c *ProjectsInstancesClustersListCall) doRequest(alt string) (*http.Response, error) {
6313	reqHeaders := make(http.Header)
6314	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
6315	for k, v := range c.header_ {
6316		reqHeaders[k] = v
6317	}
6318	reqHeaders.Set("User-Agent", c.s.userAgent())
6319	if c.ifNoneMatch_ != "" {
6320		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6321	}
6322	var body io.Reader = nil
6323	c.urlParams_.Set("alt", alt)
6324	c.urlParams_.Set("prettyPrint", "false")
6325	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+parent}/clusters")
6326	urls += "?" + c.urlParams_.Encode()
6327	req, err := http.NewRequest("GET", urls, body)
6328	if err != nil {
6329		return nil, err
6330	}
6331	req.Header = reqHeaders
6332	googleapi.Expand(req.URL, map[string]string{
6333		"parent": c.parent,
6334	})
6335	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6336}
6337
6338// Do executes the "bigtableadmin.projects.instances.clusters.list" call.
6339// Exactly one of *ListClustersResponse or error will be non-nil. Any
6340// non-2xx status code is an error. Response headers are in either
6341// *ListClustersResponse.ServerResponse.Header or (if a response was
6342// returned at all) in error.(*googleapi.Error).Header. Use
6343// googleapi.IsNotModified to check whether the returned error was
6344// because http.StatusNotModified was returned.
6345func (c *ProjectsInstancesClustersListCall) Do(opts ...googleapi.CallOption) (*ListClustersResponse, error) {
6346	gensupport.SetOptions(c.urlParams_, opts...)
6347	res, err := c.doRequest("json")
6348	if res != nil && res.StatusCode == http.StatusNotModified {
6349		if res.Body != nil {
6350			res.Body.Close()
6351		}
6352		return nil, &googleapi.Error{
6353			Code:   res.StatusCode,
6354			Header: res.Header,
6355		}
6356	}
6357	if err != nil {
6358		return nil, err
6359	}
6360	defer googleapi.CloseBody(res)
6361	if err := googleapi.CheckResponse(res); err != nil {
6362		return nil, err
6363	}
6364	ret := &ListClustersResponse{
6365		ServerResponse: googleapi.ServerResponse{
6366			Header:         res.Header,
6367			HTTPStatusCode: res.StatusCode,
6368		},
6369	}
6370	target := &ret
6371	if err := gensupport.DecodeResponse(target, res); err != nil {
6372		return nil, err
6373	}
6374	return ret, nil
6375	// {
6376	//   "description": "Lists information about clusters in an instance.",
6377	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters",
6378	//   "httpMethod": "GET",
6379	//   "id": "bigtableadmin.projects.instances.clusters.list",
6380	//   "parameterOrder": [
6381	//     "parent"
6382	//   ],
6383	//   "parameters": {
6384	//     "pageToken": {
6385	//       "description": "DEPRECATED: This field is unused and ignored.",
6386	//       "location": "query",
6387	//       "type": "string"
6388	//     },
6389	//     "parent": {
6390	//       "description": "Required. The unique name of the instance for which a list of clusters is requested. Values are of the form `projects/{project}/instances/{instance}`. Use `{instance} = '-'` to list Clusters for all Instances in a project, e.g., `projects/myproject/instances/-`.",
6391	//       "location": "path",
6392	//       "pattern": "^projects/[^/]+/instances/[^/]+$",
6393	//       "required": true,
6394	//       "type": "string"
6395	//     }
6396	//   },
6397	//   "path": "v2/{+parent}/clusters",
6398	//   "response": {
6399	//     "$ref": "ListClustersResponse"
6400	//   },
6401	//   "scopes": [
6402	//     "https://www.googleapis.com/auth/bigtable.admin",
6403	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
6404	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
6405	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
6406	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
6407	//     "https://www.googleapis.com/auth/cloud-platform",
6408	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
6409	//   ]
6410	// }
6411
6412}
6413
6414// Pages invokes f for each page of results.
6415// A non-nil error returned from f will halt the iteration.
6416// The provided context supersedes any context provided to the Context method.
6417func (c *ProjectsInstancesClustersListCall) Pages(ctx context.Context, f func(*ListClustersResponse) error) error {
6418	c.ctx_ = ctx
6419	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
6420	for {
6421		x, err := c.Do()
6422		if err != nil {
6423			return err
6424		}
6425		if err := f(x); err != nil {
6426			return err
6427		}
6428		if x.NextPageToken == "" {
6429			return nil
6430		}
6431		c.PageToken(x.NextPageToken)
6432	}
6433}
6434
6435// method id "bigtableadmin.projects.instances.clusters.partialUpdateCluster":
6436
6437type ProjectsInstancesClustersPartialUpdateClusterCall struct {
6438	s          *Service
6439	name       string
6440	cluster    *Cluster
6441	urlParams_ gensupport.URLParams
6442	ctx_       context.Context
6443	header_    http.Header
6444}
6445
6446// PartialUpdateCluster: Partially updates a cluster within a project.
6447// This method is the preferred way to update a Cluster.
6448//
6449// - name: The unique name of the cluster. Values are of the form
6450//   `projects/{project}/instances/{instance}/clusters/a-z*`.
6451func (r *ProjectsInstancesClustersService) PartialUpdateCluster(name string, cluster *Cluster) *ProjectsInstancesClustersPartialUpdateClusterCall {
6452	c := &ProjectsInstancesClustersPartialUpdateClusterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6453	c.name = name
6454	c.cluster = cluster
6455	return c
6456}
6457
6458// UpdateMask sets the optional parameter "updateMask": Required. The
6459// subset of Cluster fields which should be replaced. Must be explicitly
6460// set.
6461func (c *ProjectsInstancesClustersPartialUpdateClusterCall) UpdateMask(updateMask string) *ProjectsInstancesClustersPartialUpdateClusterCall {
6462	c.urlParams_.Set("updateMask", updateMask)
6463	return c
6464}
6465
6466// Fields allows partial responses to be retrieved. See
6467// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6468// for more information.
6469func (c *ProjectsInstancesClustersPartialUpdateClusterCall) Fields(s ...googleapi.Field) *ProjectsInstancesClustersPartialUpdateClusterCall {
6470	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6471	return c
6472}
6473
6474// Context sets the context to be used in this call's Do method. Any
6475// pending HTTP request will be aborted if the provided context is
6476// canceled.
6477func (c *ProjectsInstancesClustersPartialUpdateClusterCall) Context(ctx context.Context) *ProjectsInstancesClustersPartialUpdateClusterCall {
6478	c.ctx_ = ctx
6479	return c
6480}
6481
6482// Header returns an http.Header that can be modified by the caller to
6483// add HTTP headers to the request.
6484func (c *ProjectsInstancesClustersPartialUpdateClusterCall) Header() http.Header {
6485	if c.header_ == nil {
6486		c.header_ = make(http.Header)
6487	}
6488	return c.header_
6489}
6490
6491func (c *ProjectsInstancesClustersPartialUpdateClusterCall) doRequest(alt string) (*http.Response, error) {
6492	reqHeaders := make(http.Header)
6493	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
6494	for k, v := range c.header_ {
6495		reqHeaders[k] = v
6496	}
6497	reqHeaders.Set("User-Agent", c.s.userAgent())
6498	var body io.Reader = nil
6499	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cluster)
6500	if err != nil {
6501		return nil, err
6502	}
6503	reqHeaders.Set("Content-Type", "application/json")
6504	c.urlParams_.Set("alt", alt)
6505	c.urlParams_.Set("prettyPrint", "false")
6506	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
6507	urls += "?" + c.urlParams_.Encode()
6508	req, err := http.NewRequest("PATCH", urls, body)
6509	if err != nil {
6510		return nil, err
6511	}
6512	req.Header = reqHeaders
6513	googleapi.Expand(req.URL, map[string]string{
6514		"name": c.name,
6515	})
6516	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6517}
6518
6519// Do executes the "bigtableadmin.projects.instances.clusters.partialUpdateCluster" call.
6520// Exactly one of *Operation or error will be non-nil. Any non-2xx
6521// status code is an error. Response headers are in either
6522// *Operation.ServerResponse.Header or (if a response was returned at
6523// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6524// to check whether the returned error was because
6525// http.StatusNotModified was returned.
6526func (c *ProjectsInstancesClustersPartialUpdateClusterCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6527	gensupport.SetOptions(c.urlParams_, opts...)
6528	res, err := c.doRequest("json")
6529	if res != nil && res.StatusCode == http.StatusNotModified {
6530		if res.Body != nil {
6531			res.Body.Close()
6532		}
6533		return nil, &googleapi.Error{
6534			Code:   res.StatusCode,
6535			Header: res.Header,
6536		}
6537	}
6538	if err != nil {
6539		return nil, err
6540	}
6541	defer googleapi.CloseBody(res)
6542	if err := googleapi.CheckResponse(res); err != nil {
6543		return nil, err
6544	}
6545	ret := &Operation{
6546		ServerResponse: googleapi.ServerResponse{
6547			Header:         res.Header,
6548			HTTPStatusCode: res.StatusCode,
6549		},
6550	}
6551	target := &ret
6552	if err := gensupport.DecodeResponse(target, res); err != nil {
6553		return nil, err
6554	}
6555	return ret, nil
6556	// {
6557	//   "description": "Partially updates a cluster within a project. This method is the preferred way to update a Cluster. ",
6558	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}",
6559	//   "httpMethod": "PATCH",
6560	//   "id": "bigtableadmin.projects.instances.clusters.partialUpdateCluster",
6561	//   "parameterOrder": [
6562	//     "name"
6563	//   ],
6564	//   "parameters": {
6565	//     "name": {
6566	//       "description": "The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.",
6567	//       "location": "path",
6568	//       "pattern": "^projects/[^/]+/instances/[^/]+/clusters/[^/]+$",
6569	//       "required": true,
6570	//       "type": "string"
6571	//     },
6572	//     "updateMask": {
6573	//       "description": "Required. The subset of Cluster fields which should be replaced. Must be explicitly set.",
6574	//       "format": "google-fieldmask",
6575	//       "location": "query",
6576	//       "type": "string"
6577	//     }
6578	//   },
6579	//   "path": "v2/{+name}",
6580	//   "request": {
6581	//     "$ref": "Cluster"
6582	//   },
6583	//   "response": {
6584	//     "$ref": "Operation"
6585	//   },
6586	//   "scopes": [
6587	//     "https://www.googleapis.com/auth/bigtable.admin",
6588	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
6589	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
6590	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
6591	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
6592	//     "https://www.googleapis.com/auth/cloud-platform"
6593	//   ]
6594	// }
6595
6596}
6597
6598// method id "bigtableadmin.projects.instances.clusters.update":
6599
6600type ProjectsInstancesClustersUpdateCall struct {
6601	s          *Service
6602	name       string
6603	cluster    *Cluster
6604	urlParams_ gensupport.URLParams
6605	ctx_       context.Context
6606	header_    http.Header
6607}
6608
6609// Update: Updates a cluster within an instance. UpdateCluster is
6610// deprecated. Please use PartialUpdateCluster instead.
6611//
6612// - name: The unique name of the cluster. Values are of the form
6613//   `projects/{project}/instances/{instance}/clusters/a-z*`.
6614func (r *ProjectsInstancesClustersService) Update(name string, cluster *Cluster) *ProjectsInstancesClustersUpdateCall {
6615	c := &ProjectsInstancesClustersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6616	c.name = name
6617	c.cluster = cluster
6618	return c
6619}
6620
6621// Fields allows partial responses to be retrieved. See
6622// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6623// for more information.
6624func (c *ProjectsInstancesClustersUpdateCall) Fields(s ...googleapi.Field) *ProjectsInstancesClustersUpdateCall {
6625	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6626	return c
6627}
6628
6629// Context sets the context to be used in this call's Do method. Any
6630// pending HTTP request will be aborted if the provided context is
6631// canceled.
6632func (c *ProjectsInstancesClustersUpdateCall) Context(ctx context.Context) *ProjectsInstancesClustersUpdateCall {
6633	c.ctx_ = ctx
6634	return c
6635}
6636
6637// Header returns an http.Header that can be modified by the caller to
6638// add HTTP headers to the request.
6639func (c *ProjectsInstancesClustersUpdateCall) Header() http.Header {
6640	if c.header_ == nil {
6641		c.header_ = make(http.Header)
6642	}
6643	return c.header_
6644}
6645
6646func (c *ProjectsInstancesClustersUpdateCall) doRequest(alt string) (*http.Response, error) {
6647	reqHeaders := make(http.Header)
6648	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
6649	for k, v := range c.header_ {
6650		reqHeaders[k] = v
6651	}
6652	reqHeaders.Set("User-Agent", c.s.userAgent())
6653	var body io.Reader = nil
6654	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cluster)
6655	if err != nil {
6656		return nil, err
6657	}
6658	reqHeaders.Set("Content-Type", "application/json")
6659	c.urlParams_.Set("alt", alt)
6660	c.urlParams_.Set("prettyPrint", "false")
6661	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
6662	urls += "?" + c.urlParams_.Encode()
6663	req, err := http.NewRequest("PUT", urls, body)
6664	if err != nil {
6665		return nil, err
6666	}
6667	req.Header = reqHeaders
6668	googleapi.Expand(req.URL, map[string]string{
6669		"name": c.name,
6670	})
6671	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6672}
6673
6674// Do executes the "bigtableadmin.projects.instances.clusters.update" call.
6675// Exactly one of *Operation or error will be non-nil. Any non-2xx
6676// status code is an error. Response headers are in either
6677// *Operation.ServerResponse.Header or (if a response was returned at
6678// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6679// to check whether the returned error was because
6680// http.StatusNotModified was returned.
6681func (c *ProjectsInstancesClustersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6682	gensupport.SetOptions(c.urlParams_, opts...)
6683	res, err := c.doRequest("json")
6684	if res != nil && res.StatusCode == http.StatusNotModified {
6685		if res.Body != nil {
6686			res.Body.Close()
6687		}
6688		return nil, &googleapi.Error{
6689			Code:   res.StatusCode,
6690			Header: res.Header,
6691		}
6692	}
6693	if err != nil {
6694		return nil, err
6695	}
6696	defer googleapi.CloseBody(res)
6697	if err := googleapi.CheckResponse(res); err != nil {
6698		return nil, err
6699	}
6700	ret := &Operation{
6701		ServerResponse: googleapi.ServerResponse{
6702			Header:         res.Header,
6703			HTTPStatusCode: res.StatusCode,
6704		},
6705	}
6706	target := &ret
6707	if err := gensupport.DecodeResponse(target, res); err != nil {
6708		return nil, err
6709	}
6710	return ret, nil
6711	// {
6712	//   "description": "Updates a cluster within an instance. UpdateCluster is deprecated. Please use PartialUpdateCluster instead.",
6713	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}",
6714	//   "httpMethod": "PUT",
6715	//   "id": "bigtableadmin.projects.instances.clusters.update",
6716	//   "parameterOrder": [
6717	//     "name"
6718	//   ],
6719	//   "parameters": {
6720	//     "name": {
6721	//       "description": "The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.",
6722	//       "location": "path",
6723	//       "pattern": "^projects/[^/]+/instances/[^/]+/clusters/[^/]+$",
6724	//       "required": true,
6725	//       "type": "string"
6726	//     }
6727	//   },
6728	//   "path": "v2/{+name}",
6729	//   "request": {
6730	//     "$ref": "Cluster"
6731	//   },
6732	//   "response": {
6733	//     "$ref": "Operation"
6734	//   },
6735	//   "scopes": [
6736	//     "https://www.googleapis.com/auth/bigtable.admin",
6737	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
6738	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
6739	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
6740	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
6741	//     "https://www.googleapis.com/auth/cloud-platform"
6742	//   ]
6743	// }
6744
6745}
6746
6747// method id "bigtableadmin.projects.instances.clusters.backups.create":
6748
6749type ProjectsInstancesClustersBackupsCreateCall struct {
6750	s          *Service
6751	parent     string
6752	backup     *Backup
6753	urlParams_ gensupport.URLParams
6754	ctx_       context.Context
6755	header_    http.Header
6756}
6757
6758// Create: Starts creating a new Cloud Bigtable Backup. The returned
6759// backup long-running operation can be used to track creation of the
6760// backup. The metadata field type is CreateBackupMetadata. The response
6761// field type is Backup, if successful. Cancelling the returned
6762// operation will stop the creation and delete the backup.
6763//
6764// - parent: This must be one of the clusters in the instance in which
6765//   this table is located. The backup will be stored in this cluster.
6766//   Values are of the form
6767//   `projects/{project}/instances/{instance}/clusters/{cluster}`.
6768func (r *ProjectsInstancesClustersBackupsService) Create(parent string, backup *Backup) *ProjectsInstancesClustersBackupsCreateCall {
6769	c := &ProjectsInstancesClustersBackupsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6770	c.parent = parent
6771	c.backup = backup
6772	return c
6773}
6774
6775// BackupId sets the optional parameter "backupId": Required. The id of
6776// the backup to be created. The `backup_id` along with the parent
6777// `parent` are combined as {parent}/backups/{backup_id} to create the
6778// full backup name, of the form:
6779// `projects/{project}/instances/{instance}/clusters/{cluster}/backups/{b
6780// ackup_id}`. This string must be between 1 and 50 characters in length
6781// and match the regex _a-zA-Z0-9*.
6782func (c *ProjectsInstancesClustersBackupsCreateCall) BackupId(backupId string) *ProjectsInstancesClustersBackupsCreateCall {
6783	c.urlParams_.Set("backupId", backupId)
6784	return c
6785}
6786
6787// Fields allows partial responses to be retrieved. See
6788// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6789// for more information.
6790func (c *ProjectsInstancesClustersBackupsCreateCall) Fields(s ...googleapi.Field) *ProjectsInstancesClustersBackupsCreateCall {
6791	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6792	return c
6793}
6794
6795// Context sets the context to be used in this call's Do method. Any
6796// pending HTTP request will be aborted if the provided context is
6797// canceled.
6798func (c *ProjectsInstancesClustersBackupsCreateCall) Context(ctx context.Context) *ProjectsInstancesClustersBackupsCreateCall {
6799	c.ctx_ = ctx
6800	return c
6801}
6802
6803// Header returns an http.Header that can be modified by the caller to
6804// add HTTP headers to the request.
6805func (c *ProjectsInstancesClustersBackupsCreateCall) Header() http.Header {
6806	if c.header_ == nil {
6807		c.header_ = make(http.Header)
6808	}
6809	return c.header_
6810}
6811
6812func (c *ProjectsInstancesClustersBackupsCreateCall) doRequest(alt string) (*http.Response, error) {
6813	reqHeaders := make(http.Header)
6814	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
6815	for k, v := range c.header_ {
6816		reqHeaders[k] = v
6817	}
6818	reqHeaders.Set("User-Agent", c.s.userAgent())
6819	var body io.Reader = nil
6820	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backup)
6821	if err != nil {
6822		return nil, err
6823	}
6824	reqHeaders.Set("Content-Type", "application/json")
6825	c.urlParams_.Set("alt", alt)
6826	c.urlParams_.Set("prettyPrint", "false")
6827	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+parent}/backups")
6828	urls += "?" + c.urlParams_.Encode()
6829	req, err := http.NewRequest("POST", urls, body)
6830	if err != nil {
6831		return nil, err
6832	}
6833	req.Header = reqHeaders
6834	googleapi.Expand(req.URL, map[string]string{
6835		"parent": c.parent,
6836	})
6837	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6838}
6839
6840// Do executes the "bigtableadmin.projects.instances.clusters.backups.create" call.
6841// Exactly one of *Operation or error will be non-nil. Any non-2xx
6842// status code is an error. Response headers are in either
6843// *Operation.ServerResponse.Header or (if a response was returned at
6844// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6845// to check whether the returned error was because
6846// http.StatusNotModified was returned.
6847func (c *ProjectsInstancesClustersBackupsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6848	gensupport.SetOptions(c.urlParams_, opts...)
6849	res, err := c.doRequest("json")
6850	if res != nil && res.StatusCode == http.StatusNotModified {
6851		if res.Body != nil {
6852			res.Body.Close()
6853		}
6854		return nil, &googleapi.Error{
6855			Code:   res.StatusCode,
6856			Header: res.Header,
6857		}
6858	}
6859	if err != nil {
6860		return nil, err
6861	}
6862	defer googleapi.CloseBody(res)
6863	if err := googleapi.CheckResponse(res); err != nil {
6864		return nil, err
6865	}
6866	ret := &Operation{
6867		ServerResponse: googleapi.ServerResponse{
6868			Header:         res.Header,
6869			HTTPStatusCode: res.StatusCode,
6870		},
6871	}
6872	target := &ret
6873	if err := gensupport.DecodeResponse(target, res); err != nil {
6874		return nil, err
6875	}
6876	return ret, nil
6877	// {
6878	//   "description": "Starts creating a new Cloud Bigtable Backup. The returned backup long-running operation can be used to track creation of the backup. The metadata field type is CreateBackupMetadata. The response field type is Backup, if successful. Cancelling the returned operation will stop the creation and delete the backup.",
6879	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}/backups",
6880	//   "httpMethod": "POST",
6881	//   "id": "bigtableadmin.projects.instances.clusters.backups.create",
6882	//   "parameterOrder": [
6883	//     "parent"
6884	//   ],
6885	//   "parameters": {
6886	//     "backupId": {
6887	//       "description": "Required. The id of the backup to be created. The `backup_id` along with the parent `parent` are combined as {parent}/backups/{backup_id} to create the full backup name, of the form: `projects/{project}/instances/{instance}/clusters/{cluster}/backups/{backup_id}`. This string must be between 1 and 50 characters in length and match the regex _a-zA-Z0-9*.",
6888	//       "location": "query",
6889	//       "type": "string"
6890	//     },
6891	//     "parent": {
6892	//       "description": "Required. This must be one of the clusters in the instance in which this table is located. The backup will be stored in this cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}`.",
6893	//       "location": "path",
6894	//       "pattern": "^projects/[^/]+/instances/[^/]+/clusters/[^/]+$",
6895	//       "required": true,
6896	//       "type": "string"
6897	//     }
6898	//   },
6899	//   "path": "v2/{+parent}/backups",
6900	//   "request": {
6901	//     "$ref": "Backup"
6902	//   },
6903	//   "response": {
6904	//     "$ref": "Operation"
6905	//   },
6906	//   "scopes": [
6907	//     "https://www.googleapis.com/auth/bigtable.admin",
6908	//     "https://www.googleapis.com/auth/bigtable.admin.table",
6909	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
6910	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
6911	//     "https://www.googleapis.com/auth/cloud-platform"
6912	//   ]
6913	// }
6914
6915}
6916
6917// method id "bigtableadmin.projects.instances.clusters.backups.delete":
6918
6919type ProjectsInstancesClustersBackupsDeleteCall struct {
6920	s          *Service
6921	name       string
6922	urlParams_ gensupport.URLParams
6923	ctx_       context.Context
6924	header_    http.Header
6925}
6926
6927// Delete: Deletes a pending or completed Cloud Bigtable backup.
6928//
6929// - name: Name of the backup to delete. Values are of the form
6930//   `projects/{project}/instances/{instance}/clusters/{cluster}/backups/
6931//   {backup}`.
6932func (r *ProjectsInstancesClustersBackupsService) Delete(name string) *ProjectsInstancesClustersBackupsDeleteCall {
6933	c := &ProjectsInstancesClustersBackupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6934	c.name = name
6935	return c
6936}
6937
6938// Fields allows partial responses to be retrieved. See
6939// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6940// for more information.
6941func (c *ProjectsInstancesClustersBackupsDeleteCall) Fields(s ...googleapi.Field) *ProjectsInstancesClustersBackupsDeleteCall {
6942	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6943	return c
6944}
6945
6946// Context sets the context to be used in this call's Do method. Any
6947// pending HTTP request will be aborted if the provided context is
6948// canceled.
6949func (c *ProjectsInstancesClustersBackupsDeleteCall) Context(ctx context.Context) *ProjectsInstancesClustersBackupsDeleteCall {
6950	c.ctx_ = ctx
6951	return c
6952}
6953
6954// Header returns an http.Header that can be modified by the caller to
6955// add HTTP headers to the request.
6956func (c *ProjectsInstancesClustersBackupsDeleteCall) Header() http.Header {
6957	if c.header_ == nil {
6958		c.header_ = make(http.Header)
6959	}
6960	return c.header_
6961}
6962
6963func (c *ProjectsInstancesClustersBackupsDeleteCall) doRequest(alt string) (*http.Response, error) {
6964	reqHeaders := make(http.Header)
6965	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
6966	for k, v := range c.header_ {
6967		reqHeaders[k] = v
6968	}
6969	reqHeaders.Set("User-Agent", c.s.userAgent())
6970	var body io.Reader = nil
6971	c.urlParams_.Set("alt", alt)
6972	c.urlParams_.Set("prettyPrint", "false")
6973	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
6974	urls += "?" + c.urlParams_.Encode()
6975	req, err := http.NewRequest("DELETE", urls, body)
6976	if err != nil {
6977		return nil, err
6978	}
6979	req.Header = reqHeaders
6980	googleapi.Expand(req.URL, map[string]string{
6981		"name": c.name,
6982	})
6983	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6984}
6985
6986// Do executes the "bigtableadmin.projects.instances.clusters.backups.delete" call.
6987// Exactly one of *Empty or error will be non-nil. Any non-2xx status
6988// code is an error. Response headers are in either
6989// *Empty.ServerResponse.Header or (if a response was returned at all)
6990// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
6991// check whether the returned error was because http.StatusNotModified
6992// was returned.
6993func (c *ProjectsInstancesClustersBackupsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
6994	gensupport.SetOptions(c.urlParams_, opts...)
6995	res, err := c.doRequest("json")
6996	if res != nil && res.StatusCode == http.StatusNotModified {
6997		if res.Body != nil {
6998			res.Body.Close()
6999		}
7000		return nil, &googleapi.Error{
7001			Code:   res.StatusCode,
7002			Header: res.Header,
7003		}
7004	}
7005	if err != nil {
7006		return nil, err
7007	}
7008	defer googleapi.CloseBody(res)
7009	if err := googleapi.CheckResponse(res); err != nil {
7010		return nil, err
7011	}
7012	ret := &Empty{
7013		ServerResponse: googleapi.ServerResponse{
7014			Header:         res.Header,
7015			HTTPStatusCode: res.StatusCode,
7016		},
7017	}
7018	target := &ret
7019	if err := gensupport.DecodeResponse(target, res); err != nil {
7020		return nil, err
7021	}
7022	return ret, nil
7023	// {
7024	//   "description": "Deletes a pending or completed Cloud Bigtable backup.",
7025	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}/backups/{backupsId}",
7026	//   "httpMethod": "DELETE",
7027	//   "id": "bigtableadmin.projects.instances.clusters.backups.delete",
7028	//   "parameterOrder": [
7029	//     "name"
7030	//   ],
7031	//   "parameters": {
7032	//     "name": {
7033	//       "description": "Required. Name of the backup to delete. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}/backups/{backup}`.",
7034	//       "location": "path",
7035	//       "pattern": "^projects/[^/]+/instances/[^/]+/clusters/[^/]+/backups/[^/]+$",
7036	//       "required": true,
7037	//       "type": "string"
7038	//     }
7039	//   },
7040	//   "path": "v2/{+name}",
7041	//   "response": {
7042	//     "$ref": "Empty"
7043	//   },
7044	//   "scopes": [
7045	//     "https://www.googleapis.com/auth/bigtable.admin",
7046	//     "https://www.googleapis.com/auth/bigtable.admin.table",
7047	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
7048	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
7049	//     "https://www.googleapis.com/auth/cloud-platform"
7050	//   ]
7051	// }
7052
7053}
7054
7055// method id "bigtableadmin.projects.instances.clusters.backups.get":
7056
7057type ProjectsInstancesClustersBackupsGetCall struct {
7058	s            *Service
7059	name         string
7060	urlParams_   gensupport.URLParams
7061	ifNoneMatch_ string
7062	ctx_         context.Context
7063	header_      http.Header
7064}
7065
7066// Get: Gets metadata on a pending or completed Cloud Bigtable Backup.
7067//
7068// - name: Name of the backup. Values are of the form
7069//   `projects/{project}/instances/{instance}/clusters/{cluster}/backups/
7070//   {backup}`.
7071func (r *ProjectsInstancesClustersBackupsService) Get(name string) *ProjectsInstancesClustersBackupsGetCall {
7072	c := &ProjectsInstancesClustersBackupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7073	c.name = name
7074	return c
7075}
7076
7077// Fields allows partial responses to be retrieved. See
7078// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7079// for more information.
7080func (c *ProjectsInstancesClustersBackupsGetCall) Fields(s ...googleapi.Field) *ProjectsInstancesClustersBackupsGetCall {
7081	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7082	return c
7083}
7084
7085// IfNoneMatch sets the optional parameter which makes the operation
7086// fail if the object's ETag matches the given value. This is useful for
7087// getting updates only after the object has changed since the last
7088// request. Use googleapi.IsNotModified to check whether the response
7089// error from Do is the result of In-None-Match.
7090func (c *ProjectsInstancesClustersBackupsGetCall) IfNoneMatch(entityTag string) *ProjectsInstancesClustersBackupsGetCall {
7091	c.ifNoneMatch_ = entityTag
7092	return c
7093}
7094
7095// Context sets the context to be used in this call's Do method. Any
7096// pending HTTP request will be aborted if the provided context is
7097// canceled.
7098func (c *ProjectsInstancesClustersBackupsGetCall) Context(ctx context.Context) *ProjectsInstancesClustersBackupsGetCall {
7099	c.ctx_ = ctx
7100	return c
7101}
7102
7103// Header returns an http.Header that can be modified by the caller to
7104// add HTTP headers to the request.
7105func (c *ProjectsInstancesClustersBackupsGetCall) Header() http.Header {
7106	if c.header_ == nil {
7107		c.header_ = make(http.Header)
7108	}
7109	return c.header_
7110}
7111
7112func (c *ProjectsInstancesClustersBackupsGetCall) doRequest(alt string) (*http.Response, error) {
7113	reqHeaders := make(http.Header)
7114	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
7115	for k, v := range c.header_ {
7116		reqHeaders[k] = v
7117	}
7118	reqHeaders.Set("User-Agent", c.s.userAgent())
7119	if c.ifNoneMatch_ != "" {
7120		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7121	}
7122	var body io.Reader = nil
7123	c.urlParams_.Set("alt", alt)
7124	c.urlParams_.Set("prettyPrint", "false")
7125	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
7126	urls += "?" + c.urlParams_.Encode()
7127	req, err := http.NewRequest("GET", urls, body)
7128	if err != nil {
7129		return nil, err
7130	}
7131	req.Header = reqHeaders
7132	googleapi.Expand(req.URL, map[string]string{
7133		"name": c.name,
7134	})
7135	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7136}
7137
7138// Do executes the "bigtableadmin.projects.instances.clusters.backups.get" call.
7139// Exactly one of *Backup or error will be non-nil. Any non-2xx status
7140// code is an error. Response headers are in either
7141// *Backup.ServerResponse.Header or (if a response was returned at all)
7142// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
7143// check whether the returned error was because http.StatusNotModified
7144// was returned.
7145func (c *ProjectsInstancesClustersBackupsGetCall) Do(opts ...googleapi.CallOption) (*Backup, error) {
7146	gensupport.SetOptions(c.urlParams_, opts...)
7147	res, err := c.doRequest("json")
7148	if res != nil && res.StatusCode == http.StatusNotModified {
7149		if res.Body != nil {
7150			res.Body.Close()
7151		}
7152		return nil, &googleapi.Error{
7153			Code:   res.StatusCode,
7154			Header: res.Header,
7155		}
7156	}
7157	if err != nil {
7158		return nil, err
7159	}
7160	defer googleapi.CloseBody(res)
7161	if err := googleapi.CheckResponse(res); err != nil {
7162		return nil, err
7163	}
7164	ret := &Backup{
7165		ServerResponse: googleapi.ServerResponse{
7166			Header:         res.Header,
7167			HTTPStatusCode: res.StatusCode,
7168		},
7169	}
7170	target := &ret
7171	if err := gensupport.DecodeResponse(target, res); err != nil {
7172		return nil, err
7173	}
7174	return ret, nil
7175	// {
7176	//   "description": "Gets metadata on a pending or completed Cloud Bigtable Backup.",
7177	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}/backups/{backupsId}",
7178	//   "httpMethod": "GET",
7179	//   "id": "bigtableadmin.projects.instances.clusters.backups.get",
7180	//   "parameterOrder": [
7181	//     "name"
7182	//   ],
7183	//   "parameters": {
7184	//     "name": {
7185	//       "description": "Required. Name of the backup. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}/backups/{backup}`.",
7186	//       "location": "path",
7187	//       "pattern": "^projects/[^/]+/instances/[^/]+/clusters/[^/]+/backups/[^/]+$",
7188	//       "required": true,
7189	//       "type": "string"
7190	//     }
7191	//   },
7192	//   "path": "v2/{+name}",
7193	//   "response": {
7194	//     "$ref": "Backup"
7195	//   },
7196	//   "scopes": [
7197	//     "https://www.googleapis.com/auth/bigtable.admin",
7198	//     "https://www.googleapis.com/auth/bigtable.admin.table",
7199	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
7200	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
7201	//     "https://www.googleapis.com/auth/cloud-platform"
7202	//   ]
7203	// }
7204
7205}
7206
7207// method id "bigtableadmin.projects.instances.clusters.backups.getIamPolicy":
7208
7209type ProjectsInstancesClustersBackupsGetIamPolicyCall struct {
7210	s                   *Service
7211	resource            string
7212	getiampolicyrequest *GetIamPolicyRequest
7213	urlParams_          gensupport.URLParams
7214	ctx_                context.Context
7215	header_             http.Header
7216}
7217
7218// GetIamPolicy: Gets the access control policy for a Table resource.
7219// Returns an empty policy if the resource exists but does not have a
7220// policy set.
7221//
7222// - resource: REQUIRED: The resource for which the policy is being
7223//   requested. See the operation documentation for the appropriate
7224//   value for this field.
7225func (r *ProjectsInstancesClustersBackupsService) GetIamPolicy(resource string, getiampolicyrequest *GetIamPolicyRequest) *ProjectsInstancesClustersBackupsGetIamPolicyCall {
7226	c := &ProjectsInstancesClustersBackupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7227	c.resource = resource
7228	c.getiampolicyrequest = getiampolicyrequest
7229	return c
7230}
7231
7232// Fields allows partial responses to be retrieved. See
7233// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7234// for more information.
7235func (c *ProjectsInstancesClustersBackupsGetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsInstancesClustersBackupsGetIamPolicyCall {
7236	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7237	return c
7238}
7239
7240// Context sets the context to be used in this call's Do method. Any
7241// pending HTTP request will be aborted if the provided context is
7242// canceled.
7243func (c *ProjectsInstancesClustersBackupsGetIamPolicyCall) Context(ctx context.Context) *ProjectsInstancesClustersBackupsGetIamPolicyCall {
7244	c.ctx_ = ctx
7245	return c
7246}
7247
7248// Header returns an http.Header that can be modified by the caller to
7249// add HTTP headers to the request.
7250func (c *ProjectsInstancesClustersBackupsGetIamPolicyCall) Header() http.Header {
7251	if c.header_ == nil {
7252		c.header_ = make(http.Header)
7253	}
7254	return c.header_
7255}
7256
7257func (c *ProjectsInstancesClustersBackupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
7258	reqHeaders := make(http.Header)
7259	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
7260	for k, v := range c.header_ {
7261		reqHeaders[k] = v
7262	}
7263	reqHeaders.Set("User-Agent", c.s.userAgent())
7264	var body io.Reader = nil
7265	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getiampolicyrequest)
7266	if err != nil {
7267		return nil, err
7268	}
7269	reqHeaders.Set("Content-Type", "application/json")
7270	c.urlParams_.Set("alt", alt)
7271	c.urlParams_.Set("prettyPrint", "false")
7272	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+resource}:getIamPolicy")
7273	urls += "?" + c.urlParams_.Encode()
7274	req, err := http.NewRequest("POST", urls, body)
7275	if err != nil {
7276		return nil, err
7277	}
7278	req.Header = reqHeaders
7279	googleapi.Expand(req.URL, map[string]string{
7280		"resource": c.resource,
7281	})
7282	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7283}
7284
7285// Do executes the "bigtableadmin.projects.instances.clusters.backups.getIamPolicy" call.
7286// Exactly one of *Policy or error will be non-nil. Any non-2xx status
7287// code is an error. Response headers are in either
7288// *Policy.ServerResponse.Header or (if a response was returned at all)
7289// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
7290// check whether the returned error was because http.StatusNotModified
7291// was returned.
7292func (c *ProjectsInstancesClustersBackupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
7293	gensupport.SetOptions(c.urlParams_, opts...)
7294	res, err := c.doRequest("json")
7295	if res != nil && res.StatusCode == http.StatusNotModified {
7296		if res.Body != nil {
7297			res.Body.Close()
7298		}
7299		return nil, &googleapi.Error{
7300			Code:   res.StatusCode,
7301			Header: res.Header,
7302		}
7303	}
7304	if err != nil {
7305		return nil, err
7306	}
7307	defer googleapi.CloseBody(res)
7308	if err := googleapi.CheckResponse(res); err != nil {
7309		return nil, err
7310	}
7311	ret := &Policy{
7312		ServerResponse: googleapi.ServerResponse{
7313			Header:         res.Header,
7314			HTTPStatusCode: res.StatusCode,
7315		},
7316	}
7317	target := &ret
7318	if err := gensupport.DecodeResponse(target, res); err != nil {
7319		return nil, err
7320	}
7321	return ret, nil
7322	// {
7323	//   "description": "Gets the access control policy for a Table resource. Returns an empty policy if the resource exists but does not have a policy set.",
7324	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}/backups/{backupsId}:getIamPolicy",
7325	//   "httpMethod": "POST",
7326	//   "id": "bigtableadmin.projects.instances.clusters.backups.getIamPolicy",
7327	//   "parameterOrder": [
7328	//     "resource"
7329	//   ],
7330	//   "parameters": {
7331	//     "resource": {
7332	//       "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.",
7333	//       "location": "path",
7334	//       "pattern": "^projects/[^/]+/instances/[^/]+/clusters/[^/]+/backups/[^/]+$",
7335	//       "required": true,
7336	//       "type": "string"
7337	//     }
7338	//   },
7339	//   "path": "v2/{+resource}:getIamPolicy",
7340	//   "request": {
7341	//     "$ref": "GetIamPolicyRequest"
7342	//   },
7343	//   "response": {
7344	//     "$ref": "Policy"
7345	//   },
7346	//   "scopes": [
7347	//     "https://www.googleapis.com/auth/bigtable.admin",
7348	//     "https://www.googleapis.com/auth/bigtable.admin.table",
7349	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
7350	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
7351	//     "https://www.googleapis.com/auth/cloud-platform"
7352	//   ]
7353	// }
7354
7355}
7356
7357// method id "bigtableadmin.projects.instances.clusters.backups.list":
7358
7359type ProjectsInstancesClustersBackupsListCall struct {
7360	s            *Service
7361	parent       string
7362	urlParams_   gensupport.URLParams
7363	ifNoneMatch_ string
7364	ctx_         context.Context
7365	header_      http.Header
7366}
7367
7368// List: Lists Cloud Bigtable backups. Returns both completed and
7369// pending backups.
7370//
7371// - parent: The cluster to list backups from. Values are of the form
7372//   `projects/{project}/instances/{instance}/clusters/{cluster}`. Use
7373//   `{cluster} = '-'` to list backups for all clusters in an instance,
7374//   e.g., `projects/{project}/instances/{instance}/clusters/-`.
7375func (r *ProjectsInstancesClustersBackupsService) List(parent string) *ProjectsInstancesClustersBackupsListCall {
7376	c := &ProjectsInstancesClustersBackupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7377	c.parent = parent
7378	return c
7379}
7380
7381// Filter sets the optional parameter "filter": A filter expression that
7382// filters backups listed in the response. The expression must specify
7383// the field name, a comparison operator, and the value that you want to
7384// use for filtering. The value must be a string, a number, or a
7385// boolean. The comparison operator must be <, >, <=, >=, !=, =, or :.
7386// Colon ':' represents a HAS operator which is roughly synonymous with
7387// equality. Filter rules are case insensitive. The fields eligible for
7388// filtering are: * `name` * `source_table` * `state` * `start_time`
7389// (and values are of the format YYYY-MM-DDTHH:MM:SSZ) * `end_time` (and
7390// values are of the format YYYY-MM-DDTHH:MM:SSZ) * `expire_time` (and
7391// values are of the format YYYY-MM-DDTHH:MM:SSZ) * `size_bytes` To
7392// filter on multiple expressions, provide each separate expression
7393// within parentheses. By default, each expression is an AND expression.
7394// However, you can include AND, OR, and NOT expressions explicitly.
7395// Some examples of using filters are: * `name:"exact" --> The backup's
7396// name is the string "exact". * `name:howl` --> The backup's name
7397// contains the string "howl". * `source_table:prod` --> The
7398// source_table's name contains the string "prod". * `state:CREATING`
7399// --> The backup is pending creation. * `state:READY` --> The backup is
7400// fully created and ready for use. * `(name:howl) AND (start_time <
7401// \"2018-03-28T14:50:00Z\")` --> The backup name contains the string
7402// "howl" and start_time of the backup is before 2018-03-28T14:50:00Z. *
7403// `size_bytes > 10000000000` --> The backup's size is greater than 10GB
7404func (c *ProjectsInstancesClustersBackupsListCall) Filter(filter string) *ProjectsInstancesClustersBackupsListCall {
7405	c.urlParams_.Set("filter", filter)
7406	return c
7407}
7408
7409// OrderBy sets the optional parameter "orderBy": An expression for
7410// specifying the sort order of the results of the request. The string
7411// value should specify one or more fields in Backup. The full syntax is
7412// described at https://aip.dev/132#ordering. Fields supported are: *
7413// name * source_table * expire_time * start_time * end_time *
7414// size_bytes * state For example, "start_time". The default sorting
7415// order is ascending. To specify descending order for the field, a
7416// suffix " desc" should be appended to the field name. For example,
7417// "start_time desc". Redundant space characters in the syntax are
7418// insigificant. If order_by is empty, results will be sorted by
7419// `start_time` in descending order starting from the most recently
7420// created backup.
7421func (c *ProjectsInstancesClustersBackupsListCall) OrderBy(orderBy string) *ProjectsInstancesClustersBackupsListCall {
7422	c.urlParams_.Set("orderBy", orderBy)
7423	return c
7424}
7425
7426// PageSize sets the optional parameter "pageSize": Number of backups to
7427// be returned in the response. If 0 or less, defaults to the server's
7428// maximum allowed page size.
7429func (c *ProjectsInstancesClustersBackupsListCall) PageSize(pageSize int64) *ProjectsInstancesClustersBackupsListCall {
7430	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
7431	return c
7432}
7433
7434// PageToken sets the optional parameter "pageToken": If non-empty,
7435// `page_token` should contain a next_page_token from a previous
7436// ListBackupsResponse to the same `parent` and with the same `filter`.
7437func (c *ProjectsInstancesClustersBackupsListCall) PageToken(pageToken string) *ProjectsInstancesClustersBackupsListCall {
7438	c.urlParams_.Set("pageToken", pageToken)
7439	return c
7440}
7441
7442// Fields allows partial responses to be retrieved. See
7443// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7444// for more information.
7445func (c *ProjectsInstancesClustersBackupsListCall) Fields(s ...googleapi.Field) *ProjectsInstancesClustersBackupsListCall {
7446	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7447	return c
7448}
7449
7450// IfNoneMatch sets the optional parameter which makes the operation
7451// fail if the object's ETag matches the given value. This is useful for
7452// getting updates only after the object has changed since the last
7453// request. Use googleapi.IsNotModified to check whether the response
7454// error from Do is the result of In-None-Match.
7455func (c *ProjectsInstancesClustersBackupsListCall) IfNoneMatch(entityTag string) *ProjectsInstancesClustersBackupsListCall {
7456	c.ifNoneMatch_ = entityTag
7457	return c
7458}
7459
7460// Context sets the context to be used in this call's Do method. Any
7461// pending HTTP request will be aborted if the provided context is
7462// canceled.
7463func (c *ProjectsInstancesClustersBackupsListCall) Context(ctx context.Context) *ProjectsInstancesClustersBackupsListCall {
7464	c.ctx_ = ctx
7465	return c
7466}
7467
7468// Header returns an http.Header that can be modified by the caller to
7469// add HTTP headers to the request.
7470func (c *ProjectsInstancesClustersBackupsListCall) Header() http.Header {
7471	if c.header_ == nil {
7472		c.header_ = make(http.Header)
7473	}
7474	return c.header_
7475}
7476
7477func (c *ProjectsInstancesClustersBackupsListCall) doRequest(alt string) (*http.Response, error) {
7478	reqHeaders := make(http.Header)
7479	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
7480	for k, v := range c.header_ {
7481		reqHeaders[k] = v
7482	}
7483	reqHeaders.Set("User-Agent", c.s.userAgent())
7484	if c.ifNoneMatch_ != "" {
7485		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7486	}
7487	var body io.Reader = nil
7488	c.urlParams_.Set("alt", alt)
7489	c.urlParams_.Set("prettyPrint", "false")
7490	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+parent}/backups")
7491	urls += "?" + c.urlParams_.Encode()
7492	req, err := http.NewRequest("GET", urls, body)
7493	if err != nil {
7494		return nil, err
7495	}
7496	req.Header = reqHeaders
7497	googleapi.Expand(req.URL, map[string]string{
7498		"parent": c.parent,
7499	})
7500	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7501}
7502
7503// Do executes the "bigtableadmin.projects.instances.clusters.backups.list" call.
7504// Exactly one of *ListBackupsResponse or error will be non-nil. Any
7505// non-2xx status code is an error. Response headers are in either
7506// *ListBackupsResponse.ServerResponse.Header or (if a response was
7507// returned at all) in error.(*googleapi.Error).Header. Use
7508// googleapi.IsNotModified to check whether the returned error was
7509// because http.StatusNotModified was returned.
7510func (c *ProjectsInstancesClustersBackupsListCall) Do(opts ...googleapi.CallOption) (*ListBackupsResponse, error) {
7511	gensupport.SetOptions(c.urlParams_, opts...)
7512	res, err := c.doRequest("json")
7513	if res != nil && res.StatusCode == http.StatusNotModified {
7514		if res.Body != nil {
7515			res.Body.Close()
7516		}
7517		return nil, &googleapi.Error{
7518			Code:   res.StatusCode,
7519			Header: res.Header,
7520		}
7521	}
7522	if err != nil {
7523		return nil, err
7524	}
7525	defer googleapi.CloseBody(res)
7526	if err := googleapi.CheckResponse(res); err != nil {
7527		return nil, err
7528	}
7529	ret := &ListBackupsResponse{
7530		ServerResponse: googleapi.ServerResponse{
7531			Header:         res.Header,
7532			HTTPStatusCode: res.StatusCode,
7533		},
7534	}
7535	target := &ret
7536	if err := gensupport.DecodeResponse(target, res); err != nil {
7537		return nil, err
7538	}
7539	return ret, nil
7540	// {
7541	//   "description": "Lists Cloud Bigtable backups. Returns both completed and pending backups.",
7542	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}/backups",
7543	//   "httpMethod": "GET",
7544	//   "id": "bigtableadmin.projects.instances.clusters.backups.list",
7545	//   "parameterOrder": [
7546	//     "parent"
7547	//   ],
7548	//   "parameters": {
7549	//     "filter": {
7550	//       "description": "A filter expression that filters backups listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be \u003c, \u003e, \u003c=, \u003e=, !=, =, or :. Colon ':' represents a HAS operator which is roughly synonymous with equality. Filter rules are case insensitive. The fields eligible for filtering are: * `name` * `source_table` * `state` * `start_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ) * `end_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ) * `expire_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ) * `size_bytes` To filter on multiple expressions, provide each separate expression within parentheses. By default, each expression is an AND expression. However, you can include AND, OR, and NOT expressions explicitly. Some examples of using filters are: * `name:\"exact\"` --\u003e The backup's name is the string \"exact\". * `name:howl` --\u003e The backup's name contains the string \"howl\". * `source_table:prod` --\u003e The source_table's name contains the string \"prod\". * `state:CREATING` --\u003e The backup is pending creation. * `state:READY` --\u003e The backup is fully created and ready for use. * `(name:howl) AND (start_time \u003c \\\"2018-03-28T14:50:00Z\\\")` --\u003e The backup name contains the string \"howl\" and start_time of the backup is before 2018-03-28T14:50:00Z. * `size_bytes \u003e 10000000000` --\u003e The backup's size is greater than 10GB",
7551	//       "location": "query",
7552	//       "type": "string"
7553	//     },
7554	//     "orderBy": {
7555	//       "description": "An expression for specifying the sort order of the results of the request. The string value should specify one or more fields in Backup. The full syntax is described at https://aip.dev/132#ordering. Fields supported are: * name * source_table * expire_time * start_time * end_time * size_bytes * state For example, \"start_time\". The default sorting order is ascending. To specify descending order for the field, a suffix \" desc\" should be appended to the field name. For example, \"start_time desc\". Redundant space characters in the syntax are insigificant. If order_by is empty, results will be sorted by `start_time` in descending order starting from the most recently created backup.",
7556	//       "location": "query",
7557	//       "type": "string"
7558	//     },
7559	//     "pageSize": {
7560	//       "description": "Number of backups to be returned in the response. If 0 or less, defaults to the server's maximum allowed page size.",
7561	//       "format": "int32",
7562	//       "location": "query",
7563	//       "type": "integer"
7564	//     },
7565	//     "pageToken": {
7566	//       "description": "If non-empty, `page_token` should contain a next_page_token from a previous ListBackupsResponse to the same `parent` and with the same `filter`.",
7567	//       "location": "query",
7568	//       "type": "string"
7569	//     },
7570	//     "parent": {
7571	//       "description": "Required. The cluster to list backups from. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}`. Use `{cluster} = '-'` to list backups for all clusters in an instance, e.g., `projects/{project}/instances/{instance}/clusters/-`.",
7572	//       "location": "path",
7573	//       "pattern": "^projects/[^/]+/instances/[^/]+/clusters/[^/]+$",
7574	//       "required": true,
7575	//       "type": "string"
7576	//     }
7577	//   },
7578	//   "path": "v2/{+parent}/backups",
7579	//   "response": {
7580	//     "$ref": "ListBackupsResponse"
7581	//   },
7582	//   "scopes": [
7583	//     "https://www.googleapis.com/auth/bigtable.admin",
7584	//     "https://www.googleapis.com/auth/bigtable.admin.table",
7585	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
7586	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
7587	//     "https://www.googleapis.com/auth/cloud-platform"
7588	//   ]
7589	// }
7590
7591}
7592
7593// Pages invokes f for each page of results.
7594// A non-nil error returned from f will halt the iteration.
7595// The provided context supersedes any context provided to the Context method.
7596func (c *ProjectsInstancesClustersBackupsListCall) Pages(ctx context.Context, f func(*ListBackupsResponse) error) error {
7597	c.ctx_ = ctx
7598	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
7599	for {
7600		x, err := c.Do()
7601		if err != nil {
7602			return err
7603		}
7604		if err := f(x); err != nil {
7605			return err
7606		}
7607		if x.NextPageToken == "" {
7608			return nil
7609		}
7610		c.PageToken(x.NextPageToken)
7611	}
7612}
7613
7614// method id "bigtableadmin.projects.instances.clusters.backups.patch":
7615
7616type ProjectsInstancesClustersBackupsPatchCall struct {
7617	s          *Service
7618	nameid     string
7619	backup     *Backup
7620	urlParams_ gensupport.URLParams
7621	ctx_       context.Context
7622	header_    http.Header
7623}
7624
7625// Patch: Updates a pending or completed Cloud Bigtable Backup.
7626//
7627// - name: A globally unique identifier for the backup which cannot be
7628//   changed. Values are of the form
7629//   `projects/{project}/instances/{instance}/clusters/{cluster}/
7630//   backups/_a-zA-Z0-9*` The final segment of the name must be between
7631//   1 and 50 characters in length. The backup is stored in the cluster
7632//   identified by the prefix of the backup name of the form
7633//   `projects/{project}/instances/{instance}/clusters/{cluster}`.
7634func (r *ProjectsInstancesClustersBackupsService) Patch(nameid string, backup *Backup) *ProjectsInstancesClustersBackupsPatchCall {
7635	c := &ProjectsInstancesClustersBackupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7636	c.nameid = nameid
7637	c.backup = backup
7638	return c
7639}
7640
7641// UpdateMask sets the optional parameter "updateMask": Required. A mask
7642// specifying which fields (e.g. `expire_time`) in the Backup resource
7643// should be updated. This mask is relative to the Backup resource, not
7644// to the request message. The field mask must always be specified; this
7645// prevents any future fields from being erased accidentally by clients
7646// that do not know about them.
7647func (c *ProjectsInstancesClustersBackupsPatchCall) UpdateMask(updateMask string) *ProjectsInstancesClustersBackupsPatchCall {
7648	c.urlParams_.Set("updateMask", updateMask)
7649	return c
7650}
7651
7652// Fields allows partial responses to be retrieved. See
7653// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7654// for more information.
7655func (c *ProjectsInstancesClustersBackupsPatchCall) Fields(s ...googleapi.Field) *ProjectsInstancesClustersBackupsPatchCall {
7656	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7657	return c
7658}
7659
7660// Context sets the context to be used in this call's Do method. Any
7661// pending HTTP request will be aborted if the provided context is
7662// canceled.
7663func (c *ProjectsInstancesClustersBackupsPatchCall) Context(ctx context.Context) *ProjectsInstancesClustersBackupsPatchCall {
7664	c.ctx_ = ctx
7665	return c
7666}
7667
7668// Header returns an http.Header that can be modified by the caller to
7669// add HTTP headers to the request.
7670func (c *ProjectsInstancesClustersBackupsPatchCall) Header() http.Header {
7671	if c.header_ == nil {
7672		c.header_ = make(http.Header)
7673	}
7674	return c.header_
7675}
7676
7677func (c *ProjectsInstancesClustersBackupsPatchCall) doRequest(alt string) (*http.Response, error) {
7678	reqHeaders := make(http.Header)
7679	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
7680	for k, v := range c.header_ {
7681		reqHeaders[k] = v
7682	}
7683	reqHeaders.Set("User-Agent", c.s.userAgent())
7684	var body io.Reader = nil
7685	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backup)
7686	if err != nil {
7687		return nil, err
7688	}
7689	reqHeaders.Set("Content-Type", "application/json")
7690	c.urlParams_.Set("alt", alt)
7691	c.urlParams_.Set("prettyPrint", "false")
7692	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
7693	urls += "?" + c.urlParams_.Encode()
7694	req, err := http.NewRequest("PATCH", urls, body)
7695	if err != nil {
7696		return nil, err
7697	}
7698	req.Header = reqHeaders
7699	googleapi.Expand(req.URL, map[string]string{
7700		"name": c.nameid,
7701	})
7702	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7703}
7704
7705// Do executes the "bigtableadmin.projects.instances.clusters.backups.patch" call.
7706// Exactly one of *Backup or error will be non-nil. Any non-2xx status
7707// code is an error. Response headers are in either
7708// *Backup.ServerResponse.Header or (if a response was returned at all)
7709// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
7710// check whether the returned error was because http.StatusNotModified
7711// was returned.
7712func (c *ProjectsInstancesClustersBackupsPatchCall) Do(opts ...googleapi.CallOption) (*Backup, error) {
7713	gensupport.SetOptions(c.urlParams_, opts...)
7714	res, err := c.doRequest("json")
7715	if res != nil && res.StatusCode == http.StatusNotModified {
7716		if res.Body != nil {
7717			res.Body.Close()
7718		}
7719		return nil, &googleapi.Error{
7720			Code:   res.StatusCode,
7721			Header: res.Header,
7722		}
7723	}
7724	if err != nil {
7725		return nil, err
7726	}
7727	defer googleapi.CloseBody(res)
7728	if err := googleapi.CheckResponse(res); err != nil {
7729		return nil, err
7730	}
7731	ret := &Backup{
7732		ServerResponse: googleapi.ServerResponse{
7733			Header:         res.Header,
7734			HTTPStatusCode: res.StatusCode,
7735		},
7736	}
7737	target := &ret
7738	if err := gensupport.DecodeResponse(target, res); err != nil {
7739		return nil, err
7740	}
7741	return ret, nil
7742	// {
7743	//   "description": "Updates a pending or completed Cloud Bigtable Backup.",
7744	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}/backups/{backupsId}",
7745	//   "httpMethod": "PATCH",
7746	//   "id": "bigtableadmin.projects.instances.clusters.backups.patch",
7747	//   "parameterOrder": [
7748	//     "name"
7749	//   ],
7750	//   "parameters": {
7751	//     "name": {
7752	//       "description": "A globally unique identifier for the backup which cannot be changed. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}/ backups/_a-zA-Z0-9*` The final segment of the name must be between 1 and 50 characters in length. The backup is stored in the cluster identified by the prefix of the backup name of the form `projects/{project}/instances/{instance}/clusters/{cluster}`.",
7753	//       "location": "path",
7754	//       "pattern": "^projects/[^/]+/instances/[^/]+/clusters/[^/]+/backups/[^/]+$",
7755	//       "required": true,
7756	//       "type": "string"
7757	//     },
7758	//     "updateMask": {
7759	//       "description": "Required. A mask specifying which fields (e.g. `expire_time`) in the Backup resource should be updated. This mask is relative to the Backup resource, not to the request message. The field mask must always be specified; this prevents any future fields from being erased accidentally by clients that do not know about them.",
7760	//       "format": "google-fieldmask",
7761	//       "location": "query",
7762	//       "type": "string"
7763	//     }
7764	//   },
7765	//   "path": "v2/{+name}",
7766	//   "request": {
7767	//     "$ref": "Backup"
7768	//   },
7769	//   "response": {
7770	//     "$ref": "Backup"
7771	//   },
7772	//   "scopes": [
7773	//     "https://www.googleapis.com/auth/bigtable.admin",
7774	//     "https://www.googleapis.com/auth/bigtable.admin.table",
7775	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
7776	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
7777	//     "https://www.googleapis.com/auth/cloud-platform"
7778	//   ]
7779	// }
7780
7781}
7782
7783// method id "bigtableadmin.projects.instances.clusters.backups.setIamPolicy":
7784
7785type ProjectsInstancesClustersBackupsSetIamPolicyCall struct {
7786	s                   *Service
7787	resource            string
7788	setiampolicyrequest *SetIamPolicyRequest
7789	urlParams_          gensupport.URLParams
7790	ctx_                context.Context
7791	header_             http.Header
7792}
7793
7794// SetIamPolicy: Sets the access control policy on a Table resource.
7795// Replaces any existing policy.
7796//
7797// - resource: REQUIRED: The resource for which the policy is being
7798//   specified. See the operation documentation for the appropriate
7799//   value for this field.
7800func (r *ProjectsInstancesClustersBackupsService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *ProjectsInstancesClustersBackupsSetIamPolicyCall {
7801	c := &ProjectsInstancesClustersBackupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7802	c.resource = resource
7803	c.setiampolicyrequest = setiampolicyrequest
7804	return c
7805}
7806
7807// Fields allows partial responses to be retrieved. See
7808// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7809// for more information.
7810func (c *ProjectsInstancesClustersBackupsSetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsInstancesClustersBackupsSetIamPolicyCall {
7811	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7812	return c
7813}
7814
7815// Context sets the context to be used in this call's Do method. Any
7816// pending HTTP request will be aborted if the provided context is
7817// canceled.
7818func (c *ProjectsInstancesClustersBackupsSetIamPolicyCall) Context(ctx context.Context) *ProjectsInstancesClustersBackupsSetIamPolicyCall {
7819	c.ctx_ = ctx
7820	return c
7821}
7822
7823// Header returns an http.Header that can be modified by the caller to
7824// add HTTP headers to the request.
7825func (c *ProjectsInstancesClustersBackupsSetIamPolicyCall) Header() http.Header {
7826	if c.header_ == nil {
7827		c.header_ = make(http.Header)
7828	}
7829	return c.header_
7830}
7831
7832func (c *ProjectsInstancesClustersBackupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
7833	reqHeaders := make(http.Header)
7834	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
7835	for k, v := range c.header_ {
7836		reqHeaders[k] = v
7837	}
7838	reqHeaders.Set("User-Agent", c.s.userAgent())
7839	var body io.Reader = nil
7840	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest)
7841	if err != nil {
7842		return nil, err
7843	}
7844	reqHeaders.Set("Content-Type", "application/json")
7845	c.urlParams_.Set("alt", alt)
7846	c.urlParams_.Set("prettyPrint", "false")
7847	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+resource}:setIamPolicy")
7848	urls += "?" + c.urlParams_.Encode()
7849	req, err := http.NewRequest("POST", urls, body)
7850	if err != nil {
7851		return nil, err
7852	}
7853	req.Header = reqHeaders
7854	googleapi.Expand(req.URL, map[string]string{
7855		"resource": c.resource,
7856	})
7857	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7858}
7859
7860// Do executes the "bigtableadmin.projects.instances.clusters.backups.setIamPolicy" call.
7861// Exactly one of *Policy or error will be non-nil. Any non-2xx status
7862// code is an error. Response headers are in either
7863// *Policy.ServerResponse.Header or (if a response was returned at all)
7864// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
7865// check whether the returned error was because http.StatusNotModified
7866// was returned.
7867func (c *ProjectsInstancesClustersBackupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
7868	gensupport.SetOptions(c.urlParams_, opts...)
7869	res, err := c.doRequest("json")
7870	if res != nil && res.StatusCode == http.StatusNotModified {
7871		if res.Body != nil {
7872			res.Body.Close()
7873		}
7874		return nil, &googleapi.Error{
7875			Code:   res.StatusCode,
7876			Header: res.Header,
7877		}
7878	}
7879	if err != nil {
7880		return nil, err
7881	}
7882	defer googleapi.CloseBody(res)
7883	if err := googleapi.CheckResponse(res); err != nil {
7884		return nil, err
7885	}
7886	ret := &Policy{
7887		ServerResponse: googleapi.ServerResponse{
7888			Header:         res.Header,
7889			HTTPStatusCode: res.StatusCode,
7890		},
7891	}
7892	target := &ret
7893	if err := gensupport.DecodeResponse(target, res); err != nil {
7894		return nil, err
7895	}
7896	return ret, nil
7897	// {
7898	//   "description": "Sets the access control policy on a Table resource. Replaces any existing policy.",
7899	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}/backups/{backupsId}:setIamPolicy",
7900	//   "httpMethod": "POST",
7901	//   "id": "bigtableadmin.projects.instances.clusters.backups.setIamPolicy",
7902	//   "parameterOrder": [
7903	//     "resource"
7904	//   ],
7905	//   "parameters": {
7906	//     "resource": {
7907	//       "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.",
7908	//       "location": "path",
7909	//       "pattern": "^projects/[^/]+/instances/[^/]+/clusters/[^/]+/backups/[^/]+$",
7910	//       "required": true,
7911	//       "type": "string"
7912	//     }
7913	//   },
7914	//   "path": "v2/{+resource}:setIamPolicy",
7915	//   "request": {
7916	//     "$ref": "SetIamPolicyRequest"
7917	//   },
7918	//   "response": {
7919	//     "$ref": "Policy"
7920	//   },
7921	//   "scopes": [
7922	//     "https://www.googleapis.com/auth/bigtable.admin",
7923	//     "https://www.googleapis.com/auth/bigtable.admin.table",
7924	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
7925	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
7926	//     "https://www.googleapis.com/auth/cloud-platform"
7927	//   ]
7928	// }
7929
7930}
7931
7932// method id "bigtableadmin.projects.instances.clusters.backups.testIamPermissions":
7933
7934type ProjectsInstancesClustersBackupsTestIamPermissionsCall struct {
7935	s                         *Service
7936	resource                  string
7937	testiampermissionsrequest *TestIamPermissionsRequest
7938	urlParams_                gensupport.URLParams
7939	ctx_                      context.Context
7940	header_                   http.Header
7941}
7942
7943// TestIamPermissions: Returns permissions that the caller has on the
7944// specified table resource.
7945//
7946// - resource: REQUIRED: The resource for which the policy detail is
7947//   being requested. See the operation documentation for the
7948//   appropriate value for this field.
7949func (r *ProjectsInstancesClustersBackupsService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *ProjectsInstancesClustersBackupsTestIamPermissionsCall {
7950	c := &ProjectsInstancesClustersBackupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7951	c.resource = resource
7952	c.testiampermissionsrequest = testiampermissionsrequest
7953	return c
7954}
7955
7956// Fields allows partial responses to be retrieved. See
7957// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7958// for more information.
7959func (c *ProjectsInstancesClustersBackupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ProjectsInstancesClustersBackupsTestIamPermissionsCall {
7960	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7961	return c
7962}
7963
7964// Context sets the context to be used in this call's Do method. Any
7965// pending HTTP request will be aborted if the provided context is
7966// canceled.
7967func (c *ProjectsInstancesClustersBackupsTestIamPermissionsCall) Context(ctx context.Context) *ProjectsInstancesClustersBackupsTestIamPermissionsCall {
7968	c.ctx_ = ctx
7969	return c
7970}
7971
7972// Header returns an http.Header that can be modified by the caller to
7973// add HTTP headers to the request.
7974func (c *ProjectsInstancesClustersBackupsTestIamPermissionsCall) Header() http.Header {
7975	if c.header_ == nil {
7976		c.header_ = make(http.Header)
7977	}
7978	return c.header_
7979}
7980
7981func (c *ProjectsInstancesClustersBackupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
7982	reqHeaders := make(http.Header)
7983	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
7984	for k, v := range c.header_ {
7985		reqHeaders[k] = v
7986	}
7987	reqHeaders.Set("User-Agent", c.s.userAgent())
7988	var body io.Reader = nil
7989	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest)
7990	if err != nil {
7991		return nil, err
7992	}
7993	reqHeaders.Set("Content-Type", "application/json")
7994	c.urlParams_.Set("alt", alt)
7995	c.urlParams_.Set("prettyPrint", "false")
7996	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+resource}:testIamPermissions")
7997	urls += "?" + c.urlParams_.Encode()
7998	req, err := http.NewRequest("POST", urls, body)
7999	if err != nil {
8000		return nil, err
8001	}
8002	req.Header = reqHeaders
8003	googleapi.Expand(req.URL, map[string]string{
8004		"resource": c.resource,
8005	})
8006	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8007}
8008
8009// Do executes the "bigtableadmin.projects.instances.clusters.backups.testIamPermissions" call.
8010// Exactly one of *TestIamPermissionsResponse or error will be non-nil.
8011// Any non-2xx status code is an error. Response headers are in either
8012// *TestIamPermissionsResponse.ServerResponse.Header or (if a response
8013// was returned at all) in error.(*googleapi.Error).Header. Use
8014// googleapi.IsNotModified to check whether the returned error was
8015// because http.StatusNotModified was returned.
8016func (c *ProjectsInstancesClustersBackupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) {
8017	gensupport.SetOptions(c.urlParams_, opts...)
8018	res, err := c.doRequest("json")
8019	if res != nil && res.StatusCode == http.StatusNotModified {
8020		if res.Body != nil {
8021			res.Body.Close()
8022		}
8023		return nil, &googleapi.Error{
8024			Code:   res.StatusCode,
8025			Header: res.Header,
8026		}
8027	}
8028	if err != nil {
8029		return nil, err
8030	}
8031	defer googleapi.CloseBody(res)
8032	if err := googleapi.CheckResponse(res); err != nil {
8033		return nil, err
8034	}
8035	ret := &TestIamPermissionsResponse{
8036		ServerResponse: googleapi.ServerResponse{
8037			Header:         res.Header,
8038			HTTPStatusCode: res.StatusCode,
8039		},
8040	}
8041	target := &ret
8042	if err := gensupport.DecodeResponse(target, res); err != nil {
8043		return nil, err
8044	}
8045	return ret, nil
8046	// {
8047	//   "description": "Returns permissions that the caller has on the specified table resource.",
8048	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}/backups/{backupsId}:testIamPermissions",
8049	//   "httpMethod": "POST",
8050	//   "id": "bigtableadmin.projects.instances.clusters.backups.testIamPermissions",
8051	//   "parameterOrder": [
8052	//     "resource"
8053	//   ],
8054	//   "parameters": {
8055	//     "resource": {
8056	//       "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.",
8057	//       "location": "path",
8058	//       "pattern": "^projects/[^/]+/instances/[^/]+/clusters/[^/]+/backups/[^/]+$",
8059	//       "required": true,
8060	//       "type": "string"
8061	//     }
8062	//   },
8063	//   "path": "v2/{+resource}:testIamPermissions",
8064	//   "request": {
8065	//     "$ref": "TestIamPermissionsRequest"
8066	//   },
8067	//   "response": {
8068	//     "$ref": "TestIamPermissionsResponse"
8069	//   },
8070	//   "scopes": [
8071	//     "https://www.googleapis.com/auth/bigtable.admin",
8072	//     "https://www.googleapis.com/auth/bigtable.admin.table",
8073	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
8074	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
8075	//     "https://www.googleapis.com/auth/cloud-platform"
8076	//   ]
8077	// }
8078
8079}
8080
8081// method id "bigtableadmin.projects.instances.tables.checkConsistency":
8082
8083type ProjectsInstancesTablesCheckConsistencyCall struct {
8084	s                       *Service
8085	name                    string
8086	checkconsistencyrequest *CheckConsistencyRequest
8087	urlParams_              gensupport.URLParams
8088	ctx_                    context.Context
8089	header_                 http.Header
8090}
8091
8092// CheckConsistency: Checks replication consistency based on a
8093// consistency token, that is, if replication has caught up based on the
8094// conditions specified in the token and the check request.
8095//
8096// - name: The unique name of the Table for which to check replication
8097//   consistency. Values are of the form
8098//   `projects/{project}/instances/{instance}/tables/{table}`.
8099func (r *ProjectsInstancesTablesService) CheckConsistency(name string, checkconsistencyrequest *CheckConsistencyRequest) *ProjectsInstancesTablesCheckConsistencyCall {
8100	c := &ProjectsInstancesTablesCheckConsistencyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8101	c.name = name
8102	c.checkconsistencyrequest = checkconsistencyrequest
8103	return c
8104}
8105
8106// Fields allows partial responses to be retrieved. See
8107// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8108// for more information.
8109func (c *ProjectsInstancesTablesCheckConsistencyCall) Fields(s ...googleapi.Field) *ProjectsInstancesTablesCheckConsistencyCall {
8110	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8111	return c
8112}
8113
8114// Context sets the context to be used in this call's Do method. Any
8115// pending HTTP request will be aborted if the provided context is
8116// canceled.
8117func (c *ProjectsInstancesTablesCheckConsistencyCall) Context(ctx context.Context) *ProjectsInstancesTablesCheckConsistencyCall {
8118	c.ctx_ = ctx
8119	return c
8120}
8121
8122// Header returns an http.Header that can be modified by the caller to
8123// add HTTP headers to the request.
8124func (c *ProjectsInstancesTablesCheckConsistencyCall) Header() http.Header {
8125	if c.header_ == nil {
8126		c.header_ = make(http.Header)
8127	}
8128	return c.header_
8129}
8130
8131func (c *ProjectsInstancesTablesCheckConsistencyCall) doRequest(alt string) (*http.Response, error) {
8132	reqHeaders := make(http.Header)
8133	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
8134	for k, v := range c.header_ {
8135		reqHeaders[k] = v
8136	}
8137	reqHeaders.Set("User-Agent", c.s.userAgent())
8138	var body io.Reader = nil
8139	body, err := googleapi.WithoutDataWrapper.JSONReader(c.checkconsistencyrequest)
8140	if err != nil {
8141		return nil, err
8142	}
8143	reqHeaders.Set("Content-Type", "application/json")
8144	c.urlParams_.Set("alt", alt)
8145	c.urlParams_.Set("prettyPrint", "false")
8146	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}:checkConsistency")
8147	urls += "?" + c.urlParams_.Encode()
8148	req, err := http.NewRequest("POST", urls, body)
8149	if err != nil {
8150		return nil, err
8151	}
8152	req.Header = reqHeaders
8153	googleapi.Expand(req.URL, map[string]string{
8154		"name": c.name,
8155	})
8156	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8157}
8158
8159// Do executes the "bigtableadmin.projects.instances.tables.checkConsistency" call.
8160// Exactly one of *CheckConsistencyResponse or error will be non-nil.
8161// Any non-2xx status code is an error. Response headers are in either
8162// *CheckConsistencyResponse.ServerResponse.Header or (if a response was
8163// returned at all) in error.(*googleapi.Error).Header. Use
8164// googleapi.IsNotModified to check whether the returned error was
8165// because http.StatusNotModified was returned.
8166func (c *ProjectsInstancesTablesCheckConsistencyCall) Do(opts ...googleapi.CallOption) (*CheckConsistencyResponse, error) {
8167	gensupport.SetOptions(c.urlParams_, opts...)
8168	res, err := c.doRequest("json")
8169	if res != nil && res.StatusCode == http.StatusNotModified {
8170		if res.Body != nil {
8171			res.Body.Close()
8172		}
8173		return nil, &googleapi.Error{
8174			Code:   res.StatusCode,
8175			Header: res.Header,
8176		}
8177	}
8178	if err != nil {
8179		return nil, err
8180	}
8181	defer googleapi.CloseBody(res)
8182	if err := googleapi.CheckResponse(res); err != nil {
8183		return nil, err
8184	}
8185	ret := &CheckConsistencyResponse{
8186		ServerResponse: googleapi.ServerResponse{
8187			Header:         res.Header,
8188			HTTPStatusCode: res.StatusCode,
8189		},
8190	}
8191	target := &ret
8192	if err := gensupport.DecodeResponse(target, res); err != nil {
8193		return nil, err
8194	}
8195	return ret, nil
8196	// {
8197	//   "description": "Checks replication consistency based on a consistency token, that is, if replication has caught up based on the conditions specified in the token and the check request.",
8198	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}:checkConsistency",
8199	//   "httpMethod": "POST",
8200	//   "id": "bigtableadmin.projects.instances.tables.checkConsistency",
8201	//   "parameterOrder": [
8202	//     "name"
8203	//   ],
8204	//   "parameters": {
8205	//     "name": {
8206	//       "description": "Required. The unique name of the Table for which to check replication consistency. Values are of the form `projects/{project}/instances/{instance}/tables/{table}`.",
8207	//       "location": "path",
8208	//       "pattern": "^projects/[^/]+/instances/[^/]+/tables/[^/]+$",
8209	//       "required": true,
8210	//       "type": "string"
8211	//     }
8212	//   },
8213	//   "path": "v2/{+name}:checkConsistency",
8214	//   "request": {
8215	//     "$ref": "CheckConsistencyRequest"
8216	//   },
8217	//   "response": {
8218	//     "$ref": "CheckConsistencyResponse"
8219	//   },
8220	//   "scopes": [
8221	//     "https://www.googleapis.com/auth/bigtable.admin",
8222	//     "https://www.googleapis.com/auth/bigtable.admin.table",
8223	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
8224	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
8225	//     "https://www.googleapis.com/auth/cloud-platform"
8226	//   ]
8227	// }
8228
8229}
8230
8231// method id "bigtableadmin.projects.instances.tables.create":
8232
8233type ProjectsInstancesTablesCreateCall struct {
8234	s                  *Service
8235	parent             string
8236	createtablerequest *CreateTableRequest
8237	urlParams_         gensupport.URLParams
8238	ctx_               context.Context
8239	header_            http.Header
8240}
8241
8242// Create: Creates a new table in the specified instance. The table can
8243// be created with a full set of initial column families, specified in
8244// the request.
8245//
8246// - parent: The unique name of the instance in which to create the
8247//   table. Values are of the form
8248//   `projects/{project}/instances/{instance}`.
8249func (r *ProjectsInstancesTablesService) Create(parent string, createtablerequest *CreateTableRequest) *ProjectsInstancesTablesCreateCall {
8250	c := &ProjectsInstancesTablesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8251	c.parent = parent
8252	c.createtablerequest = createtablerequest
8253	return c
8254}
8255
8256// Fields allows partial responses to be retrieved. See
8257// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8258// for more information.
8259func (c *ProjectsInstancesTablesCreateCall) Fields(s ...googleapi.Field) *ProjectsInstancesTablesCreateCall {
8260	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8261	return c
8262}
8263
8264// Context sets the context to be used in this call's Do method. Any
8265// pending HTTP request will be aborted if the provided context is
8266// canceled.
8267func (c *ProjectsInstancesTablesCreateCall) Context(ctx context.Context) *ProjectsInstancesTablesCreateCall {
8268	c.ctx_ = ctx
8269	return c
8270}
8271
8272// Header returns an http.Header that can be modified by the caller to
8273// add HTTP headers to the request.
8274func (c *ProjectsInstancesTablesCreateCall) Header() http.Header {
8275	if c.header_ == nil {
8276		c.header_ = make(http.Header)
8277	}
8278	return c.header_
8279}
8280
8281func (c *ProjectsInstancesTablesCreateCall) doRequest(alt string) (*http.Response, error) {
8282	reqHeaders := make(http.Header)
8283	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
8284	for k, v := range c.header_ {
8285		reqHeaders[k] = v
8286	}
8287	reqHeaders.Set("User-Agent", c.s.userAgent())
8288	var body io.Reader = nil
8289	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createtablerequest)
8290	if err != nil {
8291		return nil, err
8292	}
8293	reqHeaders.Set("Content-Type", "application/json")
8294	c.urlParams_.Set("alt", alt)
8295	c.urlParams_.Set("prettyPrint", "false")
8296	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+parent}/tables")
8297	urls += "?" + c.urlParams_.Encode()
8298	req, err := http.NewRequest("POST", urls, body)
8299	if err != nil {
8300		return nil, err
8301	}
8302	req.Header = reqHeaders
8303	googleapi.Expand(req.URL, map[string]string{
8304		"parent": c.parent,
8305	})
8306	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8307}
8308
8309// Do executes the "bigtableadmin.projects.instances.tables.create" call.
8310// Exactly one of *Table or error will be non-nil. Any non-2xx status
8311// code is an error. Response headers are in either
8312// *Table.ServerResponse.Header or (if a response was returned at all)
8313// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8314// check whether the returned error was because http.StatusNotModified
8315// was returned.
8316func (c *ProjectsInstancesTablesCreateCall) Do(opts ...googleapi.CallOption) (*Table, error) {
8317	gensupport.SetOptions(c.urlParams_, opts...)
8318	res, err := c.doRequest("json")
8319	if res != nil && res.StatusCode == http.StatusNotModified {
8320		if res.Body != nil {
8321			res.Body.Close()
8322		}
8323		return nil, &googleapi.Error{
8324			Code:   res.StatusCode,
8325			Header: res.Header,
8326		}
8327	}
8328	if err != nil {
8329		return nil, err
8330	}
8331	defer googleapi.CloseBody(res)
8332	if err := googleapi.CheckResponse(res); err != nil {
8333		return nil, err
8334	}
8335	ret := &Table{
8336		ServerResponse: googleapi.ServerResponse{
8337			Header:         res.Header,
8338			HTTPStatusCode: res.StatusCode,
8339		},
8340	}
8341	target := &ret
8342	if err := gensupport.DecodeResponse(target, res); err != nil {
8343		return nil, err
8344	}
8345	return ret, nil
8346	// {
8347	//   "description": "Creates a new table in the specified instance. The table can be created with a full set of initial column families, specified in the request.",
8348	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables",
8349	//   "httpMethod": "POST",
8350	//   "id": "bigtableadmin.projects.instances.tables.create",
8351	//   "parameterOrder": [
8352	//     "parent"
8353	//   ],
8354	//   "parameters": {
8355	//     "parent": {
8356	//       "description": "Required. The unique name of the instance in which to create the table. Values are of the form `projects/{project}/instances/{instance}`.",
8357	//       "location": "path",
8358	//       "pattern": "^projects/[^/]+/instances/[^/]+$",
8359	//       "required": true,
8360	//       "type": "string"
8361	//     }
8362	//   },
8363	//   "path": "v2/{+parent}/tables",
8364	//   "request": {
8365	//     "$ref": "CreateTableRequest"
8366	//   },
8367	//   "response": {
8368	//     "$ref": "Table"
8369	//   },
8370	//   "scopes": [
8371	//     "https://www.googleapis.com/auth/bigtable.admin",
8372	//     "https://www.googleapis.com/auth/bigtable.admin.table",
8373	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
8374	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
8375	//     "https://www.googleapis.com/auth/cloud-platform"
8376	//   ]
8377	// }
8378
8379}
8380
8381// method id "bigtableadmin.projects.instances.tables.delete":
8382
8383type ProjectsInstancesTablesDeleteCall struct {
8384	s          *Service
8385	name       string
8386	urlParams_ gensupport.URLParams
8387	ctx_       context.Context
8388	header_    http.Header
8389}
8390
8391// Delete: Permanently deletes a specified table and all of its data.
8392//
8393// - name: The unique name of the table to be deleted. Values are of the
8394//   form `projects/{project}/instances/{instance}/tables/{table}`.
8395func (r *ProjectsInstancesTablesService) Delete(name string) *ProjectsInstancesTablesDeleteCall {
8396	c := &ProjectsInstancesTablesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8397	c.name = name
8398	return c
8399}
8400
8401// Fields allows partial responses to be retrieved. See
8402// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8403// for more information.
8404func (c *ProjectsInstancesTablesDeleteCall) Fields(s ...googleapi.Field) *ProjectsInstancesTablesDeleteCall {
8405	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8406	return c
8407}
8408
8409// Context sets the context to be used in this call's Do method. Any
8410// pending HTTP request will be aborted if the provided context is
8411// canceled.
8412func (c *ProjectsInstancesTablesDeleteCall) Context(ctx context.Context) *ProjectsInstancesTablesDeleteCall {
8413	c.ctx_ = ctx
8414	return c
8415}
8416
8417// Header returns an http.Header that can be modified by the caller to
8418// add HTTP headers to the request.
8419func (c *ProjectsInstancesTablesDeleteCall) Header() http.Header {
8420	if c.header_ == nil {
8421		c.header_ = make(http.Header)
8422	}
8423	return c.header_
8424}
8425
8426func (c *ProjectsInstancesTablesDeleteCall) doRequest(alt string) (*http.Response, error) {
8427	reqHeaders := make(http.Header)
8428	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
8429	for k, v := range c.header_ {
8430		reqHeaders[k] = v
8431	}
8432	reqHeaders.Set("User-Agent", c.s.userAgent())
8433	var body io.Reader = nil
8434	c.urlParams_.Set("alt", alt)
8435	c.urlParams_.Set("prettyPrint", "false")
8436	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
8437	urls += "?" + c.urlParams_.Encode()
8438	req, err := http.NewRequest("DELETE", urls, body)
8439	if err != nil {
8440		return nil, err
8441	}
8442	req.Header = reqHeaders
8443	googleapi.Expand(req.URL, map[string]string{
8444		"name": c.name,
8445	})
8446	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8447}
8448
8449// Do executes the "bigtableadmin.projects.instances.tables.delete" call.
8450// Exactly one of *Empty or error will be non-nil. Any non-2xx status
8451// code is an error. Response headers are in either
8452// *Empty.ServerResponse.Header or (if a response was returned at all)
8453// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8454// check whether the returned error was because http.StatusNotModified
8455// was returned.
8456func (c *ProjectsInstancesTablesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
8457	gensupport.SetOptions(c.urlParams_, opts...)
8458	res, err := c.doRequest("json")
8459	if res != nil && res.StatusCode == http.StatusNotModified {
8460		if res.Body != nil {
8461			res.Body.Close()
8462		}
8463		return nil, &googleapi.Error{
8464			Code:   res.StatusCode,
8465			Header: res.Header,
8466		}
8467	}
8468	if err != nil {
8469		return nil, err
8470	}
8471	defer googleapi.CloseBody(res)
8472	if err := googleapi.CheckResponse(res); err != nil {
8473		return nil, err
8474	}
8475	ret := &Empty{
8476		ServerResponse: googleapi.ServerResponse{
8477			Header:         res.Header,
8478			HTTPStatusCode: res.StatusCode,
8479		},
8480	}
8481	target := &ret
8482	if err := gensupport.DecodeResponse(target, res); err != nil {
8483		return nil, err
8484	}
8485	return ret, nil
8486	// {
8487	//   "description": "Permanently deletes a specified table and all of its data.",
8488	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}",
8489	//   "httpMethod": "DELETE",
8490	//   "id": "bigtableadmin.projects.instances.tables.delete",
8491	//   "parameterOrder": [
8492	//     "name"
8493	//   ],
8494	//   "parameters": {
8495	//     "name": {
8496	//       "description": "Required. The unique name of the table to be deleted. Values are of the form `projects/{project}/instances/{instance}/tables/{table}`.",
8497	//       "location": "path",
8498	//       "pattern": "^projects/[^/]+/instances/[^/]+/tables/[^/]+$",
8499	//       "required": true,
8500	//       "type": "string"
8501	//     }
8502	//   },
8503	//   "path": "v2/{+name}",
8504	//   "response": {
8505	//     "$ref": "Empty"
8506	//   },
8507	//   "scopes": [
8508	//     "https://www.googleapis.com/auth/bigtable.admin",
8509	//     "https://www.googleapis.com/auth/bigtable.admin.table",
8510	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
8511	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
8512	//     "https://www.googleapis.com/auth/cloud-platform"
8513	//   ]
8514	// }
8515
8516}
8517
8518// method id "bigtableadmin.projects.instances.tables.dropRowRange":
8519
8520type ProjectsInstancesTablesDropRowRangeCall struct {
8521	s                   *Service
8522	name                string
8523	droprowrangerequest *DropRowRangeRequest
8524	urlParams_          gensupport.URLParams
8525	ctx_                context.Context
8526	header_             http.Header
8527}
8528
8529// DropRowRange: Permanently drop/delete a row range from a specified
8530// table. The request can specify whether to delete all rows in a table,
8531// or only those that match a particular prefix.
8532//
8533// - name: The unique name of the table on which to drop a range of
8534//   rows. Values are of the form
8535//   `projects/{project}/instances/{instance}/tables/{table}`.
8536func (r *ProjectsInstancesTablesService) DropRowRange(name string, droprowrangerequest *DropRowRangeRequest) *ProjectsInstancesTablesDropRowRangeCall {
8537	c := &ProjectsInstancesTablesDropRowRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8538	c.name = name
8539	c.droprowrangerequest = droprowrangerequest
8540	return c
8541}
8542
8543// Fields allows partial responses to be retrieved. See
8544// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8545// for more information.
8546func (c *ProjectsInstancesTablesDropRowRangeCall) Fields(s ...googleapi.Field) *ProjectsInstancesTablesDropRowRangeCall {
8547	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8548	return c
8549}
8550
8551// Context sets the context to be used in this call's Do method. Any
8552// pending HTTP request will be aborted if the provided context is
8553// canceled.
8554func (c *ProjectsInstancesTablesDropRowRangeCall) Context(ctx context.Context) *ProjectsInstancesTablesDropRowRangeCall {
8555	c.ctx_ = ctx
8556	return c
8557}
8558
8559// Header returns an http.Header that can be modified by the caller to
8560// add HTTP headers to the request.
8561func (c *ProjectsInstancesTablesDropRowRangeCall) Header() http.Header {
8562	if c.header_ == nil {
8563		c.header_ = make(http.Header)
8564	}
8565	return c.header_
8566}
8567
8568func (c *ProjectsInstancesTablesDropRowRangeCall) doRequest(alt string) (*http.Response, error) {
8569	reqHeaders := make(http.Header)
8570	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
8571	for k, v := range c.header_ {
8572		reqHeaders[k] = v
8573	}
8574	reqHeaders.Set("User-Agent", c.s.userAgent())
8575	var body io.Reader = nil
8576	body, err := googleapi.WithoutDataWrapper.JSONReader(c.droprowrangerequest)
8577	if err != nil {
8578		return nil, err
8579	}
8580	reqHeaders.Set("Content-Type", "application/json")
8581	c.urlParams_.Set("alt", alt)
8582	c.urlParams_.Set("prettyPrint", "false")
8583	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}:dropRowRange")
8584	urls += "?" + c.urlParams_.Encode()
8585	req, err := http.NewRequest("POST", urls, body)
8586	if err != nil {
8587		return nil, err
8588	}
8589	req.Header = reqHeaders
8590	googleapi.Expand(req.URL, map[string]string{
8591		"name": c.name,
8592	})
8593	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8594}
8595
8596// Do executes the "bigtableadmin.projects.instances.tables.dropRowRange" call.
8597// Exactly one of *Empty or error will be non-nil. Any non-2xx status
8598// code is an error. Response headers are in either
8599// *Empty.ServerResponse.Header or (if a response was returned at all)
8600// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8601// check whether the returned error was because http.StatusNotModified
8602// was returned.
8603func (c *ProjectsInstancesTablesDropRowRangeCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
8604	gensupport.SetOptions(c.urlParams_, opts...)
8605	res, err := c.doRequest("json")
8606	if res != nil && res.StatusCode == http.StatusNotModified {
8607		if res.Body != nil {
8608			res.Body.Close()
8609		}
8610		return nil, &googleapi.Error{
8611			Code:   res.StatusCode,
8612			Header: res.Header,
8613		}
8614	}
8615	if err != nil {
8616		return nil, err
8617	}
8618	defer googleapi.CloseBody(res)
8619	if err := googleapi.CheckResponse(res); err != nil {
8620		return nil, err
8621	}
8622	ret := &Empty{
8623		ServerResponse: googleapi.ServerResponse{
8624			Header:         res.Header,
8625			HTTPStatusCode: res.StatusCode,
8626		},
8627	}
8628	target := &ret
8629	if err := gensupport.DecodeResponse(target, res); err != nil {
8630		return nil, err
8631	}
8632	return ret, nil
8633	// {
8634	//   "description": "Permanently drop/delete a row range from a specified table. The request can specify whether to delete all rows in a table, or only those that match a particular prefix.",
8635	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}:dropRowRange",
8636	//   "httpMethod": "POST",
8637	//   "id": "bigtableadmin.projects.instances.tables.dropRowRange",
8638	//   "parameterOrder": [
8639	//     "name"
8640	//   ],
8641	//   "parameters": {
8642	//     "name": {
8643	//       "description": "Required. The unique name of the table on which to drop a range of rows. Values are of the form `projects/{project}/instances/{instance}/tables/{table}`.",
8644	//       "location": "path",
8645	//       "pattern": "^projects/[^/]+/instances/[^/]+/tables/[^/]+$",
8646	//       "required": true,
8647	//       "type": "string"
8648	//     }
8649	//   },
8650	//   "path": "v2/{+name}:dropRowRange",
8651	//   "request": {
8652	//     "$ref": "DropRowRangeRequest"
8653	//   },
8654	//   "response": {
8655	//     "$ref": "Empty"
8656	//   },
8657	//   "scopes": [
8658	//     "https://www.googleapis.com/auth/bigtable.admin",
8659	//     "https://www.googleapis.com/auth/bigtable.admin.table",
8660	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
8661	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
8662	//     "https://www.googleapis.com/auth/cloud-platform"
8663	//   ]
8664	// }
8665
8666}
8667
8668// method id "bigtableadmin.projects.instances.tables.generateConsistencyToken":
8669
8670type ProjectsInstancesTablesGenerateConsistencyTokenCall struct {
8671	s                               *Service
8672	name                            string
8673	generateconsistencytokenrequest *GenerateConsistencyTokenRequest
8674	urlParams_                      gensupport.URLParams
8675	ctx_                            context.Context
8676	header_                         http.Header
8677}
8678
8679// GenerateConsistencyToken: Generates a consistency token for a Table,
8680// which can be used in CheckConsistency to check whether mutations to
8681// the table that finished before this call started have been
8682// replicated. The tokens will be available for 90 days.
8683//
8684// - name: The unique name of the Table for which to create a
8685//   consistency token. Values are of the form
8686//   `projects/{project}/instances/{instance}/tables/{table}`.
8687func (r *ProjectsInstancesTablesService) GenerateConsistencyToken(name string, generateconsistencytokenrequest *GenerateConsistencyTokenRequest) *ProjectsInstancesTablesGenerateConsistencyTokenCall {
8688	c := &ProjectsInstancesTablesGenerateConsistencyTokenCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8689	c.name = name
8690	c.generateconsistencytokenrequest = generateconsistencytokenrequest
8691	return c
8692}
8693
8694// Fields allows partial responses to be retrieved. See
8695// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8696// for more information.
8697func (c *ProjectsInstancesTablesGenerateConsistencyTokenCall) Fields(s ...googleapi.Field) *ProjectsInstancesTablesGenerateConsistencyTokenCall {
8698	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8699	return c
8700}
8701
8702// Context sets the context to be used in this call's Do method. Any
8703// pending HTTP request will be aborted if the provided context is
8704// canceled.
8705func (c *ProjectsInstancesTablesGenerateConsistencyTokenCall) Context(ctx context.Context) *ProjectsInstancesTablesGenerateConsistencyTokenCall {
8706	c.ctx_ = ctx
8707	return c
8708}
8709
8710// Header returns an http.Header that can be modified by the caller to
8711// add HTTP headers to the request.
8712func (c *ProjectsInstancesTablesGenerateConsistencyTokenCall) Header() http.Header {
8713	if c.header_ == nil {
8714		c.header_ = make(http.Header)
8715	}
8716	return c.header_
8717}
8718
8719func (c *ProjectsInstancesTablesGenerateConsistencyTokenCall) doRequest(alt string) (*http.Response, error) {
8720	reqHeaders := make(http.Header)
8721	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
8722	for k, v := range c.header_ {
8723		reqHeaders[k] = v
8724	}
8725	reqHeaders.Set("User-Agent", c.s.userAgent())
8726	var body io.Reader = nil
8727	body, err := googleapi.WithoutDataWrapper.JSONReader(c.generateconsistencytokenrequest)
8728	if err != nil {
8729		return nil, err
8730	}
8731	reqHeaders.Set("Content-Type", "application/json")
8732	c.urlParams_.Set("alt", alt)
8733	c.urlParams_.Set("prettyPrint", "false")
8734	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}:generateConsistencyToken")
8735	urls += "?" + c.urlParams_.Encode()
8736	req, err := http.NewRequest("POST", urls, body)
8737	if err != nil {
8738		return nil, err
8739	}
8740	req.Header = reqHeaders
8741	googleapi.Expand(req.URL, map[string]string{
8742		"name": c.name,
8743	})
8744	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8745}
8746
8747// Do executes the "bigtableadmin.projects.instances.tables.generateConsistencyToken" call.
8748// Exactly one of *GenerateConsistencyTokenResponse or error will be
8749// non-nil. Any non-2xx status code is an error. Response headers are in
8750// either *GenerateConsistencyTokenResponse.ServerResponse.Header or (if
8751// a response was returned at all) in error.(*googleapi.Error).Header.
8752// Use googleapi.IsNotModified to check whether the returned error was
8753// because http.StatusNotModified was returned.
8754func (c *ProjectsInstancesTablesGenerateConsistencyTokenCall) Do(opts ...googleapi.CallOption) (*GenerateConsistencyTokenResponse, error) {
8755	gensupport.SetOptions(c.urlParams_, opts...)
8756	res, err := c.doRequest("json")
8757	if res != nil && res.StatusCode == http.StatusNotModified {
8758		if res.Body != nil {
8759			res.Body.Close()
8760		}
8761		return nil, &googleapi.Error{
8762			Code:   res.StatusCode,
8763			Header: res.Header,
8764		}
8765	}
8766	if err != nil {
8767		return nil, err
8768	}
8769	defer googleapi.CloseBody(res)
8770	if err := googleapi.CheckResponse(res); err != nil {
8771		return nil, err
8772	}
8773	ret := &GenerateConsistencyTokenResponse{
8774		ServerResponse: googleapi.ServerResponse{
8775			Header:         res.Header,
8776			HTTPStatusCode: res.StatusCode,
8777		},
8778	}
8779	target := &ret
8780	if err := gensupport.DecodeResponse(target, res); err != nil {
8781		return nil, err
8782	}
8783	return ret, nil
8784	// {
8785	//   "description": "Generates a consistency token for a Table, which can be used in CheckConsistency to check whether mutations to the table that finished before this call started have been replicated. The tokens will be available for 90 days.",
8786	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}:generateConsistencyToken",
8787	//   "httpMethod": "POST",
8788	//   "id": "bigtableadmin.projects.instances.tables.generateConsistencyToken",
8789	//   "parameterOrder": [
8790	//     "name"
8791	//   ],
8792	//   "parameters": {
8793	//     "name": {
8794	//       "description": "Required. The unique name of the Table for which to create a consistency token. Values are of the form `projects/{project}/instances/{instance}/tables/{table}`.",
8795	//       "location": "path",
8796	//       "pattern": "^projects/[^/]+/instances/[^/]+/tables/[^/]+$",
8797	//       "required": true,
8798	//       "type": "string"
8799	//     }
8800	//   },
8801	//   "path": "v2/{+name}:generateConsistencyToken",
8802	//   "request": {
8803	//     "$ref": "GenerateConsistencyTokenRequest"
8804	//   },
8805	//   "response": {
8806	//     "$ref": "GenerateConsistencyTokenResponse"
8807	//   },
8808	//   "scopes": [
8809	//     "https://www.googleapis.com/auth/bigtable.admin",
8810	//     "https://www.googleapis.com/auth/bigtable.admin.table",
8811	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
8812	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
8813	//     "https://www.googleapis.com/auth/cloud-platform"
8814	//   ]
8815	// }
8816
8817}
8818
8819// method id "bigtableadmin.projects.instances.tables.get":
8820
8821type ProjectsInstancesTablesGetCall struct {
8822	s            *Service
8823	name         string
8824	urlParams_   gensupport.URLParams
8825	ifNoneMatch_ string
8826	ctx_         context.Context
8827	header_      http.Header
8828}
8829
8830// Get: Gets metadata information about the specified table.
8831//
8832// - name: The unique name of the requested table. Values are of the
8833//   form `projects/{project}/instances/{instance}/tables/{table}`.
8834func (r *ProjectsInstancesTablesService) Get(name string) *ProjectsInstancesTablesGetCall {
8835	c := &ProjectsInstancesTablesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8836	c.name = name
8837	return c
8838}
8839
8840// View sets the optional parameter "view": The view to be applied to
8841// the returned table's fields. Defaults to `SCHEMA_VIEW` if
8842// unspecified.
8843//
8844// Possible values:
8845//   "VIEW_UNSPECIFIED" - Uses the default view for each method as
8846// documented in its request.
8847//   "NAME_ONLY" - Only populates `name`.
8848//   "SCHEMA_VIEW" - Only populates `name` and fields related to the
8849// table's schema.
8850//   "REPLICATION_VIEW" - Only populates `name` and fields related to
8851// the table's replication state.
8852//   "ENCRYPTION_VIEW" - Only populates `name` and fields related to the
8853// table's encryption state.
8854//   "FULL" - Populates all fields.
8855func (c *ProjectsInstancesTablesGetCall) View(view string) *ProjectsInstancesTablesGetCall {
8856	c.urlParams_.Set("view", view)
8857	return c
8858}
8859
8860// Fields allows partial responses to be retrieved. See
8861// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8862// for more information.
8863func (c *ProjectsInstancesTablesGetCall) Fields(s ...googleapi.Field) *ProjectsInstancesTablesGetCall {
8864	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8865	return c
8866}
8867
8868// IfNoneMatch sets the optional parameter which makes the operation
8869// fail if the object's ETag matches the given value. This is useful for
8870// getting updates only after the object has changed since the last
8871// request. Use googleapi.IsNotModified to check whether the response
8872// error from Do is the result of In-None-Match.
8873func (c *ProjectsInstancesTablesGetCall) IfNoneMatch(entityTag string) *ProjectsInstancesTablesGetCall {
8874	c.ifNoneMatch_ = entityTag
8875	return c
8876}
8877
8878// Context sets the context to be used in this call's Do method. Any
8879// pending HTTP request will be aborted if the provided context is
8880// canceled.
8881func (c *ProjectsInstancesTablesGetCall) Context(ctx context.Context) *ProjectsInstancesTablesGetCall {
8882	c.ctx_ = ctx
8883	return c
8884}
8885
8886// Header returns an http.Header that can be modified by the caller to
8887// add HTTP headers to the request.
8888func (c *ProjectsInstancesTablesGetCall) Header() http.Header {
8889	if c.header_ == nil {
8890		c.header_ = make(http.Header)
8891	}
8892	return c.header_
8893}
8894
8895func (c *ProjectsInstancesTablesGetCall) doRequest(alt string) (*http.Response, error) {
8896	reqHeaders := make(http.Header)
8897	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
8898	for k, v := range c.header_ {
8899		reqHeaders[k] = v
8900	}
8901	reqHeaders.Set("User-Agent", c.s.userAgent())
8902	if c.ifNoneMatch_ != "" {
8903		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8904	}
8905	var body io.Reader = nil
8906	c.urlParams_.Set("alt", alt)
8907	c.urlParams_.Set("prettyPrint", "false")
8908	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
8909	urls += "?" + c.urlParams_.Encode()
8910	req, err := http.NewRequest("GET", urls, body)
8911	if err != nil {
8912		return nil, err
8913	}
8914	req.Header = reqHeaders
8915	googleapi.Expand(req.URL, map[string]string{
8916		"name": c.name,
8917	})
8918	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8919}
8920
8921// Do executes the "bigtableadmin.projects.instances.tables.get" call.
8922// Exactly one of *Table or error will be non-nil. Any non-2xx status
8923// code is an error. Response headers are in either
8924// *Table.ServerResponse.Header or (if a response was returned at all)
8925// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8926// check whether the returned error was because http.StatusNotModified
8927// was returned.
8928func (c *ProjectsInstancesTablesGetCall) Do(opts ...googleapi.CallOption) (*Table, error) {
8929	gensupport.SetOptions(c.urlParams_, opts...)
8930	res, err := c.doRequest("json")
8931	if res != nil && res.StatusCode == http.StatusNotModified {
8932		if res.Body != nil {
8933			res.Body.Close()
8934		}
8935		return nil, &googleapi.Error{
8936			Code:   res.StatusCode,
8937			Header: res.Header,
8938		}
8939	}
8940	if err != nil {
8941		return nil, err
8942	}
8943	defer googleapi.CloseBody(res)
8944	if err := googleapi.CheckResponse(res); err != nil {
8945		return nil, err
8946	}
8947	ret := &Table{
8948		ServerResponse: googleapi.ServerResponse{
8949			Header:         res.Header,
8950			HTTPStatusCode: res.StatusCode,
8951		},
8952	}
8953	target := &ret
8954	if err := gensupport.DecodeResponse(target, res); err != nil {
8955		return nil, err
8956	}
8957	return ret, nil
8958	// {
8959	//   "description": "Gets metadata information about the specified table.",
8960	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}",
8961	//   "httpMethod": "GET",
8962	//   "id": "bigtableadmin.projects.instances.tables.get",
8963	//   "parameterOrder": [
8964	//     "name"
8965	//   ],
8966	//   "parameters": {
8967	//     "name": {
8968	//       "description": "Required. The unique name of the requested table. Values are of the form `projects/{project}/instances/{instance}/tables/{table}`.",
8969	//       "location": "path",
8970	//       "pattern": "^projects/[^/]+/instances/[^/]+/tables/[^/]+$",
8971	//       "required": true,
8972	//       "type": "string"
8973	//     },
8974	//     "view": {
8975	//       "description": "The view to be applied to the returned table's fields. Defaults to `SCHEMA_VIEW` if unspecified.",
8976	//       "enum": [
8977	//         "VIEW_UNSPECIFIED",
8978	//         "NAME_ONLY",
8979	//         "SCHEMA_VIEW",
8980	//         "REPLICATION_VIEW",
8981	//         "ENCRYPTION_VIEW",
8982	//         "FULL"
8983	//       ],
8984	//       "enumDescriptions": [
8985	//         "Uses the default view for each method as documented in its request.",
8986	//         "Only populates `name`.",
8987	//         "Only populates `name` and fields related to the table's schema.",
8988	//         "Only populates `name` and fields related to the table's replication state.",
8989	//         "Only populates `name` and fields related to the table's encryption state.",
8990	//         "Populates all fields."
8991	//       ],
8992	//       "location": "query",
8993	//       "type": "string"
8994	//     }
8995	//   },
8996	//   "path": "v2/{+name}",
8997	//   "response": {
8998	//     "$ref": "Table"
8999	//   },
9000	//   "scopes": [
9001	//     "https://www.googleapis.com/auth/bigtable.admin",
9002	//     "https://www.googleapis.com/auth/bigtable.admin.table",
9003	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
9004	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
9005	//     "https://www.googleapis.com/auth/cloud-platform",
9006	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
9007	//   ]
9008	// }
9009
9010}
9011
9012// method id "bigtableadmin.projects.instances.tables.getIamPolicy":
9013
9014type ProjectsInstancesTablesGetIamPolicyCall struct {
9015	s                   *Service
9016	resource            string
9017	getiampolicyrequest *GetIamPolicyRequest
9018	urlParams_          gensupport.URLParams
9019	ctx_                context.Context
9020	header_             http.Header
9021}
9022
9023// GetIamPolicy: Gets the access control policy for a Table resource.
9024// Returns an empty policy if the resource exists but does not have a
9025// policy set.
9026//
9027// - resource: REQUIRED: The resource for which the policy is being
9028//   requested. See the operation documentation for the appropriate
9029//   value for this field.
9030func (r *ProjectsInstancesTablesService) GetIamPolicy(resource string, getiampolicyrequest *GetIamPolicyRequest) *ProjectsInstancesTablesGetIamPolicyCall {
9031	c := &ProjectsInstancesTablesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9032	c.resource = resource
9033	c.getiampolicyrequest = getiampolicyrequest
9034	return c
9035}
9036
9037// Fields allows partial responses to be retrieved. See
9038// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9039// for more information.
9040func (c *ProjectsInstancesTablesGetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsInstancesTablesGetIamPolicyCall {
9041	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9042	return c
9043}
9044
9045// Context sets the context to be used in this call's Do method. Any
9046// pending HTTP request will be aborted if the provided context is
9047// canceled.
9048func (c *ProjectsInstancesTablesGetIamPolicyCall) Context(ctx context.Context) *ProjectsInstancesTablesGetIamPolicyCall {
9049	c.ctx_ = ctx
9050	return c
9051}
9052
9053// Header returns an http.Header that can be modified by the caller to
9054// add HTTP headers to the request.
9055func (c *ProjectsInstancesTablesGetIamPolicyCall) Header() http.Header {
9056	if c.header_ == nil {
9057		c.header_ = make(http.Header)
9058	}
9059	return c.header_
9060}
9061
9062func (c *ProjectsInstancesTablesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
9063	reqHeaders := make(http.Header)
9064	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
9065	for k, v := range c.header_ {
9066		reqHeaders[k] = v
9067	}
9068	reqHeaders.Set("User-Agent", c.s.userAgent())
9069	var body io.Reader = nil
9070	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getiampolicyrequest)
9071	if err != nil {
9072		return nil, err
9073	}
9074	reqHeaders.Set("Content-Type", "application/json")
9075	c.urlParams_.Set("alt", alt)
9076	c.urlParams_.Set("prettyPrint", "false")
9077	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+resource}:getIamPolicy")
9078	urls += "?" + c.urlParams_.Encode()
9079	req, err := http.NewRequest("POST", urls, body)
9080	if err != nil {
9081		return nil, err
9082	}
9083	req.Header = reqHeaders
9084	googleapi.Expand(req.URL, map[string]string{
9085		"resource": c.resource,
9086	})
9087	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9088}
9089
9090// Do executes the "bigtableadmin.projects.instances.tables.getIamPolicy" call.
9091// Exactly one of *Policy or error will be non-nil. Any non-2xx status
9092// code is an error. Response headers are in either
9093// *Policy.ServerResponse.Header or (if a response was returned at all)
9094// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
9095// check whether the returned error was because http.StatusNotModified
9096// was returned.
9097func (c *ProjectsInstancesTablesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
9098	gensupport.SetOptions(c.urlParams_, opts...)
9099	res, err := c.doRequest("json")
9100	if res != nil && res.StatusCode == http.StatusNotModified {
9101		if res.Body != nil {
9102			res.Body.Close()
9103		}
9104		return nil, &googleapi.Error{
9105			Code:   res.StatusCode,
9106			Header: res.Header,
9107		}
9108	}
9109	if err != nil {
9110		return nil, err
9111	}
9112	defer googleapi.CloseBody(res)
9113	if err := googleapi.CheckResponse(res); err != nil {
9114		return nil, err
9115	}
9116	ret := &Policy{
9117		ServerResponse: googleapi.ServerResponse{
9118			Header:         res.Header,
9119			HTTPStatusCode: res.StatusCode,
9120		},
9121	}
9122	target := &ret
9123	if err := gensupport.DecodeResponse(target, res); err != nil {
9124		return nil, err
9125	}
9126	return ret, nil
9127	// {
9128	//   "description": "Gets the access control policy for a Table resource. Returns an empty policy if the resource exists but does not have a policy set.",
9129	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}:getIamPolicy",
9130	//   "httpMethod": "POST",
9131	//   "id": "bigtableadmin.projects.instances.tables.getIamPolicy",
9132	//   "parameterOrder": [
9133	//     "resource"
9134	//   ],
9135	//   "parameters": {
9136	//     "resource": {
9137	//       "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.",
9138	//       "location": "path",
9139	//       "pattern": "^projects/[^/]+/instances/[^/]+/tables/[^/]+$",
9140	//       "required": true,
9141	//       "type": "string"
9142	//     }
9143	//   },
9144	//   "path": "v2/{+resource}:getIamPolicy",
9145	//   "request": {
9146	//     "$ref": "GetIamPolicyRequest"
9147	//   },
9148	//   "response": {
9149	//     "$ref": "Policy"
9150	//   },
9151	//   "scopes": [
9152	//     "https://www.googleapis.com/auth/bigtable.admin",
9153	//     "https://www.googleapis.com/auth/bigtable.admin.table",
9154	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
9155	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
9156	//     "https://www.googleapis.com/auth/cloud-platform"
9157	//   ]
9158	// }
9159
9160}
9161
9162// method id "bigtableadmin.projects.instances.tables.list":
9163
9164type ProjectsInstancesTablesListCall struct {
9165	s            *Service
9166	parent       string
9167	urlParams_   gensupport.URLParams
9168	ifNoneMatch_ string
9169	ctx_         context.Context
9170	header_      http.Header
9171}
9172
9173// List: Lists all tables served from a specified instance.
9174//
9175// - parent: The unique name of the instance for which tables should be
9176//   listed. Values are of the form
9177//   `projects/{project}/instances/{instance}`.
9178func (r *ProjectsInstancesTablesService) List(parent string) *ProjectsInstancesTablesListCall {
9179	c := &ProjectsInstancesTablesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9180	c.parent = parent
9181	return c
9182}
9183
9184// PageSize sets the optional parameter "pageSize": Maximum number of
9185// results per page. A page_size of zero lets the server choose the
9186// number of items to return. A page_size which is strictly positive
9187// will return at most that many items. A negative page_size will cause
9188// an error. Following the first request, subsequent paginated calls are
9189// not required to pass a page_size. If a page_size is set in subsequent
9190// calls, it must match the page_size given in the first request.
9191func (c *ProjectsInstancesTablesListCall) PageSize(pageSize int64) *ProjectsInstancesTablesListCall {
9192	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
9193	return c
9194}
9195
9196// PageToken sets the optional parameter "pageToken": The value of
9197// `next_page_token` returned by a previous call.
9198func (c *ProjectsInstancesTablesListCall) PageToken(pageToken string) *ProjectsInstancesTablesListCall {
9199	c.urlParams_.Set("pageToken", pageToken)
9200	return c
9201}
9202
9203// View sets the optional parameter "view": The view to be applied to
9204// the returned tables' fields. Only NAME_ONLY view (default) and
9205// REPLICATION_VIEW are supported.
9206//
9207// Possible values:
9208//   "VIEW_UNSPECIFIED" - Uses the default view for each method as
9209// documented in its request.
9210//   "NAME_ONLY" - Only populates `name`.
9211//   "SCHEMA_VIEW" - Only populates `name` and fields related to the
9212// table's schema.
9213//   "REPLICATION_VIEW" - Only populates `name` and fields related to
9214// the table's replication state.
9215//   "ENCRYPTION_VIEW" - Only populates `name` and fields related to the
9216// table's encryption state.
9217//   "FULL" - Populates all fields.
9218func (c *ProjectsInstancesTablesListCall) View(view string) *ProjectsInstancesTablesListCall {
9219	c.urlParams_.Set("view", view)
9220	return c
9221}
9222
9223// Fields allows partial responses to be retrieved. See
9224// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9225// for more information.
9226func (c *ProjectsInstancesTablesListCall) Fields(s ...googleapi.Field) *ProjectsInstancesTablesListCall {
9227	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9228	return c
9229}
9230
9231// IfNoneMatch sets the optional parameter which makes the operation
9232// fail if the object's ETag matches the given value. This is useful for
9233// getting updates only after the object has changed since the last
9234// request. Use googleapi.IsNotModified to check whether the response
9235// error from Do is the result of In-None-Match.
9236func (c *ProjectsInstancesTablesListCall) IfNoneMatch(entityTag string) *ProjectsInstancesTablesListCall {
9237	c.ifNoneMatch_ = entityTag
9238	return c
9239}
9240
9241// Context sets the context to be used in this call's Do method. Any
9242// pending HTTP request will be aborted if the provided context is
9243// canceled.
9244func (c *ProjectsInstancesTablesListCall) Context(ctx context.Context) *ProjectsInstancesTablesListCall {
9245	c.ctx_ = ctx
9246	return c
9247}
9248
9249// Header returns an http.Header that can be modified by the caller to
9250// add HTTP headers to the request.
9251func (c *ProjectsInstancesTablesListCall) Header() http.Header {
9252	if c.header_ == nil {
9253		c.header_ = make(http.Header)
9254	}
9255	return c.header_
9256}
9257
9258func (c *ProjectsInstancesTablesListCall) doRequest(alt string) (*http.Response, error) {
9259	reqHeaders := make(http.Header)
9260	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
9261	for k, v := range c.header_ {
9262		reqHeaders[k] = v
9263	}
9264	reqHeaders.Set("User-Agent", c.s.userAgent())
9265	if c.ifNoneMatch_ != "" {
9266		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9267	}
9268	var body io.Reader = nil
9269	c.urlParams_.Set("alt", alt)
9270	c.urlParams_.Set("prettyPrint", "false")
9271	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+parent}/tables")
9272	urls += "?" + c.urlParams_.Encode()
9273	req, err := http.NewRequest("GET", urls, body)
9274	if err != nil {
9275		return nil, err
9276	}
9277	req.Header = reqHeaders
9278	googleapi.Expand(req.URL, map[string]string{
9279		"parent": c.parent,
9280	})
9281	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9282}
9283
9284// Do executes the "bigtableadmin.projects.instances.tables.list" call.
9285// Exactly one of *ListTablesResponse or error will be non-nil. Any
9286// non-2xx status code is an error. Response headers are in either
9287// *ListTablesResponse.ServerResponse.Header or (if a response was
9288// returned at all) in error.(*googleapi.Error).Header. Use
9289// googleapi.IsNotModified to check whether the returned error was
9290// because http.StatusNotModified was returned.
9291func (c *ProjectsInstancesTablesListCall) Do(opts ...googleapi.CallOption) (*ListTablesResponse, error) {
9292	gensupport.SetOptions(c.urlParams_, opts...)
9293	res, err := c.doRequest("json")
9294	if res != nil && res.StatusCode == http.StatusNotModified {
9295		if res.Body != nil {
9296			res.Body.Close()
9297		}
9298		return nil, &googleapi.Error{
9299			Code:   res.StatusCode,
9300			Header: res.Header,
9301		}
9302	}
9303	if err != nil {
9304		return nil, err
9305	}
9306	defer googleapi.CloseBody(res)
9307	if err := googleapi.CheckResponse(res); err != nil {
9308		return nil, err
9309	}
9310	ret := &ListTablesResponse{
9311		ServerResponse: googleapi.ServerResponse{
9312			Header:         res.Header,
9313			HTTPStatusCode: res.StatusCode,
9314		},
9315	}
9316	target := &ret
9317	if err := gensupport.DecodeResponse(target, res); err != nil {
9318		return nil, err
9319	}
9320	return ret, nil
9321	// {
9322	//   "description": "Lists all tables served from a specified instance.",
9323	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables",
9324	//   "httpMethod": "GET",
9325	//   "id": "bigtableadmin.projects.instances.tables.list",
9326	//   "parameterOrder": [
9327	//     "parent"
9328	//   ],
9329	//   "parameters": {
9330	//     "pageSize": {
9331	//       "description": "Maximum number of results per page. A page_size of zero lets the server choose the number of items to return. A page_size which is strictly positive will return at most that many items. A negative page_size will cause an error. Following the first request, subsequent paginated calls are not required to pass a page_size. If a page_size is set in subsequent calls, it must match the page_size given in the first request.",
9332	//       "format": "int32",
9333	//       "location": "query",
9334	//       "type": "integer"
9335	//     },
9336	//     "pageToken": {
9337	//       "description": "The value of `next_page_token` returned by a previous call.",
9338	//       "location": "query",
9339	//       "type": "string"
9340	//     },
9341	//     "parent": {
9342	//       "description": "Required. The unique name of the instance for which tables should be listed. Values are of the form `projects/{project}/instances/{instance}`.",
9343	//       "location": "path",
9344	//       "pattern": "^projects/[^/]+/instances/[^/]+$",
9345	//       "required": true,
9346	//       "type": "string"
9347	//     },
9348	//     "view": {
9349	//       "description": "The view to be applied to the returned tables' fields. Only NAME_ONLY view (default) and REPLICATION_VIEW are supported.",
9350	//       "enum": [
9351	//         "VIEW_UNSPECIFIED",
9352	//         "NAME_ONLY",
9353	//         "SCHEMA_VIEW",
9354	//         "REPLICATION_VIEW",
9355	//         "ENCRYPTION_VIEW",
9356	//         "FULL"
9357	//       ],
9358	//       "enumDescriptions": [
9359	//         "Uses the default view for each method as documented in its request.",
9360	//         "Only populates `name`.",
9361	//         "Only populates `name` and fields related to the table's schema.",
9362	//         "Only populates `name` and fields related to the table's replication state.",
9363	//         "Only populates `name` and fields related to the table's encryption state.",
9364	//         "Populates all fields."
9365	//       ],
9366	//       "location": "query",
9367	//       "type": "string"
9368	//     }
9369	//   },
9370	//   "path": "v2/{+parent}/tables",
9371	//   "response": {
9372	//     "$ref": "ListTablesResponse"
9373	//   },
9374	//   "scopes": [
9375	//     "https://www.googleapis.com/auth/bigtable.admin",
9376	//     "https://www.googleapis.com/auth/bigtable.admin.table",
9377	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
9378	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
9379	//     "https://www.googleapis.com/auth/cloud-platform",
9380	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
9381	//   ]
9382	// }
9383
9384}
9385
9386// Pages invokes f for each page of results.
9387// A non-nil error returned from f will halt the iteration.
9388// The provided context supersedes any context provided to the Context method.
9389func (c *ProjectsInstancesTablesListCall) Pages(ctx context.Context, f func(*ListTablesResponse) error) error {
9390	c.ctx_ = ctx
9391	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
9392	for {
9393		x, err := c.Do()
9394		if err != nil {
9395			return err
9396		}
9397		if err := f(x); err != nil {
9398			return err
9399		}
9400		if x.NextPageToken == "" {
9401			return nil
9402		}
9403		c.PageToken(x.NextPageToken)
9404	}
9405}
9406
9407// method id "bigtableadmin.projects.instances.tables.modifyColumnFamilies":
9408
9409type ProjectsInstancesTablesModifyColumnFamiliesCall struct {
9410	s                           *Service
9411	name                        string
9412	modifycolumnfamiliesrequest *ModifyColumnFamiliesRequest
9413	urlParams_                  gensupport.URLParams
9414	ctx_                        context.Context
9415	header_                     http.Header
9416}
9417
9418// ModifyColumnFamilies: Performs a series of column family
9419// modifications on the specified table. Either all or none of the
9420// modifications will occur before this method returns, but data
9421// requests received prior to that point may see a table where only some
9422// modifications have taken effect.
9423//
9424// - name: The unique name of the table whose families should be
9425//   modified. Values are of the form
9426//   `projects/{project}/instances/{instance}/tables/{table}`.
9427func (r *ProjectsInstancesTablesService) ModifyColumnFamilies(name string, modifycolumnfamiliesrequest *ModifyColumnFamiliesRequest) *ProjectsInstancesTablesModifyColumnFamiliesCall {
9428	c := &ProjectsInstancesTablesModifyColumnFamiliesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9429	c.name = name
9430	c.modifycolumnfamiliesrequest = modifycolumnfamiliesrequest
9431	return c
9432}
9433
9434// Fields allows partial responses to be retrieved. See
9435// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9436// for more information.
9437func (c *ProjectsInstancesTablesModifyColumnFamiliesCall) Fields(s ...googleapi.Field) *ProjectsInstancesTablesModifyColumnFamiliesCall {
9438	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9439	return c
9440}
9441
9442// Context sets the context to be used in this call's Do method. Any
9443// pending HTTP request will be aborted if the provided context is
9444// canceled.
9445func (c *ProjectsInstancesTablesModifyColumnFamiliesCall) Context(ctx context.Context) *ProjectsInstancesTablesModifyColumnFamiliesCall {
9446	c.ctx_ = ctx
9447	return c
9448}
9449
9450// Header returns an http.Header that can be modified by the caller to
9451// add HTTP headers to the request.
9452func (c *ProjectsInstancesTablesModifyColumnFamiliesCall) Header() http.Header {
9453	if c.header_ == nil {
9454		c.header_ = make(http.Header)
9455	}
9456	return c.header_
9457}
9458
9459func (c *ProjectsInstancesTablesModifyColumnFamiliesCall) doRequest(alt string) (*http.Response, error) {
9460	reqHeaders := make(http.Header)
9461	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
9462	for k, v := range c.header_ {
9463		reqHeaders[k] = v
9464	}
9465	reqHeaders.Set("User-Agent", c.s.userAgent())
9466	var body io.Reader = nil
9467	body, err := googleapi.WithoutDataWrapper.JSONReader(c.modifycolumnfamiliesrequest)
9468	if err != nil {
9469		return nil, err
9470	}
9471	reqHeaders.Set("Content-Type", "application/json")
9472	c.urlParams_.Set("alt", alt)
9473	c.urlParams_.Set("prettyPrint", "false")
9474	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}:modifyColumnFamilies")
9475	urls += "?" + c.urlParams_.Encode()
9476	req, err := http.NewRequest("POST", urls, body)
9477	if err != nil {
9478		return nil, err
9479	}
9480	req.Header = reqHeaders
9481	googleapi.Expand(req.URL, map[string]string{
9482		"name": c.name,
9483	})
9484	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9485}
9486
9487// Do executes the "bigtableadmin.projects.instances.tables.modifyColumnFamilies" call.
9488// Exactly one of *Table or error will be non-nil. Any non-2xx status
9489// code is an error. Response headers are in either
9490// *Table.ServerResponse.Header or (if a response was returned at all)
9491// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
9492// check whether the returned error was because http.StatusNotModified
9493// was returned.
9494func (c *ProjectsInstancesTablesModifyColumnFamiliesCall) Do(opts ...googleapi.CallOption) (*Table, error) {
9495	gensupport.SetOptions(c.urlParams_, opts...)
9496	res, err := c.doRequest("json")
9497	if res != nil && res.StatusCode == http.StatusNotModified {
9498		if res.Body != nil {
9499			res.Body.Close()
9500		}
9501		return nil, &googleapi.Error{
9502			Code:   res.StatusCode,
9503			Header: res.Header,
9504		}
9505	}
9506	if err != nil {
9507		return nil, err
9508	}
9509	defer googleapi.CloseBody(res)
9510	if err := googleapi.CheckResponse(res); err != nil {
9511		return nil, err
9512	}
9513	ret := &Table{
9514		ServerResponse: googleapi.ServerResponse{
9515			Header:         res.Header,
9516			HTTPStatusCode: res.StatusCode,
9517		},
9518	}
9519	target := &ret
9520	if err := gensupport.DecodeResponse(target, res); err != nil {
9521		return nil, err
9522	}
9523	return ret, nil
9524	// {
9525	//   "description": "Performs a series of column family modifications on the specified table. Either all or none of the modifications will occur before this method returns, but data requests received prior to that point may see a table where only some modifications have taken effect.",
9526	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}:modifyColumnFamilies",
9527	//   "httpMethod": "POST",
9528	//   "id": "bigtableadmin.projects.instances.tables.modifyColumnFamilies",
9529	//   "parameterOrder": [
9530	//     "name"
9531	//   ],
9532	//   "parameters": {
9533	//     "name": {
9534	//       "description": "Required. The unique name of the table whose families should be modified. Values are of the form `projects/{project}/instances/{instance}/tables/{table}`.",
9535	//       "location": "path",
9536	//       "pattern": "^projects/[^/]+/instances/[^/]+/tables/[^/]+$",
9537	//       "required": true,
9538	//       "type": "string"
9539	//     }
9540	//   },
9541	//   "path": "v2/{+name}:modifyColumnFamilies",
9542	//   "request": {
9543	//     "$ref": "ModifyColumnFamiliesRequest"
9544	//   },
9545	//   "response": {
9546	//     "$ref": "Table"
9547	//   },
9548	//   "scopes": [
9549	//     "https://www.googleapis.com/auth/bigtable.admin",
9550	//     "https://www.googleapis.com/auth/bigtable.admin.table",
9551	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
9552	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
9553	//     "https://www.googleapis.com/auth/cloud-platform"
9554	//   ]
9555	// }
9556
9557}
9558
9559// method id "bigtableadmin.projects.instances.tables.restore":
9560
9561type ProjectsInstancesTablesRestoreCall struct {
9562	s                   *Service
9563	parent              string
9564	restoretablerequest *RestoreTableRequest
9565	urlParams_          gensupport.URLParams
9566	ctx_                context.Context
9567	header_             http.Header
9568}
9569
9570// Restore: Create a new table by restoring from a completed backup. The
9571// new table must be in the same project as the instance containing the
9572// backup. The returned table long-running operation can be used to
9573// track the progress of the operation, and to cancel it. The metadata
9574// field type is RestoreTableMetadata. The response type is Table, if
9575// successful.
9576//
9577// - parent: The name of the instance in which to create the restored
9578//   table. This instance must be in the same project as the source
9579//   backup. Values are of the form `projects//instances/`.
9580func (r *ProjectsInstancesTablesService) Restore(parent string, restoretablerequest *RestoreTableRequest) *ProjectsInstancesTablesRestoreCall {
9581	c := &ProjectsInstancesTablesRestoreCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9582	c.parent = parent
9583	c.restoretablerequest = restoretablerequest
9584	return c
9585}
9586
9587// Fields allows partial responses to be retrieved. See
9588// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9589// for more information.
9590func (c *ProjectsInstancesTablesRestoreCall) Fields(s ...googleapi.Field) *ProjectsInstancesTablesRestoreCall {
9591	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9592	return c
9593}
9594
9595// Context sets the context to be used in this call's Do method. Any
9596// pending HTTP request will be aborted if the provided context is
9597// canceled.
9598func (c *ProjectsInstancesTablesRestoreCall) Context(ctx context.Context) *ProjectsInstancesTablesRestoreCall {
9599	c.ctx_ = ctx
9600	return c
9601}
9602
9603// Header returns an http.Header that can be modified by the caller to
9604// add HTTP headers to the request.
9605func (c *ProjectsInstancesTablesRestoreCall) Header() http.Header {
9606	if c.header_ == nil {
9607		c.header_ = make(http.Header)
9608	}
9609	return c.header_
9610}
9611
9612func (c *ProjectsInstancesTablesRestoreCall) doRequest(alt string) (*http.Response, error) {
9613	reqHeaders := make(http.Header)
9614	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
9615	for k, v := range c.header_ {
9616		reqHeaders[k] = v
9617	}
9618	reqHeaders.Set("User-Agent", c.s.userAgent())
9619	var body io.Reader = nil
9620	body, err := googleapi.WithoutDataWrapper.JSONReader(c.restoretablerequest)
9621	if err != nil {
9622		return nil, err
9623	}
9624	reqHeaders.Set("Content-Type", "application/json")
9625	c.urlParams_.Set("alt", alt)
9626	c.urlParams_.Set("prettyPrint", "false")
9627	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+parent}/tables:restore")
9628	urls += "?" + c.urlParams_.Encode()
9629	req, err := http.NewRequest("POST", urls, body)
9630	if err != nil {
9631		return nil, err
9632	}
9633	req.Header = reqHeaders
9634	googleapi.Expand(req.URL, map[string]string{
9635		"parent": c.parent,
9636	})
9637	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9638}
9639
9640// Do executes the "bigtableadmin.projects.instances.tables.restore" call.
9641// Exactly one of *Operation or error will be non-nil. Any non-2xx
9642// status code is an error. Response headers are in either
9643// *Operation.ServerResponse.Header or (if a response was returned at
9644// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9645// to check whether the returned error was because
9646// http.StatusNotModified was returned.
9647func (c *ProjectsInstancesTablesRestoreCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
9648	gensupport.SetOptions(c.urlParams_, opts...)
9649	res, err := c.doRequest("json")
9650	if res != nil && res.StatusCode == http.StatusNotModified {
9651		if res.Body != nil {
9652			res.Body.Close()
9653		}
9654		return nil, &googleapi.Error{
9655			Code:   res.StatusCode,
9656			Header: res.Header,
9657		}
9658	}
9659	if err != nil {
9660		return nil, err
9661	}
9662	defer googleapi.CloseBody(res)
9663	if err := googleapi.CheckResponse(res); err != nil {
9664		return nil, err
9665	}
9666	ret := &Operation{
9667		ServerResponse: googleapi.ServerResponse{
9668			Header:         res.Header,
9669			HTTPStatusCode: res.StatusCode,
9670		},
9671	}
9672	target := &ret
9673	if err := gensupport.DecodeResponse(target, res); err != nil {
9674		return nil, err
9675	}
9676	return ret, nil
9677	// {
9678	//   "description": "Create a new table by restoring from a completed backup. The new table must be in the same project as the instance containing the backup. The returned table long-running operation can be used to track the progress of the operation, and to cancel it. The metadata field type is RestoreTableMetadata. The response type is Table, if successful.",
9679	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables:restore",
9680	//   "httpMethod": "POST",
9681	//   "id": "bigtableadmin.projects.instances.tables.restore",
9682	//   "parameterOrder": [
9683	//     "parent"
9684	//   ],
9685	//   "parameters": {
9686	//     "parent": {
9687	//       "description": "Required. The name of the instance in which to create the restored table. This instance must be in the same project as the source backup. Values are of the form `projects//instances/`.",
9688	//       "location": "path",
9689	//       "pattern": "^projects/[^/]+/instances/[^/]+$",
9690	//       "required": true,
9691	//       "type": "string"
9692	//     }
9693	//   },
9694	//   "path": "v2/{+parent}/tables:restore",
9695	//   "request": {
9696	//     "$ref": "RestoreTableRequest"
9697	//   },
9698	//   "response": {
9699	//     "$ref": "Operation"
9700	//   },
9701	//   "scopes": [
9702	//     "https://www.googleapis.com/auth/bigtable.admin",
9703	//     "https://www.googleapis.com/auth/bigtable.admin.table",
9704	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
9705	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
9706	//     "https://www.googleapis.com/auth/cloud-platform"
9707	//   ]
9708	// }
9709
9710}
9711
9712// method id "bigtableadmin.projects.instances.tables.setIamPolicy":
9713
9714type ProjectsInstancesTablesSetIamPolicyCall struct {
9715	s                   *Service
9716	resource            string
9717	setiampolicyrequest *SetIamPolicyRequest
9718	urlParams_          gensupport.URLParams
9719	ctx_                context.Context
9720	header_             http.Header
9721}
9722
9723// SetIamPolicy: Sets the access control policy on a Table resource.
9724// Replaces any existing policy.
9725//
9726// - resource: REQUIRED: The resource for which the policy is being
9727//   specified. See the operation documentation for the appropriate
9728//   value for this field.
9729func (r *ProjectsInstancesTablesService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *ProjectsInstancesTablesSetIamPolicyCall {
9730	c := &ProjectsInstancesTablesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9731	c.resource = resource
9732	c.setiampolicyrequest = setiampolicyrequest
9733	return c
9734}
9735
9736// Fields allows partial responses to be retrieved. See
9737// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9738// for more information.
9739func (c *ProjectsInstancesTablesSetIamPolicyCall) Fields(s ...googleapi.Field) *ProjectsInstancesTablesSetIamPolicyCall {
9740	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9741	return c
9742}
9743
9744// Context sets the context to be used in this call's Do method. Any
9745// pending HTTP request will be aborted if the provided context is
9746// canceled.
9747func (c *ProjectsInstancesTablesSetIamPolicyCall) Context(ctx context.Context) *ProjectsInstancesTablesSetIamPolicyCall {
9748	c.ctx_ = ctx
9749	return c
9750}
9751
9752// Header returns an http.Header that can be modified by the caller to
9753// add HTTP headers to the request.
9754func (c *ProjectsInstancesTablesSetIamPolicyCall) Header() http.Header {
9755	if c.header_ == nil {
9756		c.header_ = make(http.Header)
9757	}
9758	return c.header_
9759}
9760
9761func (c *ProjectsInstancesTablesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
9762	reqHeaders := make(http.Header)
9763	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
9764	for k, v := range c.header_ {
9765		reqHeaders[k] = v
9766	}
9767	reqHeaders.Set("User-Agent", c.s.userAgent())
9768	var body io.Reader = nil
9769	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest)
9770	if err != nil {
9771		return nil, err
9772	}
9773	reqHeaders.Set("Content-Type", "application/json")
9774	c.urlParams_.Set("alt", alt)
9775	c.urlParams_.Set("prettyPrint", "false")
9776	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+resource}:setIamPolicy")
9777	urls += "?" + c.urlParams_.Encode()
9778	req, err := http.NewRequest("POST", urls, body)
9779	if err != nil {
9780		return nil, err
9781	}
9782	req.Header = reqHeaders
9783	googleapi.Expand(req.URL, map[string]string{
9784		"resource": c.resource,
9785	})
9786	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9787}
9788
9789// Do executes the "bigtableadmin.projects.instances.tables.setIamPolicy" call.
9790// Exactly one of *Policy or error will be non-nil. Any non-2xx status
9791// code is an error. Response headers are in either
9792// *Policy.ServerResponse.Header or (if a response was returned at all)
9793// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
9794// check whether the returned error was because http.StatusNotModified
9795// was returned.
9796func (c *ProjectsInstancesTablesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
9797	gensupport.SetOptions(c.urlParams_, opts...)
9798	res, err := c.doRequest("json")
9799	if res != nil && res.StatusCode == http.StatusNotModified {
9800		if res.Body != nil {
9801			res.Body.Close()
9802		}
9803		return nil, &googleapi.Error{
9804			Code:   res.StatusCode,
9805			Header: res.Header,
9806		}
9807	}
9808	if err != nil {
9809		return nil, err
9810	}
9811	defer googleapi.CloseBody(res)
9812	if err := googleapi.CheckResponse(res); err != nil {
9813		return nil, err
9814	}
9815	ret := &Policy{
9816		ServerResponse: googleapi.ServerResponse{
9817			Header:         res.Header,
9818			HTTPStatusCode: res.StatusCode,
9819		},
9820	}
9821	target := &ret
9822	if err := gensupport.DecodeResponse(target, res); err != nil {
9823		return nil, err
9824	}
9825	return ret, nil
9826	// {
9827	//   "description": "Sets the access control policy on a Table resource. Replaces any existing policy.",
9828	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}:setIamPolicy",
9829	//   "httpMethod": "POST",
9830	//   "id": "bigtableadmin.projects.instances.tables.setIamPolicy",
9831	//   "parameterOrder": [
9832	//     "resource"
9833	//   ],
9834	//   "parameters": {
9835	//     "resource": {
9836	//       "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.",
9837	//       "location": "path",
9838	//       "pattern": "^projects/[^/]+/instances/[^/]+/tables/[^/]+$",
9839	//       "required": true,
9840	//       "type": "string"
9841	//     }
9842	//   },
9843	//   "path": "v2/{+resource}:setIamPolicy",
9844	//   "request": {
9845	//     "$ref": "SetIamPolicyRequest"
9846	//   },
9847	//   "response": {
9848	//     "$ref": "Policy"
9849	//   },
9850	//   "scopes": [
9851	//     "https://www.googleapis.com/auth/bigtable.admin",
9852	//     "https://www.googleapis.com/auth/bigtable.admin.table",
9853	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
9854	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
9855	//     "https://www.googleapis.com/auth/cloud-platform"
9856	//   ]
9857	// }
9858
9859}
9860
9861// method id "bigtableadmin.projects.instances.tables.testIamPermissions":
9862
9863type ProjectsInstancesTablesTestIamPermissionsCall struct {
9864	s                         *Service
9865	resource                  string
9866	testiampermissionsrequest *TestIamPermissionsRequest
9867	urlParams_                gensupport.URLParams
9868	ctx_                      context.Context
9869	header_                   http.Header
9870}
9871
9872// TestIamPermissions: Returns permissions that the caller has on the
9873// specified table resource.
9874//
9875// - resource: REQUIRED: The resource for which the policy detail is
9876//   being requested. See the operation documentation for the
9877//   appropriate value for this field.
9878func (r *ProjectsInstancesTablesService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *ProjectsInstancesTablesTestIamPermissionsCall {
9879	c := &ProjectsInstancesTablesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9880	c.resource = resource
9881	c.testiampermissionsrequest = testiampermissionsrequest
9882	return c
9883}
9884
9885// Fields allows partial responses to be retrieved. See
9886// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9887// for more information.
9888func (c *ProjectsInstancesTablesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ProjectsInstancesTablesTestIamPermissionsCall {
9889	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9890	return c
9891}
9892
9893// Context sets the context to be used in this call's Do method. Any
9894// pending HTTP request will be aborted if the provided context is
9895// canceled.
9896func (c *ProjectsInstancesTablesTestIamPermissionsCall) Context(ctx context.Context) *ProjectsInstancesTablesTestIamPermissionsCall {
9897	c.ctx_ = ctx
9898	return c
9899}
9900
9901// Header returns an http.Header that can be modified by the caller to
9902// add HTTP headers to the request.
9903func (c *ProjectsInstancesTablesTestIamPermissionsCall) Header() http.Header {
9904	if c.header_ == nil {
9905		c.header_ = make(http.Header)
9906	}
9907	return c.header_
9908}
9909
9910func (c *ProjectsInstancesTablesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
9911	reqHeaders := make(http.Header)
9912	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
9913	for k, v := range c.header_ {
9914		reqHeaders[k] = v
9915	}
9916	reqHeaders.Set("User-Agent", c.s.userAgent())
9917	var body io.Reader = nil
9918	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest)
9919	if err != nil {
9920		return nil, err
9921	}
9922	reqHeaders.Set("Content-Type", "application/json")
9923	c.urlParams_.Set("alt", alt)
9924	c.urlParams_.Set("prettyPrint", "false")
9925	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+resource}:testIamPermissions")
9926	urls += "?" + c.urlParams_.Encode()
9927	req, err := http.NewRequest("POST", urls, body)
9928	if err != nil {
9929		return nil, err
9930	}
9931	req.Header = reqHeaders
9932	googleapi.Expand(req.URL, map[string]string{
9933		"resource": c.resource,
9934	})
9935	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9936}
9937
9938// Do executes the "bigtableadmin.projects.instances.tables.testIamPermissions" call.
9939// Exactly one of *TestIamPermissionsResponse or error will be non-nil.
9940// Any non-2xx status code is an error. Response headers are in either
9941// *TestIamPermissionsResponse.ServerResponse.Header or (if a response
9942// was returned at all) in error.(*googleapi.Error).Header. Use
9943// googleapi.IsNotModified to check whether the returned error was
9944// because http.StatusNotModified was returned.
9945func (c *ProjectsInstancesTablesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) {
9946	gensupport.SetOptions(c.urlParams_, opts...)
9947	res, err := c.doRequest("json")
9948	if res != nil && res.StatusCode == http.StatusNotModified {
9949		if res.Body != nil {
9950			res.Body.Close()
9951		}
9952		return nil, &googleapi.Error{
9953			Code:   res.StatusCode,
9954			Header: res.Header,
9955		}
9956	}
9957	if err != nil {
9958		return nil, err
9959	}
9960	defer googleapi.CloseBody(res)
9961	if err := googleapi.CheckResponse(res); err != nil {
9962		return nil, err
9963	}
9964	ret := &TestIamPermissionsResponse{
9965		ServerResponse: googleapi.ServerResponse{
9966			Header:         res.Header,
9967			HTTPStatusCode: res.StatusCode,
9968		},
9969	}
9970	target := &ret
9971	if err := gensupport.DecodeResponse(target, res); err != nil {
9972		return nil, err
9973	}
9974	return ret, nil
9975	// {
9976	//   "description": "Returns permissions that the caller has on the specified table resource.",
9977	//   "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}:testIamPermissions",
9978	//   "httpMethod": "POST",
9979	//   "id": "bigtableadmin.projects.instances.tables.testIamPermissions",
9980	//   "parameterOrder": [
9981	//     "resource"
9982	//   ],
9983	//   "parameters": {
9984	//     "resource": {
9985	//       "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.",
9986	//       "location": "path",
9987	//       "pattern": "^projects/[^/]+/instances/[^/]+/tables/[^/]+$",
9988	//       "required": true,
9989	//       "type": "string"
9990	//     }
9991	//   },
9992	//   "path": "v2/{+resource}:testIamPermissions",
9993	//   "request": {
9994	//     "$ref": "TestIamPermissionsRequest"
9995	//   },
9996	//   "response": {
9997	//     "$ref": "TestIamPermissionsResponse"
9998	//   },
9999	//   "scopes": [
10000	//     "https://www.googleapis.com/auth/bigtable.admin",
10001	//     "https://www.googleapis.com/auth/bigtable.admin.table",
10002	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
10003	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.table",
10004	//     "https://www.googleapis.com/auth/cloud-platform"
10005	//   ]
10006	// }
10007
10008}
10009
10010// method id "bigtableadmin.projects.locations.get":
10011
10012type ProjectsLocationsGetCall struct {
10013	s            *Service
10014	name         string
10015	urlParams_   gensupport.URLParams
10016	ifNoneMatch_ string
10017	ctx_         context.Context
10018	header_      http.Header
10019}
10020
10021// Get: Gets information about a location.
10022//
10023// - name: Resource name for the location.
10024func (r *ProjectsLocationsService) Get(name string) *ProjectsLocationsGetCall {
10025	c := &ProjectsLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10026	c.name = name
10027	return c
10028}
10029
10030// Fields allows partial responses to be retrieved. See
10031// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10032// for more information.
10033func (c *ProjectsLocationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsGetCall {
10034	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10035	return c
10036}
10037
10038// IfNoneMatch sets the optional parameter which makes the operation
10039// fail if the object's ETag matches the given value. This is useful for
10040// getting updates only after the object has changed since the last
10041// request. Use googleapi.IsNotModified to check whether the response
10042// error from Do is the result of In-None-Match.
10043func (c *ProjectsLocationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsGetCall {
10044	c.ifNoneMatch_ = entityTag
10045	return c
10046}
10047
10048// Context sets the context to be used in this call's Do method. Any
10049// pending HTTP request will be aborted if the provided context is
10050// canceled.
10051func (c *ProjectsLocationsGetCall) Context(ctx context.Context) *ProjectsLocationsGetCall {
10052	c.ctx_ = ctx
10053	return c
10054}
10055
10056// Header returns an http.Header that can be modified by the caller to
10057// add HTTP headers to the request.
10058func (c *ProjectsLocationsGetCall) Header() http.Header {
10059	if c.header_ == nil {
10060		c.header_ = make(http.Header)
10061	}
10062	return c.header_
10063}
10064
10065func (c *ProjectsLocationsGetCall) doRequest(alt string) (*http.Response, error) {
10066	reqHeaders := make(http.Header)
10067	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
10068	for k, v := range c.header_ {
10069		reqHeaders[k] = v
10070	}
10071	reqHeaders.Set("User-Agent", c.s.userAgent())
10072	if c.ifNoneMatch_ != "" {
10073		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10074	}
10075	var body io.Reader = nil
10076	c.urlParams_.Set("alt", alt)
10077	c.urlParams_.Set("prettyPrint", "false")
10078	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}")
10079	urls += "?" + c.urlParams_.Encode()
10080	req, err := http.NewRequest("GET", urls, body)
10081	if err != nil {
10082		return nil, err
10083	}
10084	req.Header = reqHeaders
10085	googleapi.Expand(req.URL, map[string]string{
10086		"name": c.name,
10087	})
10088	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10089}
10090
10091// Do executes the "bigtableadmin.projects.locations.get" call.
10092// Exactly one of *Location or error will be non-nil. Any non-2xx status
10093// code is an error. Response headers are in either
10094// *Location.ServerResponse.Header or (if a response was returned at
10095// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
10096// to check whether the returned error was because
10097// http.StatusNotModified was returned.
10098func (c *ProjectsLocationsGetCall) Do(opts ...googleapi.CallOption) (*Location, error) {
10099	gensupport.SetOptions(c.urlParams_, opts...)
10100	res, err := c.doRequest("json")
10101	if res != nil && res.StatusCode == http.StatusNotModified {
10102		if res.Body != nil {
10103			res.Body.Close()
10104		}
10105		return nil, &googleapi.Error{
10106			Code:   res.StatusCode,
10107			Header: res.Header,
10108		}
10109	}
10110	if err != nil {
10111		return nil, err
10112	}
10113	defer googleapi.CloseBody(res)
10114	if err := googleapi.CheckResponse(res); err != nil {
10115		return nil, err
10116	}
10117	ret := &Location{
10118		ServerResponse: googleapi.ServerResponse{
10119			Header:         res.Header,
10120			HTTPStatusCode: res.StatusCode,
10121		},
10122	}
10123	target := &ret
10124	if err := gensupport.DecodeResponse(target, res); err != nil {
10125		return nil, err
10126	}
10127	return ret, nil
10128	// {
10129	//   "description": "Gets information about a location.",
10130	//   "flatPath": "v2/projects/{projectsId}/locations/{locationsId}",
10131	//   "httpMethod": "GET",
10132	//   "id": "bigtableadmin.projects.locations.get",
10133	//   "parameterOrder": [
10134	//     "name"
10135	//   ],
10136	//   "parameters": {
10137	//     "name": {
10138	//       "description": "Resource name for the location.",
10139	//       "location": "path",
10140	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
10141	//       "required": true,
10142	//       "type": "string"
10143	//     }
10144	//   },
10145	//   "path": "v2/{+name}",
10146	//   "response": {
10147	//     "$ref": "Location"
10148	//   },
10149	//   "scopes": [
10150	//     "https://www.googleapis.com/auth/bigtable.admin",
10151	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
10152	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
10153	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
10154	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
10155	//     "https://www.googleapis.com/auth/cloud-platform",
10156	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
10157	//   ]
10158	// }
10159
10160}
10161
10162// method id "bigtableadmin.projects.locations.list":
10163
10164type ProjectsLocationsListCall struct {
10165	s            *Service
10166	name         string
10167	urlParams_   gensupport.URLParams
10168	ifNoneMatch_ string
10169	ctx_         context.Context
10170	header_      http.Header
10171}
10172
10173// List: Lists information about the supported locations for this
10174// service.
10175//
10176// - name: The resource that owns the locations collection, if
10177//   applicable.
10178func (r *ProjectsLocationsService) List(name string) *ProjectsLocationsListCall {
10179	c := &ProjectsLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10180	c.name = name
10181	return c
10182}
10183
10184// Filter sets the optional parameter "filter": A filter to narrow down
10185// results to a preferred subset. The filtering language accepts strings
10186// like "displayName=tokyo", and is documented in more detail in AIP-160
10187// (https://google.aip.dev/160).
10188func (c *ProjectsLocationsListCall) Filter(filter string) *ProjectsLocationsListCall {
10189	c.urlParams_.Set("filter", filter)
10190	return c
10191}
10192
10193// PageSize sets the optional parameter "pageSize": The maximum number
10194// of results to return. If not set, the service selects a default.
10195func (c *ProjectsLocationsListCall) PageSize(pageSize int64) *ProjectsLocationsListCall {
10196	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
10197	return c
10198}
10199
10200// PageToken sets the optional parameter "pageToken": A page token
10201// received from the `next_page_token` field in the response. Send that
10202// page token to receive the subsequent page.
10203func (c *ProjectsLocationsListCall) PageToken(pageToken string) *ProjectsLocationsListCall {
10204	c.urlParams_.Set("pageToken", pageToken)
10205	return c
10206}
10207
10208// Fields allows partial responses to be retrieved. See
10209// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10210// for more information.
10211func (c *ProjectsLocationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsListCall {
10212	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10213	return c
10214}
10215
10216// IfNoneMatch sets the optional parameter which makes the operation
10217// fail if the object's ETag matches the given value. This is useful for
10218// getting updates only after the object has changed since the last
10219// request. Use googleapi.IsNotModified to check whether the response
10220// error from Do is the result of In-None-Match.
10221func (c *ProjectsLocationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsListCall {
10222	c.ifNoneMatch_ = entityTag
10223	return c
10224}
10225
10226// Context sets the context to be used in this call's Do method. Any
10227// pending HTTP request will be aborted if the provided context is
10228// canceled.
10229func (c *ProjectsLocationsListCall) Context(ctx context.Context) *ProjectsLocationsListCall {
10230	c.ctx_ = ctx
10231	return c
10232}
10233
10234// Header returns an http.Header that can be modified by the caller to
10235// add HTTP headers to the request.
10236func (c *ProjectsLocationsListCall) Header() http.Header {
10237	if c.header_ == nil {
10238		c.header_ = make(http.Header)
10239	}
10240	return c.header_
10241}
10242
10243func (c *ProjectsLocationsListCall) doRequest(alt string) (*http.Response, error) {
10244	reqHeaders := make(http.Header)
10245	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915")
10246	for k, v := range c.header_ {
10247		reqHeaders[k] = v
10248	}
10249	reqHeaders.Set("User-Agent", c.s.userAgent())
10250	if c.ifNoneMatch_ != "" {
10251		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10252	}
10253	var body io.Reader = nil
10254	c.urlParams_.Set("alt", alt)
10255	c.urlParams_.Set("prettyPrint", "false")
10256	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}/locations")
10257	urls += "?" + c.urlParams_.Encode()
10258	req, err := http.NewRequest("GET", urls, body)
10259	if err != nil {
10260		return nil, err
10261	}
10262	req.Header = reqHeaders
10263	googleapi.Expand(req.URL, map[string]string{
10264		"name": c.name,
10265	})
10266	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10267}
10268
10269// Do executes the "bigtableadmin.projects.locations.list" call.
10270// Exactly one of *ListLocationsResponse or error will be non-nil. Any
10271// non-2xx status code is an error. Response headers are in either
10272// *ListLocationsResponse.ServerResponse.Header or (if a response was
10273// returned at all) in error.(*googleapi.Error).Header. Use
10274// googleapi.IsNotModified to check whether the returned error was
10275// because http.StatusNotModified was returned.
10276func (c *ProjectsLocationsListCall) Do(opts ...googleapi.CallOption) (*ListLocationsResponse, error) {
10277	gensupport.SetOptions(c.urlParams_, opts...)
10278	res, err := c.doRequest("json")
10279	if res != nil && res.StatusCode == http.StatusNotModified {
10280		if res.Body != nil {
10281			res.Body.Close()
10282		}
10283		return nil, &googleapi.Error{
10284			Code:   res.StatusCode,
10285			Header: res.Header,
10286		}
10287	}
10288	if err != nil {
10289		return nil, err
10290	}
10291	defer googleapi.CloseBody(res)
10292	if err := googleapi.CheckResponse(res); err != nil {
10293		return nil, err
10294	}
10295	ret := &ListLocationsResponse{
10296		ServerResponse: googleapi.ServerResponse{
10297			Header:         res.Header,
10298			HTTPStatusCode: res.StatusCode,
10299		},
10300	}
10301	target := &ret
10302	if err := gensupport.DecodeResponse(target, res); err != nil {
10303		return nil, err
10304	}
10305	return ret, nil
10306	// {
10307	//   "description": "Lists information about the supported locations for this service.",
10308	//   "flatPath": "v2/projects/{projectsId}/locations",
10309	//   "httpMethod": "GET",
10310	//   "id": "bigtableadmin.projects.locations.list",
10311	//   "parameterOrder": [
10312	//     "name"
10313	//   ],
10314	//   "parameters": {
10315	//     "filter": {
10316	//       "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).",
10317	//       "location": "query",
10318	//       "type": "string"
10319	//     },
10320	//     "name": {
10321	//       "description": "The resource that owns the locations collection, if applicable.",
10322	//       "location": "path",
10323	//       "pattern": "^projects/[^/]+$",
10324	//       "required": true,
10325	//       "type": "string"
10326	//     },
10327	//     "pageSize": {
10328	//       "description": "The maximum number of results to return. If not set, the service selects a default.",
10329	//       "format": "int32",
10330	//       "location": "query",
10331	//       "type": "integer"
10332	//     },
10333	//     "pageToken": {
10334	//       "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.",
10335	//       "location": "query",
10336	//       "type": "string"
10337	//     }
10338	//   },
10339	//   "path": "v2/{+name}/locations",
10340	//   "response": {
10341	//     "$ref": "ListLocationsResponse"
10342	//   },
10343	//   "scopes": [
10344	//     "https://www.googleapis.com/auth/bigtable.admin",
10345	//     "https://www.googleapis.com/auth/bigtable.admin.cluster",
10346	//     "https://www.googleapis.com/auth/bigtable.admin.instance",
10347	//     "https://www.googleapis.com/auth/cloud-bigtable.admin",
10348	//     "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster",
10349	//     "https://www.googleapis.com/auth/cloud-platform",
10350	//     "https://www.googleapis.com/auth/cloud-platform.read-only"
10351	//   ]
10352	// }
10353
10354}
10355
10356// Pages invokes f for each page of results.
10357// A non-nil error returned from f will halt the iteration.
10358// The provided context supersedes any context provided to the Context method.
10359func (c *ProjectsLocationsListCall) Pages(ctx context.Context, f func(*ListLocationsResponse) error) error {
10360	c.ctx_ = ctx
10361	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
10362	for {
10363		x, err := c.Do()
10364		if err != nil {
10365			return err
10366		}
10367		if err := f(x); err != nil {
10368			return err
10369		}
10370		if x.NextPageToken == "" {
10371			return nil
10372		}
10373		c.PageToken(x.NextPageToken)
10374	}
10375}
10376