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