1// Copyright 2021 Google LLC. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5// Code generated file. DO NOT EDIT. 6 7// Package trafficdirector provides access to the Traffic Director API. 8// 9// For product documentation, see: https://cloud.google.com/traffic-director 10// 11// Creating a client 12// 13// Usage example: 14// 15// import "google.golang.org/api/trafficdirector/v2" 16// ... 17// ctx := context.Background() 18// trafficdirectorService, err := trafficdirector.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// trafficdirectorService, err := trafficdirector.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// trafficdirectorService, err := trafficdirector.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) 36// 37// See https://godoc.org/google.golang.org/api/option/ for details on options. 38package trafficdirector // import "google.golang.org/api/trafficdirector/v2" 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 googleapi "google.golang.org/api/googleapi" 53 gensupport "google.golang.org/api/internal/gensupport" 54 option "google.golang.org/api/option" 55 internaloption "google.golang.org/api/option/internaloption" 56 htransport "google.golang.org/api/transport/http" 57) 58 59// Always reference these packages, just in case the auto-generated code 60// below doesn't. 61var _ = bytes.NewBuffer 62var _ = strconv.Itoa 63var _ = fmt.Sprintf 64var _ = json.NewDecoder 65var _ = io.Copy 66var _ = url.Parse 67var _ = gensupport.MarshalJSON 68var _ = googleapi.Version 69var _ = errors.New 70var _ = strings.Replace 71var _ = context.Canceled 72var _ = internaloption.WithDefaultEndpoint 73 74const apiId = "trafficdirector:v2" 75const apiName = "trafficdirector" 76const apiVersion = "v2" 77const basePath = "https://trafficdirector.googleapis.com/" 78const mtlsBasePath = "https://trafficdirector.mtls.googleapis.com/" 79 80// OAuth2 scopes used by this API. 81const ( 82 // See, edit, configure, and delete your Google Cloud data and see the 83 // email address for your Google Account. 84 CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform" 85) 86 87// NewService creates a new Service. 88func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { 89 scopesOption := option.WithScopes( 90 "https://www.googleapis.com/auth/cloud-platform", 91 ) 92 // NOTE: prepend, so we don't override user-specified scopes. 93 opts = append([]option.ClientOption{scopesOption}, opts...) 94 opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) 95 opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) 96 client, endpoint, err := htransport.NewClient(ctx, opts...) 97 if err != nil { 98 return nil, err 99 } 100 s, err := New(client) 101 if err != nil { 102 return nil, err 103 } 104 if endpoint != "" { 105 s.BasePath = endpoint 106 } 107 return s, nil 108} 109 110// New creates a new Service. It uses the provided http.Client for requests. 111// 112// Deprecated: please use NewService instead. 113// To provide a custom HTTP client, use option.WithHTTPClient. 114// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. 115func New(client *http.Client) (*Service, error) { 116 if client == nil { 117 return nil, errors.New("client is nil") 118 } 119 s := &Service{client: client, BasePath: basePath} 120 s.Discovery = NewDiscoveryService(s) 121 return s, nil 122} 123 124type Service struct { 125 client *http.Client 126 BasePath string // API endpoint base URL 127 UserAgent string // optional additional User-Agent fragment 128 129 Discovery *DiscoveryService 130} 131 132func (s *Service) userAgent() string { 133 if s.UserAgent == "" { 134 return googleapi.UserAgent 135 } 136 return googleapi.UserAgent + " " + s.UserAgent 137} 138 139func NewDiscoveryService(s *Service) *DiscoveryService { 140 rs := &DiscoveryService{s: s} 141 return rs 142} 143 144type DiscoveryService struct { 145 s *Service 146} 147 148// Address: Addresses specify either a logical or physical address and 149// port, which are used to tell Envoy where to bind/listen, connect to 150// upstream and find management servers. 151type Address struct { 152 Pipe *Pipe `json:"pipe,omitempty"` 153 154 SocketAddress *SocketAddress `json:"socketAddress,omitempty"` 155 156 // ForceSendFields is a list of field names (e.g. "Pipe") to 157 // unconditionally include in API requests. By default, fields with 158 // empty or default values are omitted from API requests. However, any 159 // non-pointer, non-interface field appearing in ForceSendFields will be 160 // sent to the server regardless of whether the field is empty or not. 161 // This may be used to include empty fields in Patch requests. 162 ForceSendFields []string `json:"-"` 163 164 // NullFields is a list of field names (e.g. "Pipe") to include in API 165 // requests with the JSON null value. By default, fields with empty 166 // values are omitted from API requests. However, any field with an 167 // empty value appearing in NullFields will be sent to the server as 168 // null. It is an error if a field in this list has a non-empty value. 169 // This may be used to include null fields in Patch requests. 170 NullFields []string `json:"-"` 171} 172 173func (s *Address) MarshalJSON() ([]byte, error) { 174 type NoMethod Address 175 raw := NoMethod(*s) 176 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 177} 178 179// BuildVersion: BuildVersion combines SemVer version of extension with 180// free-form build information (i.e. 'alpha', 'private-build') as a set 181// of strings. 182type BuildVersion struct { 183 // Metadata: Free-form build information. Envoy defines several well 184 // known keys in the source/common/version/version.h file 185 Metadata googleapi.RawMessage `json:"metadata,omitempty"` 186 187 // Version: SemVer version of extension. 188 Version *SemanticVersion `json:"version,omitempty"` 189 190 // ForceSendFields is a list of field names (e.g. "Metadata") to 191 // unconditionally include in API requests. By default, fields with 192 // empty or default values are omitted from API requests. However, any 193 // non-pointer, non-interface field appearing in ForceSendFields will be 194 // sent to the server regardless of whether the field is empty or not. 195 // This may be used to include empty fields in Patch requests. 196 ForceSendFields []string `json:"-"` 197 198 // NullFields is a list of field names (e.g. "Metadata") to include in 199 // API requests with the JSON null value. By default, fields with empty 200 // values are omitted from API requests. However, any field with an 201 // empty value appearing in NullFields will be sent to the server as 202 // null. It is an error if a field in this list has a non-empty value. 203 // This may be used to include null fields in Patch requests. 204 NullFields []string `json:"-"` 205} 206 207func (s *BuildVersion) MarshalJSON() ([]byte, error) { 208 type NoMethod BuildVersion 209 raw := NoMethod(*s) 210 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 211} 212 213// ClientConfig: All xds configs for a particular client. 214type ClientConfig struct { 215 // Node: Node for a particular client. 216 Node *Node `json:"node,omitempty"` 217 218 XdsConfig []*PerXdsConfig `json:"xdsConfig,omitempty"` 219 220 // ForceSendFields is a list of field names (e.g. "Node") to 221 // unconditionally include in API requests. By default, fields with 222 // empty or default values are omitted from API requests. However, any 223 // non-pointer, non-interface field appearing in ForceSendFields will be 224 // sent to the server regardless of whether the field is empty or not. 225 // This may be used to include empty fields in Patch requests. 226 ForceSendFields []string `json:"-"` 227 228 // NullFields is a list of field names (e.g. "Node") to include in API 229 // requests with the JSON null value. By default, fields with empty 230 // values are omitted from API requests. However, any field with an 231 // empty value appearing in NullFields will be sent to the server as 232 // null. It is an error if a field in this list has a non-empty value. 233 // This may be used to include null fields in Patch requests. 234 NullFields []string `json:"-"` 235} 236 237func (s *ClientConfig) MarshalJSON() ([]byte, error) { 238 type NoMethod ClientConfig 239 raw := NoMethod(*s) 240 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 241} 242 243// ClientStatusRequest: Request for client status of clients identified 244// by a list of NodeMatchers. 245type ClientStatusRequest struct { 246 // NodeMatchers: Management server can use these match criteria to 247 // identify clients. The match follows OR semantics. 248 NodeMatchers []*NodeMatcher `json:"nodeMatchers,omitempty"` 249 250 // ForceSendFields is a list of field names (e.g. "NodeMatchers") to 251 // unconditionally include in API requests. By default, fields with 252 // empty or default values are omitted from API requests. However, any 253 // non-pointer, non-interface field appearing in ForceSendFields will be 254 // sent to the server regardless of whether the field is empty or not. 255 // This may be used to include empty fields in Patch requests. 256 ForceSendFields []string `json:"-"` 257 258 // NullFields is a list of field names (e.g. "NodeMatchers") to include 259 // in API requests with the JSON null value. By default, fields with 260 // empty values are omitted from API requests. However, any field with 261 // an empty value appearing in NullFields will be sent to the server as 262 // null. It is an error if a field in this list has a non-empty value. 263 // This may be used to include null fields in Patch requests. 264 NullFields []string `json:"-"` 265} 266 267func (s *ClientStatusRequest) MarshalJSON() ([]byte, error) { 268 type NoMethod ClientStatusRequest 269 raw := NoMethod(*s) 270 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 271} 272 273type ClientStatusResponse struct { 274 // Config: Client configs for the clients specified in the 275 // ClientStatusRequest. 276 Config []*ClientConfig `json:"config,omitempty"` 277 278 // ServerResponse contains the HTTP response code and headers from the 279 // server. 280 googleapi.ServerResponse `json:"-"` 281 282 // ForceSendFields is a list of field names (e.g. "Config") to 283 // unconditionally include in API requests. By default, fields with 284 // empty or default values are omitted from API requests. However, any 285 // non-pointer, non-interface field appearing in ForceSendFields will be 286 // sent to the server regardless of whether the field is empty or not. 287 // This may be used to include empty fields in Patch requests. 288 ForceSendFields []string `json:"-"` 289 290 // NullFields is a list of field names (e.g. "Config") to include in API 291 // requests with the JSON null value. By default, fields with empty 292 // values are omitted from API requests. However, any field with an 293 // empty value appearing in NullFields will be sent to the server as 294 // null. It is an error if a field in this list has a non-empty value. 295 // This may be used to include null fields in Patch requests. 296 NullFields []string `json:"-"` 297} 298 299func (s *ClientStatusResponse) MarshalJSON() ([]byte, error) { 300 type NoMethod ClientStatusResponse 301 raw := NoMethod(*s) 302 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 303} 304 305// ClustersConfigDump: Envoy's cluster manager fills this message with 306// all currently known clusters. Cluster configuration information can 307// be used to recreate an Envoy configuration by populating all clusters 308// as static clusters or by returning them in a CDS response. 309type ClustersConfigDump struct { 310 // DynamicActiveClusters: The dynamically loaded active clusters. These 311 // are clusters that are available to service data plane traffic. 312 DynamicActiveClusters []*DynamicCluster `json:"dynamicActiveClusters,omitempty"` 313 314 // DynamicWarmingClusters: The dynamically loaded warming clusters. 315 // These are clusters that are currently undergoing warming in 316 // preparation to service data plane traffic. Note that if attempting to 317 // recreate an Envoy configuration from a configuration dump, the 318 // warming clusters should generally be discarded. 319 DynamicWarmingClusters []*DynamicCluster `json:"dynamicWarmingClusters,omitempty"` 320 321 // StaticClusters: The statically loaded cluster configs. 322 StaticClusters []*StaticCluster `json:"staticClusters,omitempty"` 323 324 // VersionInfo: This is the :ref:`version_info ` in the last processed 325 // CDS discovery response. If there are only static bootstrap clusters, 326 // this field will be "". 327 VersionInfo string `json:"versionInfo,omitempty"` 328 329 // ForceSendFields is a list of field names (e.g. 330 // "DynamicActiveClusters") to unconditionally include in API requests. 331 // By default, fields with empty or default values are omitted from API 332 // requests. However, any non-pointer, non-interface field appearing in 333 // ForceSendFields will be sent to the server regardless of whether the 334 // field is empty or not. This may be used to include empty fields in 335 // Patch requests. 336 ForceSendFields []string `json:"-"` 337 338 // NullFields is a list of field names (e.g. "DynamicActiveClusters") to 339 // include in API requests with the JSON null value. By default, fields 340 // with empty values are omitted from API requests. However, any field 341 // with an empty value appearing in NullFields will be sent to the 342 // server as null. It is an error if a field in this list has a 343 // non-empty value. This may be used to include null fields in Patch 344 // requests. 345 NullFields []string `json:"-"` 346} 347 348func (s *ClustersConfigDump) MarshalJSON() ([]byte, error) { 349 type NoMethod ClustersConfigDump 350 raw := NoMethod(*s) 351 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 352} 353 354// DoubleMatcher: Specifies the way to match a double value. 355type DoubleMatcher struct { 356 // Exact: If specified, the input double value must be equal to the 357 // value specified here. 358 Exact float64 `json:"exact,omitempty"` 359 360 // Range: If specified, the input double value must be in the range 361 // specified here. Note: The range is using half-open interval semantics 362 // [start, end). 363 Range *DoubleRange `json:"range,omitempty"` 364 365 // ForceSendFields is a list of field names (e.g. "Exact") to 366 // unconditionally include in API requests. By default, fields with 367 // empty or default values are omitted from API requests. However, any 368 // non-pointer, non-interface field appearing in ForceSendFields will be 369 // sent to the server regardless of whether the field is empty or not. 370 // This may be used to include empty fields in Patch requests. 371 ForceSendFields []string `json:"-"` 372 373 // NullFields is a list of field names (e.g. "Exact") to include in API 374 // requests with the JSON null value. By default, fields with empty 375 // values are omitted from API requests. However, any field with an 376 // empty value appearing in NullFields will be sent to the server as 377 // null. It is an error if a field in this list has a non-empty value. 378 // This may be used to include null fields in Patch requests. 379 NullFields []string `json:"-"` 380} 381 382func (s *DoubleMatcher) MarshalJSON() ([]byte, error) { 383 type NoMethod DoubleMatcher 384 raw := NoMethod(*s) 385 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 386} 387 388func (s *DoubleMatcher) UnmarshalJSON(data []byte) error { 389 type NoMethod DoubleMatcher 390 var s1 struct { 391 Exact gensupport.JSONFloat64 `json:"exact"` 392 *NoMethod 393 } 394 s1.NoMethod = (*NoMethod)(s) 395 if err := json.Unmarshal(data, &s1); err != nil { 396 return err 397 } 398 s.Exact = float64(s1.Exact) 399 return nil 400} 401 402// DoubleRange: Specifies the double start and end of the range using 403// half-open interval semantics [start, end). 404type DoubleRange struct { 405 // End: end of the range (exclusive) 406 End float64 `json:"end,omitempty"` 407 408 // Start: start of the range (inclusive) 409 Start float64 `json:"start,omitempty"` 410 411 // ForceSendFields is a list of field names (e.g. "End") to 412 // unconditionally include in API requests. By default, fields with 413 // empty or default values are omitted from API requests. However, any 414 // non-pointer, non-interface field appearing in ForceSendFields will be 415 // sent to the server regardless of whether the field is empty or not. 416 // This may be used to include empty fields in Patch requests. 417 ForceSendFields []string `json:"-"` 418 419 // NullFields is a list of field names (e.g. "End") to include in API 420 // requests with the JSON null value. By default, fields with empty 421 // values are omitted from API requests. However, any field with an 422 // empty value appearing in NullFields will be sent to the server as 423 // null. It is an error if a field in this list has a non-empty value. 424 // This may be used to include null fields in Patch requests. 425 NullFields []string `json:"-"` 426} 427 428func (s *DoubleRange) MarshalJSON() ([]byte, error) { 429 type NoMethod DoubleRange 430 raw := NoMethod(*s) 431 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 432} 433 434func (s *DoubleRange) UnmarshalJSON(data []byte) error { 435 type NoMethod DoubleRange 436 var s1 struct { 437 End gensupport.JSONFloat64 `json:"end"` 438 Start gensupport.JSONFloat64 `json:"start"` 439 *NoMethod 440 } 441 s1.NoMethod = (*NoMethod)(s) 442 if err := json.Unmarshal(data, &s1); err != nil { 443 return err 444 } 445 s.End = float64(s1.End) 446 s.Start = float64(s1.Start) 447 return nil 448} 449 450// DynamicCluster: Describes a dynamically loaded cluster via the CDS 451// API. 452type DynamicCluster struct { 453 // Cluster: The cluster config. 454 Cluster googleapi.RawMessage `json:"cluster,omitempty"` 455 456 // LastUpdated: The timestamp when the Cluster was last updated. 457 LastUpdated string `json:"lastUpdated,omitempty"` 458 459 // VersionInfo: This is the per-resource version information. This 460 // version is currently taken from the :ref:`version_info ` field at the 461 // time that the cluster was loaded. In the future, discrete per-cluster 462 // versions may be supported by the API. 463 VersionInfo string `json:"versionInfo,omitempty"` 464 465 // ForceSendFields is a list of field names (e.g. "Cluster") to 466 // unconditionally include in API requests. By default, fields with 467 // empty or default values are omitted from API requests. However, any 468 // non-pointer, non-interface field appearing in ForceSendFields will be 469 // sent to the server regardless of whether the field is empty or not. 470 // This may be used to include empty fields in Patch requests. 471 ForceSendFields []string `json:"-"` 472 473 // NullFields is a list of field names (e.g. "Cluster") to include in 474 // API requests with the JSON null value. By default, fields with empty 475 // values are omitted from API requests. However, any field with an 476 // empty value appearing in NullFields will be sent to the server as 477 // null. It is an error if a field in this list has a non-empty value. 478 // This may be used to include null fields in Patch requests. 479 NullFields []string `json:"-"` 480} 481 482func (s *DynamicCluster) MarshalJSON() ([]byte, error) { 483 type NoMethod DynamicCluster 484 raw := NoMethod(*s) 485 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 486} 487 488// DynamicListener: Describes a dynamically loaded listener via the LDS 489// API. [#next-free-field: 6] 490type DynamicListener struct { 491 // ActiveState: The listener state for any active listener by this name. 492 // These are listeners that are available to service data plane traffic. 493 ActiveState *DynamicListenerState `json:"activeState,omitempty"` 494 495 // DrainingState: The listener state for any draining listener by this 496 // name. These are listeners that are currently undergoing draining in 497 // preparation to stop servicing data plane traffic. Note that if 498 // attempting to recreate an Envoy configuration from a configuration 499 // dump, the draining listeners should generally be discarded. 500 DrainingState *DynamicListenerState `json:"drainingState,omitempty"` 501 502 // ErrorState: Set if the last update failed, cleared after the next 503 // successful update. 504 ErrorState *UpdateFailureState `json:"errorState,omitempty"` 505 506 // Name: The name or unique id of this listener, pulled from the 507 // DynamicListenerState config. 508 Name string `json:"name,omitempty"` 509 510 // WarmingState: The listener state for any warming listener by this 511 // name. These are listeners that are currently undergoing warming in 512 // preparation to service data plane traffic. Note that if attempting to 513 // recreate an Envoy configuration from a configuration dump, the 514 // warming listeners should generally be discarded. 515 WarmingState *DynamicListenerState `json:"warmingState,omitempty"` 516 517 // ForceSendFields is a list of field names (e.g. "ActiveState") to 518 // unconditionally include in API requests. By default, fields with 519 // empty or default values are omitted from API requests. However, any 520 // non-pointer, non-interface field appearing in ForceSendFields will be 521 // sent to the server regardless of whether the field is empty or not. 522 // This may be used to include empty fields in Patch requests. 523 ForceSendFields []string `json:"-"` 524 525 // NullFields is a list of field names (e.g. "ActiveState") to include 526 // in API requests with the JSON null value. By default, fields with 527 // empty values are omitted from API requests. However, any field with 528 // an empty value appearing in NullFields will be sent to the server as 529 // null. It is an error if a field in this list has a non-empty value. 530 // This may be used to include null fields in Patch requests. 531 NullFields []string `json:"-"` 532} 533 534func (s *DynamicListener) MarshalJSON() ([]byte, error) { 535 type NoMethod DynamicListener 536 raw := NoMethod(*s) 537 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 538} 539 540type DynamicListenerState struct { 541 // LastUpdated: The timestamp when the Listener was last successfully 542 // updated. 543 LastUpdated string `json:"lastUpdated,omitempty"` 544 545 // Listener: The listener config. 546 Listener googleapi.RawMessage `json:"listener,omitempty"` 547 548 // VersionInfo: This is the per-resource version information. This 549 // version is currently taken from the :ref:`version_info ` field at the 550 // time that the listener was loaded. In the future, discrete 551 // per-listener versions may be supported by the API. 552 VersionInfo string `json:"versionInfo,omitempty"` 553 554 // ForceSendFields is a list of field names (e.g. "LastUpdated") to 555 // unconditionally include in API requests. By default, fields with 556 // empty or default values are omitted from API requests. However, any 557 // non-pointer, non-interface field appearing in ForceSendFields will be 558 // sent to the server regardless of whether the field is empty or not. 559 // This may be used to include empty fields in Patch requests. 560 ForceSendFields []string `json:"-"` 561 562 // NullFields is a list of field names (e.g. "LastUpdated") to include 563 // in API requests with the JSON null value. By default, fields with 564 // empty values are omitted from API requests. However, any field with 565 // an empty value appearing in NullFields will be sent to the server as 566 // null. It is an error if a field in this list has a non-empty value. 567 // This may be used to include null fields in Patch requests. 568 NullFields []string `json:"-"` 569} 570 571func (s *DynamicListenerState) MarshalJSON() ([]byte, error) { 572 type NoMethod DynamicListenerState 573 raw := NoMethod(*s) 574 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 575} 576 577type DynamicRouteConfig struct { 578 // LastUpdated: The timestamp when the Route was last updated. 579 LastUpdated string `json:"lastUpdated,omitempty"` 580 581 // RouteConfig: The route config. 582 RouteConfig googleapi.RawMessage `json:"routeConfig,omitempty"` 583 584 // VersionInfo: This is the per-resource version information. This 585 // version is currently taken from the :ref:`version_info ` field at the 586 // time that the route configuration was loaded. 587 VersionInfo string `json:"versionInfo,omitempty"` 588 589 // ForceSendFields is a list of field names (e.g. "LastUpdated") to 590 // unconditionally include in API requests. By default, fields with 591 // empty or default values are omitted from API requests. However, any 592 // non-pointer, non-interface field appearing in ForceSendFields will be 593 // sent to the server regardless of whether the field is empty or not. 594 // This may be used to include empty fields in Patch requests. 595 ForceSendFields []string `json:"-"` 596 597 // NullFields is a list of field names (e.g. "LastUpdated") to include 598 // in API requests with the JSON null value. By default, fields with 599 // empty values are omitted from API requests. However, any field with 600 // an 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 *DynamicRouteConfig) MarshalJSON() ([]byte, error) { 607 type NoMethod DynamicRouteConfig 608 raw := NoMethod(*s) 609 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 610} 611 612type DynamicScopedRouteConfigs struct { 613 // LastUpdated: The timestamp when the scoped route config set was last 614 // updated. 615 LastUpdated string `json:"lastUpdated,omitempty"` 616 617 // Name: The name assigned to the scoped route configurations. 618 Name string `json:"name,omitempty"` 619 620 // ScopedRouteConfigs: The scoped route configurations. 621 ScopedRouteConfigs []googleapi.RawMessage `json:"scopedRouteConfigs,omitempty"` 622 623 // VersionInfo: This is the per-resource version information. This 624 // version is currently taken from the :ref:`version_info ` field at the 625 // time that the scoped routes configuration was loaded. 626 VersionInfo string `json:"versionInfo,omitempty"` 627 628 // ForceSendFields is a list of field names (e.g. "LastUpdated") to 629 // unconditionally include in API requests. By default, fields with 630 // empty or default values are omitted from API requests. However, any 631 // non-pointer, non-interface field appearing in ForceSendFields will be 632 // sent to the server regardless of whether the field is empty or not. 633 // This may be used to include empty fields in Patch requests. 634 ForceSendFields []string `json:"-"` 635 636 // NullFields is a list of field names (e.g. "LastUpdated") to include 637 // in API requests with the JSON null value. By default, fields with 638 // empty values are omitted from API requests. However, any field with 639 // an empty value appearing in NullFields will be sent to the server as 640 // null. It is an error if a field in this list has a non-empty value. 641 // This may be used to include null fields in Patch requests. 642 NullFields []string `json:"-"` 643} 644 645func (s *DynamicScopedRouteConfigs) MarshalJSON() ([]byte, error) { 646 type NoMethod DynamicScopedRouteConfigs 647 raw := NoMethod(*s) 648 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 649} 650 651// Extension: Version and identification for an Envoy extension. 652// [#next-free-field: 6] 653type Extension struct { 654 // Category: Category of the extension. Extension category names use 655 // reverse DNS notation. For instance "envoy.filters.listener" for 656 // Envoy's built-in listener filters or "com.acme.filters.http" for HTTP 657 // filters from acme.com vendor. [#comment: 658 Category string `json:"category,omitempty"` 659 660 // Disabled: Indicates that the extension is present but was disabled 661 // via dynamic configuration. 662 Disabled bool `json:"disabled,omitempty"` 663 664 // Name: This is the name of the Envoy filter as specified in the Envoy 665 // configuration, e.g. envoy.filters.http.router, com.acme.widget. 666 Name string `json:"name,omitempty"` 667 668 // TypeDescriptor: [#not-implemented-hide:] Type descriptor of extension 669 // configuration proto. [#comment: 670 TypeDescriptor string `json:"typeDescriptor,omitempty"` 671 672 // Version: The version is a property of the extension and maintained 673 // independently of other extensions and the Envoy API. This field is 674 // not set when extension did not provide version information. 675 Version *BuildVersion `json:"version,omitempty"` 676 677 // ForceSendFields is a list of field names (e.g. "Category") to 678 // unconditionally include in API requests. By default, fields with 679 // empty or default values are omitted from API requests. However, any 680 // non-pointer, non-interface field appearing in ForceSendFields will be 681 // sent to the server regardless of whether the field is empty or not. 682 // This may be used to include empty fields in Patch requests. 683 ForceSendFields []string `json:"-"` 684 685 // NullFields is a list of field names (e.g. "Category") to include in 686 // API requests with the JSON null value. By default, fields with empty 687 // values are omitted from API requests. However, any field with an 688 // empty value appearing in NullFields will be sent to the server as 689 // null. It is an error if a field in this list has a non-empty value. 690 // This may be used to include null fields in Patch requests. 691 NullFields []string `json:"-"` 692} 693 694func (s *Extension) MarshalJSON() ([]byte, error) { 695 type NoMethod Extension 696 raw := NoMethod(*s) 697 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 698} 699 700// GoogleRE2: Google's `RE2 `_ regex engine. The regex string must 701// adhere to the documented `syntax `_. The engine is designed to 702// complete execution in linear time as well as limit the amount of 703// memory used. Envoy supports program size checking via runtime. The 704// runtime keys `re2.max_program_size.error_level` and 705// `re2.max_program_size.warn_level` can be set to integers as the 706// maximum program size or complexity that a compiled regex can have 707// before an exception is thrown or a warning is logged, respectively. 708// `re2.max_program_size.error_level` defaults to 100, and 709// `re2.max_program_size.warn_level` has no default if unset (will not 710// check/log a warning). Envoy emits two stats for tracking the program 711// size of regexes: the histogram `re2.program_size`, which records the 712// program size, and the counter `re2.exceeded_warn_level`, which is 713// incremented each time the program size exceeds the warn level 714// threshold. 715type GoogleRE2 struct { 716 // MaxProgramSize: This field controls the RE2 "program size" which is a 717 // rough estimate of how complex a compiled regex is to evaluate. A 718 // regex that has a program size greater than the configured value will 719 // fail to compile. In this case, the configured max program size can be 720 // increased or the regex can be simplified. If not specified, the 721 // default is 100. This field is deprecated; regexp validation should be 722 // performed on the management server instead of being done by each 723 // individual client. 724 MaxProgramSize int64 `json:"maxProgramSize,omitempty"` 725 726 // ForceSendFields is a list of field names (e.g. "MaxProgramSize") to 727 // unconditionally include in API requests. By default, fields with 728 // empty or default values are omitted from API requests. However, any 729 // non-pointer, non-interface field appearing in ForceSendFields will be 730 // sent to the server regardless of whether the field is empty or not. 731 // This may be used to include empty fields in Patch requests. 732 ForceSendFields []string `json:"-"` 733 734 // NullFields is a list of field names (e.g. "MaxProgramSize") to 735 // include in API requests with the JSON null value. By default, fields 736 // with empty values are omitted from API requests. However, any field 737 // with an empty value appearing in NullFields will be sent to the 738 // server as null. It is an error if a field in this list has a 739 // non-empty value. This may be used to include null fields in Patch 740 // requests. 741 NullFields []string `json:"-"` 742} 743 744func (s *GoogleRE2) MarshalJSON() ([]byte, error) { 745 type NoMethod GoogleRE2 746 raw := NoMethod(*s) 747 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 748} 749 750type InlineScopedRouteConfigs struct { 751 // LastUpdated: The timestamp when the scoped route config set was last 752 // updated. 753 LastUpdated string `json:"lastUpdated,omitempty"` 754 755 // Name: The name assigned to the scoped route configurations. 756 Name string `json:"name,omitempty"` 757 758 // ScopedRouteConfigs: The scoped route configurations. 759 ScopedRouteConfigs []googleapi.RawMessage `json:"scopedRouteConfigs,omitempty"` 760 761 // ForceSendFields is a list of field names (e.g. "LastUpdated") to 762 // unconditionally include in API requests. By default, fields with 763 // empty or default values are omitted from API requests. However, any 764 // non-pointer, non-interface field appearing in ForceSendFields will be 765 // sent to the server regardless of whether the field is empty or not. 766 // This may be used to include empty fields in Patch requests. 767 ForceSendFields []string `json:"-"` 768 769 // NullFields is a list of field names (e.g. "LastUpdated") to include 770 // in API requests with the JSON null value. By default, fields with 771 // empty values are omitted from API requests. However, any field with 772 // an empty value appearing in NullFields will be sent to the server as 773 // null. It is an error if a field in this list has a non-empty value. 774 // This may be used to include null fields in Patch requests. 775 NullFields []string `json:"-"` 776} 777 778func (s *InlineScopedRouteConfigs) MarshalJSON() ([]byte, error) { 779 type NoMethod InlineScopedRouteConfigs 780 raw := NoMethod(*s) 781 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 782} 783 784// ListMatcher: Specifies the way to match a list value. 785type ListMatcher struct { 786 // OneOf: If specified, at least one of the values in the list must 787 // match the value specified. 788 OneOf *ValueMatcher `json:"oneOf,omitempty"` 789 790 // ForceSendFields is a list of field names (e.g. "OneOf") to 791 // unconditionally include in API requests. By default, fields with 792 // empty or default values are omitted from API requests. However, any 793 // non-pointer, non-interface field appearing in ForceSendFields will be 794 // sent to the server regardless of whether the field is empty or not. 795 // This may be used to include empty fields in Patch requests. 796 ForceSendFields []string `json:"-"` 797 798 // NullFields is a list of field names (e.g. "OneOf") to include in API 799 // requests with the JSON null value. By default, fields with empty 800 // values are omitted from API requests. However, any field with an 801 // empty value appearing in NullFields will be sent to the server as 802 // null. It is an error if a field in this list has a non-empty value. 803 // This may be used to include null fields in Patch requests. 804 NullFields []string `json:"-"` 805} 806 807func (s *ListMatcher) MarshalJSON() ([]byte, error) { 808 type NoMethod ListMatcher 809 raw := NoMethod(*s) 810 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 811} 812 813// ListenersConfigDump: Envoy's listener manager fills this message with 814// all currently known listeners. Listener configuration information can 815// be used to recreate an Envoy configuration by populating all 816// listeners as static listeners or by returning them in a LDS response. 817type ListenersConfigDump struct { 818 // DynamicListeners: State for any warming, active, or draining 819 // listeners. 820 DynamicListeners []*DynamicListener `json:"dynamicListeners,omitempty"` 821 822 // StaticListeners: The statically loaded listener configs. 823 StaticListeners []*StaticListener `json:"staticListeners,omitempty"` 824 825 // VersionInfo: This is the :ref:`version_info ` in the last processed 826 // LDS discovery response. If there are only static bootstrap listeners, 827 // this field will be "". 828 VersionInfo string `json:"versionInfo,omitempty"` 829 830 // ForceSendFields is a list of field names (e.g. "DynamicListeners") to 831 // unconditionally include in API requests. By default, fields with 832 // empty or default values are omitted from API requests. However, any 833 // non-pointer, non-interface field appearing in ForceSendFields will be 834 // sent to the server regardless of whether the field is empty or not. 835 // This may be used to include empty fields in Patch requests. 836 ForceSendFields []string `json:"-"` 837 838 // NullFields is a list of field names (e.g. "DynamicListeners") to 839 // include in API requests with the JSON null value. By default, fields 840 // with empty values are omitted from API requests. However, any field 841 // with an empty value appearing in NullFields will be sent to the 842 // server as null. It is an error if a field in this list has a 843 // non-empty value. This may be used to include null fields in Patch 844 // requests. 845 NullFields []string `json:"-"` 846} 847 848func (s *ListenersConfigDump) MarshalJSON() ([]byte, error) { 849 type NoMethod ListenersConfigDump 850 raw := NoMethod(*s) 851 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 852} 853 854// Locality: Identifies location of where either Envoy runs or where 855// upstream hosts run. 856type Locality struct { 857 // Region: Region this :ref:`zone ` belongs to. 858 Region string `json:"region,omitempty"` 859 860 // SubZone: When used for locality of upstream hosts, this field further 861 // splits zone into smaller chunks of sub-zones so they can be load 862 // balanced independently. 863 SubZone string `json:"subZone,omitempty"` 864 865 // Zone: Defines the local service zone where Envoy is running. Though 866 // optional, it should be set if discovery service routing is used and 867 // the discovery service exposes :ref:`zone data `, either in this 868 // message or via :option:`--service-zone`. The meaning of zone is 869 // context dependent, e.g. `Availability Zone (AZ) `_ on AWS, `Zone `_ 870 // on GCP, etc. 871 Zone string `json:"zone,omitempty"` 872 873 // ForceSendFields is a list of field names (e.g. "Region") to 874 // unconditionally include in API requests. By default, fields with 875 // empty or default values are omitted from API requests. However, any 876 // non-pointer, non-interface field appearing in ForceSendFields will be 877 // sent to the server regardless of whether the field is empty or not. 878 // This may be used to include empty fields in Patch requests. 879 ForceSendFields []string `json:"-"` 880 881 // NullFields is a list of field names (e.g. "Region") to include in API 882 // requests with the JSON null value. By default, fields with empty 883 // values are omitted from API requests. However, any field with an 884 // empty value appearing in NullFields will be sent to the server as 885 // null. It is an error if a field in this list has a non-empty value. 886 // This may be used to include null fields in Patch requests. 887 NullFields []string `json:"-"` 888} 889 890func (s *Locality) MarshalJSON() ([]byte, error) { 891 type NoMethod Locality 892 raw := NoMethod(*s) 893 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 894} 895 896// Node: Identifies a specific Envoy instance. The node identifier is 897// presented to the management server, which may use this identifier to 898// distinguish per Envoy configuration for serving. [#next-free-field: 899// 12] 900type Node struct { 901 // BuildVersion: This is motivated by informing a management server 902 // during canary which version of Envoy is being tested in a 903 // heterogeneous fleet. This will be set by Envoy in management server 904 // RPCs. This field is deprecated in favor of the user_agent_name and 905 // user_agent_version values. 906 BuildVersion string `json:"buildVersion,omitempty"` 907 908 // ClientFeatures: Client feature support list. These are well known 909 // features described in the Envoy API repository for a given major 910 // version of an API. Client features use reverse DNS naming scheme, for 911 // example `com.acme.feature`. See :ref:`the list of features ` that xDS 912 // client may support. 913 ClientFeatures []string `json:"clientFeatures,omitempty"` 914 915 // Cluster: Defines the local service cluster name where Envoy is 916 // running. Though optional, it should be set if any of the following 917 // features are used: :ref:`statsd `, :ref:`health check cluster 918 // verification `, :ref:`runtime override directory `, :ref:`user agent 919 // addition `, :ref:`HTTP global rate limiting `, :ref:`CDS `, and 920 // :ref:`HTTP tracing `, either in this message or via 921 // :option:`--service-cluster`. 922 Cluster string `json:"cluster,omitempty"` 923 924 // Extensions: List of extensions and their versions supported by the 925 // node. 926 Extensions []*Extension `json:"extensions,omitempty"` 927 928 // Id: An opaque node identifier for the Envoy node. This also provides 929 // the local service node name. It should be set if any of the following 930 // features are used: :ref:`statsd `, :ref:`CDS `, and :ref:`HTTP 931 // tracing `, either in this message or via :option:`--service-node`. 932 Id string `json:"id,omitempty"` 933 934 // ListeningAddresses: Known listening ports on the node as a generic 935 // hint to the management server for filtering :ref:`listeners ` to be 936 // returned. For example, if there is a listener bound to port 80, the 937 // list can optionally contain the SocketAddress `(0.0.0.0,80)`. The 938 // field is optional and just a hint. 939 ListeningAddresses []*Address `json:"listeningAddresses,omitempty"` 940 941 // Locality: Locality specifying where the Envoy instance is running. 942 Locality *Locality `json:"locality,omitempty"` 943 944 // Metadata: Opaque metadata extending the node identifier. Envoy will 945 // pass this directly to the management server. 946 Metadata googleapi.RawMessage `json:"metadata,omitempty"` 947 948 // UserAgentBuildVersion: Structured version of the entity requesting 949 // config. 950 UserAgentBuildVersion *BuildVersion `json:"userAgentBuildVersion,omitempty"` 951 952 // UserAgentName: Free-form string that identifies the entity requesting 953 // config. E.g. "envoy" or "grpc" 954 UserAgentName string `json:"userAgentName,omitempty"` 955 956 // UserAgentVersion: Free-form string that identifies the version of the 957 // entity requesting config. E.g. "1.12.2" or "abcd1234", or 958 // "SpecialEnvoyBuild" 959 UserAgentVersion string `json:"userAgentVersion,omitempty"` 960 961 // ForceSendFields is a list of field names (e.g. "BuildVersion") to 962 // unconditionally include in API requests. By default, fields with 963 // empty or default values are omitted from API requests. However, any 964 // non-pointer, non-interface field appearing in ForceSendFields will be 965 // sent to the server regardless of whether the field is empty or not. 966 // This may be used to include empty fields in Patch requests. 967 ForceSendFields []string `json:"-"` 968 969 // NullFields is a list of field names (e.g. "BuildVersion") to include 970 // in API requests with the JSON null value. By default, fields with 971 // empty values are omitted from API requests. However, any field with 972 // an empty value appearing in NullFields will be sent to the server as 973 // null. It is an error if a field in this list has a non-empty value. 974 // This may be used to include null fields in Patch requests. 975 NullFields []string `json:"-"` 976} 977 978func (s *Node) MarshalJSON() ([]byte, error) { 979 type NoMethod Node 980 raw := NoMethod(*s) 981 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 982} 983 984// NodeMatcher: Specifies the way to match a Node. The match follows AND 985// semantics. 986type NodeMatcher struct { 987 // NodeId: Specifies match criteria on the node id. 988 NodeId *StringMatcher `json:"nodeId,omitempty"` 989 990 // NodeMetadatas: Specifies match criteria on the node metadata. 991 NodeMetadatas []*StructMatcher `json:"nodeMetadatas,omitempty"` 992 993 // ForceSendFields is a list of field names (e.g. "NodeId") to 994 // unconditionally include in API requests. By default, fields with 995 // empty or default values are omitted from API requests. However, any 996 // non-pointer, non-interface field appearing in ForceSendFields will be 997 // sent to the server regardless of whether the field is empty or not. 998 // This may be used to include empty fields in Patch requests. 999 ForceSendFields []string `json:"-"` 1000 1001 // NullFields is a list of field names (e.g. "NodeId") to include in API 1002 // requests with the JSON null value. By default, fields with empty 1003 // values are omitted from API requests. However, any field with an 1004 // empty value appearing in NullFields will be sent to the server as 1005 // null. It is an error if a field in this list has a non-empty value. 1006 // This may be used to include null fields in Patch requests. 1007 NullFields []string `json:"-"` 1008} 1009 1010func (s *NodeMatcher) MarshalJSON() ([]byte, error) { 1011 type NoMethod NodeMatcher 1012 raw := NoMethod(*s) 1013 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1014} 1015 1016// NullMatch: NullMatch is an empty message to specify a null value. 1017type NullMatch struct { 1018} 1019 1020// PathSegment: Specifies the segment in a path to retrieve value from 1021// Struct. 1022type PathSegment struct { 1023 // Key: If specified, use the key to retrieve the value in a Struct. 1024 Key string `json:"key,omitempty"` 1025 1026 // ForceSendFields is a list of field names (e.g. "Key") to 1027 // unconditionally include in API requests. By default, fields with 1028 // empty or default values are omitted from API requests. However, any 1029 // non-pointer, non-interface field appearing in ForceSendFields will be 1030 // sent to the server regardless of whether the field is empty or not. 1031 // This may be used to include empty fields in Patch requests. 1032 ForceSendFields []string `json:"-"` 1033 1034 // NullFields is a list of field names (e.g. "Key") to include in API 1035 // requests with the JSON null value. By default, fields with empty 1036 // values are omitted from API requests. However, any field with an 1037 // empty value appearing in NullFields will be sent to the server as 1038 // null. It is an error if a field in this list has a non-empty value. 1039 // This may be used to include null fields in Patch requests. 1040 NullFields []string `json:"-"` 1041} 1042 1043func (s *PathSegment) MarshalJSON() ([]byte, error) { 1044 type NoMethod PathSegment 1045 raw := NoMethod(*s) 1046 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1047} 1048 1049// PerXdsConfig: Detailed config (per xDS) with status. 1050// [#next-free-field: 6] 1051type PerXdsConfig struct { 1052 ClusterConfig *ClustersConfigDump `json:"clusterConfig,omitempty"` 1053 1054 ListenerConfig *ListenersConfigDump `json:"listenerConfig,omitempty"` 1055 1056 RouteConfig *RoutesConfigDump `json:"routeConfig,omitempty"` 1057 1058 ScopedRouteConfig *ScopedRoutesConfigDump `json:"scopedRouteConfig,omitempty"` 1059 1060 // Possible values: 1061 // "UNKNOWN" - Status info is not available/unknown. 1062 // "SYNCED" - Management server has sent the config to client and 1063 // received ACK. 1064 // "NOT_SENT" - Config is not sent. 1065 // "STALE" - Management server has sent the config to client but 1066 // hasn’t received ACK/NACK. 1067 // "ERROR" - Management server has sent the config to client but 1068 // received NACK. 1069 Status string `json:"status,omitempty"` 1070 1071 // ForceSendFields is a list of field names (e.g. "ClusterConfig") to 1072 // unconditionally include in API requests. By default, fields with 1073 // empty or default values are omitted from API requests. However, any 1074 // non-pointer, non-interface field appearing in ForceSendFields will be 1075 // sent to the server regardless of whether the field is empty or not. 1076 // This may be used to include empty fields in Patch requests. 1077 ForceSendFields []string `json:"-"` 1078 1079 // NullFields is a list of field names (e.g. "ClusterConfig") to include 1080 // in API requests with the JSON null value. By default, fields with 1081 // empty values are omitted from API requests. However, any field with 1082 // an empty value appearing in NullFields will be sent to the server as 1083 // null. It is an error if a field in this list has a non-empty value. 1084 // This may be used to include null fields in Patch requests. 1085 NullFields []string `json:"-"` 1086} 1087 1088func (s *PerXdsConfig) MarshalJSON() ([]byte, error) { 1089 type NoMethod PerXdsConfig 1090 raw := NoMethod(*s) 1091 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1092} 1093 1094type Pipe struct { 1095 // Mode: The mode for the Pipe. Not applicable for abstract sockets. 1096 Mode int64 `json:"mode,omitempty"` 1097 1098 // Path: Unix Domain Socket path. On Linux, paths starting with '@' will 1099 // use the abstract namespace. The starting '@' is replaced by a null 1100 // byte by Envoy. Paths starting with '@' will result in an error in 1101 // environments other than Linux. 1102 Path string `json:"path,omitempty"` 1103 1104 // ForceSendFields is a list of field names (e.g. "Mode") to 1105 // unconditionally include in API requests. By default, fields with 1106 // empty or default values are omitted from API requests. However, any 1107 // non-pointer, non-interface field appearing in ForceSendFields will be 1108 // sent to the server regardless of whether the field is empty or not. 1109 // This may be used to include empty fields in Patch requests. 1110 ForceSendFields []string `json:"-"` 1111 1112 // NullFields is a list of field names (e.g. "Mode") to include in API 1113 // requests with the JSON null value. By default, fields with empty 1114 // values are omitted from API requests. However, any field with an 1115 // empty value appearing in NullFields will be sent to the server as 1116 // null. It is an error if a field in this list has a non-empty value. 1117 // This may be used to include null fields in Patch requests. 1118 NullFields []string `json:"-"` 1119} 1120 1121func (s *Pipe) MarshalJSON() ([]byte, error) { 1122 type NoMethod Pipe 1123 raw := NoMethod(*s) 1124 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1125} 1126 1127// RegexMatcher: A regex matcher designed for safety when used with 1128// untrusted input. 1129type RegexMatcher struct { 1130 // GoogleRe2: Google's RE2 regex engine. 1131 GoogleRe2 *GoogleRE2 `json:"googleRe2,omitempty"` 1132 1133 // Regex: The regex match string. The string must be supported by the 1134 // configured engine. 1135 Regex string `json:"regex,omitempty"` 1136 1137 // ForceSendFields is a list of field names (e.g. "GoogleRe2") to 1138 // unconditionally include in API requests. By default, fields with 1139 // empty or default values are omitted from API requests. However, any 1140 // non-pointer, non-interface field appearing in ForceSendFields will be 1141 // sent to the server regardless of whether the field is empty or not. 1142 // This may be used to include empty fields in Patch requests. 1143 ForceSendFields []string `json:"-"` 1144 1145 // NullFields is a list of field names (e.g. "GoogleRe2") to include in 1146 // API requests with the JSON null value. By default, fields with empty 1147 // values are omitted from API requests. However, any field with an 1148 // empty value appearing in NullFields will be sent to the server as 1149 // null. It is an error if a field in this list has a non-empty value. 1150 // This may be used to include null fields in Patch requests. 1151 NullFields []string `json:"-"` 1152} 1153 1154func (s *RegexMatcher) MarshalJSON() ([]byte, error) { 1155 type NoMethod RegexMatcher 1156 raw := NoMethod(*s) 1157 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1158} 1159 1160// RoutesConfigDump: Envoy's RDS implementation fills this message with 1161// all currently loaded routes, as described by their RouteConfiguration 1162// objects. Static routes that are either defined in the bootstrap 1163// configuration or defined inline while configuring listeners are 1164// separated from those configured dynamically via RDS. Route 1165// configuration information can be used to recreate an Envoy 1166// configuration by populating all routes as static routes or by 1167// returning them in RDS responses. 1168type RoutesConfigDump struct { 1169 // DynamicRouteConfigs: The dynamically loaded route configs. 1170 DynamicRouteConfigs []*DynamicRouteConfig `json:"dynamicRouteConfigs,omitempty"` 1171 1172 // StaticRouteConfigs: The statically loaded route configs. 1173 StaticRouteConfigs []*StaticRouteConfig `json:"staticRouteConfigs,omitempty"` 1174 1175 // ForceSendFields is a list of field names (e.g. "DynamicRouteConfigs") 1176 // to unconditionally include in API requests. By default, fields with 1177 // empty or default values are omitted from API requests. However, any 1178 // non-pointer, non-interface field appearing in ForceSendFields will be 1179 // sent to the server regardless of whether the field is empty or not. 1180 // This may be used to include empty fields in Patch requests. 1181 ForceSendFields []string `json:"-"` 1182 1183 // NullFields is a list of field names (e.g. "DynamicRouteConfigs") to 1184 // include in API requests with the JSON null value. By default, fields 1185 // with empty values are omitted from API requests. However, any field 1186 // with an empty value appearing in NullFields will be sent to the 1187 // server as null. It is an error if a field in this list has a 1188 // non-empty value. This may be used to include null fields in Patch 1189 // requests. 1190 NullFields []string `json:"-"` 1191} 1192 1193func (s *RoutesConfigDump) MarshalJSON() ([]byte, error) { 1194 type NoMethod RoutesConfigDump 1195 raw := NoMethod(*s) 1196 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1197} 1198 1199// ScopedRoutesConfigDump: Envoy's scoped RDS implementation fills this 1200// message with all currently loaded route configuration scopes (defined 1201// via ScopedRouteConfigurationsSet protos). This message lists both the 1202// scopes defined inline with the higher order object (i.e., the 1203// HttpConnectionManager) and the dynamically obtained scopes via the 1204// SRDS API. 1205type ScopedRoutesConfigDump struct { 1206 // DynamicScopedRouteConfigs: The dynamically loaded scoped route 1207 // configs. 1208 DynamicScopedRouteConfigs []*DynamicScopedRouteConfigs `json:"dynamicScopedRouteConfigs,omitempty"` 1209 1210 // InlineScopedRouteConfigs: The statically loaded scoped route configs. 1211 InlineScopedRouteConfigs []*InlineScopedRouteConfigs `json:"inlineScopedRouteConfigs,omitempty"` 1212 1213 // ForceSendFields is a list of field names (e.g. 1214 // "DynamicScopedRouteConfigs") to unconditionally include in API 1215 // requests. By default, fields with empty or default values are omitted 1216 // from API requests. However, any non-pointer, non-interface field 1217 // appearing in ForceSendFields will be sent to the server regardless of 1218 // whether the field is empty or not. This may be used to include empty 1219 // fields in Patch requests. 1220 ForceSendFields []string `json:"-"` 1221 1222 // NullFields is a list of field names (e.g. 1223 // "DynamicScopedRouteConfigs") to include in API requests with the JSON 1224 // null value. By default, fields with empty values are omitted from API 1225 // requests. However, any field with an empty value appearing in 1226 // NullFields will be sent to the server as null. It is an error if a 1227 // field in this list has a non-empty value. This may be used to include 1228 // null fields in Patch requests. 1229 NullFields []string `json:"-"` 1230} 1231 1232func (s *ScopedRoutesConfigDump) MarshalJSON() ([]byte, error) { 1233 type NoMethod ScopedRoutesConfigDump 1234 raw := NoMethod(*s) 1235 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1236} 1237 1238// SemanticVersion: Envoy uses SemVer (https://semver.org/). Major/minor 1239// versions indicate expected behaviors and APIs, the patch version 1240// field is used only for security fixes and can be generally ignored. 1241type SemanticVersion struct { 1242 MajorNumber int64 `json:"majorNumber,omitempty"` 1243 1244 MinorNumber int64 `json:"minorNumber,omitempty"` 1245 1246 Patch int64 `json:"patch,omitempty"` 1247 1248 // ForceSendFields is a list of field names (e.g. "MajorNumber") to 1249 // unconditionally include in API requests. By default, fields with 1250 // empty or default values are omitted from API requests. However, any 1251 // non-pointer, non-interface field appearing in ForceSendFields will be 1252 // sent to the server regardless of whether the field is empty or not. 1253 // This may be used to include empty fields in Patch requests. 1254 ForceSendFields []string `json:"-"` 1255 1256 // NullFields is a list of field names (e.g. "MajorNumber") to include 1257 // in API requests with the JSON null value. By default, fields with 1258 // empty values are omitted from API requests. However, any field with 1259 // an empty value appearing in NullFields will be sent to the server as 1260 // null. It is an error if a field in this list has a non-empty value. 1261 // This may be used to include null fields in Patch requests. 1262 NullFields []string `json:"-"` 1263} 1264 1265func (s *SemanticVersion) MarshalJSON() ([]byte, error) { 1266 type NoMethod SemanticVersion 1267 raw := NoMethod(*s) 1268 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1269} 1270 1271// SocketAddress: [#next-free-field: 7] 1272type SocketAddress struct { 1273 // Address: The address for this socket. :ref:`Listeners ` will bind to 1274 // the address. An empty address is not allowed. Specify ``0.0.0.0`` or 1275 // ``::`` to bind to any address. [#comment:TODO(zuercher) reinstate 1276 // when implemented: It is possible to distinguish a Listener address 1277 // via the prefix/suffix matching in :ref:`FilterChainMatch `.] When 1278 // used within an upstream :ref:`BindConfig `, the address controls the 1279 // source address of outbound connections. For :ref:`clusters `, the 1280 // cluster type determines whether the address must be an IP (*STATIC* 1281 // or *EDS* clusters) or a hostname resolved by DNS (*STRICT_DNS* or 1282 // *LOGICAL_DNS* clusters). Address resolution can be customized via 1283 // :ref:`resolver_name `. 1284 Address string `json:"address,omitempty"` 1285 1286 // Ipv4Compat: When binding to an IPv6 address above, this enables `IPv4 1287 // compatibility `_. Binding to ``::`` will allow both IPv4 and IPv6 1288 // connections, with peer IPv4 addresses mapped into IPv6 space as 1289 // ``::FFFF:``. 1290 Ipv4Compat bool `json:"ipv4Compat,omitempty"` 1291 1292 // NamedPort: This is only valid if :ref:`resolver_name ` is specified 1293 // below and the named resolver is capable of named port resolution. 1294 NamedPort string `json:"namedPort,omitempty"` 1295 1296 PortValue int64 `json:"portValue,omitempty"` 1297 1298 // Possible values: 1299 // "TCP" 1300 // "UDP" 1301 Protocol string `json:"protocol,omitempty"` 1302 1303 // ResolverName: The name of the custom resolver. This must have been 1304 // registered with Envoy. If this is empty, a context dependent default 1305 // applies. If the address is a concrete IP address, no resolution will 1306 // occur. If address is a hostname this should be set for resolution 1307 // other than DNS. Specifying a custom resolver with *STRICT_DNS* or 1308 // *LOGICAL_DNS* will generate an error at runtime. 1309 ResolverName string `json:"resolverName,omitempty"` 1310 1311 // ForceSendFields is a list of field names (e.g. "Address") to 1312 // unconditionally include in API requests. By default, fields with 1313 // empty or default values are omitted from API requests. However, any 1314 // non-pointer, non-interface field appearing in ForceSendFields will be 1315 // sent to the server regardless of whether the field is empty or not. 1316 // This may be used to include empty fields in Patch requests. 1317 ForceSendFields []string `json:"-"` 1318 1319 // NullFields is a list of field names (e.g. "Address") to include in 1320 // API requests with the JSON null value. By default, fields with empty 1321 // values are omitted from API requests. However, any field with an 1322 // empty value appearing in NullFields will be sent to the server as 1323 // null. It is an error if a field in this list has a non-empty value. 1324 // This may be used to include null fields in Patch requests. 1325 NullFields []string `json:"-"` 1326} 1327 1328func (s *SocketAddress) MarshalJSON() ([]byte, error) { 1329 type NoMethod SocketAddress 1330 raw := NoMethod(*s) 1331 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1332} 1333 1334// StaticCluster: Describes a statically loaded cluster. 1335type StaticCluster struct { 1336 // Cluster: The cluster config. 1337 Cluster googleapi.RawMessage `json:"cluster,omitempty"` 1338 1339 // LastUpdated: The timestamp when the Cluster was last updated. 1340 LastUpdated string `json:"lastUpdated,omitempty"` 1341 1342 // ForceSendFields is a list of field names (e.g. "Cluster") to 1343 // unconditionally include in API requests. By default, fields with 1344 // empty or default values are omitted from API requests. However, any 1345 // non-pointer, non-interface field appearing in ForceSendFields will be 1346 // sent to the server regardless of whether the field is empty or not. 1347 // This may be used to include empty fields in Patch requests. 1348 ForceSendFields []string `json:"-"` 1349 1350 // NullFields is a list of field names (e.g. "Cluster") to include in 1351 // API requests with the JSON null value. By default, fields with empty 1352 // values are omitted from API requests. However, any field with an 1353 // empty value appearing in NullFields will be sent to the server as 1354 // null. It is an error if a field in this list has a non-empty value. 1355 // This may be used to include null fields in Patch requests. 1356 NullFields []string `json:"-"` 1357} 1358 1359func (s *StaticCluster) MarshalJSON() ([]byte, error) { 1360 type NoMethod StaticCluster 1361 raw := NoMethod(*s) 1362 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1363} 1364 1365// StaticListener: Describes a statically loaded listener. 1366type StaticListener struct { 1367 // LastUpdated: The timestamp when the Listener was last successfully 1368 // updated. 1369 LastUpdated string `json:"lastUpdated,omitempty"` 1370 1371 // Listener: The listener config. 1372 Listener googleapi.RawMessage `json:"listener,omitempty"` 1373 1374 // ForceSendFields is a list of field names (e.g. "LastUpdated") to 1375 // unconditionally include in API requests. By default, fields with 1376 // empty or default values are omitted from API requests. However, any 1377 // non-pointer, non-interface field appearing in ForceSendFields will be 1378 // sent to the server regardless of whether the field is empty or not. 1379 // This may be used to include empty fields in Patch requests. 1380 ForceSendFields []string `json:"-"` 1381 1382 // NullFields is a list of field names (e.g. "LastUpdated") to include 1383 // in API requests with the JSON null value. By default, fields with 1384 // empty values are omitted from API requests. However, any field with 1385 // an empty value appearing in NullFields will be sent to the server as 1386 // null. It is an error if a field in this list has a non-empty value. 1387 // This may be used to include null fields in Patch requests. 1388 NullFields []string `json:"-"` 1389} 1390 1391func (s *StaticListener) MarshalJSON() ([]byte, error) { 1392 type NoMethod StaticListener 1393 raw := NoMethod(*s) 1394 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1395} 1396 1397type StaticRouteConfig struct { 1398 // LastUpdated: The timestamp when the Route was last updated. 1399 LastUpdated string `json:"lastUpdated,omitempty"` 1400 1401 // RouteConfig: The route config. 1402 RouteConfig googleapi.RawMessage `json:"routeConfig,omitempty"` 1403 1404 // ForceSendFields is a list of field names (e.g. "LastUpdated") to 1405 // unconditionally include in API requests. By default, fields with 1406 // empty or default values are omitted from API requests. However, any 1407 // non-pointer, non-interface field appearing in ForceSendFields will be 1408 // sent to the server regardless of whether the field is empty or not. 1409 // This may be used to include empty fields in Patch requests. 1410 ForceSendFields []string `json:"-"` 1411 1412 // NullFields is a list of field names (e.g. "LastUpdated") to include 1413 // in API requests with the JSON null value. By default, fields with 1414 // empty values are omitted from API requests. However, any field with 1415 // an empty value appearing in NullFields will be sent to the server as 1416 // null. It is an error if a field in this list has a non-empty value. 1417 // This may be used to include null fields in Patch requests. 1418 NullFields []string `json:"-"` 1419} 1420 1421func (s *StaticRouteConfig) MarshalJSON() ([]byte, error) { 1422 type NoMethod StaticRouteConfig 1423 raw := NoMethod(*s) 1424 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1425} 1426 1427// StringMatcher: Specifies the way to match a string. 1428// [#next-free-field: 7] 1429type StringMatcher struct { 1430 // Exact: The input string must match exactly the string specified here. 1431 // Examples: * *abc* only matches the value *abc*. 1432 Exact string `json:"exact,omitempty"` 1433 1434 // IgnoreCase: If true, indicates the exact/prefix/suffix matching 1435 // should be case insensitive. This has no effect for the safe_regex 1436 // match. For example, the matcher *data* will match both input string 1437 // *Data* and *data* if set to true. 1438 IgnoreCase bool `json:"ignoreCase,omitempty"` 1439 1440 // Prefix: The input string must have the prefix specified here. Note: 1441 // empty prefix is not allowed, please use regex instead. Examples: * 1442 // *abc* matches the value *abc.xyz* 1443 Prefix string `json:"prefix,omitempty"` 1444 1445 // Regex: The input string must match the regular expression specified 1446 // here. The regex grammar is defined `here `_. Examples: * The regex 1447 // ``\d{3}`` matches the value *123* * The regex ``\d{3}`` does not 1448 // match the value *1234* * The regex ``\d{3}`` does not match the value 1449 // *123.456* .. attention:: This field has been deprecated in favor of 1450 // `safe_regex` as it is not safe for use with untrusted input in all 1451 // cases. 1452 Regex string `json:"regex,omitempty"` 1453 1454 // SafeRegex: The input string must match the regular expression 1455 // specified here. 1456 SafeRegex *RegexMatcher `json:"safeRegex,omitempty"` 1457 1458 // Suffix: The input string must have the suffix specified here. Note: 1459 // empty prefix is not allowed, please use regex instead. Examples: * 1460 // *abc* matches the value *xyz.abc* 1461 Suffix string `json:"suffix,omitempty"` 1462 1463 // ForceSendFields is a list of field names (e.g. "Exact") to 1464 // unconditionally include in API requests. By default, fields with 1465 // empty or default values are omitted from API requests. However, any 1466 // non-pointer, non-interface field appearing in ForceSendFields will be 1467 // sent to the server regardless of whether the field is empty or not. 1468 // This may be used to include empty fields in Patch requests. 1469 ForceSendFields []string `json:"-"` 1470 1471 // NullFields is a list of field names (e.g. "Exact") to include in API 1472 // requests with the JSON null value. By default, fields with empty 1473 // values are omitted from API requests. However, any field with an 1474 // empty value appearing in NullFields will be sent to the server as 1475 // null. It is an error if a field in this list has a non-empty value. 1476 // This may be used to include null fields in Patch requests. 1477 NullFields []string `json:"-"` 1478} 1479 1480func (s *StringMatcher) MarshalJSON() ([]byte, error) { 1481 type NoMethod StringMatcher 1482 raw := NoMethod(*s) 1483 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1484} 1485 1486// StructMatcher: StructMatcher provides a general interface to check if 1487// a given value is matched in google.protobuf.Struct. It uses `path` to 1488// retrieve the value from the struct and then check if it's matched to 1489// the specified value. For example, for the following Struct: .. 1490// code-block:: yaml fields: a: struct_value: fields: b: struct_value: 1491// fields: c: string_value: pro t: list_value: values: - string_value: m 1492// - string_value: n The following MetadataMatcher is matched as the 1493// path [a, b, c] will retrieve a string value "pro" from the Metadata 1494// which is matched to the specified prefix match. .. code-block:: yaml 1495// path: - key: a - key: b - key: c value: string_match: prefix: pr The 1496// following StructMatcher is matched as the code will match one of the 1497// string values in the list at the path [a, t]. .. code-block:: yaml 1498// path: - key: a - key: t value: list_match: one_of: string_match: 1499// exact: m An example use of StructMatcher is to match metadata in 1500// envoy.v*.core.Node. 1501type StructMatcher struct { 1502 // Path: The path to retrieve the Value from the Struct. 1503 Path []*PathSegment `json:"path,omitempty"` 1504 1505 // Value: The StructMatcher is matched if the value retrieved by path is 1506 // matched to this value. 1507 Value *ValueMatcher `json:"value,omitempty"` 1508 1509 // ForceSendFields is a list of field names (e.g. "Path") to 1510 // unconditionally include in API requests. By default, fields with 1511 // empty or default values are omitted from API requests. However, any 1512 // non-pointer, non-interface field appearing in ForceSendFields will be 1513 // sent to the server regardless of whether the field is empty or not. 1514 // This may be used to include empty fields in Patch requests. 1515 ForceSendFields []string `json:"-"` 1516 1517 // NullFields is a list of field names (e.g. "Path") to include in API 1518 // requests with the JSON null value. By default, fields with empty 1519 // values are omitted from API requests. However, any field with an 1520 // empty value appearing in NullFields will be sent to the server as 1521 // null. It is an error if a field in this list has a non-empty value. 1522 // This may be used to include null fields in Patch requests. 1523 NullFields []string `json:"-"` 1524} 1525 1526func (s *StructMatcher) MarshalJSON() ([]byte, error) { 1527 type NoMethod StructMatcher 1528 raw := NoMethod(*s) 1529 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1530} 1531 1532type UpdateFailureState struct { 1533 // Details: Details about the last failed update attempt. 1534 Details string `json:"details,omitempty"` 1535 1536 // FailedConfiguration: What the component configuration would have been 1537 // if the update had succeeded. 1538 FailedConfiguration googleapi.RawMessage `json:"failedConfiguration,omitempty"` 1539 1540 // LastUpdateAttempt: Time of the latest failed update attempt. 1541 LastUpdateAttempt string `json:"lastUpdateAttempt,omitempty"` 1542 1543 // ForceSendFields is a list of field names (e.g. "Details") to 1544 // unconditionally include in API requests. By default, fields with 1545 // empty or default values are omitted from API requests. However, any 1546 // non-pointer, non-interface field appearing in ForceSendFields will be 1547 // sent to the server regardless of whether the field is empty or not. 1548 // This may be used to include empty fields in Patch requests. 1549 ForceSendFields []string `json:"-"` 1550 1551 // NullFields is a list of field names (e.g. "Details") to include in 1552 // API requests with the JSON null value. By default, fields with empty 1553 // values are omitted from API requests. However, any field with an 1554 // empty value appearing in NullFields will be sent to the server as 1555 // null. It is an error if a field in this list has a non-empty value. 1556 // This may be used to include null fields in Patch requests. 1557 NullFields []string `json:"-"` 1558} 1559 1560func (s *UpdateFailureState) MarshalJSON() ([]byte, error) { 1561 type NoMethod UpdateFailureState 1562 raw := NoMethod(*s) 1563 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1564} 1565 1566// ValueMatcher: Specifies the way to match a ProtobufWkt::Value. 1567// Primitive values and ListValue are supported. StructValue is not 1568// supported and is always not matched. [#next-free-field: 7] 1569type ValueMatcher struct { 1570 // BoolMatch: If specified, a match occurs if and only if the target 1571 // value is a bool value and is equal to this field. 1572 BoolMatch bool `json:"boolMatch,omitempty"` 1573 1574 // DoubleMatch: If specified, a match occurs if and only if the target 1575 // value is a double value and is matched to this field. 1576 DoubleMatch *DoubleMatcher `json:"doubleMatch,omitempty"` 1577 1578 // ListMatch: If specified, a match occurs if and only if the target 1579 // value is a list value and is matched to this field. 1580 ListMatch *ListMatcher `json:"listMatch,omitempty"` 1581 1582 // NullMatch: If specified, a match occurs if and only if the target 1583 // value is a NullValue. 1584 NullMatch *NullMatch `json:"nullMatch,omitempty"` 1585 1586 // PresentMatch: If specified, value match will be performed based on 1587 // whether the path is referring to a valid primitive value in the 1588 // metadata. If the path is referring to a non-primitive value, the 1589 // result is always not matched. 1590 PresentMatch bool `json:"presentMatch,omitempty"` 1591 1592 // StringMatch: If specified, a match occurs if and only if the target 1593 // value is a string value and is matched to this field. 1594 StringMatch *StringMatcher `json:"stringMatch,omitempty"` 1595 1596 // ForceSendFields is a list of field names (e.g. "BoolMatch") to 1597 // unconditionally include in API requests. By default, fields with 1598 // empty or default values are omitted from API requests. However, any 1599 // non-pointer, non-interface field appearing in ForceSendFields will be 1600 // sent to the server regardless of whether the field is empty or not. 1601 // This may be used to include empty fields in Patch requests. 1602 ForceSendFields []string `json:"-"` 1603 1604 // NullFields is a list of field names (e.g. "BoolMatch") to include in 1605 // API requests with the JSON null value. By default, fields with empty 1606 // values are omitted from API requests. However, any field with an 1607 // empty value appearing in NullFields will be sent to the server as 1608 // null. It is an error if a field in this list has a non-empty value. 1609 // This may be used to include null fields in Patch requests. 1610 NullFields []string `json:"-"` 1611} 1612 1613func (s *ValueMatcher) MarshalJSON() ([]byte, error) { 1614 type NoMethod ValueMatcher 1615 raw := NoMethod(*s) 1616 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1617} 1618 1619// method id "trafficdirector.discovery.client_status": 1620 1621type DiscoveryClientStatusCall struct { 1622 s *Service 1623 clientstatusrequest *ClientStatusRequest 1624 urlParams_ gensupport.URLParams 1625 ctx_ context.Context 1626 header_ http.Header 1627} 1628 1629// ClientStatus: 1630func (r *DiscoveryService) ClientStatus(clientstatusrequest *ClientStatusRequest) *DiscoveryClientStatusCall { 1631 c := &DiscoveryClientStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)} 1632 c.clientstatusrequest = clientstatusrequest 1633 return c 1634} 1635 1636// Fields allows partial responses to be retrieved. See 1637// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 1638// for more information. 1639func (c *DiscoveryClientStatusCall) Fields(s ...googleapi.Field) *DiscoveryClientStatusCall { 1640 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 1641 return c 1642} 1643 1644// Context sets the context to be used in this call's Do method. Any 1645// pending HTTP request will be aborted if the provided context is 1646// canceled. 1647func (c *DiscoveryClientStatusCall) Context(ctx context.Context) *DiscoveryClientStatusCall { 1648 c.ctx_ = ctx 1649 return c 1650} 1651 1652// Header returns an http.Header that can be modified by the caller to 1653// add HTTP headers to the request. 1654func (c *DiscoveryClientStatusCall) Header() http.Header { 1655 if c.header_ == nil { 1656 c.header_ = make(http.Header) 1657 } 1658 return c.header_ 1659} 1660 1661func (c *DiscoveryClientStatusCall) doRequest(alt string) (*http.Response, error) { 1662 reqHeaders := make(http.Header) 1663 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210915") 1664 for k, v := range c.header_ { 1665 reqHeaders[k] = v 1666 } 1667 reqHeaders.Set("User-Agent", c.s.userAgent()) 1668 var body io.Reader = nil 1669 body, err := googleapi.WithoutDataWrapper.JSONReader(c.clientstatusrequest) 1670 if err != nil { 1671 return nil, err 1672 } 1673 reqHeaders.Set("Content-Type", "application/json") 1674 c.urlParams_.Set("alt", alt) 1675 c.urlParams_.Set("prettyPrint", "false") 1676 urls := googleapi.ResolveRelative(c.s.BasePath, "v2/discovery:client_status") 1677 urls += "?" + c.urlParams_.Encode() 1678 req, err := http.NewRequest("POST", urls, body) 1679 if err != nil { 1680 return nil, err 1681 } 1682 req.Header = reqHeaders 1683 return gensupport.SendRequest(c.ctx_, c.s.client, req) 1684} 1685 1686// Do executes the "trafficdirector.discovery.client_status" call. 1687// Exactly one of *ClientStatusResponse or error will be non-nil. Any 1688// non-2xx status code is an error. Response headers are in either 1689// *ClientStatusResponse.ServerResponse.Header or (if a response was 1690// returned at all) in error.(*googleapi.Error).Header. Use 1691// googleapi.IsNotModified to check whether the returned error was 1692// because http.StatusNotModified was returned. 1693func (c *DiscoveryClientStatusCall) Do(opts ...googleapi.CallOption) (*ClientStatusResponse, error) { 1694 gensupport.SetOptions(c.urlParams_, opts...) 1695 res, err := c.doRequest("json") 1696 if res != nil && res.StatusCode == http.StatusNotModified { 1697 if res.Body != nil { 1698 res.Body.Close() 1699 } 1700 return nil, &googleapi.Error{ 1701 Code: res.StatusCode, 1702 Header: res.Header, 1703 } 1704 } 1705 if err != nil { 1706 return nil, err 1707 } 1708 defer googleapi.CloseBody(res) 1709 if err := googleapi.CheckResponse(res); err != nil { 1710 return nil, err 1711 } 1712 ret := &ClientStatusResponse{ 1713 ServerResponse: googleapi.ServerResponse{ 1714 Header: res.Header, 1715 HTTPStatusCode: res.StatusCode, 1716 }, 1717 } 1718 target := &ret 1719 if err := gensupport.DecodeResponse(target, res); err != nil { 1720 return nil, err 1721 } 1722 return ret, nil 1723 // { 1724 // "description": "", 1725 // "flatPath": "v2/discovery:client_status", 1726 // "httpMethod": "POST", 1727 // "id": "trafficdirector.discovery.client_status", 1728 // "parameterOrder": [], 1729 // "parameters": {}, 1730 // "path": "v2/discovery:client_status", 1731 // "request": { 1732 // "$ref": "ClientStatusRequest" 1733 // }, 1734 // "response": { 1735 // "$ref": "ClientStatusResponse" 1736 // }, 1737 // "scopes": [ 1738 // "https://www.googleapis.com/auth/cloud-platform" 1739 // ] 1740 // } 1741 1742} 1743