// Copyright 2024 Google LLC. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated file. DO NOT EDIT. // Package trafficdirector provides access to the Traffic Director API. // // For product documentation, see: https://cloud.google.com/traffic-director // // # Library status // // These client libraries are officially supported by Google. However, this // library is considered complete and is in maintenance mode. This means // that we will address critical bugs and security issues but will not add // any new features. // // When possible, we recommend using our newer // [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go) // that are still actively being worked and iterated on. // // # Creating a client // // Usage example: // // import "google.golang.org/api/trafficdirector/v2" // ... // ctx := context.Background() // trafficdirectorService, err := trafficdirector.NewService(ctx) // // In this example, Google Application Default Credentials are used for // authentication. For information on how to create and obtain Application // Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. // // # Other authentication options // // To use an API key for authentication (note: some APIs do not support API // keys), use [google.golang.org/api/option.WithAPIKey]: // // trafficdirectorService, err := trafficdirector.NewService(ctx, option.WithAPIKey("AIza...")) // // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth // flow, use [google.golang.org/api/option.WithTokenSource]: // // config := &oauth2.Config{...} // // ... // token, err := config.Exchange(ctx, ...) // trafficdirectorService, err := trafficdirector.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) // // See [google.golang.org/api/option.ClientOption] for details on options. package trafficdirector // import "google.golang.org/api/trafficdirector/v2" import ( "bytes" "context" "encoding/json" "errors" "fmt" "io" "net/http" "net/url" "strconv" "strings" googleapi "google.golang.org/api/googleapi" internal "google.golang.org/api/internal" gensupport "google.golang.org/api/internal/gensupport" option "google.golang.org/api/option" internaloption "google.golang.org/api/option/internaloption" htransport "google.golang.org/api/transport/http" ) // Always reference these packages, just in case the auto-generated code // below doesn't. var _ = bytes.NewBuffer var _ = strconv.Itoa var _ = fmt.Sprintf var _ = json.NewDecoder var _ = io.Copy var _ = url.Parse var _ = gensupport.MarshalJSON var _ = googleapi.Version var _ = errors.New var _ = strings.Replace var _ = context.Canceled var _ = internaloption.WithDefaultEndpoint var _ = internal.Version const apiId = "trafficdirector:v2" const apiName = "trafficdirector" const apiVersion = "v2" const basePath = "https://trafficdirector.googleapis.com/" const basePathTemplate = "https://trafficdirector.UNIVERSE_DOMAIN/" const mtlsBasePath = "https://trafficdirector.mtls.googleapis.com/" // OAuth2 scopes used by this API. const ( // See, edit, configure, and delete your Google Cloud data and see the email // address for your Google Account. CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform" ) // NewService creates a new Service. func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { scopesOption := internaloption.WithDefaultScopes( "https://www.googleapis.com/auth/cloud-platform", ) // NOTE: prepend, so we don't override user-specified scopes. opts = append([]option.ClientOption{scopesOption}, opts...) opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate)) opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) opts = append(opts, internaloption.EnableNewAuthLibrary()) client, endpoint, err := htransport.NewClient(ctx, opts...) if err != nil { return nil, err } s, err := New(client) if err != nil { return nil, err } if endpoint != "" { s.BasePath = endpoint } return s, nil } // New creates a new Service. It uses the provided http.Client for requests. // // Deprecated: please use NewService instead. // To provide a custom HTTP client, use option.WithHTTPClient. // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. func New(client *http.Client) (*Service, error) { if client == nil { return nil, errors.New("client is nil") } s := &Service{client: client, BasePath: basePath} s.Discovery = NewDiscoveryService(s) return s, nil } type Service struct { client *http.Client BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment Discovery *DiscoveryService } func (s *Service) userAgent() string { if s.UserAgent == "" { return googleapi.UserAgent } return googleapi.UserAgent + " " + s.UserAgent } func NewDiscoveryService(s *Service) *DiscoveryService { rs := &DiscoveryService{s: s} return rs } type DiscoveryService struct { s *Service } // Address: Addresses specify either a logical or physical address and port, // which are used to tell Envoy where to bind/listen, connect to upstream and // find management servers. type Address struct { Pipe *Pipe `json:"pipe,omitempty"` SocketAddress *SocketAddress `json:"socketAddress,omitempty"` // ForceSendFields is a list of field names (e.g. "Pipe") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Pipe") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Address) MarshalJSON() ([]byte, error) { type NoMethod Address return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // BuildVersion: BuildVersion combines SemVer version of extension with // free-form build information (i.e. 'alpha', 'private-build') as a set of // strings. type BuildVersion struct { // Metadata: Free-form build information. Envoy defines several well known keys // in the source/common/version/version.h file Metadata googleapi.RawMessage `json:"metadata,omitempty"` // Version: SemVer version of extension. Version *SemanticVersion `json:"version,omitempty"` // ForceSendFields is a list of field names (e.g. "Metadata") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Metadata") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *BuildVersion) MarshalJSON() ([]byte, error) { type NoMethod BuildVersion return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ClientConfig: All xds configs for a particular client. type ClientConfig struct { // Node: Node for a particular client. Node *Node `json:"node,omitempty"` XdsConfig []*PerXdsConfig `json:"xdsConfig,omitempty"` // ForceSendFields is a list of field names (e.g. "Node") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Node") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ClientConfig) MarshalJSON() ([]byte, error) { type NoMethod ClientConfig return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ClientStatusRequest: Request for client status of clients identified by a // list of NodeMatchers. type ClientStatusRequest struct { // NodeMatchers: Management server can use these match criteria to identify // clients. The match follows OR semantics. NodeMatchers []*NodeMatcher `json:"nodeMatchers,omitempty"` // ForceSendFields is a list of field names (e.g. "NodeMatchers") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "NodeMatchers") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ClientStatusRequest) MarshalJSON() ([]byte, error) { type NoMethod ClientStatusRequest return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type ClientStatusResponse struct { // Config: Client configs for the clients specified in the ClientStatusRequest. Config []*ClientConfig `json:"config,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Config") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Config") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ClientStatusResponse) MarshalJSON() ([]byte, error) { type NoMethod ClientStatusResponse return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ClustersConfigDump: Envoy's cluster manager fills this message with all // currently known clusters. Cluster configuration information can be used to // recreate an Envoy configuration by populating all clusters as static // clusters or by returning them in a CDS response. type ClustersConfigDump struct { // DynamicActiveClusters: The dynamically loaded active clusters. These are // clusters that are available to service data plane traffic. DynamicActiveClusters []*DynamicCluster `json:"dynamicActiveClusters,omitempty"` // DynamicWarmingClusters: The dynamically loaded warming clusters. These are // clusters that are currently undergoing warming in preparation to service // data plane traffic. Note that if attempting to recreate an Envoy // configuration from a configuration dump, the warming clusters should // generally be discarded. DynamicWarmingClusters []*DynamicCluster `json:"dynamicWarmingClusters,omitempty"` // StaticClusters: The statically loaded cluster configs. StaticClusters []*StaticCluster `json:"staticClusters,omitempty"` // VersionInfo: This is the :ref:`version_info ` in the last processed CDS // discovery response. If there are only static bootstrap clusters, this field // will be "". VersionInfo string `json:"versionInfo,omitempty"` // ForceSendFields is a list of field names (e.g. "DynamicActiveClusters") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DynamicActiveClusters") to // include in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ClustersConfigDump) MarshalJSON() ([]byte, error) { type NoMethod ClustersConfigDump return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // DoubleMatcher: Specifies the way to match a double value. type DoubleMatcher struct { // Exact: If specified, the input double value must be equal to the value // specified here. Exact float64 `json:"exact,omitempty"` // Range: If specified, the input double value must be in the range specified // here. Note: The range is using half-open interval semantics [start, end). Range *DoubleRange `json:"range,omitempty"` // ForceSendFields is a list of field names (e.g. "Exact") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Exact") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *DoubleMatcher) MarshalJSON() ([]byte, error) { type NoMethod DoubleMatcher return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } func (s *DoubleMatcher) UnmarshalJSON(data []byte) error { type NoMethod DoubleMatcher var s1 struct { Exact gensupport.JSONFloat64 `json:"exact"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.Exact = float64(s1.Exact) return nil } // DoubleRange: Specifies the double start and end of the range using half-open // interval semantics [start, end). type DoubleRange struct { // End: end of the range (exclusive) End float64 `json:"end,omitempty"` // Start: start of the range (inclusive) Start float64 `json:"start,omitempty"` // ForceSendFields is a list of field names (e.g. "End") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "End") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *DoubleRange) MarshalJSON() ([]byte, error) { type NoMethod DoubleRange return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } func (s *DoubleRange) UnmarshalJSON(data []byte) error { type NoMethod DoubleRange var s1 struct { End gensupport.JSONFloat64 `json:"end"` Start gensupport.JSONFloat64 `json:"start"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.End = float64(s1.End) s.Start = float64(s1.Start) return nil } // DynamicCluster: Describes a dynamically loaded cluster via the CDS API. type DynamicCluster struct { // Cluster: The cluster config. Cluster googleapi.RawMessage `json:"cluster,omitempty"` // LastUpdated: The timestamp when the Cluster was last updated. LastUpdated string `json:"lastUpdated,omitempty"` // VersionInfo: This is the per-resource version information. This version is // currently taken from the :ref:`version_info ` field at the time that the // cluster was loaded. In the future, discrete per-cluster versions may be // supported by the API. VersionInfo string `json:"versionInfo,omitempty"` // ForceSendFields is a list of field names (e.g. "Cluster") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Cluster") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *DynamicCluster) MarshalJSON() ([]byte, error) { type NoMethod DynamicCluster return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // DynamicListener: Describes a dynamically loaded listener via the LDS API. // [#next-free-field: 6] type DynamicListener struct { // ActiveState: The listener state for any active listener by this name. These // are listeners that are available to service data plane traffic. ActiveState *DynamicListenerState `json:"activeState,omitempty"` // DrainingState: The listener state for any draining listener by this name. // These are listeners that are currently undergoing draining in preparation to // stop servicing data plane traffic. Note that if attempting to recreate an // Envoy configuration from a configuration dump, the draining listeners should // generally be discarded. DrainingState *DynamicListenerState `json:"drainingState,omitempty"` // ErrorState: Set if the last update failed, cleared after the next successful // update. ErrorState *UpdateFailureState `json:"errorState,omitempty"` // Name: The name or unique id of this listener, pulled from the // DynamicListenerState config. Name string `json:"name,omitempty"` // WarmingState: The listener state for any warming listener by this name. // These are listeners that are currently undergoing warming in preparation to // service data plane traffic. Note that if attempting to recreate an Envoy // configuration from a configuration dump, the warming listeners should // generally be discarded. WarmingState *DynamicListenerState `json:"warmingState,omitempty"` // ForceSendFields is a list of field names (e.g. "ActiveState") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ActiveState") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *DynamicListener) MarshalJSON() ([]byte, error) { type NoMethod DynamicListener return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type DynamicListenerState struct { // LastUpdated: The timestamp when the Listener was last successfully updated. LastUpdated string `json:"lastUpdated,omitempty"` // Listener: The listener config. Listener googleapi.RawMessage `json:"listener,omitempty"` // VersionInfo: This is the per-resource version information. This version is // currently taken from the :ref:`version_info ` field at the time that the // listener was loaded. In the future, discrete per-listener versions may be // supported by the API. VersionInfo string `json:"versionInfo,omitempty"` // ForceSendFields is a list of field names (e.g. "LastUpdated") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "LastUpdated") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *DynamicListenerState) MarshalJSON() ([]byte, error) { type NoMethod DynamicListenerState return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type DynamicRouteConfig struct { // LastUpdated: The timestamp when the Route was last updated. LastUpdated string `json:"lastUpdated,omitempty"` // RouteConfig: The route config. RouteConfig googleapi.RawMessage `json:"routeConfig,omitempty"` // VersionInfo: This is the per-resource version information. This version is // currently taken from the :ref:`version_info ` field at the time that the // route configuration was loaded. VersionInfo string `json:"versionInfo,omitempty"` // ForceSendFields is a list of field names (e.g. "LastUpdated") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "LastUpdated") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *DynamicRouteConfig) MarshalJSON() ([]byte, error) { type NoMethod DynamicRouteConfig return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type DynamicScopedRouteConfigs struct { // LastUpdated: The timestamp when the scoped route config set was last // updated. LastUpdated string `json:"lastUpdated,omitempty"` // Name: The name assigned to the scoped route configurations. Name string `json:"name,omitempty"` // ScopedRouteConfigs: The scoped route configurations. ScopedRouteConfigs []googleapi.RawMessage `json:"scopedRouteConfigs,omitempty"` // VersionInfo: This is the per-resource version information. This version is // currently taken from the :ref:`version_info ` field at the time that the // scoped routes configuration was loaded. VersionInfo string `json:"versionInfo,omitempty"` // ForceSendFields is a list of field names (e.g. "LastUpdated") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "LastUpdated") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *DynamicScopedRouteConfigs) MarshalJSON() ([]byte, error) { type NoMethod DynamicScopedRouteConfigs return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Extension: Version and identification for an Envoy extension. // [#next-free-field: 6] type Extension struct { // Category: Category of the extension. Extension category names use reverse // DNS notation. For instance "envoy.filters.listener" for Envoy's built-in // listener filters or "com.acme.filters.http" for HTTP filters from acme.com // vendor. [#comment: Category string `json:"category,omitempty"` // Disabled: Indicates that the extension is present but was disabled via // dynamic configuration. Disabled bool `json:"disabled,omitempty"` // Name: This is the name of the Envoy filter as specified in the Envoy // configuration, e.g. envoy.filters.http.router, com.acme.widget. Name string `json:"name,omitempty"` // TypeDescriptor: [#not-implemented-hide:] Type descriptor of extension // configuration proto. [#comment: TypeDescriptor string `json:"typeDescriptor,omitempty"` // Version: The version is a property of the extension and maintained // independently of other extensions and the Envoy API. This field is not set // when extension did not provide version information. Version *BuildVersion `json:"version,omitempty"` // ForceSendFields is a list of field names (e.g. "Category") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Category") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Extension) MarshalJSON() ([]byte, error) { type NoMethod Extension return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // GoogleRE2: Google's `RE2 `_ regex engine. The regex string must adhere to // the documented `syntax `_. The engine is designed to complete execution in // linear time as well as limit the amount of memory used. Envoy supports // program size checking via runtime. The runtime keys // “re2.max_program_size.error_level“ and “re2.max_program_size.warn_level“ // can be set to integers as the maximum program size or complexity that a // compiled regex can have before an exception is thrown or a warning is // logged, respectively. “re2.max_program_size.error_level“ defaults to 100, // and “re2.max_program_size.warn_level“ has no default if unset (will not // check/log a warning). Envoy emits two stats for tracking the program size of // regexes: the histogram `re2.program_size`, which records the program size, // and the counter `re2.exceeded_warn_level`, which is incremented each time // the program size exceeds the warn level threshold. type GoogleRE2 struct { // MaxProgramSize: This field controls the RE2 "program size" which is a rough // estimate of how complex a compiled regex is to evaluate. A regex that has a // program size greater than the configured value will fail to compile. In this // case, the configured max program size can be increased or the regex can be // simplified. If not specified, the default is 100. This field is deprecated; // regexp validation should be performed on the management server instead of // being done by each individual client. MaxProgramSize int64 `json:"maxProgramSize,omitempty"` // ForceSendFields is a list of field names (e.g. "MaxProgramSize") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "MaxProgramSize") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *GoogleRE2) MarshalJSON() ([]byte, error) { type NoMethod GoogleRE2 return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type InlineScopedRouteConfigs struct { // LastUpdated: The timestamp when the scoped route config set was last // updated. LastUpdated string `json:"lastUpdated,omitempty"` // Name: The name assigned to the scoped route configurations. Name string `json:"name,omitempty"` // ScopedRouteConfigs: The scoped route configurations. ScopedRouteConfigs []googleapi.RawMessage `json:"scopedRouteConfigs,omitempty"` // ForceSendFields is a list of field names (e.g. "LastUpdated") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "LastUpdated") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *InlineScopedRouteConfigs) MarshalJSON() ([]byte, error) { type NoMethod InlineScopedRouteConfigs return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ListMatcher: Specifies the way to match a list value. type ListMatcher struct { // OneOf: If specified, at least one of the values in the list must match the // value specified. OneOf *ValueMatcher `json:"oneOf,omitempty"` // ForceSendFields is a list of field names (e.g. "OneOf") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "OneOf") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ListMatcher) MarshalJSON() ([]byte, error) { type NoMethod ListMatcher return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ListenersConfigDump: Envoy's listener manager fills this message with all // currently known listeners. Listener configuration information can be used to // recreate an Envoy configuration by populating all listeners as static // listeners or by returning them in a LDS response. type ListenersConfigDump struct { // DynamicListeners: State for any warming, active, or draining listeners. DynamicListeners []*DynamicListener `json:"dynamicListeners,omitempty"` // StaticListeners: The statically loaded listener configs. StaticListeners []*StaticListener `json:"staticListeners,omitempty"` // VersionInfo: This is the :ref:`version_info ` in the last processed LDS // discovery response. If there are only static bootstrap listeners, this field // will be "". VersionInfo string `json:"versionInfo,omitempty"` // ForceSendFields is a list of field names (e.g. "DynamicListeners") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DynamicListeners") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ListenersConfigDump) MarshalJSON() ([]byte, error) { type NoMethod ListenersConfigDump return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Locality: Identifies location of where either Envoy runs or where upstream // hosts run. type Locality struct { // Region: Region this :ref:`zone ` belongs to. Region string `json:"region,omitempty"` // SubZone: When used for locality of upstream hosts, this field further splits // zone into smaller chunks of sub-zones so they can be load balanced // independently. SubZone string `json:"subZone,omitempty"` // Zone: Defines the local service zone where Envoy is running. Though // optional, it should be set if discovery service routing is used and the // discovery service exposes :ref:`zone data `, either in this message or via // :option:`--service-zone`. The meaning of zone is context dependent, e.g. // `Availability Zone (AZ) `_ on AWS, `Zone `_ on GCP, etc. Zone string `json:"zone,omitempty"` // ForceSendFields is a list of field names (e.g. "Region") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Region") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Locality) MarshalJSON() ([]byte, error) { type NoMethod Locality return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Node: Identifies a specific Envoy instance. The node identifier is presented // to the management server, which may use this identifier to distinguish per // Envoy configuration for serving. [#next-free-field: 12] type Node struct { // BuildVersion: This is motivated by informing a management server during // canary which version of Envoy is being tested in a heterogeneous fleet. This // will be set by Envoy in management server RPCs. This field is deprecated in // favor of the user_agent_name and user_agent_version values. BuildVersion string `json:"buildVersion,omitempty"` // ClientFeatures: Client feature support list. These are well known features // described in the Envoy API repository for a given major version of an API. // Client features use reverse DNS naming scheme, for example // `com.acme.feature`. See :ref:`the list of features ` that xDS client may // support. ClientFeatures []string `json:"clientFeatures,omitempty"` // Cluster: Defines the local service cluster name where Envoy is running. // Though optional, it should be set if any of the following features are used: // :ref:`statsd `, :ref:`health check cluster verification `, :ref:`runtime // override directory `, :ref:`user agent addition `, :ref:`HTTP global rate // limiting `, :ref:`CDS `, and :ref:`HTTP tracing `, either in this message or // via :option:`--service-cluster`. Cluster string `json:"cluster,omitempty"` // Extensions: List of extensions and their versions supported by the node. Extensions []*Extension `json:"extensions,omitempty"` // Id: An opaque node identifier for the Envoy node. This also provides the // local service node name. It should be set if any of the following features // are used: :ref:`statsd `, :ref:`CDS `, and :ref:`HTTP tracing `, either in // this message or via :option:`--service-node`. Id string `json:"id,omitempty"` // ListeningAddresses: Known listening ports on the node as a generic hint to // the management server for filtering :ref:`listeners ` to be returned. For // example, if there is a listener bound to port 80, the list can optionally // contain the SocketAddress `(0.0.0.0,80)`. The field is optional and just a // hint. ListeningAddresses []*Address `json:"listeningAddresses,omitempty"` // Locality: Locality specifying where the Envoy instance is running. Locality *Locality `json:"locality,omitempty"` // Metadata: Opaque metadata extending the node identifier. Envoy will pass // this directly to the management server. Metadata googleapi.RawMessage `json:"metadata,omitempty"` // UserAgentBuildVersion: Structured version of the entity requesting config. UserAgentBuildVersion *BuildVersion `json:"userAgentBuildVersion,omitempty"` // UserAgentName: Free-form string that identifies the entity requesting // config. E.g. "envoy" or "grpc" UserAgentName string `json:"userAgentName,omitempty"` // UserAgentVersion: Free-form string that identifies the version of the entity // requesting config. E.g. "1.12.2" or "abcd1234", or "SpecialEnvoyBuild" UserAgentVersion string `json:"userAgentVersion,omitempty"` // ForceSendFields is a list of field names (e.g. "BuildVersion") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "BuildVersion") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Node) MarshalJSON() ([]byte, error) { type NoMethod Node return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // NodeMatcher: Specifies the way to match a Node. The match follows AND // semantics. type NodeMatcher struct { // NodeId: Specifies match criteria on the node id. NodeId *StringMatcher `json:"nodeId,omitempty"` // NodeMetadatas: Specifies match criteria on the node metadata. NodeMetadatas []*StructMatcher `json:"nodeMetadatas,omitempty"` // ForceSendFields is a list of field names (e.g. "NodeId") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "NodeId") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *NodeMatcher) MarshalJSON() ([]byte, error) { type NoMethod NodeMatcher return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // NullMatch: NullMatch is an empty message to specify a null value. type NullMatch struct { } // PathSegment: Specifies the segment in a path to retrieve value from Struct. type PathSegment struct { // Key: If specified, use the key to retrieve the value in a Struct. Key string `json:"key,omitempty"` // ForceSendFields is a list of field names (e.g. "Key") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Key") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *PathSegment) MarshalJSON() ([]byte, error) { type NoMethod PathSegment return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // PerXdsConfig: Detailed config (per xDS) with status. [#next-free-field: 6] type PerXdsConfig struct { ClusterConfig *ClustersConfigDump `json:"clusterConfig,omitempty"` ListenerConfig *ListenersConfigDump `json:"listenerConfig,omitempty"` RouteConfig *RoutesConfigDump `json:"routeConfig,omitempty"` ScopedRouteConfig *ScopedRoutesConfigDump `json:"scopedRouteConfig,omitempty"` // Possible values: // "UNKNOWN" - Status info is not available/unknown. // "SYNCED" - Management server has sent the config to client and received // ACK. // "NOT_SENT" - Config is not sent. // "STALE" - Management server has sent the config to client but hasn’t // received ACK/NACK. // "ERROR" - Management server has sent the config to client but received // NACK. Status string `json:"status,omitempty"` // ForceSendFields is a list of field names (e.g. "ClusterConfig") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ClusterConfig") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *PerXdsConfig) MarshalJSON() ([]byte, error) { type NoMethod PerXdsConfig return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type Pipe struct { // Mode: The mode for the Pipe. Not applicable for abstract sockets. Mode int64 `json:"mode,omitempty"` // Path: Unix Domain Socket path. On Linux, paths starting with '@' will use // the abstract namespace. The starting '@' is replaced by a null byte by // Envoy. Paths starting with '@' will result in an error in environments other // than Linux. Path string `json:"path,omitempty"` // ForceSendFields is a list of field names (e.g. "Mode") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Mode") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Pipe) MarshalJSON() ([]byte, error) { type NoMethod Pipe return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // RegexMatcher: A regex matcher designed for safety when used with untrusted // input. type RegexMatcher struct { // GoogleRe2: Google's RE2 regex engine. GoogleRe2 *GoogleRE2 `json:"googleRe2,omitempty"` // Regex: The regex match string. The string must be supported by the // configured engine. Regex string `json:"regex,omitempty"` // ForceSendFields is a list of field names (e.g. "GoogleRe2") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "GoogleRe2") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *RegexMatcher) MarshalJSON() ([]byte, error) { type NoMethod RegexMatcher return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // RoutesConfigDump: Envoy's RDS implementation fills this message with all // currently loaded routes, as described by their RouteConfiguration objects. // Static routes that are either defined in the bootstrap configuration or // defined inline while configuring listeners are separated from those // configured dynamically via RDS. Route configuration information can be used // to recreate an Envoy configuration by populating all routes as static routes // or by returning them in RDS responses. type RoutesConfigDump struct { // DynamicRouteConfigs: The dynamically loaded route configs. DynamicRouteConfigs []*DynamicRouteConfig `json:"dynamicRouteConfigs,omitempty"` // StaticRouteConfigs: The statically loaded route configs. StaticRouteConfigs []*StaticRouteConfig `json:"staticRouteConfigs,omitempty"` // ForceSendFields is a list of field names (e.g. "DynamicRouteConfigs") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DynamicRouteConfigs") to include // in API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *RoutesConfigDump) MarshalJSON() ([]byte, error) { type NoMethod RoutesConfigDump return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ScopedRoutesConfigDump: Envoy's scoped RDS implementation fills this message // with all currently loaded route configuration scopes (defined via // ScopedRouteConfigurationsSet protos). This message lists both the scopes // defined inline with the higher order object (i.e., the // HttpConnectionManager) and the dynamically obtained scopes via the SRDS API. type ScopedRoutesConfigDump struct { // DynamicScopedRouteConfigs: The dynamically loaded scoped route configs. DynamicScopedRouteConfigs []*DynamicScopedRouteConfigs `json:"dynamicScopedRouteConfigs,omitempty"` // InlineScopedRouteConfigs: The statically loaded scoped route configs. InlineScopedRouteConfigs []*InlineScopedRouteConfigs `json:"inlineScopedRouteConfigs,omitempty"` // ForceSendFields is a list of field names (e.g. "DynamicScopedRouteConfigs") // to unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DynamicScopedRouteConfigs") to // include in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ScopedRoutesConfigDump) MarshalJSON() ([]byte, error) { type NoMethod ScopedRoutesConfigDump return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // SemanticVersion: Envoy uses SemVer (https://semver.org/). Major/minor // versions indicate expected behaviors and APIs, the patch version field is // used only for security fixes and can be generally ignored. type SemanticVersion struct { MajorNumber int64 `json:"majorNumber,omitempty"` MinorNumber int64 `json:"minorNumber,omitempty"` Patch int64 `json:"patch,omitempty"` // ForceSendFields is a list of field names (e.g. "MajorNumber") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "MajorNumber") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *SemanticVersion) MarshalJSON() ([]byte, error) { type NoMethod SemanticVersion return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // SocketAddress: [#next-free-field: 7] type SocketAddress struct { // Address: The address for this socket. :ref:`Listeners ` will bind to the // address. An empty address is not allowed. Specify ``0.0.0.0`` or ``::`` to // bind to any address. [#comment:TODO(zuercher) reinstate when implemented: It // is possible to distinguish a Listener address via the prefix/suffix matching // in :ref:`FilterChainMatch `.] When used within an upstream :ref:`BindConfig // `, the address controls the source address of outbound connections. For // :ref:`clusters `, the cluster type determines whether the address must be an // IP (*STATIC* or *EDS* clusters) or a hostname resolved by DNS (*STRICT_DNS* // or *LOGICAL_DNS* clusters). Address resolution can be customized via // :ref:`resolver_name `. Address string `json:"address,omitempty"` // Ipv4Compat: When binding to an IPv6 address above, this enables `IPv4 // compatibility `_. Binding to ``::`` will allow both IPv4 and IPv6 // connections, with peer IPv4 addresses mapped into IPv6 space as ``::FFFF:``. Ipv4Compat bool `json:"ipv4Compat,omitempty"` // NamedPort: This is only valid if :ref:`resolver_name ` is specified below // and the named resolver is capable of named port resolution. NamedPort string `json:"namedPort,omitempty"` PortValue int64 `json:"portValue,omitempty"` // Possible values: // "TCP" // "UDP" Protocol string `json:"protocol,omitempty"` // ResolverName: The name of the custom resolver. This must have been // registered with Envoy. If this is empty, a context dependent default // applies. If the address is a concrete IP address, no resolution will occur. // If address is a hostname this should be set for resolution other than DNS. // Specifying a custom resolver with *STRICT_DNS* or *LOGICAL_DNS* will // generate an error at runtime. ResolverName string `json:"resolverName,omitempty"` // ForceSendFields is a list of field names (e.g. "Address") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Address") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *SocketAddress) MarshalJSON() ([]byte, error) { type NoMethod SocketAddress return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // StaticCluster: Describes a statically loaded cluster. type StaticCluster struct { // Cluster: The cluster config. Cluster googleapi.RawMessage `json:"cluster,omitempty"` // LastUpdated: The timestamp when the Cluster was last updated. LastUpdated string `json:"lastUpdated,omitempty"` // ForceSendFields is a list of field names (e.g. "Cluster") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Cluster") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *StaticCluster) MarshalJSON() ([]byte, error) { type NoMethod StaticCluster return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // StaticListener: Describes a statically loaded listener. type StaticListener struct { // LastUpdated: The timestamp when the Listener was last successfully updated. LastUpdated string `json:"lastUpdated,omitempty"` // Listener: The listener config. Listener googleapi.RawMessage `json:"listener,omitempty"` // ForceSendFields is a list of field names (e.g. "LastUpdated") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "LastUpdated") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *StaticListener) MarshalJSON() ([]byte, error) { type NoMethod StaticListener return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type StaticRouteConfig struct { // LastUpdated: The timestamp when the Route was last updated. LastUpdated string `json:"lastUpdated,omitempty"` // RouteConfig: The route config. RouteConfig googleapi.RawMessage `json:"routeConfig,omitempty"` // ForceSendFields is a list of field names (e.g. "LastUpdated") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "LastUpdated") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *StaticRouteConfig) MarshalJSON() ([]byte, error) { type NoMethod StaticRouteConfig return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // StringMatcher: Specifies the way to match a string. [#next-free-field: 7] type StringMatcher struct { // Exact: The input string must match exactly the string specified here. // Examples: * *abc* only matches the value *abc*. Exact string `json:"exact,omitempty"` // IgnoreCase: If true, indicates the exact/prefix/suffix matching should be // case insensitive. This has no effect for the safe_regex match. For example, // the matcher *data* will match both input string *Data* and *data* if set to // true. IgnoreCase bool `json:"ignoreCase,omitempty"` // Prefix: The input string must have the prefix specified here. Note: empty // prefix is not allowed, please use regex instead. Examples: * *abc* matches // the value *abc.xyz* Prefix string `json:"prefix,omitempty"` // Regex: The input string must match the regular expression specified here. // The regex grammar is defined `here `_. Examples: * The regex ``\d{3}`` // matches the value *123* * The regex ``\d{3}`` does not match the value // *1234* * The regex ``\d{3}`` does not match the value *123.456* .. // attention:: This field has been deprecated in favor of `safe_regex` as it is // not safe for use with untrusted input in all cases. Regex string `json:"regex,omitempty"` // SafeRegex: The input string must match the regular expression specified // here. SafeRegex *RegexMatcher `json:"safeRegex,omitempty"` // Suffix: The input string must have the suffix specified here. Note: empty // prefix is not allowed, please use regex instead. Examples: * *abc* matches // the value *xyz.abc* Suffix string `json:"suffix,omitempty"` // ForceSendFields is a list of field names (e.g. "Exact") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Exact") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *StringMatcher) MarshalJSON() ([]byte, error) { type NoMethod StringMatcher return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // StructMatcher: StructMatcher provides a general interface to check if a // given value is matched in google.protobuf.Struct. It uses `path` to retrieve // the value from the struct and then check if it's matched to the specified // value. For example, for the following Struct: .. code-block:: yaml fields: // a: struct_value: fields: b: struct_value: fields: c: string_value: pro t: // list_value: values: - string_value: m - string_value: n The following // MetadataMatcher is matched as the path [a, b, c] will retrieve a string // value "pro" from the Metadata which is matched to the specified prefix // match. .. code-block:: yaml path: - key: a - key: b - key: c value: // string_match: prefix: pr The following StructMatcher is matched as the code // will match one of the string values in the list at the path [a, t]. .. // code-block:: yaml path: - key: a - key: t value: list_match: one_of: // string_match: exact: m An example use of StructMatcher is to match metadata // in envoy.v*.core.Node. type StructMatcher struct { // Path: The path to retrieve the Value from the Struct. Path []*PathSegment `json:"path,omitempty"` // Value: The StructMatcher is matched if the value retrieved by path is // matched to this value. Value *ValueMatcher `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "Path") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Path") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *StructMatcher) MarshalJSON() ([]byte, error) { type NoMethod StructMatcher return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type UpdateFailureState struct { // Details: Details about the last failed update attempt. Details string `json:"details,omitempty"` // FailedConfiguration: What the component configuration would have been if the // update had succeeded. FailedConfiguration googleapi.RawMessage `json:"failedConfiguration,omitempty"` // LastUpdateAttempt: Time of the latest failed update attempt. LastUpdateAttempt string `json:"lastUpdateAttempt,omitempty"` // ForceSendFields is a list of field names (e.g. "Details") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Details") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *UpdateFailureState) MarshalJSON() ([]byte, error) { type NoMethod UpdateFailureState return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ValueMatcher: Specifies the way to match a ProtobufWkt::Value. Primitive // values and ListValue are supported. StructValue is not supported and is // always not matched. [#next-free-field: 7] type ValueMatcher struct { // BoolMatch: If specified, a match occurs if and only if the target value is a // bool value and is equal to this field. BoolMatch bool `json:"boolMatch,omitempty"` // DoubleMatch: If specified, a match occurs if and only if the target value is // a double value and is matched to this field. DoubleMatch *DoubleMatcher `json:"doubleMatch,omitempty"` // ListMatch: If specified, a match occurs if and only if the target value is a // list value and is matched to this field. ListMatch *ListMatcher `json:"listMatch,omitempty"` // NullMatch: If specified, a match occurs if and only if the target value is a // NullValue. NullMatch *NullMatch `json:"nullMatch,omitempty"` // PresentMatch: If specified, value match will be performed based on whether // the path is referring to a valid primitive value in the metadata. If the // path is referring to a non-primitive value, the result is always not // matched. PresentMatch bool `json:"presentMatch,omitempty"` // StringMatch: If specified, a match occurs if and only if the target value is // a string value and is matched to this field. StringMatch *StringMatcher `json:"stringMatch,omitempty"` // ForceSendFields is a list of field names (e.g. "BoolMatch") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "BoolMatch") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ValueMatcher) MarshalJSON() ([]byte, error) { type NoMethod ValueMatcher return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type DiscoveryClientStatusCall struct { s *Service clientstatusrequest *ClientStatusRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // ClientStatus: func (r *DiscoveryService) ClientStatus(clientstatusrequest *ClientStatusRequest) *DiscoveryClientStatusCall { c := &DiscoveryClientStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.clientstatusrequest = clientstatusrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *DiscoveryClientStatusCall) Fields(s ...googleapi.Field) *DiscoveryClientStatusCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *DiscoveryClientStatusCall) Context(ctx context.Context) *DiscoveryClientStatusCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *DiscoveryClientStatusCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *DiscoveryClientStatusCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.clientstatusrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v2/discovery:client_status") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "trafficdirector.discovery.client_status" call. // Any non-2xx status code is an error. Response headers are in either // *ClientStatusResponse.ServerResponse.Header or (if a response was returned // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified was // returned. func (c *DiscoveryClientStatusCall) Do(opts ...googleapi.CallOption) (*ClientStatusResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &ClientStatusResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil }