Documentation

Overview

Package bigtableadmin provides access to the Cloud Bigtable Admin API.

For product documentation, see: https://cloud.google.com/bigtable/

Creating a client

Usage example:

import "google.golang.org/api/bigtableadmin/v1"
...
ctx := context.Background()
bigtableadminService, err := bigtableadmin.NewService(ctx)

In this example, Google Application Default Credentials are used for authentication.

For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.

Other authentication options

To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:

bigtableadminService, err := bigtableadmin.NewService(ctx, option.WithAPIKey("AIza..."))

To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:

config := &oauth2.Config{...}
// ...
token, err := config.Exchange(ctx, ...)
bigtableadminService, err := bigtableadmin.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))

See https://godoc.org/google.golang.org/api/option/ for details on options.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Backup

type Backup struct {
	// EncryptionInfo: Output only. The encryption information for the
	// backup.
	EncryptionInfo *EncryptionInfo `json:"encryptionInfo,omitempty"`

	// EndTime: Output only. `end_time` is the time that the backup was
	// finished. The row data in the backup will be no newer than this
	// timestamp.
	EndTime string `json:"endTime,omitempty"`

	// ExpireTime: Required. The expiration time of the backup, with
	// microseconds granularity that must be at least 6 hours and at most 30
	// days from the time the request is received. Once the `expire_time`
	// has passed, Cloud Bigtable will delete the backup and free the
	// resources used by the backup.
	ExpireTime string `json:"expireTime,omitempty"`

	// Name: 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}`.
	Name string `json:"name,omitempty"`

	// SizeBytes: Output only. Size of the backup in bytes.
	SizeBytes int64 `json:"sizeBytes,omitempty,string"`

	// SourceTable: Required. Immutable. Name of the table from which this
	// backup was created. This needs to be in the same instance as the
	// backup. Values are of the form
	// `projects/{project}/instances/{instance}/tables/{source_table}`.
	SourceTable string `json:"sourceTable,omitempty"`

	// StartTime: Output only. `start_time` is the time that the backup was
	// started (i.e. approximately the time the CreateBackup request is
	// received). The row data in this backup will be no older than this
	// timestamp.
	StartTime string `json:"startTime,omitempty"`

	// State: Output only. The current state of the backup.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Not specified.
	//   "CREATING" - The pending backup is still being created. Operations
	// on the backup may fail with `FAILED_PRECONDITION` in this state.
	//   "READY" - The backup is complete and ready for use.
	State string `json:"state,omitempty"`

	// ForceSendFields is a list of field names (e.g. "EncryptionInfo") to
	// unconditionally include in API requests. By default, fields with
	// empty values are omitted from API requests. However, any non-pointer,
	// non-interface field appearing in ForceSendFields will be sent to the
	// server regardless of whether the field is empty or not. This may be
	// used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`

	// NullFields is a list of field names (e.g. "EncryptionInfo") to
	// include in API requests with the JSON null value. By default, fields
	// with empty values are omitted from API requests. However, any field
	// with an empty value appearing in NullFields will be sent to the
	// server as null. It is an error if a field in this list has a
	// non-empty value. This may be used to include null fields in Patch
	// requests.
	NullFields []string `json:"-"`
}

    Backup: A backup of a Cloud Bigtable table.

    func (*Backup) MarshalJSON

    func (s *Backup) MarshalJSON() ([]byte, error)

    type BackupInfo

    type BackupInfo struct {
    	// Backup: Output only. Name of the backup.
    	Backup string `json:"backup,omitempty"`
    
    	// EndTime: Output only. This time that the backup was finished. Row
    	// data in the backup will be no newer than this timestamp.
    	EndTime string `json:"endTime,omitempty"`
    
    	// SourceTable: Output only. Name of the table the backup was created
    	// from.
    	SourceTable string `json:"sourceTable,omitempty"`
    
    	// StartTime: Output only. The time that the backup was started. Row
    	// data in the backup will be no older than this timestamp.
    	StartTime string `json:"startTime,omitempty"`
    
    	// ForceSendFields is a list of field names (e.g. "Backup") to
    	// unconditionally include in API requests. By default, fields with
    	// empty values are omitted from API requests. However, any non-pointer,
    	// non-interface field appearing in ForceSendFields will be sent to the
    	// server regardless of whether the field is empty or not. This may be
    	// used to include empty fields in Patch requests.
    	ForceSendFields []string `json:"-"`
    
    	// NullFields is a list of field names (e.g. "Backup") to include in API
    	// requests with the JSON null value. By default, fields with empty
    	// values are omitted from API requests. However, any field with an
    	// empty value appearing in NullFields will be sent to the server as
    	// null. It is an error if a field in this list has a non-empty value.
    	// This may be used to include null fields in Patch requests.
    	NullFields []string `json:"-"`
    }

      BackupInfo: Information about a backup.

      func (*BackupInfo) MarshalJSON

      func (s *BackupInfo) MarshalJSON() ([]byte, error)

      type Cluster

      type Cluster struct {
      	// DefaultStorageType: Immutable. The type of storage used by this
      	// cluster to serve its parent instance's tables, unless explicitly
      	// overridden.
      	//
      	// Possible values:
      	//   "STORAGE_TYPE_UNSPECIFIED" - The user did not specify a storage
      	// type.
      	//   "SSD" - Flash (SSD) storage should be used.
      	//   "HDD" - Magnetic drive (HDD) storage should be used.
      	DefaultStorageType string `json:"defaultStorageType,omitempty"`
      
      	// EncryptionConfig: Immutable. The encryption configuration for
      	// CMEK-protected clusters.
      	EncryptionConfig *EncryptionConfig `json:"encryptionConfig,omitempty"`
      
      	// Location: Immutable. The location where this cluster's nodes and
      	// storage reside. For best performance, clients should be located as
      	// close as possible to this cluster. Currently only zones are
      	// supported, so values should be of the form
      	// `projects/{project}/locations/{zone}`.
      	Location string `json:"location,omitempty"`
      
      	// Name: The unique name of the cluster. Values are of the form
      	// `projects/{project}/instances/{instance}/clusters/a-z*`.
      	Name string `json:"name,omitempty"`
      
      	// ServeNodes: Required. The number of nodes allocated to this cluster.
      	// More nodes enable higher throughput and more consistent performance.
      	ServeNodes int64 `json:"serveNodes,omitempty"`
      
      	// State: Output only. The current state of the cluster.
      	//
      	// Possible values:
      	//   "STATE_NOT_KNOWN" - The state of the cluster could not be
      	// determined.
      	//   "READY" - The cluster has been successfully created and is ready to
      	// serve requests.
      	//   "CREATING" - The cluster is currently being created, and may be
      	// destroyed if the creation process encounters an error. A cluster may
      	// not be able to serve requests while being created.
      	//   "RESIZING" - The cluster is currently being resized, and may revert
      	// to its previous node count if the process encounters an error. A
      	// cluster is still capable of serving requests while being resized, but
      	// may exhibit performance as if its number of allocated nodes is
      	// between the starting and requested states.
      	//   "DISABLED" - The cluster has no backing nodes. The data (tables)
      	// still exist, but no operations can be performed on the cluster.
      	State string `json:"state,omitempty"`
      
      	// ForceSendFields is a list of field names (e.g. "DefaultStorageType")
      	// to unconditionally include in API requests. By default, fields with
      	// empty values are omitted from API requests. However, any non-pointer,
      	// non-interface field appearing in ForceSendFields will be sent to the
      	// server regardless of whether the field is empty or not. This may be
      	// used to include empty fields in Patch requests.
      	ForceSendFields []string `json:"-"`
      
      	// NullFields is a list of field names (e.g. "DefaultStorageType") to
      	// include in API requests with the JSON null value. By default, fields
      	// with empty values are omitted from API requests. However, any field
      	// with an empty value appearing in NullFields will be sent to the
      	// server as null. It is an error if a field in this list has a
      	// non-empty value. This may be used to include null fields in Patch
      	// requests.
      	NullFields []string `json:"-"`
      }

        Cluster: A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.

        func (*Cluster) MarshalJSON

        func (s *Cluster) MarshalJSON() ([]byte, error)

        type CreateBackupMetadata

        type CreateBackupMetadata struct {
        	// EndTime: If set, the time at which this operation finished or was
        	// cancelled.
        	EndTime string `json:"endTime,omitempty"`
        
        	// Name: The name of the backup being created.
        	Name string `json:"name,omitempty"`
        
        	// SourceTable: The name of the table the backup is created from.
        	SourceTable string `json:"sourceTable,omitempty"`
        
        	// StartTime: The time at which this operation started.
        	StartTime string `json:"startTime,omitempty"`
        
        	// ForceSendFields is a list of field names (e.g. "EndTime") to
        	// unconditionally include in API requests. By default, fields with
        	// empty values are omitted from API requests. However, any non-pointer,
        	// non-interface field appearing in ForceSendFields will be sent to the
        	// server regardless of whether the field is empty or not. This may be
        	// used to include empty fields in Patch requests.
        	ForceSendFields []string `json:"-"`
        
        	// NullFields is a list of field names (e.g. "EndTime") to include in
        	// API requests with the JSON null value. By default, fields with empty
        	// values are omitted from API requests. However, any field with an
        	// empty value appearing in NullFields will be sent to the server as
        	// null. It is an error if a field in this list has a non-empty value.
        	// This may be used to include null fields in Patch requests.
        	NullFields []string `json:"-"`
        }

          CreateBackupMetadata: Metadata type for the operation returned by CreateBackup.

          func (*CreateBackupMetadata) MarshalJSON

          func (s *CreateBackupMetadata) MarshalJSON() ([]byte, error)

          type CreateClusterMetadata

          type CreateClusterMetadata struct {
          	// FinishTime: The time at which the operation failed or was completed
          	// successfully.
          	FinishTime string `json:"finishTime,omitempty"`
          
          	// OriginalRequest: The request that prompted the initiation of this
          	// CreateCluster operation.
          	OriginalRequest *CreateClusterRequest `json:"originalRequest,omitempty"`
          
          	// RequestTime: The time at which the original request was received.
          	RequestTime string `json:"requestTime,omitempty"`
          
          	// Tables: Keys: the full `name` of each table that existed in the
          	// instance when CreateCluster was first called, i.e.
          	// `projects//instances//tables/`. Any table added to the instance by a
          	// later API call will be created in the new cluster by that API call,
          	// not this one. Values: information on how much of a table's data has
          	// been copied to the newly-created cluster so far.
          	Tables map[string]TableProgress `json:"tables,omitempty"`
          
          	// ForceSendFields is a list of field names (e.g. "FinishTime") to
          	// unconditionally include in API requests. By default, fields with
          	// empty values are omitted from API requests. However, any non-pointer,
          	// non-interface field appearing in ForceSendFields will be sent to the
          	// server regardless of whether the field is empty or not. This may be
          	// used to include empty fields in Patch requests.
          	ForceSendFields []string `json:"-"`
          
          	// NullFields is a list of field names (e.g. "FinishTime") to include in
          	// API requests with the JSON null value. By default, fields with empty
          	// values are omitted from API requests. However, any field with an
          	// empty value appearing in NullFields will be sent to the server as
          	// null. It is an error if a field in this list has a non-empty value.
          	// This may be used to include null fields in Patch requests.
          	NullFields []string `json:"-"`
          }

            CreateClusterMetadata: The metadata for the Operation returned by CreateCluster.

            func (*CreateClusterMetadata) MarshalJSON

            func (s *CreateClusterMetadata) MarshalJSON() ([]byte, error)

            type CreateClusterRequest

            type CreateClusterRequest struct {
            	// Cluster: Required. The cluster to be created. Fields marked
            	// `OutputOnly` must be left blank.
            	Cluster *Cluster `json:"cluster,omitempty"`
            
            	// ClusterId: 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`.
            	ClusterId string `json:"clusterId,omitempty"`
            
            	// Parent: Required. The unique name of the instance in which to create
            	// the new cluster. Values are of the form
            	// `projects/{project}/instances/{instance}`.
            	Parent string `json:"parent,omitempty"`
            
            	// ForceSendFields is a list of field names (e.g. "Cluster") to
            	// unconditionally include in API requests. By default, fields with
            	// empty values are omitted from API requests. However, any non-pointer,
            	// non-interface field appearing in ForceSendFields will be sent to the
            	// server regardless of whether the field is empty or not. This may be
            	// used to include empty fields in Patch requests.
            	ForceSendFields []string `json:"-"`
            
            	// NullFields is a list of field names (e.g. "Cluster") to include in
            	// API requests with the JSON null value. By default, fields with empty
            	// values are omitted from API requests. However, any field with an
            	// empty value appearing in NullFields will be sent to the server as
            	// null. It is an error if a field in this list has a non-empty value.
            	// This may be used to include null fields in Patch requests.
            	NullFields []string `json:"-"`
            }

              CreateClusterRequest: Request message for BigtableInstanceAdmin.CreateCluster.

              func (*CreateClusterRequest) MarshalJSON

              func (s *CreateClusterRequest) MarshalJSON() ([]byte, error)

              type CreateInstanceMetadata

              type CreateInstanceMetadata struct {
              	// FinishTime: The time at which the operation failed or was completed
              	// successfully.
              	FinishTime string `json:"finishTime,omitempty"`
              
              	// OriginalRequest: The request that prompted the initiation of this
              	// CreateInstance operation.
              	OriginalRequest *CreateInstanceRequest `json:"originalRequest,omitempty"`
              
              	// RequestTime: The time at which the original request was received.
              	RequestTime string `json:"requestTime,omitempty"`
              
              	// ForceSendFields is a list of field names (e.g. "FinishTime") to
              	// unconditionally include in API requests. By default, fields with
              	// empty values are omitted from API requests. However, any non-pointer,
              	// non-interface field appearing in ForceSendFields will be sent to the
              	// server regardless of whether the field is empty or not. This may be
              	// used to include empty fields in Patch requests.
              	ForceSendFields []string `json:"-"`
              
              	// NullFields is a list of field names (e.g. "FinishTime") to include in
              	// API requests with the JSON null value. By default, fields with empty
              	// values are omitted from API requests. However, any field with an
              	// empty value appearing in NullFields will be sent to the server as
              	// null. It is an error if a field in this list has a non-empty value.
              	// This may be used to include null fields in Patch requests.
              	NullFields []string `json:"-"`
              }

                CreateInstanceMetadata: The metadata for the Operation returned by CreateInstance.

                func (*CreateInstanceMetadata) MarshalJSON

                func (s *CreateInstanceMetadata) MarshalJSON() ([]byte, error)

                type CreateInstanceRequest

                type CreateInstanceRequest struct {
                	// Clusters: Required. The clusters to be created within the instance,
                	// mapped by desired cluster ID, e.g., just `mycluster` rather than
                	// `projects/myproject/instances/myinstance/clusters/mycluster`. Fields
                	// marked `OutputOnly` must be left blank. Currently, at most four
                	// clusters can be specified.
                	Clusters map[string]Cluster `json:"clusters,omitempty"`
                
                	// Instance: Required. The instance to create. Fields marked
                	// `OutputOnly` must be left blank.
                	Instance *Instance `json:"instance,omitempty"`
                
                	// InstanceId: Required. The ID to be used when referring to the new
                	// instance within its project, e.g., just `myinstance` rather than
                	// `projects/myproject/instances/myinstance`.
                	InstanceId string `json:"instanceId,omitempty"`
                
                	// Parent: Required. The unique name of the project in which to create
                	// the new instance. Values are of the form `projects/{project}`.
                	Parent string `json:"parent,omitempty"`
                
                	// ForceSendFields is a list of field names (e.g. "Clusters") to
                	// unconditionally include in API requests. By default, fields with
                	// empty values are omitted from API requests. However, any non-pointer,
                	// non-interface field appearing in ForceSendFields will be sent to the
                	// server regardless of whether the field is empty or not. This may be
                	// used to include empty fields in Patch requests.
                	ForceSendFields []string `json:"-"`
                
                	// NullFields is a list of field names (e.g. "Clusters") to include in
                	// API requests with the JSON null value. By default, fields with empty
                	// values are omitted from API requests. However, any field with an
                	// empty value appearing in NullFields will be sent to the server as
                	// null. It is an error if a field in this list has a non-empty value.
                	// This may be used to include null fields in Patch requests.
                	NullFields []string `json:"-"`
                }

                  CreateInstanceRequest: Request message for BigtableInstanceAdmin.CreateInstance.

                  func (*CreateInstanceRequest) MarshalJSON

                  func (s *CreateInstanceRequest) MarshalJSON() ([]byte, error)

                  type EncryptionConfig

                  type EncryptionConfig struct {
                  	// KmsKeyName: Describes the Cloud KMS encryption key that will be used
                  	// to protect the destination Bigtable cluster. The requirements for
                  	// this key are: 1) The Cloud Bigtable service account associated with
                  	// the project that contains this cluster must be granted the
                  	// `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only
                  	// regional keys can be used and the region of the CMEK key must match
                  	// the region of the cluster. 3) All clusters within an instance must
                  	// use the same CMEK key. Values are of the form
                  	// `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys
                  	// /{key}`
                  	KmsKeyName string `json:"kmsKeyName,omitempty"`
                  
                  	// ForceSendFields is a list of field names (e.g. "KmsKeyName") to
                  	// unconditionally include in API requests. By default, fields with
                  	// empty values are omitted from API requests. However, any non-pointer,
                  	// non-interface field appearing in ForceSendFields will be sent to the
                  	// server regardless of whether the field is empty or not. This may be
                  	// used to include empty fields in Patch requests.
                  	ForceSendFields []string `json:"-"`
                  
                  	// NullFields is a list of field names (e.g. "KmsKeyName") to include in
                  	// API requests with the JSON null value. By default, fields with empty
                  	// values are omitted from API requests. However, any field with an
                  	// empty value appearing in NullFields will be sent to the server as
                  	// null. It is an error if a field in this list has a non-empty value.
                  	// This may be used to include null fields in Patch requests.
                  	NullFields []string `json:"-"`
                  }

                    EncryptionConfig: Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster.

                    func (*EncryptionConfig) MarshalJSON

                    func (s *EncryptionConfig) MarshalJSON() ([]byte, error)

                    type EncryptionInfo

                    type EncryptionInfo struct {
                    	// EncryptionStatus: Output only. The status of encrypt/decrypt calls on
                    	// underlying data for this resource. Regardless of status, the existing
                    	// data is always encrypted at rest.
                    	EncryptionStatus *Status `json:"encryptionStatus,omitempty"`
                    
                    	// EncryptionType: Output only. The type of encryption used to protect
                    	// this resource.
                    	//
                    	// Possible values:
                    	//   "ENCRYPTION_TYPE_UNSPECIFIED" - Encryption type was not specified,
                    	// though data at rest remains encrypted.
                    	//   "GOOGLE_DEFAULT_ENCRYPTION" - The data backing this resource is
                    	// encrypted at rest with a key that is fully managed by Google. No key
                    	// version or status will be populated. This is the default state.
                    	//   "CUSTOMER_MANAGED_ENCRYPTION" - The data backing this resource is
                    	// encrypted at rest with a key that is managed by the customer. The
                    	// in-use version of the key and its status are populated for
                    	// CMEK-protected tables. CMEK-protected backups are pinned to the key
                    	// version that was in use at the time the backup was taken. This key
                    	// version is populated but its status is not tracked and is reported as
                    	// `UNKNOWN`.
                    	EncryptionType string `json:"encryptionType,omitempty"`
                    
                    	// KmsKeyVersion: Output only. The version of the Cloud KMS key
                    	// specified in the parent cluster that is in use for the data
                    	// underlying this table.
                    	KmsKeyVersion string `json:"kmsKeyVersion,omitempty"`
                    
                    	// ForceSendFields is a list of field names (e.g. "EncryptionStatus") to
                    	// unconditionally include in API requests. By default, fields with
                    	// empty values are omitted from API requests. However, any non-pointer,
                    	// non-interface field appearing in ForceSendFields will be sent to the
                    	// server regardless of whether the field is empty or not. This may be
                    	// used to include empty fields in Patch requests.
                    	ForceSendFields []string `json:"-"`
                    
                    	// NullFields is a list of field names (e.g. "EncryptionStatus") to
                    	// include in API requests with the JSON null value. By default, fields
                    	// with empty values are omitted from API requests. However, any field
                    	// with an empty value appearing in NullFields will be sent to the
                    	// server as null. It is an error if a field in this list has a
                    	// non-empty value. This may be used to include null fields in Patch
                    	// requests.
                    	NullFields []string `json:"-"`
                    }

                      EncryptionInfo: Encryption information for a given resource. If this resource is protected with customer managed encryption, the in-use Cloud Key Management Service (Cloud KMS) key version is specified along with its status.

                      func (*EncryptionInfo) MarshalJSON

                      func (s *EncryptionInfo) MarshalJSON() ([]byte, error)

                      type FailureTrace

                      type FailureTrace struct {
                      	Frames []*Frame `json:"frames,omitempty"`
                      
                      	// ForceSendFields is a list of field names (e.g. "Frames") to
                      	// unconditionally include in API requests. By default, fields with
                      	// empty values are omitted from API requests. However, any non-pointer,
                      	// non-interface field appearing in ForceSendFields will be sent to the
                      	// server regardless of whether the field is empty or not. This may be
                      	// used to include empty fields in Patch requests.
                      	ForceSendFields []string `json:"-"`
                      
                      	// NullFields is a list of field names (e.g. "Frames") to include in API
                      	// requests with the JSON null value. By default, fields with empty
                      	// values are omitted from API requests. However, any field with an
                      	// empty value appearing in NullFields will be sent to the server as
                      	// null. It is an error if a field in this list has a non-empty value.
                      	// This may be used to include null fields in Patch requests.
                      	NullFields []string `json:"-"`
                      }

                        FailureTrace: Added to the error payload.

                        func (*FailureTrace) MarshalJSON

                        func (s *FailureTrace) MarshalJSON() ([]byte, error)

                        type Frame

                        type Frame struct {
                        	TargetName string `json:"targetName,omitempty"`
                        
                        	WorkflowGuid string `json:"workflowGuid,omitempty"`
                        
                        	ZoneId string `json:"zoneId,omitempty"`
                        
                        	// ForceSendFields is a list of field names (e.g. "TargetName") to
                        	// unconditionally include in API requests. By default, fields with
                        	// empty values are omitted from API requests. However, any non-pointer,
                        	// non-interface field appearing in ForceSendFields will be sent to the
                        	// server regardless of whether the field is empty or not. This may be
                        	// used to include empty fields in Patch requests.
                        	ForceSendFields []string `json:"-"`
                        
                        	// NullFields is a list of field names (e.g. "TargetName") to include in
                        	// API requests with the JSON null value. By default, fields with empty
                        	// values are omitted from API requests. However, any field with an
                        	// empty value appearing in NullFields will be sent to the server as
                        	// null. It is an error if a field in this list has a non-empty value.
                        	// This may be used to include null fields in Patch requests.
                        	NullFields []string `json:"-"`
                        }

                        func (*Frame) MarshalJSON

                        func (s *Frame) MarshalJSON() ([]byte, error)

                        type Instance

                        type Instance struct {
                        	// DisplayName: Required. The descriptive name for this instance as it
                        	// appears in UIs. Can be changed at any time, but should be kept
                        	// globally unique to avoid confusion.
                        	DisplayName string `json:"displayName,omitempty"`
                        
                        	// Labels: Required. Labels are a flexible and lightweight mechanism for
                        	// organizing cloud resources into groups that reflect a customer's
                        	// organizational needs and deployment strategies. They can be used to
                        	// filter resources and aggregate metrics. * Label keys must be between
                        	// 1 and 63 characters long and must conform to the regular expression:
                        	// `\p{Ll}\p{Lo}{0,62}`. * Label values must be between 0 and 63
                        	// characters long and must conform to the regular expression:
                        	// `[\p{Ll}\p{Lo}\p{N}_-]{0,63}`. * No more than 64 labels can be
                        	// associated with a given resource. * Keys and values must both be
                        	// under 128 bytes.
                        	Labels map[string]string `json:"labels,omitempty"`
                        
                        	// Name: The unique name of the instance. Values are of the form
                        	// `projects/{project}/instances/a-z+[a-z0-9]`.
                        	Name string `json:"name,omitempty"`
                        
                        	// State: Output only. The current state of the instance.
                        	//
                        	// Possible values:
                        	//   "STATE_NOT_KNOWN" - The state of the instance could not be
                        	// determined.
                        	//   "READY" - The instance has been successfully created and can serve
                        	// requests to its tables.
                        	//   "CREATING" - The instance is currently being created, and may be
                        	// destroyed if the creation process encounters an error.
                        	State string `json:"state,omitempty"`
                        
                        	// Type: Required. The type of the instance. Defaults to `PRODUCTION`.
                        	//
                        	// Possible values:
                        	//   "TYPE_UNSPECIFIED" - The type of the instance is unspecified. If
                        	// set when creating an instance, a `PRODUCTION` instance will be
                        	// created. If set when updating an instance, the type will be left
                        	// unchanged.
                        	//   "PRODUCTION" - An instance meant for production use. `serve_nodes`
                        	// must be set on the cluster.
                        	//   "DEVELOPMENT" - DEPRECATED: Prefer PRODUCTION for all use cases, as
                        	// it no longer enforces a higher minimum node count than DEVELOPMENT.
                        	Type string `json:"type,omitempty"`
                        
                        	// ForceSendFields is a list of field names (e.g. "DisplayName") to
                        	// unconditionally include in API requests. By default, fields with
                        	// empty values are omitted from API requests. However, any non-pointer,
                        	// non-interface field appearing in ForceSendFields will be sent to the
                        	// server regardless of whether the field is empty or not. This may be
                        	// used to include empty fields in Patch requests.
                        	ForceSendFields []string `json:"-"`
                        
                        	// NullFields is a list of field names (e.g. "DisplayName") to include
                        	// in API requests with the JSON null value. By default, fields with
                        	// empty values are omitted from API requests. However, any field with
                        	// an empty value appearing in NullFields will be sent to the server as
                        	// null. It is an error if a field in this list has a non-empty value.
                        	// This may be used to include null fields in Patch requests.
                        	NullFields []string `json:"-"`
                        }

                          Instance: A collection of Bigtable Tables and the resources that serve them. All tables in an instance are served from all Clusters in the instance.

                          func (*Instance) MarshalJSON

                          func (s *Instance) MarshalJSON() ([]byte, error)

                          type OperationProgress

                          type OperationProgress struct {
                          	// EndTime: If set, the time at which this operation failed or was
                          	// completed successfully.
                          	EndTime string `json:"endTime,omitempty"`
                          
                          	// ProgressPercent: Percent completion of the operation. Values are
                          	// between 0 and 100 inclusive.
                          	ProgressPercent int64 `json:"progressPercent,omitempty"`
                          
                          	// StartTime: Time the request was received.
                          	StartTime string `json:"startTime,omitempty"`
                          
                          	// ForceSendFields is a list of field names (e.g. "EndTime") to
                          	// unconditionally include in API requests. By default, fields with
                          	// empty values are omitted from API requests. However, any non-pointer,
                          	// non-interface field appearing in ForceSendFields will be sent to the
                          	// server regardless of whether the field is empty or not. This may be
                          	// used to include empty fields in Patch requests.
                          	ForceSendFields []string `json:"-"`
                          
                          	// NullFields is a list of field names (e.g. "EndTime") to include in
                          	// API requests with the JSON null value. By default, fields with empty
                          	// values are omitted from API requests. However, any field with an
                          	// empty value appearing in NullFields will be sent to the server as
                          	// null. It is an error if a field in this list has a non-empty value.
                          	// This may be used to include null fields in Patch requests.
                          	NullFields []string `json:"-"`
                          }

                            OperationProgress: Encapsulates progress related information for a Cloud Bigtable long running operation.

                            func (*OperationProgress) MarshalJSON

                            func (s *OperationProgress) MarshalJSON() ([]byte, error)

                            type OptimizeRestoredTableMetadata

                            type OptimizeRestoredTableMetadata struct {
                            	// Name: Name of the restored table being optimized.
                            	Name string `json:"name,omitempty"`
                            
                            	// Progress: The progress of the post-restore optimizations.
                            	Progress *OperationProgress `json:"progress,omitempty"`
                            
                            	// ForceSendFields is a list of field names (e.g. "Name") to
                            	// unconditionally include in API requests. By default, fields with
                            	// empty values are omitted from API requests. However, any non-pointer,
                            	// non-interface field appearing in ForceSendFields will be sent to the
                            	// server regardless of whether the field is empty or not. This may be
                            	// used to include empty fields in Patch requests.
                            	ForceSendFields []string `json:"-"`
                            
                            	// NullFields is a list of field names (e.g. "Name") to include in API
                            	// requests with the JSON null value. By default, fields with empty
                            	// values are omitted from API requests. However, any field with an
                            	// empty value appearing in NullFields will be sent to the server as
                            	// null. It is an error if a field in this list has a non-empty value.
                            	// This may be used to include null fields in Patch requests.
                            	NullFields []string `json:"-"`
                            }

                              OptimizeRestoredTableMetadata: Metadata type for the long-running operation used to track the progress of optimizations performed on a newly restored table. This long-running operation is automatically created by the system after the successful completion of a table restore, and cannot be cancelled.

                              func (*OptimizeRestoredTableMetadata) MarshalJSON

                              func (s *OptimizeRestoredTableMetadata) MarshalJSON() ([]byte, error)

                              type PartialUpdateInstanceRequest

                              type PartialUpdateInstanceRequest struct {
                              	// Instance: Required. The Instance which will (partially) replace the
                              	// current value.
                              	Instance *Instance `json:"instance,omitempty"`
                              
                              	// UpdateMask: Required. The subset of Instance fields which should be
                              	// replaced. Must be explicitly set.
                              	UpdateMask string `json:"updateMask,omitempty"`
                              
                              	// ForceSendFields is a list of field names (e.g. "Instance") to
                              	// unconditionally include in API requests. By default, fields with
                              	// empty values are omitted from API requests. However, any non-pointer,
                              	// non-interface field appearing in ForceSendFields will be sent to the
                              	// server regardless of whether the field is empty or not. This may be
                              	// used to include empty fields in Patch requests.
                              	ForceSendFields []string `json:"-"`
                              
                              	// NullFields is a list of field names (e.g. "Instance") to include in
                              	// API requests with the JSON null value. By default, fields with empty
                              	// values are omitted from API requests. However, any field with an
                              	// empty value appearing in NullFields will be sent to the server as
                              	// null. It is an error if a field in this list has a non-empty value.
                              	// This may be used to include null fields in Patch requests.
                              	NullFields []string `json:"-"`
                              }

                                PartialUpdateInstanceRequest: Request message for BigtableInstanceAdmin.PartialUpdateInstance.

                                func (*PartialUpdateInstanceRequest) MarshalJSON

                                func (s *PartialUpdateInstanceRequest) MarshalJSON() ([]byte, error)

                                type RestoreTableMetadata

                                type RestoreTableMetadata struct {
                                	BackupInfo *BackupInfo `json:"backupInfo,omitempty"`
                                
                                	// Name: Name of the table being created and restored to.
                                	Name string `json:"name,omitempty"`
                                
                                	// OptimizeTableOperationName: If exists, the name of the long-running
                                	// operation that will be used to track the post-restore optimization
                                	// process to optimize the performance of the restored table. The
                                	// metadata type of the long-running operation is
                                	// OptimizeRestoreTableMetadata. The response type is Empty. This
                                	// long-running operation may be automatically created by the system if
                                	// applicable after the RestoreTable long-running operation completes
                                	// successfully. This operation may not be created if the table is
                                	// already optimized or the restore was not successful.
                                	OptimizeTableOperationName string `json:"optimizeTableOperationName,omitempty"`
                                
                                	// Progress: The progress of the RestoreTable operation.
                                	Progress *OperationProgress `json:"progress,omitempty"`
                                
                                	// SourceType: The type of the restore source.
                                	//
                                	// Possible values:
                                	//   "RESTORE_SOURCE_TYPE_UNSPECIFIED" - No restore associated.
                                	//   "BACKUP" - A backup was used as the source of the restore.
                                	SourceType string `json:"sourceType,omitempty"`
                                
                                	// ForceSendFields is a list of field names (e.g. "BackupInfo") to
                                	// unconditionally include in API requests. By default, fields with
                                	// empty values are omitted from API requests. However, any non-pointer,
                                	// non-interface field appearing in ForceSendFields will be sent to the
                                	// server regardless of whether the field is empty or not. This may be
                                	// used to include empty fields in Patch requests.
                                	ForceSendFields []string `json:"-"`
                                
                                	// NullFields is a list of field names (e.g. "BackupInfo") to include in
                                	// API requests with the JSON null value. By default, fields with empty
                                	// values are omitted from API requests. However, any field with an
                                	// empty value appearing in NullFields will be sent to the server as
                                	// null. It is an error if a field in this list has a non-empty value.
                                	// This may be used to include null fields in Patch requests.
                                	NullFields []string `json:"-"`
                                }

                                  RestoreTableMetadata: Metadata type for the long-running operation returned by RestoreTable.

                                  func (*RestoreTableMetadata) MarshalJSON

                                  func (s *RestoreTableMetadata) MarshalJSON() ([]byte, error)

                                  type Service

                                  type Service struct {
                                  	BasePath  string // API endpoint base URL
                                  	UserAgent string // optional additional User-Agent fragment
                                  	// contains filtered or unexported fields
                                  }

                                  func New

                                  func New(client *http.Client) (*Service, error)

                                    New creates a new Service. It uses the provided http.Client for requests.

                                    Deprecated: please use NewService instead. To provide a custom HTTP client, use option.WithHTTPClient. If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.

                                    func NewService

                                    func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error)

                                      NewService creates a new Service.

                                      type Status

                                      type Status struct {
                                      	// Code: The status code, which should be an enum value of
                                      	// google.rpc.Code.
                                      	Code int64 `json:"code,omitempty"`
                                      
                                      	// Details: A list of messages that carry the error details. There is a
                                      	// common set of message types for APIs to use.
                                      	Details []googleapi.RawMessage `json:"details,omitempty"`
                                      
                                      	// Message: A developer-facing error message, which should be in
                                      	// English. Any user-facing error message should be localized and sent
                                      	// in the google.rpc.Status.details field, or localized by the client.
                                      	Message string `json:"message,omitempty"`
                                      
                                      	// ForceSendFields is a list of field names (e.g. "Code") to
                                      	// unconditionally include in API requests. By default, fields with
                                      	// empty values are omitted from API requests. However, any non-pointer,
                                      	// non-interface field appearing in ForceSendFields will be sent to the
                                      	// server regardless of whether the field is empty or not. This may be
                                      	// used to include empty fields in Patch requests.
                                      	ForceSendFields []string `json:"-"`
                                      
                                      	// NullFields is a list of field names (e.g. "Code") to include in API
                                      	// requests with the JSON null value. By default, fields with empty
                                      	// values are omitted from API requests. However, any field with an
                                      	// empty value appearing in NullFields will be sent to the server as
                                      	// null. It is an error if a field in this list has a non-empty value.
                                      	// This may be used to include null fields in Patch requests.
                                      	NullFields []string `json:"-"`
                                      }

                                        Status: The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors).

                                        func (*Status) MarshalJSON

                                        func (s *Status) MarshalJSON() ([]byte, error)

                                        type TableProgress

                                        type TableProgress struct {
                                        	// EstimatedCopiedBytes: Estimate of the number of bytes copied so far
                                        	// for this table. This will eventually reach 'estimated_size_bytes'
                                        	// unless the table copy is CANCELLED.
                                        	EstimatedCopiedBytes int64 `json:"estimatedCopiedBytes,omitempty,string"`
                                        
                                        	// EstimatedSizeBytes: Estimate of the size of the table to be copied.
                                        	EstimatedSizeBytes int64 `json:"estimatedSizeBytes,omitempty,string"`
                                        
                                        	// Possible values:
                                        	//   "STATE_UNSPECIFIED"
                                        	//   "PENDING" - The table has not yet begun copying to the new cluster.
                                        	//   "COPYING" - The table is actively being copied to the new cluster.
                                        	//   "COMPLETED" - The table has been fully copied to the new cluster.
                                        	//   "CANCELLED" - The table was deleted before it finished copying to
                                        	// the new cluster. Note that tables deleted after completion will stay
                                        	// marked as COMPLETED, not CANCELLED.
                                        	State string `json:"state,omitempty"`
                                        
                                        	// ForceSendFields is a list of field names (e.g.
                                        	// "EstimatedCopiedBytes") to unconditionally include in API requests.
                                        	// By default, fields with empty values are omitted from API requests.
                                        	// However, any non-pointer, non-interface field appearing in
                                        	// ForceSendFields will be sent to the server regardless of whether the
                                        	// field is empty or not. This may be used to include empty fields in
                                        	// Patch requests.
                                        	ForceSendFields []string `json:"-"`
                                        
                                        	// NullFields is a list of field names (e.g. "EstimatedCopiedBytes") to
                                        	// include in API requests with the JSON null value. By default, fields
                                        	// with empty values are omitted from API requests. However, any field
                                        	// with an empty value appearing in NullFields will be sent to the
                                        	// server as null. It is an error if a field in this list has a
                                        	// non-empty value. This may be used to include null fields in Patch
                                        	// requests.
                                        	NullFields []string `json:"-"`
                                        }

                                          TableProgress: Progress info for copying a table's data to the new cluster.

                                          func (*TableProgress) MarshalJSON

                                          func (s *TableProgress) MarshalJSON() ([]byte, error)

                                          type UpdateAppProfileMetadata

                                          type UpdateAppProfileMetadata struct {
                                          }

                                            UpdateAppProfileMetadata: The metadata for the Operation returned by UpdateAppProfile.

                                            type UpdateClusterMetadata

                                            type UpdateClusterMetadata struct {
                                            	// FinishTime: The time at which the operation failed or was completed
                                            	// successfully.
                                            	FinishTime string `json:"finishTime,omitempty"`
                                            
                                            	// OriginalRequest: The request that prompted the initiation of this
                                            	// UpdateCluster operation.
                                            	OriginalRequest *Cluster `json:"originalRequest,omitempty"`
                                            
                                            	// RequestTime: The time at which the original request was received.
                                            	RequestTime string `json:"requestTime,omitempty"`
                                            
                                            	// ForceSendFields is a list of field names (e.g. "FinishTime") to
                                            	// unconditionally include in API requests. By default, fields with
                                            	// empty values are omitted from API requests. However, any non-pointer,
                                            	// non-interface field appearing in ForceSendFields will be sent to the
                                            	// server regardless of whether the field is empty or not. This may be
                                            	// used to include empty fields in Patch requests.
                                            	ForceSendFields []string `json:"-"`
                                            
                                            	// NullFields is a list of field names (e.g. "FinishTime") to include in
                                            	// API requests with the JSON null value. By default, fields with empty
                                            	// values are omitted from API requests. However, any field with an
                                            	// empty value appearing in NullFields will be sent to the server as
                                            	// null. It is an error if a field in this list has a non-empty value.
                                            	// This may be used to include null fields in Patch requests.
                                            	NullFields []string `json:"-"`
                                            }

                                              UpdateClusterMetadata: The metadata for the Operation returned by UpdateCluster.

                                              func (*UpdateClusterMetadata) MarshalJSON

                                              func (s *UpdateClusterMetadata) MarshalJSON() ([]byte, error)

                                              type UpdateInstanceMetadata

                                              type UpdateInstanceMetadata struct {
                                              	// FinishTime: The time at which the operation failed or was completed
                                              	// successfully.
                                              	FinishTime string `json:"finishTime,omitempty"`
                                              
                                              	// OriginalRequest: The request that prompted the initiation of this
                                              	// UpdateInstance operation.
                                              	OriginalRequest *PartialUpdateInstanceRequest `json:"originalRequest,omitempty"`
                                              
                                              	// RequestTime: The time at which the original request was received.
                                              	RequestTime string `json:"requestTime,omitempty"`
                                              
                                              	// ForceSendFields is a list of field names (e.g. "FinishTime") to
                                              	// unconditionally include in API requests. By default, fields with
                                              	// empty values are omitted from API requests. However, any non-pointer,
                                              	// non-interface field appearing in ForceSendFields will be sent to the
                                              	// server regardless of whether the field is empty or not. This may be
                                              	// used to include empty fields in Patch requests.
                                              	ForceSendFields []string `json:"-"`
                                              
                                              	// NullFields is a list of field names (e.g. "FinishTime") to include in
                                              	// API requests with the JSON null value. By default, fields with empty
                                              	// values are omitted from API requests. However, any field with an
                                              	// empty value appearing in NullFields will be sent to the server as
                                              	// null. It is an error if a field in this list has a non-empty value.
                                              	// This may be used to include null fields in Patch requests.
                                              	NullFields []string `json:"-"`
                                              }

                                                UpdateInstanceMetadata: The metadata for the Operation returned by UpdateInstance.

                                                func (*UpdateInstanceMetadata) MarshalJSON

                                                func (s *UpdateInstanceMetadata) MarshalJSON() ([]byte, error)