// Copyright 2019 Google LLC. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated file. DO NOT EDIT. // 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. package bigtableadmin // import "google.golang.org/api/bigtableadmin/v1" import ( "bytes" "context" "encoding/json" "errors" "fmt" "io" "net/http" "net/url" "strconv" "strings" gensupport "google.golang.org/api/gensupport" googleapi "google.golang.org/api/googleapi" option "google.golang.org/api/option" htransport "google.golang.org/api/transport/http" ) // Always reference these packages, just in case the auto-generated code // below doesn't. var _ = bytes.NewBuffer var _ = strconv.Itoa var _ = fmt.Sprintf var _ = json.NewDecoder var _ = io.Copy var _ = url.Parse var _ = gensupport.MarshalJSON var _ = googleapi.Version var _ = errors.New var _ = strings.Replace var _ = context.Canceled const apiId = "bigtableadmin:v1" const apiName = "bigtableadmin" const apiVersion = "v1" const basePath = "https://bigtableadmin.googleapis.com/" // NewService creates a new Service. func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { client, endpoint, err := htransport.NewClient(ctx, opts...) if err != nil { return nil, err } s, err := New(client) if err != nil { return nil, err } if endpoint != "" { s.BasePath = endpoint } return s, nil } // 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 New(client *http.Client) (*Service, error) { if client == nil { return nil, errors.New("client is nil") } s := &Service{client: client, BasePath: basePath} return s, nil } type Service struct { client *http.Client BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment } func (s *Service) userAgent() string { if s.UserAgent == "" { return googleapi.UserAgent } return googleapi.UserAgent + " " + s.UserAgent } // Cluster: A resizable group of nodes in a particular cloud location, // capable // of serving all Tables in the parent // Instance. type Cluster struct { // DefaultStorageType: (`CreationOnly`) // 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"` // Location: (`CreationOnly`) // 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//locations/`. Location string `json:"location,omitempty"` // Name: (`OutputOnly`) // The unique name of the cluster. Values are of the // form // `projects//instances//clusters/a-z*`. Name string `json:"name,omitempty"` // ServeNodes: The number of nodes allocated to this cluster. More nodes // enable higher // throughput and more consistent performance. ServeNodes int64 `json:"serveNodes,omitempty"` // State: (`OutputOnly`) // 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:"-"` } func (s *Cluster) MarshalJSON() ([]byte, error) { type NoMethod Cluster raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CreateClusterMetadata: The metadata for the Operation returned by // CreateCluster. 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:"-"` } func (s *CreateClusterMetadata) MarshalJSON() ([]byte, error) { type NoMethod CreateClusterMetadata raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CreateClusterRequest: Request message for // BigtableInstanceAdmin.CreateCluster. type CreateClusterRequest struct { // Cluster: The cluster to be created. // Fields marked `OutputOnly` must be left blank. Cluster *Cluster `json:"cluster,omitempty"` // ClusterId: 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: The unique name of the instance in which to create the new // cluster. // Values are of the form // `projects//instances/`. 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:"-"` } func (s *CreateClusterRequest) MarshalJSON() ([]byte, error) { type NoMethod CreateClusterRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CreateInstanceMetadata: The metadata for the Operation returned by // CreateInstance. 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:"-"` } func (s *CreateInstanceMetadata) MarshalJSON() ([]byte, error) { type NoMethod CreateInstanceMetadata raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CreateInstanceRequest: Request message for // BigtableInstanceAdmin.CreateInstance. type CreateInstanceRequest struct { // Clusters: 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`. // Fie // lds marked `OutputOnly` must be left blank. // Currently, at most two clusters can be specified. Clusters map[string]Cluster `json:"clusters,omitempty"` // Instance: The instance to create. // Fields marked `OutputOnly` must be left blank. Instance *Instance `json:"instance,omitempty"` // InstanceId: 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: The unique name of the project in which to create the new // instance. // Values are of the form `projects/`. 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:"-"` } func (s *CreateInstanceRequest) MarshalJSON() ([]byte, error) { type NoMethod CreateInstanceRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // 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. type Instance struct { // DisplayName: 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: 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: (`OutputOnly`) // The unique name of the instance. Values are of the // form // `projects//instances/a-z+[a-z0-9]`. Name string `json:"name,omitempty"` // State: (`OutputOnly`) // 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: 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" - The instance is meant for development and testing // purposes only; it has // no performance or uptime guarantees and is not covered by SLA. // After a development instance is created, it can be upgraded // by // updating the instance to type `PRODUCTION`. An instance created // as a production instance cannot be changed to a development // instance. // When creating a development instance, `serve_nodes` on the cluster // must // not be set. 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:"-"` } func (s *Instance) MarshalJSON() ([]byte, error) { type NoMethod Instance raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // PartialUpdateInstanceRequest: Request message for // BigtableInstanceAdmin.PartialUpdateInstance. type PartialUpdateInstanceRequest struct { // Instance: The Instance which will (partially) replace the current // value. Instance *Instance `json:"instance,omitempty"` // UpdateMask: 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:"-"` } func (s *PartialUpdateInstanceRequest) MarshalJSON() ([]byte, error) { type NoMethod PartialUpdateInstanceRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // TableProgress: Progress info for copying a table's data to the new // cluster. 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:"-"` } func (s *TableProgress) MarshalJSON() ([]byte, error) { type NoMethod TableProgress raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // UpdateAppProfileMetadata: The metadata for the Operation returned by // UpdateAppProfile. type UpdateAppProfileMetadata struct { } // UpdateClusterMetadata: The metadata for the Operation returned by // UpdateCluster. 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:"-"` } func (s *UpdateClusterMetadata) MarshalJSON() ([]byte, error) { type NoMethod UpdateClusterMetadata raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // UpdateInstanceMetadata: The metadata for the Operation returned by // UpdateInstance. 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:"-"` } func (s *UpdateInstanceMetadata) MarshalJSON() ([]byte, error) { type NoMethod UpdateInstanceMetadata raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) }