1// Copyright 2019 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/v1" 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// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey: 27// 28// bigtableadminService, err := bigtableadmin.NewService(ctx, option.WithAPIKey("AIza...")) 29// 30// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource: 31// 32// config := &oauth2.Config{...} 33// // ... 34// token, err := config.Exchange(ctx, ...) 35// bigtableadminService, err := bigtableadmin.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) 36// 37// See https://godoc.org/google.golang.org/api/option/ for details on options. 38package bigtableadmin // import "google.golang.org/api/bigtableadmin/v1" 39 40import ( 41 "bytes" 42 "context" 43 "encoding/json" 44 "errors" 45 "fmt" 46 "io" 47 "net/http" 48 "net/url" 49 "strconv" 50 "strings" 51 52 gensupport "google.golang.org/api/gensupport" 53 googleapi "google.golang.org/api/googleapi" 54 option "google.golang.org/api/option" 55 htransport "google.golang.org/api/transport/http" 56) 57 58// Always reference these packages, just in case the auto-generated code 59// below doesn't. 60var _ = bytes.NewBuffer 61var _ = strconv.Itoa 62var _ = fmt.Sprintf 63var _ = json.NewDecoder 64var _ = io.Copy 65var _ = url.Parse 66var _ = gensupport.MarshalJSON 67var _ = googleapi.Version 68var _ = errors.New 69var _ = strings.Replace 70var _ = context.Canceled 71 72const apiId = "bigtableadmin:v1" 73const apiName = "bigtableadmin" 74const apiVersion = "v1" 75const basePath = "https://bigtableadmin.googleapis.com/" 76 77// NewService creates a new Service. 78func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { 79 client, endpoint, err := htransport.NewClient(ctx, opts...) 80 if err != nil { 81 return nil, err 82 } 83 s, err := New(client) 84 if err != nil { 85 return nil, err 86 } 87 if endpoint != "" { 88 s.BasePath = endpoint 89 } 90 return s, nil 91} 92 93// New creates a new Service. It uses the provided http.Client for requests. 94// 95// Deprecated: please use NewService instead. 96// To provide a custom HTTP client, use option.WithHTTPClient. 97// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. 98func New(client *http.Client) (*Service, error) { 99 if client == nil { 100 return nil, errors.New("client is nil") 101 } 102 s := &Service{client: client, BasePath: basePath} 103 return s, nil 104} 105 106type Service struct { 107 client *http.Client 108 BasePath string // API endpoint base URL 109 UserAgent string // optional additional User-Agent fragment 110} 111 112func (s *Service) userAgent() string { 113 if s.UserAgent == "" { 114 return googleapi.UserAgent 115 } 116 return googleapi.UserAgent + " " + s.UserAgent 117} 118 119// Cluster: A resizable group of nodes in a particular cloud location, 120// capable 121// of serving all Tables in the parent 122// Instance. 123type Cluster struct { 124 // DefaultStorageType: (`CreationOnly`) 125 // The type of storage used by this cluster to serve its 126 // parent instance's tables, unless explicitly overridden. 127 // 128 // Possible values: 129 // "STORAGE_TYPE_UNSPECIFIED" - The user did not specify a storage 130 // type. 131 // "SSD" - Flash (SSD) storage should be used. 132 // "HDD" - Magnetic drive (HDD) storage should be used. 133 DefaultStorageType string `json:"defaultStorageType,omitempty"` 134 135 // Location: (`CreationOnly`) 136 // The location where this cluster's nodes and storage reside. For 137 // best 138 // performance, clients should be located as close as possible to 139 // this 140 // cluster. Currently only zones are supported, so values should be of 141 // the 142 // form `projects/<project>/locations/<zone>`. 143 Location string `json:"location,omitempty"` 144 145 // Name: (`OutputOnly`) 146 // The unique name of the cluster. Values are of the 147 // form 148 // `projects/<project>/instances/<instance>/clusters/a-z*`. 149 Name string `json:"name,omitempty"` 150 151 // ServeNodes: The number of nodes allocated to this cluster. More nodes 152 // enable higher 153 // throughput and more consistent performance. 154 ServeNodes int64 `json:"serveNodes,omitempty"` 155 156 // State: (`OutputOnly`) 157 // The current state of the cluster. 158 // 159 // Possible values: 160 // "STATE_NOT_KNOWN" - The state of the cluster could not be 161 // determined. 162 // "READY" - The cluster has been successfully created and is ready to 163 // serve requests. 164 // "CREATING" - The cluster is currently being created, and may be 165 // destroyed 166 // if the creation process encounters an error. 167 // A cluster may not be able to serve requests while being created. 168 // "RESIZING" - The cluster is currently being resized, and may revert 169 // to its previous 170 // node count if the process encounters an error. 171 // A cluster is still capable of serving requests while being 172 // resized, 173 // but may exhibit performance as if its number of allocated nodes 174 // is 175 // between the starting and requested states. 176 // "DISABLED" - The cluster has no backing nodes. The data (tables) 177 // still 178 // exist, but no operations can be performed on the cluster. 179 State string `json:"state,omitempty"` 180 181 // ForceSendFields is a list of field names (e.g. "DefaultStorageType") 182 // to unconditionally include in API requests. By default, fields with 183 // empty values are omitted from API requests. However, any non-pointer, 184 // non-interface field appearing in ForceSendFields will be sent to the 185 // server regardless of whether the field is empty or not. This may be 186 // used to include empty fields in Patch requests. 187 ForceSendFields []string `json:"-"` 188 189 // NullFields is a list of field names (e.g. "DefaultStorageType") to 190 // include in API requests with the JSON null value. By default, fields 191 // with empty values are omitted from API requests. However, any field 192 // with an empty value appearing in NullFields will be sent to the 193 // server as null. It is an error if a field in this list has a 194 // non-empty value. This may be used to include null fields in Patch 195 // requests. 196 NullFields []string `json:"-"` 197} 198 199func (s *Cluster) MarshalJSON() ([]byte, error) { 200 type NoMethod Cluster 201 raw := NoMethod(*s) 202 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 203} 204 205// CreateClusterMetadata: The metadata for the Operation returned by 206// CreateCluster. 207type CreateClusterMetadata struct { 208 // FinishTime: The time at which the operation failed or was completed 209 // successfully. 210 FinishTime string `json:"finishTime,omitempty"` 211 212 // OriginalRequest: The request that prompted the initiation of this 213 // CreateCluster operation. 214 OriginalRequest *CreateClusterRequest `json:"originalRequest,omitempty"` 215 216 // RequestTime: The time at which the original request was received. 217 RequestTime string `json:"requestTime,omitempty"` 218 219 // Tables: Keys: the full `name` of each table that existed in the 220 // instance when 221 // CreateCluster was first called, 222 // i.e. 223 // `projects/<project>/instances/<instance>/tables/<table>`. Any table 224 // added 225 // to the instance by a later API call will be created in the new 226 // cluster by 227 // that API call, not this one. 228 // 229 // Values: information on how much of a table's data has been copied to 230 // the 231 // newly-created cluster so far. 232 Tables map[string]TableProgress `json:"tables,omitempty"` 233 234 // ForceSendFields is a list of field names (e.g. "FinishTime") to 235 // unconditionally include in API requests. By default, fields with 236 // empty values are omitted from API requests. However, any non-pointer, 237 // non-interface field appearing in ForceSendFields will be sent to the 238 // server regardless of whether the field is empty or not. This may be 239 // used to include empty fields in Patch requests. 240 ForceSendFields []string `json:"-"` 241 242 // NullFields is a list of field names (e.g. "FinishTime") to include in 243 // API requests with the JSON null value. By default, fields with empty 244 // values are omitted from API requests. However, any field with an 245 // empty value appearing in NullFields will be sent to the server as 246 // null. It is an error if a field in this list has a non-empty value. 247 // This may be used to include null fields in Patch requests. 248 NullFields []string `json:"-"` 249} 250 251func (s *CreateClusterMetadata) MarshalJSON() ([]byte, error) { 252 type NoMethod CreateClusterMetadata 253 raw := NoMethod(*s) 254 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 255} 256 257// CreateClusterRequest: Request message for 258// BigtableInstanceAdmin.CreateCluster. 259type CreateClusterRequest struct { 260 // Cluster: The cluster to be created. 261 // Fields marked `OutputOnly` must be left blank. 262 Cluster *Cluster `json:"cluster,omitempty"` 263 264 // ClusterId: The ID to be used when referring to the new cluster within 265 // its instance, 266 // e.g., just `mycluster` rather 267 // than 268 // `projects/myproject/instances/myinstance/clusters/mycluster`. 269 ClusterId string `json:"clusterId,omitempty"` 270 271 // Parent: The unique name of the instance in which to create the new 272 // cluster. 273 // Values are of the form 274 // `projects/<project>/instances/<instance>`. 275 Parent string `json:"parent,omitempty"` 276 277 // ForceSendFields is a list of field names (e.g. "Cluster") to 278 // unconditionally include in API requests. By default, fields with 279 // empty values are omitted from API requests. However, any non-pointer, 280 // non-interface field appearing in ForceSendFields will be sent to the 281 // server regardless of whether the field is empty or not. This may be 282 // used to include empty fields in Patch requests. 283 ForceSendFields []string `json:"-"` 284 285 // NullFields is a list of field names (e.g. "Cluster") to include in 286 // API requests with the JSON null value. By default, fields with empty 287 // values are omitted from API requests. However, any field with an 288 // empty value appearing in NullFields will be sent to the server as 289 // null. It is an error if a field in this list has a non-empty value. 290 // This may be used to include null fields in Patch requests. 291 NullFields []string `json:"-"` 292} 293 294func (s *CreateClusterRequest) MarshalJSON() ([]byte, error) { 295 type NoMethod CreateClusterRequest 296 raw := NoMethod(*s) 297 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 298} 299 300// CreateInstanceMetadata: The metadata for the Operation returned by 301// CreateInstance. 302type CreateInstanceMetadata struct { 303 // FinishTime: The time at which the operation failed or was completed 304 // successfully. 305 FinishTime string `json:"finishTime,omitempty"` 306 307 // OriginalRequest: The request that prompted the initiation of this 308 // CreateInstance operation. 309 OriginalRequest *CreateInstanceRequest `json:"originalRequest,omitempty"` 310 311 // RequestTime: The time at which the original request was received. 312 RequestTime string `json:"requestTime,omitempty"` 313 314 // ForceSendFields is a list of field names (e.g. "FinishTime") to 315 // unconditionally include in API requests. By default, fields with 316 // empty values are omitted from API requests. However, any non-pointer, 317 // non-interface field appearing in ForceSendFields will be sent to the 318 // server regardless of whether the field is empty or not. This may be 319 // used to include empty fields in Patch requests. 320 ForceSendFields []string `json:"-"` 321 322 // NullFields is a list of field names (e.g. "FinishTime") to include in 323 // API requests with the JSON null value. By default, fields with empty 324 // values are omitted from API requests. However, any field with an 325 // empty value appearing in NullFields will be sent to the server as 326 // null. It is an error if a field in this list has a non-empty value. 327 // This may be used to include null fields in Patch requests. 328 NullFields []string `json:"-"` 329} 330 331func (s *CreateInstanceMetadata) MarshalJSON() ([]byte, error) { 332 type NoMethod CreateInstanceMetadata 333 raw := NoMethod(*s) 334 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 335} 336 337// CreateInstanceRequest: Request message for 338// BigtableInstanceAdmin.CreateInstance. 339type CreateInstanceRequest struct { 340 // Clusters: The clusters to be created within the instance, mapped by 341 // desired 342 // cluster ID, e.g., just `mycluster` rather 343 // than 344 // `projects/myproject/instances/myinstance/clusters/mycluster`. 345 // Fie 346 // lds marked `OutputOnly` must be left blank. 347 // Currently, at most two clusters can be specified. 348 Clusters map[string]Cluster `json:"clusters,omitempty"` 349 350 // Instance: The instance to create. 351 // Fields marked `OutputOnly` must be left blank. 352 Instance *Instance `json:"instance,omitempty"` 353 354 // InstanceId: The ID to be used when referring to the new instance 355 // within its project, 356 // e.g., just `myinstance` rather 357 // than 358 // `projects/myproject/instances/myinstance`. 359 InstanceId string `json:"instanceId,omitempty"` 360 361 // Parent: The unique name of the project in which to create the new 362 // instance. 363 // Values are of the form `projects/<project>`. 364 Parent string `json:"parent,omitempty"` 365 366 // ForceSendFields is a list of field names (e.g. "Clusters") to 367 // unconditionally include in API requests. By default, fields with 368 // empty values are omitted from API requests. However, any non-pointer, 369 // non-interface field appearing in ForceSendFields will be sent to the 370 // server regardless of whether the field is empty or not. This may be 371 // used to include empty fields in Patch requests. 372 ForceSendFields []string `json:"-"` 373 374 // NullFields is a list of field names (e.g. "Clusters") to include in 375 // API requests with the JSON null value. By default, fields with empty 376 // values are omitted from API requests. However, any field with an 377 // empty value appearing in NullFields will be sent to the server as 378 // null. It is an error if a field in this list has a non-empty value. 379 // This may be used to include null fields in Patch requests. 380 NullFields []string `json:"-"` 381} 382 383func (s *CreateInstanceRequest) MarshalJSON() ([]byte, error) { 384 type NoMethod CreateInstanceRequest 385 raw := NoMethod(*s) 386 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 387} 388 389// Instance: A collection of Bigtable Tables and 390// the resources that serve them. 391// All tables in an instance are served from all 392// Clusters in the instance. 393type Instance struct { 394 // DisplayName: The descriptive name for this instance as it appears in 395 // UIs. 396 // Can be changed at any time, but should be kept globally unique 397 // to avoid confusion. 398 DisplayName string `json:"displayName,omitempty"` 399 400 // Labels: Labels are a flexible and lightweight mechanism for 401 // organizing cloud 402 // resources into groups that reflect a customer's organizational needs 403 // and 404 // deployment strategies. They can be used to filter resources and 405 // aggregate 406 // metrics. 407 // 408 // * Label keys must be between 1 and 63 characters long and must 409 // conform to 410 // the regular expression: `\p{Ll}\p{Lo}{0,62}`. 411 // * Label values must be between 0 and 63 characters long and must 412 // conform to 413 // the regular expression: `[\p{Ll}\p{Lo}\p{N}_-]{0,63}`. 414 // * No more than 64 labels can be associated with a given resource. 415 // * Keys and values must both be under 128 bytes. 416 Labels map[string]string `json:"labels,omitempty"` 417 418 // Name: (`OutputOnly`) 419 // The unique name of the instance. Values are of the 420 // form 421 // `projects/<project>/instances/a-z+[a-z0-9]`. 422 Name string `json:"name,omitempty"` 423 424 // State: (`OutputOnly`) 425 // The current state of the instance. 426 // 427 // Possible values: 428 // "STATE_NOT_KNOWN" - The state of the instance could not be 429 // determined. 430 // "READY" - The instance has been successfully created and can serve 431 // requests 432 // to its tables. 433 // "CREATING" - The instance is currently being created, and may be 434 // destroyed 435 // if the creation process encounters an error. 436 State string `json:"state,omitempty"` 437 438 // Type: The type of the instance. Defaults to `PRODUCTION`. 439 // 440 // Possible values: 441 // "TYPE_UNSPECIFIED" - The type of the instance is unspecified. If 442 // set when creating an 443 // instance, a `PRODUCTION` instance will be created. If set when 444 // updating 445 // an instance, the type will be left unchanged. 446 // "PRODUCTION" - An instance meant for production use. `serve_nodes` 447 // must be set 448 // on the cluster. 449 // "DEVELOPMENT" - The instance is meant for development and testing 450 // purposes only; it has 451 // no performance or uptime guarantees and is not covered by SLA. 452 // After a development instance is created, it can be upgraded 453 // by 454 // updating the instance to type `PRODUCTION`. An instance created 455 // as a production instance cannot be changed to a development 456 // instance. 457 // When creating a development instance, `serve_nodes` on the cluster 458 // must 459 // not be set. 460 Type string `json:"type,omitempty"` 461 462 // ForceSendFields is a list of field names (e.g. "DisplayName") to 463 // unconditionally include in API requests. By default, fields with 464 // empty values are omitted from API requests. However, any non-pointer, 465 // non-interface field appearing in ForceSendFields will be sent to the 466 // server regardless of whether the field is empty or not. This may be 467 // used to include empty fields in Patch requests. 468 ForceSendFields []string `json:"-"` 469 470 // NullFields is a list of field names (e.g. "DisplayName") to include 471 // in API requests with the JSON null value. By default, fields with 472 // empty values are omitted from API requests. However, any field with 473 // an empty value appearing in NullFields will be sent to the server as 474 // null. It is an error if a field in this list has a non-empty value. 475 // This may be used to include null fields in Patch requests. 476 NullFields []string `json:"-"` 477} 478 479func (s *Instance) MarshalJSON() ([]byte, error) { 480 type NoMethod Instance 481 raw := NoMethod(*s) 482 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 483} 484 485// PartialUpdateInstanceRequest: Request message for 486// BigtableInstanceAdmin.PartialUpdateInstance. 487type PartialUpdateInstanceRequest struct { 488 // Instance: The Instance which will (partially) replace the current 489 // value. 490 Instance *Instance `json:"instance,omitempty"` 491 492 // UpdateMask: The subset of Instance fields which should be 493 // replaced. 494 // Must be explicitly set. 495 UpdateMask string `json:"updateMask,omitempty"` 496 497 // ForceSendFields is a list of field names (e.g. "Instance") to 498 // unconditionally include in API requests. By default, fields with 499 // empty values are omitted from API requests. However, any non-pointer, 500 // non-interface field appearing in ForceSendFields will be sent to the 501 // server regardless of whether the field is empty or not. This may be 502 // used to include empty fields in Patch requests. 503 ForceSendFields []string `json:"-"` 504 505 // NullFields is a list of field names (e.g. "Instance") to include in 506 // API requests with the JSON null value. By default, fields with empty 507 // values are omitted from API requests. However, any field with an 508 // empty value appearing in NullFields will be sent to the server as 509 // null. It is an error if a field in this list has a non-empty value. 510 // This may be used to include null fields in Patch requests. 511 NullFields []string `json:"-"` 512} 513 514func (s *PartialUpdateInstanceRequest) MarshalJSON() ([]byte, error) { 515 type NoMethod PartialUpdateInstanceRequest 516 raw := NoMethod(*s) 517 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 518} 519 520// TableProgress: Progress info for copying a table's data to the new 521// cluster. 522type TableProgress struct { 523 // EstimatedCopiedBytes: Estimate of the number of bytes copied so far 524 // for this table. 525 // This will eventually reach 'estimated_size_bytes' unless the table 526 // copy 527 // is CANCELLED. 528 EstimatedCopiedBytes int64 `json:"estimatedCopiedBytes,omitempty,string"` 529 530 // EstimatedSizeBytes: Estimate of the size of the table to be copied. 531 EstimatedSizeBytes int64 `json:"estimatedSizeBytes,omitempty,string"` 532 533 // Possible values: 534 // "STATE_UNSPECIFIED" 535 // "PENDING" - The table has not yet begun copying to the new cluster. 536 // "COPYING" - The table is actively being copied to the new cluster. 537 // "COMPLETED" - The table has been fully copied to the new cluster. 538 // "CANCELLED" - The table was deleted before it finished copying to 539 // the new cluster. 540 // Note that tables deleted after completion will stay marked 541 // as 542 // COMPLETED, not CANCELLED. 543 State string `json:"state,omitempty"` 544 545 // ForceSendFields is a list of field names (e.g. 546 // "EstimatedCopiedBytes") to unconditionally include in API requests. 547 // By default, fields with empty values are omitted from API requests. 548 // However, any non-pointer, non-interface field appearing in 549 // ForceSendFields will be sent to the server regardless of whether the 550 // field is empty or not. This may be used to include empty fields in 551 // Patch requests. 552 ForceSendFields []string `json:"-"` 553 554 // NullFields is a list of field names (e.g. "EstimatedCopiedBytes") to 555 // include in API requests with the JSON null value. By default, fields 556 // with empty values are omitted from API requests. However, any field 557 // with an empty value appearing in NullFields will be sent to the 558 // server as null. It is an error if a field in this list has a 559 // non-empty value. This may be used to include null fields in Patch 560 // requests. 561 NullFields []string `json:"-"` 562} 563 564func (s *TableProgress) MarshalJSON() ([]byte, error) { 565 type NoMethod TableProgress 566 raw := NoMethod(*s) 567 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 568} 569 570// UpdateAppProfileMetadata: The metadata for the Operation returned by 571// UpdateAppProfile. 572type UpdateAppProfileMetadata struct { 573} 574 575// UpdateClusterMetadata: The metadata for the Operation returned by 576// UpdateCluster. 577type UpdateClusterMetadata struct { 578 // FinishTime: The time at which the operation failed or was completed 579 // successfully. 580 FinishTime string `json:"finishTime,omitempty"` 581 582 // OriginalRequest: The request that prompted the initiation of this 583 // UpdateCluster operation. 584 OriginalRequest *Cluster `json:"originalRequest,omitempty"` 585 586 // RequestTime: The time at which the original request was received. 587 RequestTime string `json:"requestTime,omitempty"` 588 589 // ForceSendFields is a list of field names (e.g. "FinishTime") to 590 // unconditionally include in API requests. By default, fields with 591 // empty values are omitted from API requests. However, any non-pointer, 592 // non-interface field appearing in ForceSendFields will be sent to the 593 // server regardless of whether the field is empty or not. This may be 594 // used to include empty fields in Patch requests. 595 ForceSendFields []string `json:"-"` 596 597 // NullFields is a list of field names (e.g. "FinishTime") to include in 598 // API requests with the JSON null value. By default, fields with empty 599 // values are omitted from API requests. However, any field with an 600 // empty value appearing in NullFields will be sent to the server as 601 // null. It is an error if a field in this list has a non-empty value. 602 // This may be used to include null fields in Patch requests. 603 NullFields []string `json:"-"` 604} 605 606func (s *UpdateClusterMetadata) MarshalJSON() ([]byte, error) { 607 type NoMethod UpdateClusterMetadata 608 raw := NoMethod(*s) 609 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 610} 611 612// UpdateInstanceMetadata: The metadata for the Operation returned by 613// UpdateInstance. 614type UpdateInstanceMetadata struct { 615 // FinishTime: The time at which the operation failed or was completed 616 // successfully. 617 FinishTime string `json:"finishTime,omitempty"` 618 619 // OriginalRequest: The request that prompted the initiation of this 620 // UpdateInstance operation. 621 OriginalRequest *PartialUpdateInstanceRequest `json:"originalRequest,omitempty"` 622 623 // RequestTime: The time at which the original request was received. 624 RequestTime string `json:"requestTime,omitempty"` 625 626 // ForceSendFields is a list of field names (e.g. "FinishTime") to 627 // unconditionally include in API requests. By default, fields with 628 // empty values are omitted from API requests. However, any non-pointer, 629 // non-interface field appearing in ForceSendFields will be sent to the 630 // server regardless of whether the field is empty or not. This may be 631 // used to include empty fields in Patch requests. 632 ForceSendFields []string `json:"-"` 633 634 // NullFields is a list of field names (e.g. "FinishTime") to include in 635 // API requests with the JSON null value. By default, fields with empty 636 // values are omitted from API requests. However, any field with an 637 // empty value appearing in NullFields will be sent to the server as 638 // null. It is an error if a field in this list has a non-empty value. 639 // This may be used to include null fields in Patch requests. 640 NullFields []string `json:"-"` 641} 642 643func (s *UpdateInstanceMetadata) MarshalJSON() ([]byte, error) { 644 type NoMethod UpdateInstanceMetadata 645 raw := NoMethod(*s) 646 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 647} 648