Project: Gloo (Orchestration & Management / API Gateway)
File: proxy.proto.sk.md

title: "proxy.proto" weight: 5 <!-- Code generated by solo-kit. DO NOT EDIT. --> Top-Level Resource Top-Level Resource A Proxy is a container for the entire set of configuration that will to be applied to one or more Proxy instances. Proxies can be understood as a set of listeners, represents a different bind address/port where the proxy will listen for connections. Each listener has its own set of configuration. If any of the sub-resources within a listener is declared invalid (e.g. due to invalid user configuration), the proxy will be marked invalid by Gloo. Proxy instances that register with Gloo are assigned the proxy configuration corresponding with a proxy-specific identifier. In the case of Envoy, proxy instances are identified by their Node ID. Node IDs must match a existing Proxy Node ID can be specified in Envoy with the `--service-node` flag, or in the Envoy instance's bootstrap config. ```yaml "compressedSpec": string "listeners": []gloo.solo.io.Listener "namespacedStatuses": .core.solo.io.NamespacedStatuses "metadata": .core.solo.io.Metadata ``` | Field | Type | Description | | -- | - | -- | | `compressedSpec` | `string` | This field is populated when the proxy compression is turned on. | | `listeners` | | Define here each listener the proxy should create. Listeners define the a set of behaviors for a single bind address/port where the proxy will listen If no listeners are specified, the instances configured with the proxy resource will not accept connections. | | `namespacedStatuses` | | NamespacedStatuses indicates the validation status of this resource. NamespacedStatuses is read-only by clients, and set by gloo during validation. | | `metadata` | | Metadata contains the object metadata for this resource. | Listeners define the address:port where the proxy will listen for incoming connections A Listener accepts connections (currently only HTTP is supported) and apply user-defined behavior for those connections, e.g. performing SSL termination, HTTP retries, and rate limiting. ```yaml "name": string "bindAddress": string "bindPort": int "httpListener": .gloo.solo.io.HttpListener "tcpListener": .gloo.solo.io.TcpListener "hybridListener": .gloo.solo.io.HybridListener "aggregateListener": .gloo.solo.io.AggregateListener "sslConfigurations": []gloo.solo.io.SslConfig "useProxyProto": .google.protobuf.BoolValue "options": .gloo.solo.io.ListenerOptions "metadata": .google.protobuf.Struct "metadataStatic": .gloo.solo.io.SourceMetadata "routeOptions": .gloo.solo.io.RouteConfigurationOptions ``` | Field | Type | Description | | -- | - | -- | | `name` | `string` | the name of the listener. names must be unique for each listener within a proxy. | | `bindAddress` | `string` | the bind address for the listener. both ipv4 and ipv6 formats are supported. | | `bindPort` | `int` | the port to bind on ports numbers must be unique for listeners within a proxy. | | `httpListener` | | contains configuration options for Gloo's HTTP-level features including request-based routing. Only one of `httpListener`, `tcpListener`, `hybridListener`, or `aggregateListener` can be set. | | `tcpListener` | | contains configuration options for Gloo's TCP-level features. Only one of `tcpListener`, `httpListener`, `hybridListener`, or `aggregateListener` can be set. | | `hybridListener` | | contains any number of configuration options for Gloo's HTTP and/or TCP-level features. Only one of `hybridListener`, `httpListener`, `tcpListener`, or `aggregateListener` can be set. | | `aggregateListener` | | contains any number of configuration options for Gloo's HTTP and/or TCP-level features avoids duplicating definitions by separating resources and relationships between resources. Only one of `aggregateListener`, `httpListener`, `tcpListener`, or `hybridListener` can be set. | | `sslConfigurations` | | SSL Config is optional for the listener. If provided, the listener will serve TLS for connections on this port. Multiple SslConfigs are supported for the purpose of SNI. Be aware that the SNI domain provided in the SSL

This is set to the aggregated list of SslConfigs that are defined on the selected VirtualServices. | | `useProxyProto` | | Enable ProxyProtocol support for this listener. Deprecated: prefer setting the listener option. If configured, the listener option (filter config) overrides any setting here. | | `options` | | top level options. | | `metadata` | | Metadata for the individual route This data is opaque to Gloo, used by controllers to track ownership of routes within a proxy as they are typically generated by a controller (such as the gateway) Deprecated: prefer the any field below. Only one of `metadata` or `metadataStatic` can be set. | | `metadataStatic` | | Inline metadata used by gloo controller to track ownership. See for specific uses. Only one of `metadataStatic` or `metadata` can be set. | | `routeOptions` | | Route Configuration Options. | ```yaml "tcpHosts": []gloo.solo.io.TcpHost "options": .gloo.solo.io.TcpListenerOptions "statPrefix": string ``` | Field | Type | Description | | -- | - | -- | | `tcpHosts` | | List of filter chains to match on for this listener. | | `options` | | Options contains top-level configuration to be applied to a listener. Listener config is applied to traffic for the given listener. Some configuration here can be overridden in Virtual Host Options configuration or Route Options configuration. | | `statPrefix` | `string` | prefix for addressing envoy stats for the tcp proxy. | ```yaml "name": string "sslConfig": .gloo.solo.io.SslConfig "destination": .gloo.solo.io.TcpHost.TcpAction ``` | Field | Type | Description | | -- | - | -- | | `name` | `string` | the logical name of the tcp host. names must be unique for each tcp host within a listener. | | `sslConfig` | | If provided, the Gateway will serve TLS/SSL traffic for this set of routes. | | `destination` | | | Name of the destinations the gateway can route to. Note: the destination spec and subsets are not supported in this context and will be ignored. ```yaml "single": .gloo.solo.io.Destination "multi": .gloo.solo.io.MultiDestination "upstreamGroup": .core.solo.io.ResourceRef "forwardSniClusterName": .google.protobuf.Empty ``` | Field | Type | Description | | -- | - | -- | | `single` | | Use SingleDestination to route to a single upstream. Only one of `single`, `multi`, `upstreamGroup`, or `forwardSniClusterName` can be set. | | `multi` | | Use MultiDestination to load balance requests between multiple upstreams (by weight). Only one of `multi`, `single`, `upstreamGroup`, or `forwardSniClusterName` can be set. | | `upstreamGroup` | | Use a reference to an upstream group for routing. Only one of `upstreamGroup`, `single`, `multi`, or `forwardSniClusterName` can be set. | | `forwardSniClusterName` | | Forwards the request to a cluster name matching the TLS SNI name https://www.envoyproxy.io/docs/envoy/latest/api-v2/config/filter/network/snicluster/empty/snicluster Note: This filter will only work properly with TLS connections in which the upstream SNI domain is specified. Only one of `forwardSniClusterName`, `single`, `multi`, or `upstreamGroup` can be set. | Use this listener to configure proxy behavior for any HTTP-level features including defining routes (via virtual services). HttpListeners also contain optional configuration that applies globally across all virtual hosts on the listener. Some traffic policies can be configured to work both on the listener and virtual host level (e.g., the rate limit feature) ```yaml "virtualHosts": []gloo.solo.io.VirtualHost "options": .gloo.solo.io.HttpListenerOptions "statPrefix": string ``` | Field | Type | Description | | -- | - | -- | | `virtualHosts` | | the set of virtual hosts that will be accessible by clients connecting to this

at least one virtual host must be specified for this listener to be active (else connections will be refused) the set of domains for each virtual host must be unique, or the config will be considered invalid. | | `options` | | HttpListenerOptions contains optional top-level configuration to be applied to a listener. Listener config is applied to traffic for the given listener. Some configuration here can be overridden in VirtualHostOptions configuration, RouteOptions configuration, or WeightedDestinationOptions configuration. | | `statPrefix` | `string` | prefix for addressing envoy stats for the http connection manager. | ```yaml "matchedListeners": []gloo.solo.io.MatchedListener ``` | Field | Type | Description | | -- | - | -- | | `matchedListeners` | | | ```yaml "matcher": .gloo.solo.io.Matcher "httpListener": .gloo.solo.io.HttpListener "tcpListener": .gloo.solo.io.TcpListener "sslConfigurations": []gloo.solo.io.SslConfig ``` | Field | Type | Description | | -- | - | -- | | `matcher` | | Matchers are used to define unique matching criteria for each MatchedListener Each MatchedListener within a HybridListener must have a unique Matcher If multiple matchers in a HybridListener are identical, the HybridListener will not be accepted Empty Matchers are effectively catch-alls, and there can be no more than one empty Matcher per HybridListener. | | `httpListener` | | Only one of `httpListener` or `tcpListener` can be set. | | `tcpListener` | | Only one of `tcpListener` or `httpListener` can be set. | | `sslConfigurations` | | SSL Config is optional for the MatchedListener. If provided, the listener will serve TLS for connections. Multiple SslConfigs are supported for the purpose of SNI. Be aware that the SNI domain provided in the SSL Config. This is set to the aggregated list of SslConfigs that are defined on the selected VirtualServices. | ```yaml "matcher": .gloo.solo.io.Matcher "tcpListener": .gloo.solo.io.TcpListener ``` | Field | Type | Description | | -- | - | -- | | `matcher` | | Matchers are used to define unique matching criteria for each MatchedListener These are overridden by tcphost sni mutators. | | `tcpListener` | | The actual tcp listener to be used for this matcher in the aggregate listener. | ```yaml "sslConfig": .gloo.solo.io.SslConfig "sourcePrefixRanges": []solo.io.envoy.config.core.v3.CidrRange "passthroughCipherSuites": []string ``` | Field | Type | Description | | -- | - | -- | | `sslConfig` | | | | `sourcePrefixRanges` | | | | `passthroughCipherSuites` | `[]string` | | An AggregateListener defines a set of Gloo configuration which will map to a unique set of FilterChains on a Listener ```yaml "httpResources": .gloo.solo.io.AggregateListener.HttpResources "httpFilterChains": []gloo.solo.io.AggregateListener.HttpFilterChain "tcpListeners": []gloo.solo.io.MatchedTcpListener ``` | Field | Type | Description | | -- | - | -- | | `httpResources` | | The aggregate set of resources available on this listener. | | `httpFilterChains` | | The set of HttpFilterChains to create on this listener. | | `tcpListeners` | | The set of TcpListeners to create on this listener. | ```yaml "virtualHosts": map<string, .gloo.solo.io.VirtualHost> "httpOptions": map<string, .gloo.solo.io.HttpListenerOptions> ``` | Field | Type | Description | | -- | - | -- | | `virtualHosts` | `map<string, .gloo.solo.io.VirtualHost>` | Set of VirtualHosts available on this Listener, indexed by name. | | `httpOptions` | `map<string, .gloo.solo.io.HttpListenerOptions>` | Set of HttpListenerOptions available on this Listener, indexed by hash. | ```yaml "matcher": .gloo.solo.io.Matcher "httpOptionsRef": string "virtualHostRefs": []string ``` | Field | Type | Description | | -- | - | -- | | `matcher` | | Matching criteria used to generate both the FilterChainMatch and TransportSocket for the Envoy

| | `httpOptionsRef` | `string` | The ref pointing to HttpListenerOptions which are used to configure the HCM on this HttpFilterChain Corresponds to an entry in the HttpResources.HttpOptions map. | | `virtualHostRefs` | `[]string` | The set of refs pointing to VirtualHosts which are available on this HttpFilterChain Each ref corresponds to an entry in the HttpResources.VirtualHosts map. | Virtual Hosts group an ordered list of routes under one or more domains. Each Virtual Host has a logical name, which must be unique for the http listener. An HTTP request is first matched to a virtual host based on its host header, then to a route within the virtual host. If a request is not matched to any virtual host or a route therein, the target proxy will reply with a 404. ```yaml "name": string "domains": []string "routes": []gloo.solo.io.Route "options": .gloo.solo.io.VirtualHostOptions "metadata": .google.protobuf.Struct "metadataStatic": .gloo.solo.io.SourceMetadata ``` | Field | Type | Description | | -- | - | -- | | `name` | `string` | the logical name of the virtual host. names must be unique for each virtual host within a listener. | | `domains` | `. | | `routes` | | The list of HTTP routes define routing actions to be taken for incoming HTTP requests whose host header matches this virtual host. If the request matches more than one route in the list, the first route matched will be selected. If the list of routes is empty, the virtual host will be ignored by Gloo. | | `options` | | Virtual host options contain additional configuration to be applied to all traffic served by the Virtual Host. Some configuration here can be overridden by Route Options. | | `metadata` | | Metadata for the individual route This data is opaque to Gloo, used by controllers to track ownership of routes within a proxy as they are typically generated by a controller (such as the gateway) Deprecated: prefer the any field below. Only one of `metadata` or `metadataStatic` can be set. | | `metadataStatic` | | Inline metadata used by gloo controller to track ownership. Only one of `metadataStatic` or `metadata` can be set. | Routes declare the entry points on virtual hosts and the action to take for matched requests. ```yaml "matchers": []matchers.core.gloo.solo.io.Matcher "routeAction": .gloo.solo.io.RouteAction "redirectAction": .gloo.solo.io.RedirectAction "directResponseAction": .gloo.solo.io.DirectResponseAction "graphqlApiRef": .core.solo.io.ResourceRef "options": .gloo.solo.io.RouteOptions "metadata": .google.protobuf.Struct "metadataStatic": .gloo.solo.io.SourceMetadata "name": string ``` | Field | Type | Description | | -- | - | -- | | `matchers` | | Matchers contain parameters for matching requests (i.e., based on HTTP path, headers, etc.) If empty, the route will match all requests (i.e, a single "/" path prefix matcher). | | `routeAction` | | This action is the primary action to be selected for most routes. The RouteAction tells the proxy to route requests to an upstream. Only one of `routeAction`, `redirectAction`, `directResponseAction`, or `graphqlApiRef` can be set. | | `redirectAction` | | Redirect actions tell the proxy to return a redirect response to the downstream client. Only one of `redirectAction`, `routeAction`, `directResponseAction`, or `graphqlApiRef` can be set. | | `directResponseAction` | | Return an arbitrary HTTP response directly, without proxying. Only one of `directResponseAction`, `routeAction`, `redirectAction`, or `graphqlApiRef` can be set. | | `graphqlApiRef` | | Enterprise-Only: THIS FEATURE IS IN TECH PREVIEW. APIs are versioned as alpha and subject to change. A reference to a GraphQLApi CR. Resolution of the client request to upstream(s) will be delegated to the resolution policies defined in the GraphQLApi

If configured, the graphql filter will operate instead of the envoy router filter, so configuration (such as retries) that applies to the router filter will not be applied. Only one of `graphqlApiRef`, `routeAction`, `redirectAction`, or `directResponseAction` can be set. | | `options` | | Route Options extend the behavior of routes. Route options include configuration such as retries, rate limiting, and request/response transformation. | | `metadata` | | Metadata for the individual route This data is opaque to Gloo, used by controllers to track ownership of routes within a proxy as they are typically generated by a controller (such as the gateway) Deprecated: prefer the any field below. Only one of `metadata` or `metadataStatic` can be set. | | `metadataStatic` | | Inline metadata used by gloo controller to track ownership. Only one of `metadataStatic` or `metadata` can be set. | | `name` | `string` | The name provides a convenience for users to be able to refer to a route by name. It includes names of vs, route, and route table ancestors of the route. | RouteActions are used to route matched requests to upstreams. ```yaml "single": .gloo.solo.io.Destination "multi": .gloo.solo.io.MultiDestination "upstreamGroup": .core.solo.io.ResourceRef "clusterHeader": string "dynamicForwardProxy": .dfp.options.gloo.solo.io.PerRouteConfig ``` | Field | Type | Description | | -- | - | -- | | `single` | | Use SingleDestination to route to a single upstream. Only one of `single`, `multi`, `upstreamGroup`, `clusterHeader`, or `dynamicForwardProxy` can be set. | | `multi` | | Use MultiDestination to load balance requests between multiple upstreams (by weight). Only one of `multi`, `single`, `upstreamGroup`, `clusterHeader`, or `dynamicForwardProxy` can be set. | | `upstreamGroup` | | Use a reference to an upstream group for routing. Only one of `upstreamGroup`, `single`, `multi`, `clusterHeader`, or `dynamicForwardProxy` can be set. | | `clusterHeader` | `string` | Envoy will determine the cluster to route to by reading the value of the HTTP header named by cluster_header from the request headers. If the header is not found or the referenced cluster does not exist, Envoy will return a 404 response. Avoid using this whenever possible, it does not allow for custom filter configuration based on Virtual Host. Only one of `clusterHeader`, `single`, `multi`, `upstreamGroup`, or `dynamicForwardProxy` can be set. | | `dynamicForwardProxy` | | Route requests to a custom dynamic forward proxy envoy cluster. Envoy will route based on the DNS response (cached) or pause requests (for a configurable amount of time on the listener) until DNS has resolved for the host header rewrite as provided here. For more, see https://www.envoyproxy.io/docs/envoy/latest/intro/archoverview/http/httpproxy. Only one of `dynamicForwardProxy`, `single`, `multi`, `upstreamGroup`, or `clusterHeader` can be set. | Destinations define routable destinations for proxied requests. ```yaml "upstream": .core.solo.io.ResourceRef "kube": .gloo.solo.io.KubernetesServiceDestination "consul": .gloo.solo.io.ConsulServiceDestination "destinationSpec": .gloo.solo.io.DestinationSpec "subset": .gloo.solo.io.Subset ``` | Field | Type | Description | | -- | - | -- | | `upstream` | | Route requests to a Gloo upstream. Only one of `upstream`, `kube`, or `consul` can be set. | | `kube` | | Route requests to a kubernetes service. Only one of `kube`, `upstream`, or `consul` can be set. | | `consul` | | Route requests to a consul service. Only one of `consul`, `upstream`, or `kube` can be set. | | `destinationSpec` | | Some upstreams utilize options which require or permit additional configuration on routes targeting them. gRPC upstreams, for example, allow specifying REST-style parameters for JSON-to-gRPC transcoding in the destination config. If the destination config is required for the upstream and not provided by the user, Gloo will invalidate the destination and its parent

| | `subset` | | If specified, traffic will only be routed to a subset of the upstream. If upstream doesn't contain the specified subset, we will fallback to normal upstream routing. | Identifies a port on a kubernetes service to route traffic to. ```yaml "ref": .core.solo.io.ResourceRef "port": int ``` | Field | Type | Description | | -- | - | -- | | `ref` | | The target service. | | `port` | `int` | The port attribute of the service. | Identifies a to route traffic to. Multiple Consul services with the same name can present distinct sets of tags, listen of different ports, and live in multiple data centers (see an example ). You can target the desired subset of services via the fields in this configuration. Gloo will detect the correspondent IP addresses and ports and load balance traffic between them. ```yaml "serviceName": string "tags": []string "dataCenters": []string ``` | Field | Type | Description | | -- | - | -- | | `serviceName` | `string` | The name of the target service. This field is required. | | `tags` | `[]string` | If provided, load balance traffic only between services matching all the given tags. | | `dataCenters` | `. | ```yaml "destinations": []gloo.solo.io.WeightedDestination "namespacedStatuses": .core.solo.io.NamespacedStatuses "metadata": .core.solo.io.Metadata ``` | Field | Type | Description | | -- | - | -- | | `destinations` | | The destinations that are part of this upstream group. | | `namespacedStatuses` | | NamespacedStatuses indicates the validation status of this resource. NamespacedStatuses is read-only by clients, and set by gloo during validation. | | `metadata` | | Metadata contains the object metadata for this resource. | MultiDestination is a container for a set of weighted destinations. Gloo will load balance traffic for a single route across multiple destinations according to their specified weights. ```yaml "destinations": []gloo.solo.io.WeightedDestination ``` | Field | Type | Description | | -- | - | -- | | `destinations` | | This list must contain at least one destination with a weight greater than 0. Otherwise, the listener for this route becomes invalid, which causes an error for the parent proxy resource. | WeightedDestination attaches a weight to a single destination. ```yaml "destination": .gloo.solo.io.Destination "weight": .google.protobuf.UInt32Value "options": .gloo.solo.io.WeightedDestinationOptions ``` | Field | Type | Description | | -- | - | -- | | `destination` | | | | `weight` | | Weight must be zero or greater -if no weight is passed it will default to 0 - Routing to each destination is balanced according to the ratio of the destinations weight to the total weight on a route. For example, if the weight for one destination is 2, and the total weight of all destinations on the route is 6, the destination receives 2/6 of the traffic. Note that a weight of 0 routes no traffic to the destination. | | `options` | | Apply configuration to traffic that is sent to this weighted destination. | Notice: RedirectAction is copied directly from https://github.com/envoyproxy/envoy/blob/main/api/envoy/api/v2/route/route.proto ```yaml "hostRedirect": string "pathRedirect": string "prefixRewrite": string "regexRewrite": .solo.io.envoy.type.matcher.v3.RegexMatchAndSubstitute "responseCode": .gloo.solo.io.RedirectAction.RedirectResponseCode "httpsRedirect": bool "stripQuery": bool "portRedirect": .google.protobuf.UInt32Value ``` | Field | Type | Description | | -- | - | -- | | `hostRedirect` | `string` | The host portion of the URL will be swapped with this value. | | `pathRedirect` | `string` | The path portion of the URL will be swapped with this value. Only one of `pathRedirect`, `prefixRewrite`, or `regexRewrite` can be

| | `prefixRewrite` | `string` | Indicates that during redirection, the matched prefix (or path) should be swapped with this value. This option allows redirect URLs be dynamically created based on the request. Pay attention to the use of trailing slashes as mentioned in `RouteAction`'s `prefix_rewrite`. Only one of `prefixRewrite`, `pathRedirect`, or `regexRewrite` can be set. | | `regexRewrite` | | Indicates that during forwarding, portions of the path that match the pattern should be rewritten, even allowing the substitution of capture groups from the pattern into the new path as specified by the rewrite substitution string. This is useful to allow application paths to be rewritten in a way that is aware of segments with variable content like identifiers. The router filter will place the original path as it was before the rewrite into the :ref:`x-envoy-original-path <confighttpfiltersrouterx-envoy-original-path>` header. Only one of :ref:`prefixrewrite <envoyapifieldconfig.route.v3.RouteAction.prefixrewrite>` or *regexrewrite may be specified. Examples using Google's `RE2 <https://github.com/google/re2>`_ engine: The path pattern ``^/service/([^/]+)(/.)$`` paired with a substitution string of ``\2/instance/\1`` would transform ``/service/foo/v1/api`` into ``/v1/api/instance/foo``. The pattern ``one`` paired with a substitution string of ``two`` would transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``. The pattern ``^(.?)one(.)$`` paired with a substitution string of ``\1two\2`` would replace only the first occurrence of ``one``, transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``. The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/`` would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to ``/aaa/yyy/bbb``. Only one of `regexRewrite`, `pathRedirect`, or `prefixRewrite` can be set. | | `responseCode` | | The HTTP status code to use in the redirect response. The default response code is MOVED_PERMANENTLY (301). | | `httpsRedirect` | `bool` | The scheme portion of the URL will be swapped with "https". | | `stripQuery` | `bool` | Indicates that during redirection, the query portion of the URL will be removed. Default value is false. | | `portRedirect` | | Which port to redirect to if different than original. | | Name | Description | | -- | -- | | `MOVED_PERMANENTLY` | Moved Permanently HTTP Status Code - 301. | | `FOUND` | Found HTTP Status Code - 302. | | `SEE_OTHER` | See Other HTTP Status Code - 303. | | `TEMPORARY_REDIRECT` | Temporary Redirect HTTP Status Code - 307. | | `PERMANENT_REDIRECT` | Permanent Redirect HTTP Status Code - 308. | DirectResponseAction is copied directly from https://github.com/envoyproxy/envoy/blob/main/api/envoy/api/v2/route/route.proto ```yaml "status": int "body": string ``` | Field | Type | Description | | -- | - | -- | | `status` | `int` | Specifies the HTTP response status to be returned. | | `body` | `string` | Specifies the content of the response body. If this setting is omitted, no body is included in the generated response. Note: Headers can be specified using the Header Modification feature in the enclosing Route, Virtual Host, or Listener options. | SourceMetadata is an internal message used to track ownership of nested proxy objects: Listener VirtualHost Route ```yaml "sources": []gloo.solo.io.SourceMetadata.SourceRef ``` | Field | Type | Description | | -- | - | -- | | `sources` | | A list of sources. | ```yaml "resourceRef": .core.solo.io.ResourceRef "resourceKind": string "observedGeneration": int ``` | Field | Type | Description | | -- | - | -- | | `resourceRef` | | The resource being referenced. | | `resourceKind` | `string` | The resource Kind. | | `observedGeneration` | `int` | The observed generation of the resource. | <!-- Start of HubSpot Embed Code --> <script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/5130874.js"></script> <!-- End of HubSpot Embed Code -->