diff --git a/api/gloo/enterprise.gloo/v1/auth_config.proto b/api/gloo/enterprise.gloo/v1/auth_config.proto index d8095929..1f24e382 100644 --- a/api/gloo/enterprise.gloo/v1/auth_config.proto +++ b/api/gloo/enterprise.gloo/v1/auth_config.proto @@ -620,6 +620,29 @@ message ClaimToHeader { bool append = 3; } +// For apps in Microsoft Azure, configure Microsoft Entra ID as the OpenID Connect (OIDC) provider. +// This way, you can enable distributed claims and caching for when users are members of more than 200 groups. +message Azure { + // The client ID for the ExtAuthService app that is registered in MS Entra, + // to access the Microsoft Graph API to retrieve distributed claims. + // This app is NOT the app that you want to configure external auth for. + string client_id = 1; + + // The tenant ID represents the MS Entra organization ID where the ExtAuthService app is registered. + // This tenant ID may or may not be the same as in the top level `OidcAuthorizationCodeConfig`, + // depending on how your Azure account is provisioned. + string tenant_id = 2; + + // The client secret of the ExtAuthService app that is registered with MS Entra to communicate with the MS Graph API. + // The client secret data must be placed in a k8s secret under a key called 'client-secret'. + core.solo.io.ResourceRef client_secret = 3; + + // Redis connection details to cache MS Entera claims. + // This way, you avoid performance issues of accessing the Microsoft Graph API too many times. + // Note that this setting does NOT turn on Redis caching for the user session. + // To turn on Redis user session caching, use the `userSessionConfig` field. + RedisOptions claims_caching_options = 4; +} message OidcAuthorizationCode { // your client id as registered with the issuer @@ -826,29 +849,6 @@ message OidcAuthorizationCode { // No-op, represents default OIDC behavior message Default {} - // For apps in Microsoft Azure, configure Microsoft Entra ID as the OpenID Connect (OIDC) provider. - // This way, you can enable distributed claims and caching for when users are members of more than 200 groups. - message Azure { - // The client ID for the ExtAuthService app that is registered in MS Entra, - // to access the Microsoft Graph API to retrieve distributed claims. - // This app is NOT the app that you want to configure external auth for. - string client_id = 1; - - // The tenant ID represents the MS Entra organization ID where the ExtAuthService app is registered. - // This tenant ID may or may not be the same as in the top level `OidcAuthorizationCodeConfig`, - // depending on how your Azure account is provisioned. - string tenant_id = 2; - - // The client secret of the ExtAuthService app that is registered with MS Entra to communicate with the MS Graph API. - core.solo.io.ResourceRef client_secret = 3; - - // Redis connection details to cache MS Entera claims. - // This way, you avoid performance issues of accessing the Microsoft Graph API too many times. - // Note that this setting does NOT turn on Redis caching for the user session. - // To turn on Redis user session caching, use the `userSessionConfig` field. - RedisOptions claims_caching_options = 4; - } - // For the moment this is just path, but we may want to configure things like iss/sid validation message FrontChannelLogout { // Path to use for front channel logout. Should not be the same as logout or callback paths. @@ -1082,6 +1082,17 @@ message AccessTokenValidation { // and the structure of the claim value will be preserved in the metadata struct. map dynamic_metadata_from_claims = 7; + // A list of claims to be mapped from the JWT token received by ext-auth-service to an upstream destination + repeated ClaimToHeader claims_to_headers = 8; + + oneof Provider { + Default default = 9; + Azure azure = 10; + } + + // No-op, represents default OIDC distributed claims behavior + message Default {} + message ScopeList { repeated string scope = 1; } @@ -1260,6 +1271,9 @@ message AerospikeApiKeyStorage { map label_selector = 17; } +// When no storage backend is specified, the default storage backend defined in the extauth server is used. +message ServerDefaultApiKeyStorage{} + message ApiKey { // The string value of the API key. string api_key = 2; @@ -1598,6 +1612,40 @@ This is an internal API used to share configuration between gloo-ee and extauth. rules about breaking changes still apply to ensure we do not get errors during upgrade and downgrade. */ message ExtAuthConfig { + // For apps in Microsoft Azure, configure Microsoft Entra ID as the OpenID Connect (OIDC) provider. + // This way, you can enable distributed claims and caching for when users are members of more than 200 groups. + message Azure { + // The client ID for the ExtAuthService app that is registered in MS Entra, + // to access the Microsoft Graph API to retrieve distributed claims. + // This app is NOT the app that you want to configure external auth for. + string client_id = 1; + + // The tenant ID represents the MS Entra organization ID where the ExtAuthService app is registered. + // This tenant ID may or may not be the same as in the top level `OidcAuthorizationCodeConfig`, + // depending on how your Azure account is provisioned. + string tenant_id = 2; + + // The client secret of the ExtAuthService app that is registered with MS Entra to communicate with the MS Graph API. + string client_secret = 3 [(extproto.sensitive) = true]; + + // Redis connection details to cache MS Entera claims. + // This way, you avoid performance issues of accessing the Microsoft Graph API too many times. + // Note that this setting does NOT turn on Redis caching for the user session. + // To turn on Redis user session caching, use the `userSessionConfig` field. + RedisOptions claims_caching_options = 4; + } + + // Map a single claim from an OAuth2 or OIDC token to a header in the request to the upstream destination. + message ClaimToHeader { + // The claim name from the token, such as `sub`. + string claim = 1; + + // The header to copy the claim to, such as `x-sub`. + string header = 2; + + // If the header exists, append the claim value to the header (true), or overwrite any existing value (false). The default behavior is to overwrite any existing value (false). + bool append = 3; + } // @solo-kit:resource.name // This is the identifier of the AuthConfig resource that this configuration is associated with. @@ -1814,18 +1862,6 @@ message ExtAuthConfig { // Only one of client_secret or pk_jwt_client_authentication_config should be set. pk_jwt_client_authentication_config takes precedence. PkJwtClientAuthenticationConfig pk_jwt_client_authentication_config = 21; - // Map a single claim from an OAuth2 or OIDC token to a header in the request to the upstream destination. - message ClaimToHeader { - // The claim name from the token, such as `sub`. - string claim = 1; - - // The header to copy the claim to, such as `x-sub`. - string header = 2; - - // If the header exists, append the claim value to the header (true), or overwrite any existing value (false). The default behavior is to overwrite any existing value (false). - bool append = 3; - } - // Optional: Configuration specific to the OAuth2 access token received and processed by the ext-auth-service. AccessToken access_token = 22; @@ -1852,38 +1888,26 @@ message ExtAuthConfig { // No-op, represents default OIDC behavior message Default {} - // For apps in Microsoft Azure, configure Microsoft Entra ID as the OpenID Connect (OIDC) provider. - // This way, you can enable distributed claims and caching for when users are members of more than 200 groups. - message Azure { - // The client ID for the ExtAuthService app that is registered in MS Entra, - // to access the Microsoft Graph API to retrieve distributed claims. - // This app is NOT the app that you want to configure external auth for. - string client_id = 1; - - // The tenant ID represents the MS Entra organization ID where the ExtAuthService app is registered. - // This tenant ID may or may not be the same as in the top level `OidcAuthorizationCodeConfig`, - // depending on how your Azure account is provisioned. - string tenant_id = 2; - - // The client secret of the ExtAuthService app that is registered with MS Entra to communicate with the MS Graph API. - string client_secret = 3 [(extproto.sensitive) = true]; - - // Redis connection details to cache MS Entera claims. - // This way, you avoid performance issues of accessing the Microsoft Graph API too many times. - // Note that this setting does NOT turn on Redis caching for the user session. - // To turn on Redis user session caching, use the `userSessionConfig` field. - RedisOptions claims_caching_options = 4; - } - // For the moment this is just path, but we may want to configure things like iss/sid validation message FrontChannelLogout { // Path to use for front channel logout. Should not be the same as logout or callback paths. string path=1; } - // Configuration for front channel logout. This is used to log out the user from multiple apps/clients associated with one OpenId Provider (OP). - // The path is registered with the OP and is called for each app/client that the user is logged into when the logout endpoint is called. + // Configuration for front channel logout. This is used to log out the user from multiple apps/clients associated with one OpenId Provider (OP). + // The path is registered with the OP and is called for each app/client that the user is logged into when the logout endpoint is called. FrontChannelLogout front_channel_logout = 28; + + + // Map of metadata key to claim. Ie: + // dynamic_metadata_from_claims: + // issuer: iss + // email: email + // When specified, the matching claims from the ID token will be emitted as dynamic metadata. + // Note that metadata keys must be unique, and the claim names must be alphanumeric and use `-` or `_` as separators. + // The metadata will live in a namespace specified by the canonical name of the ext auth filter (in our case `envoy.filters.http.ext_authz`), + // and the structure of the claim value will be preserved in the metadata struct. + map dynamic_metadata_from_claims = 29; } message AccessTokenValidationConfig { @@ -2012,6 +2036,27 @@ message ExtAuthConfig { message ScopeList { repeated string scope = 1; } + + // Map of metadata key to claim. Ie: + // dynamic_metadata_from_claims: + // issuer: iss + // email: email + // When specified, the matching claims from the access token will be emitted as dynamic metadata. + // Note that metadata keys must be unique, and the claim names must be alphanumeric and use `-` or `_` as separators. + // Works when the access token is a JWT or when the access token is opaque, in which case the claims will refer to field in the response from the token introspection endpoint. + // The metadata will live in a namespace specified by the canonical name of the ext auth filter (in our case `envoy.filters.http.ext_authz`), + // and the structure of the claim value will be preserved in the metadata struct. + map dynamic_metadata_from_claims = 7; + + repeated ClaimToHeader claims_to_headers = 8; + + oneof Provider { + Default default = 26; + Azure azure = 27; + } + + // No-op, represents default OIDC behavior + message Default {} } message PlainOAuth2Config { @@ -2120,11 +2165,12 @@ message ExtAuthConfig { oneof storage_backend { K8sSecretApiKeyStorage k8s_secret_apikey_storage = 4; AerospikeApiKeyStorage aerospike_apikey_storage = 5; + ServerDefaultApiKeyStorage server_default_apikey_storage = 7; } - // API key metadata may contain data is is invalid for a header, such as a newline. By default, this data will be validated - // in the data plane and mitigated in a way that provides a consistent experience for the user and visibility for the operator. - // This validation comes with a performance cost, and can be disabled by setting this field to `true`. + // API key metadata may contain data is is invalid for a header, such as a newline. By default, this data will be validated + // in the data plane and mitigated in a way that provides a consistent experience for the user and visibility for the operator. + // This validation comes with a performance cost, and can be disabled by setting this field to `true`. bool skip_metadata_validation = 6; } diff --git a/api/gloo/gateway/v1/route_table.proto b/api/gloo/gateway/v1/route_table.proto index 2d3cc2b5..03fdbc3d 100644 --- a/api/gloo/gateway/v1/route_table.proto +++ b/api/gloo/gateway/v1/route_table.proto @@ -169,10 +169,11 @@ message RouteTableSpec { // The list of routes for the route table repeated Route routes = 1; - // When a delegated route defines a `RouteTableSelector` that matches multiple route tables, Gloo will inspect this - // field to determine the order in which the route tables are to be evaluated. This determines the order in which + // When a delegated route in a VirtualService or RouteTable defines a `RouteTableSelector` that matches + // multiple route tables, Gloo will inspect this field to determine the order in which + // the route tables are to be evaluated. This determines the order in which // the routes will appear on the final `Proxy` resource. The field is optional; if no value is specified, the weight - // defaults to 0 (zero). + // defaults to 0 (zero). Note that this field is ignored if it is not used in a route delegation scenario. // // Gloo will process the route tables matched by a selector in ascending order by weight and collect the routes of // each route table in the order they are defined. If multiple route tables define the same weight, Gloo will sort the diff --git a/api/gloo/gloo/v1/enterprise/options/ai/ai.proto b/api/gloo/gloo/v1/enterprise/options/ai/ai.proto index cad61150..5ed6ac09 100644 --- a/api/gloo/gloo/v1/enterprise/options/ai/ai.proto +++ b/api/gloo/gloo/v1/enterprise/options/ai/ai.proto @@ -3,10 +3,7 @@ package ai.options.gloo.solo.io; option go_package = "github.com/solo-io/solo-apis/pkg/api/gloo.solo.io/v1/enterprise/options/ai"; import "github.com/solo-io/solo-kit/api/v1/ref.proto"; -import "google/protobuf/wrappers.proto"; import "google/protobuf/struct.proto"; -import "google/protobuf/duration.proto"; -import "google/protobuf/empty.proto"; import "extproto/ext.proto"; option (extproto.equal_all) = true; option (extproto.hash_all) = true; @@ -553,14 +550,36 @@ message AIPromptGuard { SSN = 0; // Default REGEX for Credit Card Numbers CREDIT_CARD = 1; + // Default REGEX for Phone Numbers + PHONE_NUMBER = 2; + // Default REGEX for Email Addresses + EMAIL = 3; + } + + message RegexMatch { + // The regex pattern to match against the response. + string pattern = 1; + // An optional name for this match which can be used for debugging purposes. + string name = 2; } // A list of Regex patterns to match against the response. // All matches will be masked before being sent back to the client. // matches and builtins are additive. - repeated string matches = 1; + repeated RegexMatch matches = 1; // A list of built-in regexes to mask in the response. // matches and builtins are additive. repeated BuiltIn builtins = 2; + + enum Action { + // Mask the response if the regex matches + MASK = 0; + // Reject the request if the regex matches + REJECT = 1; + } + + // The action to take if the regex matches + // NOTE: This will only apply to request matches, response matches will always mask + Action action = 3; } // Webhook settings for prompt guard @@ -588,7 +607,7 @@ message AIPromptGuard { MatchType match_type = 2; } // Headers to forward with the request - repeated HeaderMatch headers = 3; + repeated HeaderMatch forwardHeaders = 3; } diff --git a/api/gloo/gloo/v1/load_balancer.proto b/api/gloo/gloo/v1/load_balancer.proto index 19f99597..0b0e537a 100644 --- a/api/gloo/gloo/v1/load_balancer.proto +++ b/api/gloo/gloo/v1/load_balancer.proto @@ -107,4 +107,16 @@ message LoadBalancerConfig { // If not specified, the default is 10%. google.protobuf.DoubleValue min_weight_percent = 3; } + + // If set to true, the load balancer will drain connections when the host set changes. + // + // Ring Hash or Maglev can be used to ensure that clients with the same key + // are routed to the same upstream host. + // Distruptions can cause new connections with the same key as existing connections + // to be routed to different hosts. + // Enabling this feature will cause the load balancer to drain existing connections + // when the host set changes, ensuring that new connections with the same key are + // consistently routed to the same host. + // Connections are not immediately closed, but are allowed to drain. + bool close_connections_on_host_set_change = 10; } diff --git a/api/gloo/gloo/v1/settings.proto b/api/gloo/gloo/v1/settings.proto index 849f610e..3e181d8c 100644 --- a/api/gloo/gloo/v1/settings.proto +++ b/api/gloo/gloo/v1/settings.proto @@ -908,7 +908,8 @@ message GatewayOptions { // validation mode. This has an negative impact on the total translation throughput, but it // helps ensure the configuration will not be nacked when served to Envoy. // - // This feature is not yet implemented. + // This feature is disabled by default and is not recommended for production deployments unless + // the performance implications are well understood and acceptable. google.protobuf.BoolValue full_envoy_validation = 14; } diff --git a/pkg/api/enterprise.gloo.solo.io/v1/auth_config.pb.clone.go b/pkg/api/enterprise.gloo.solo.io/v1/auth_config.pb.clone.go index b1cb6fd1..24b4601d 100644 --- a/pkg/api/enterprise.gloo.solo.io/v1/auth_config.pb.clone.go +++ b/pkg/api/enterprise.gloo.solo.io/v1/auth_config.pb.clone.go @@ -752,6 +752,33 @@ func (m *ClaimToHeader) Clone() proto.Message { return target } +// Clone function +func (m *Azure) Clone() proto.Message { + var target *Azure + if m == nil { + return target + } + target = &Azure{} + + target.ClientId = m.GetClientId() + + target.TenantId = m.GetTenantId() + + if h, ok := interface{}(m.GetClientSecret()).(clone.Cloner); ok { + target.ClientSecret = h.Clone().(*github_com_solo_io_solo_kit_pkg_api_v1_resources_core.ResourceRef) + } else { + target.ClientSecret = proto.Clone(m.GetClientSecret()).(*github_com_solo_io_solo_kit_pkg_api_v1_resources_core.ResourceRef) + } + + if h, ok := interface{}(m.GetClaimsCachingOptions()).(clone.Cloner); ok { + target.ClaimsCachingOptions = h.Clone().(*RedisOptions) + } else { + target.ClaimsCachingOptions = proto.Clone(m.GetClaimsCachingOptions()).(*RedisOptions) + } + + return target +} + // Clone function func (m *OidcAuthorizationCode) Clone() proto.Message { var target *OidcAuthorizationCode @@ -904,15 +931,15 @@ func (m *OidcAuthorizationCode) Clone() proto.Message { } } - case *OidcAuthorizationCode_Azure_: + case *OidcAuthorizationCode_Azure: if h, ok := interface{}(m.GetAzure()).(clone.Cloner); ok { - target.Provider = &OidcAuthorizationCode_Azure_{ - Azure: h.Clone().(*OidcAuthorizationCode_Azure), + target.Provider = &OidcAuthorizationCode_Azure{ + Azure: h.Clone().(*Azure), } } else { - target.Provider = &OidcAuthorizationCode_Azure_{ - Azure: proto.Clone(m.GetAzure()).(*OidcAuthorizationCode_Azure), + target.Provider = &OidcAuthorizationCode_Azure{ + Azure: proto.Clone(m.GetAzure()).(*Azure), } } @@ -1088,6 +1115,19 @@ func (m *AccessTokenValidation) Clone() proto.Message { } } + if m.GetClaimsToHeaders() != nil { + target.ClaimsToHeaders = make([]*ClaimToHeader, len(m.GetClaimsToHeaders())) + for idx, v := range m.GetClaimsToHeaders() { + + if h, ok := interface{}(v).(clone.Cloner); ok { + target.ClaimsToHeaders[idx] = h.Clone().(*ClaimToHeader) + } else { + target.ClaimsToHeaders[idx] = proto.Clone(v).(*ClaimToHeader) + } + + } + } + switch m.ValidationType.(type) { case *AccessTokenValidation_IntrospectionUrl: @@ -1138,6 +1178,34 @@ func (m *AccessTokenValidation) Clone() proto.Message { } + switch m.Provider.(type) { + + case *AccessTokenValidation_Default_: + + if h, ok := interface{}(m.GetDefault()).(clone.Cloner); ok { + target.Provider = &AccessTokenValidation_Default_{ + Default: h.Clone().(*AccessTokenValidation_Default), + } + } else { + target.Provider = &AccessTokenValidation_Default_{ + Default: proto.Clone(m.GetDefault()).(*AccessTokenValidation_Default), + } + } + + case *AccessTokenValidation_Azure: + + if h, ok := interface{}(m.GetAzure()).(clone.Cloner); ok { + target.Provider = &AccessTokenValidation_Azure{ + Azure: h.Clone().(*Azure), + } + } else { + target.Provider = &AccessTokenValidation_Azure{ + Azure: proto.Clone(m.GetAzure()).(*Azure), + } + } + + } + return target } @@ -1361,6 +1429,17 @@ func (m *AerospikeApiKeyStorage) Clone() proto.Message { return target } +// Clone function +func (m *ServerDefaultApiKeyStorage) Clone() proto.Message { + var target *ServerDefaultApiKeyStorage + if m == nil { + return target + } + target = &ServerDefaultApiKeyStorage{} + + return target +} + // Clone function func (m *ApiKey) Clone() proto.Message { var target *ApiKey @@ -2621,33 +2700,6 @@ func (m *OidcAuthorizationCode_Default) Clone() proto.Message { return target } -// Clone function -func (m *OidcAuthorizationCode_Azure) Clone() proto.Message { - var target *OidcAuthorizationCode_Azure - if m == nil { - return target - } - target = &OidcAuthorizationCode_Azure{} - - target.ClientId = m.GetClientId() - - target.TenantId = m.GetTenantId() - - if h, ok := interface{}(m.GetClientSecret()).(clone.Cloner); ok { - target.ClientSecret = h.Clone().(*github_com_solo_io_solo_kit_pkg_api_v1_resources_core.ResourceRef) - } else { - target.ClientSecret = proto.Clone(m.GetClientSecret()).(*github_com_solo_io_solo_kit_pkg_api_v1_resources_core.ResourceRef) - } - - if h, ok := interface{}(m.GetClaimsCachingOptions()).(clone.Cloner); ok { - target.ClaimsCachingOptions = h.Clone().(*RedisOptions) - } else { - target.ClaimsCachingOptions = proto.Clone(m.GetClaimsCachingOptions()).(*RedisOptions) - } - - return target -} - // Clone function func (m *OidcAuthorizationCode_FrontChannelLogout) Clone() proto.Message { var target *OidcAuthorizationCode_FrontChannelLogout @@ -2739,6 +2791,17 @@ func (m *JwtValidation_LocalJwks) Clone() proto.Message { return target } +// Clone function +func (m *AccessTokenValidation_Default) Clone() proto.Message { + var target *AccessTokenValidation_Default + if m == nil { + return target + } + target = &AccessTokenValidation_Default{} + + return target +} + // Clone function func (m *AccessTokenValidation_ScopeList) Clone() proto.Message { var target *AccessTokenValidation_ScopeList @@ -2992,6 +3055,46 @@ func (m *PassThroughHttp_Response) Clone() proto.Message { return target } +// Clone function +func (m *ExtAuthConfig_Azure) Clone() proto.Message { + var target *ExtAuthConfig_Azure + if m == nil { + return target + } + target = &ExtAuthConfig_Azure{} + + target.ClientId = m.GetClientId() + + target.TenantId = m.GetTenantId() + + target.ClientSecret = m.GetClientSecret() + + if h, ok := interface{}(m.GetClaimsCachingOptions()).(clone.Cloner); ok { + target.ClaimsCachingOptions = h.Clone().(*RedisOptions) + } else { + target.ClaimsCachingOptions = proto.Clone(m.GetClaimsCachingOptions()).(*RedisOptions) + } + + return target +} + +// Clone function +func (m *ExtAuthConfig_ClaimToHeader) Clone() proto.Message { + var target *ExtAuthConfig_ClaimToHeader + if m == nil { + return target + } + target = &ExtAuthConfig_ClaimToHeader{} + + target.Claim = m.GetClaim() + + target.Header = m.GetHeader() + + target.Append = m.GetAppend() + + return target +} + // Clone function func (m *ExtAuthConfig_BasicAuthInternal) Clone() proto.Message { var target *ExtAuthConfig_BasicAuthInternal @@ -3244,6 +3347,15 @@ func (m *ExtAuthConfig_OidcAuthorizationCodeConfig) Clone() proto.Message { target.FrontChannelLogout = proto.Clone(m.GetFrontChannelLogout()).(*ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout) } + if m.GetDynamicMetadataFromClaims() != nil { + target.DynamicMetadataFromClaims = make(map[string]string, len(m.GetDynamicMetadataFromClaims())) + for k, v := range m.GetDynamicMetadataFromClaims() { + + target.DynamicMetadataFromClaims[k] = v + + } + } + switch m.Provider.(type) { case *ExtAuthConfig_OidcAuthorizationCodeConfig_Default_: @@ -3258,15 +3370,15 @@ func (m *ExtAuthConfig_OidcAuthorizationCodeConfig) Clone() proto.Message { } } - case *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure_: + case *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure: if h, ok := interface{}(m.GetAzure()).(clone.Cloner); ok { - target.Provider = &ExtAuthConfig_OidcAuthorizationCodeConfig_Azure_{ - Azure: h.Clone().(*ExtAuthConfig_OidcAuthorizationCodeConfig_Azure), + target.Provider = &ExtAuthConfig_OidcAuthorizationCodeConfig_Azure{ + Azure: h.Clone().(*ExtAuthConfig_Azure), } } else { - target.Provider = &ExtAuthConfig_OidcAuthorizationCodeConfig_Azure_{ - Azure: proto.Clone(m.GetAzure()).(*ExtAuthConfig_OidcAuthorizationCodeConfig_Azure), + target.Provider = &ExtAuthConfig_OidcAuthorizationCodeConfig_Azure{ + Azure: proto.Clone(m.GetAzure()).(*ExtAuthConfig_Azure), } } @@ -3291,6 +3403,28 @@ func (m *ExtAuthConfig_AccessTokenValidationConfig) Clone() proto.Message { target.CacheTimeout = proto.Clone(m.GetCacheTimeout()).(*github_com_golang_protobuf_ptypes_duration.Duration) } + if m.GetDynamicMetadataFromClaims() != nil { + target.DynamicMetadataFromClaims = make(map[string]string, len(m.GetDynamicMetadataFromClaims())) + for k, v := range m.GetDynamicMetadataFromClaims() { + + target.DynamicMetadataFromClaims[k] = v + + } + } + + if m.GetClaimsToHeaders() != nil { + target.ClaimsToHeaders = make([]*ExtAuthConfig_ClaimToHeader, len(m.GetClaimsToHeaders())) + for idx, v := range m.GetClaimsToHeaders() { + + if h, ok := interface{}(v).(clone.Cloner); ok { + target.ClaimsToHeaders[idx] = h.Clone().(*ExtAuthConfig_ClaimToHeader) + } else { + target.ClaimsToHeaders[idx] = proto.Clone(v).(*ExtAuthConfig_ClaimToHeader) + } + + } + } + switch m.ValidationType.(type) { case *ExtAuthConfig_AccessTokenValidationConfig_IntrospectionUrl: @@ -3341,6 +3475,34 @@ func (m *ExtAuthConfig_AccessTokenValidationConfig) Clone() proto.Message { } + switch m.Provider.(type) { + + case *ExtAuthConfig_AccessTokenValidationConfig_Default_: + + if h, ok := interface{}(m.GetDefault()).(clone.Cloner); ok { + target.Provider = &ExtAuthConfig_AccessTokenValidationConfig_Default_{ + Default: h.Clone().(*ExtAuthConfig_AccessTokenValidationConfig_Default), + } + } else { + target.Provider = &ExtAuthConfig_AccessTokenValidationConfig_Default_{ + Default: proto.Clone(m.GetDefault()).(*ExtAuthConfig_AccessTokenValidationConfig_Default), + } + } + + case *ExtAuthConfig_AccessTokenValidationConfig_Azure: + + if h, ok := interface{}(m.GetAzure()).(clone.Cloner); ok { + target.Provider = &ExtAuthConfig_AccessTokenValidationConfig_Azure{ + Azure: h.Clone().(*ExtAuthConfig_Azure), + } + } else { + target.Provider = &ExtAuthConfig_AccessTokenValidationConfig_Azure{ + Azure: proto.Clone(m.GetAzure()).(*ExtAuthConfig_Azure), + } + } + + } + return target } @@ -3523,6 +3685,18 @@ func (m *ExtAuthConfig_ApiKeyAuthConfig) Clone() proto.Message { } } + case *ExtAuthConfig_ApiKeyAuthConfig_ServerDefaultApikeyStorage: + + if h, ok := interface{}(m.GetServerDefaultApikeyStorage()).(clone.Cloner); ok { + target.StorageBackend = &ExtAuthConfig_ApiKeyAuthConfig_ServerDefaultApikeyStorage{ + ServerDefaultApikeyStorage: h.Clone().(*ServerDefaultApiKeyStorage), + } + } else { + target.StorageBackend = &ExtAuthConfig_ApiKeyAuthConfig_ServerDefaultApikeyStorage{ + ServerDefaultApikeyStorage: proto.Clone(m.GetServerDefaultApikeyStorage()).(*ServerDefaultApiKeyStorage), + } + } + } return target @@ -4010,23 +4184,6 @@ func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConf return target } -// Clone function -func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) Clone() proto.Message { - var target *ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader - if m == nil { - return target - } - target = &ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader{} - - target.Claim = m.GetClaim() - - target.Header = m.GetHeader() - - target.Append = m.GetAppend() - - return target -} - // Clone function func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken) Clone() proto.Message { var target *ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken @@ -4036,13 +4193,13 @@ func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken) Clone() proto.Me target = &ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken{} if m.GetClaimsToHeaders() != nil { - target.ClaimsToHeaders = make([]*ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader, len(m.GetClaimsToHeaders())) + target.ClaimsToHeaders = make([]*ExtAuthConfig_ClaimToHeader, len(m.GetClaimsToHeaders())) for idx, v := range m.GetClaimsToHeaders() { if h, ok := interface{}(v).(clone.Cloner); ok { - target.ClaimsToHeaders[idx] = h.Clone().(*ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) + target.ClaimsToHeaders[idx] = h.Clone().(*ExtAuthConfig_ClaimToHeader) } else { - target.ClaimsToHeaders[idx] = proto.Clone(v).(*ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) + target.ClaimsToHeaders[idx] = proto.Clone(v).(*ExtAuthConfig_ClaimToHeader) } } @@ -4060,13 +4217,13 @@ func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_IdentityToken) Clone() proto. target = &ExtAuthConfig_OidcAuthorizationCodeConfig_IdentityToken{} if m.GetClaimsToHeaders() != nil { - target.ClaimsToHeaders = make([]*ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader, len(m.GetClaimsToHeaders())) + target.ClaimsToHeaders = make([]*ExtAuthConfig_ClaimToHeader, len(m.GetClaimsToHeaders())) for idx, v := range m.GetClaimsToHeaders() { if h, ok := interface{}(v).(clone.Cloner); ok { - target.ClaimsToHeaders[idx] = h.Clone().(*ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) + target.ClaimsToHeaders[idx] = h.Clone().(*ExtAuthConfig_ClaimToHeader) } else { - target.ClaimsToHeaders[idx] = proto.Clone(v).(*ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) + target.ClaimsToHeaders[idx] = proto.Clone(v).(*ExtAuthConfig_ClaimToHeader) } } @@ -4086,29 +4243,6 @@ func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_Default) Clone() proto.Messag return target } -// Clone function -func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure) Clone() proto.Message { - var target *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure - if m == nil { - return target - } - target = &ExtAuthConfig_OidcAuthorizationCodeConfig_Azure{} - - target.ClientId = m.GetClientId() - - target.TenantId = m.GetTenantId() - - target.ClientSecret = m.GetClientSecret() - - if h, ok := interface{}(m.GetClaimsCachingOptions()).(clone.Cloner); ok { - target.ClaimsCachingOptions = h.Clone().(*RedisOptions) - } else { - target.ClaimsCachingOptions = proto.Clone(m.GetClaimsCachingOptions()).(*RedisOptions) - } - - return target -} - // Clone function func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout) Clone() proto.Message { var target *ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout @@ -4202,6 +4336,17 @@ func (m *ExtAuthConfig_AccessTokenValidationConfig_ScopeList) Clone() proto.Mess return target } +// Clone function +func (m *ExtAuthConfig_AccessTokenValidationConfig_Default) Clone() proto.Message { + var target *ExtAuthConfig_AccessTokenValidationConfig_Default + if m == nil { + return target + } + target = &ExtAuthConfig_AccessTokenValidationConfig_Default{} + + return target +} + // Clone function func (m *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks) Clone() proto.Message { var target *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks diff --git a/pkg/api/enterprise.gloo.solo.io/v1/auth_config.pb.equal.go b/pkg/api/enterprise.gloo.solo.io/v1/auth_config.pb.equal.go index 5cc68c97..36580c5d 100644 --- a/pkg/api/enterprise.gloo.solo.io/v1/auth_config.pb.equal.go +++ b/pkg/api/enterprise.gloo.solo.io/v1/auth_config.pb.equal.go @@ -1272,6 +1272,58 @@ func (m *ClaimToHeader) Equal(that interface{}) bool { return true } +// Equal function +func (m *Azure) Equal(that interface{}) bool { + if that == nil { + return m == nil + } + + target, ok := that.(*Azure) + if !ok { + that2, ok := that.(Azure) + if ok { + target = &that2 + } else { + return false + } + } + if target == nil { + return m == nil + } else if m == nil { + return false + } + + if strings.Compare(m.GetClientId(), target.GetClientId()) != 0 { + return false + } + + if strings.Compare(m.GetTenantId(), target.GetTenantId()) != 0 { + return false + } + + if h, ok := interface{}(m.GetClientSecret()).(equality.Equalizer); ok { + if !h.Equal(target.GetClientSecret()) { + return false + } + } else { + if !proto.Equal(m.GetClientSecret(), target.GetClientSecret()) { + return false + } + } + + if h, ok := interface{}(m.GetClaimsCachingOptions()).(equality.Equalizer); ok { + if !h.Equal(target.GetClaimsCachingOptions()) { + return false + } + } else { + if !proto.Equal(m.GetClaimsCachingOptions(), target.GetClaimsCachingOptions()) { + return false + } + } + + return true +} + // Equal function func (m *OidcAuthorizationCode) Equal(that interface{}) bool { if that == nil { @@ -1516,8 +1568,8 @@ func (m *OidcAuthorizationCode) Equal(that interface{}) bool { } } - case *OidcAuthorizationCode_Azure_: - if _, ok := target.Provider.(*OidcAuthorizationCode_Azure_); !ok { + case *OidcAuthorizationCode_Azure: + if _, ok := target.Provider.(*OidcAuthorizationCode_Azure); !ok { return false } @@ -1829,6 +1881,23 @@ func (m *AccessTokenValidation) Equal(that interface{}) bool { } + if len(m.GetClaimsToHeaders()) != len(target.GetClaimsToHeaders()) { + return false + } + for idx, v := range m.GetClaimsToHeaders() { + + if h, ok := interface{}(v).(equality.Equalizer); ok { + if !h.Equal(target.GetClaimsToHeaders()[idx]) { + return false + } + } else { + if !proto.Equal(v, target.GetClaimsToHeaders()[idx]) { + return false + } + } + + } + switch m.ValidationType.(type) { case *AccessTokenValidation_IntrospectionUrl: @@ -1901,6 +1970,45 @@ func (m *AccessTokenValidation) Equal(that interface{}) bool { } } + switch m.Provider.(type) { + + case *AccessTokenValidation_Default_: + if _, ok := target.Provider.(*AccessTokenValidation_Default_); !ok { + return false + } + + if h, ok := interface{}(m.GetDefault()).(equality.Equalizer); ok { + if !h.Equal(target.GetDefault()) { + return false + } + } else { + if !proto.Equal(m.GetDefault(), target.GetDefault()) { + return false + } + } + + case *AccessTokenValidation_Azure: + if _, ok := target.Provider.(*AccessTokenValidation_Azure); !ok { + return false + } + + if h, ok := interface{}(m.GetAzure()).(equality.Equalizer); ok { + if !h.Equal(target.GetAzure()) { + return false + } + } else { + if !proto.Equal(m.GetAzure(), target.GetAzure()) { + return false + } + } + + default: + // m is nil but target is not nil + if m.Provider != target.Provider { + return false + } + } + return true } @@ -2260,6 +2368,30 @@ func (m *AerospikeApiKeyStorage) Equal(that interface{}) bool { return true } +// Equal function +func (m *ServerDefaultApiKeyStorage) Equal(that interface{}) bool { + if that == nil { + return m == nil + } + + target, ok := that.(*ServerDefaultApiKeyStorage) + if !ok { + that2, ok := that.(ServerDefaultApiKeyStorage) + if ok { + target = &that2 + } else { + return false + } + } + if target == nil { + return m == nil + } else if m == nil { + return false + } + + return true +} + // Equal function func (m *ApiKey) Equal(that interface{}) bool { if that == nil { @@ -4413,58 +4545,6 @@ func (m *OidcAuthorizationCode_Default) Equal(that interface{}) bool { return true } -// Equal function -func (m *OidcAuthorizationCode_Azure) Equal(that interface{}) bool { - if that == nil { - return m == nil - } - - target, ok := that.(*OidcAuthorizationCode_Azure) - if !ok { - that2, ok := that.(OidcAuthorizationCode_Azure) - if ok { - target = &that2 - } else { - return false - } - } - if target == nil { - return m == nil - } else if m == nil { - return false - } - - if strings.Compare(m.GetClientId(), target.GetClientId()) != 0 { - return false - } - - if strings.Compare(m.GetTenantId(), target.GetTenantId()) != 0 { - return false - } - - if h, ok := interface{}(m.GetClientSecret()).(equality.Equalizer); ok { - if !h.Equal(target.GetClientSecret()) { - return false - } - } else { - if !proto.Equal(m.GetClientSecret(), target.GetClientSecret()) { - return false - } - } - - if h, ok := interface{}(m.GetClaimsCachingOptions()).(equality.Equalizer); ok { - if !h.Equal(target.GetClaimsCachingOptions()) { - return false - } - } else { - if !proto.Equal(m.GetClaimsCachingOptions(), target.GetClaimsCachingOptions()) { - return false - } - } - - return true -} - // Equal function func (m *OidcAuthorizationCode_FrontChannelLogout) Equal(that interface{}) bool { if that == nil { @@ -4647,6 +4727,30 @@ func (m *JwtValidation_LocalJwks) Equal(that interface{}) bool { return true } +// Equal function +func (m *AccessTokenValidation_Default) Equal(that interface{}) bool { + if that == nil { + return m == nil + } + + target, ok := that.(*AccessTokenValidation_Default) + if !ok { + that2, ok := that.(AccessTokenValidation_Default) + if ok { + target = &that2 + } else { + return false + } + } + if target == nil { + return m == nil + } else if m == nil { + return false + } + + return true +} + // Equal function func (m *AccessTokenValidation_ScopeList) Equal(that interface{}) bool { if that == nil { @@ -5098,6 +5202,88 @@ func (m *PassThroughHttp_Response) Equal(that interface{}) bool { return true } +// Equal function +func (m *ExtAuthConfig_Azure) Equal(that interface{}) bool { + if that == nil { + return m == nil + } + + target, ok := that.(*ExtAuthConfig_Azure) + if !ok { + that2, ok := that.(ExtAuthConfig_Azure) + if ok { + target = &that2 + } else { + return false + } + } + if target == nil { + return m == nil + } else if m == nil { + return false + } + + if strings.Compare(m.GetClientId(), target.GetClientId()) != 0 { + return false + } + + if strings.Compare(m.GetTenantId(), target.GetTenantId()) != 0 { + return false + } + + if strings.Compare(m.GetClientSecret(), target.GetClientSecret()) != 0 { + return false + } + + if h, ok := interface{}(m.GetClaimsCachingOptions()).(equality.Equalizer); ok { + if !h.Equal(target.GetClaimsCachingOptions()) { + return false + } + } else { + if !proto.Equal(m.GetClaimsCachingOptions(), target.GetClaimsCachingOptions()) { + return false + } + } + + return true +} + +// Equal function +func (m *ExtAuthConfig_ClaimToHeader) Equal(that interface{}) bool { + if that == nil { + return m == nil + } + + target, ok := that.(*ExtAuthConfig_ClaimToHeader) + if !ok { + that2, ok := that.(ExtAuthConfig_ClaimToHeader) + if ok { + target = &that2 + } else { + return false + } + } + if target == nil { + return m == nil + } else if m == nil { + return false + } + + if strings.Compare(m.GetClaim(), target.GetClaim()) != 0 { + return false + } + + if strings.Compare(m.GetHeader(), target.GetHeader()) != 0 { + return false + } + + if m.GetAppend() != target.GetAppend() { + return false + } + + return true +} + // Equal function func (m *ExtAuthConfig_BasicAuthInternal) Equal(that interface{}) bool { if that == nil { @@ -5523,6 +5709,17 @@ func (m *ExtAuthConfig_OidcAuthorizationCodeConfig) Equal(that interface{}) bool } } + if len(m.GetDynamicMetadataFromClaims()) != len(target.GetDynamicMetadataFromClaims()) { + return false + } + for k, v := range m.GetDynamicMetadataFromClaims() { + + if strings.Compare(v, target.GetDynamicMetadataFromClaims()[k]) != 0 { + return false + } + + } + switch m.Provider.(type) { case *ExtAuthConfig_OidcAuthorizationCodeConfig_Default_: @@ -5540,8 +5737,8 @@ func (m *ExtAuthConfig_OidcAuthorizationCodeConfig) Equal(that interface{}) bool } } - case *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure_: - if _, ok := target.Provider.(*ExtAuthConfig_OidcAuthorizationCodeConfig_Azure_); !ok { + case *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure: + if _, ok := target.Provider.(*ExtAuthConfig_OidcAuthorizationCodeConfig_Azure); !ok { return false } @@ -5600,6 +5797,34 @@ func (m *ExtAuthConfig_AccessTokenValidationConfig) Equal(that interface{}) bool } } + if len(m.GetDynamicMetadataFromClaims()) != len(target.GetDynamicMetadataFromClaims()) { + return false + } + for k, v := range m.GetDynamicMetadataFromClaims() { + + if strings.Compare(v, target.GetDynamicMetadataFromClaims()[k]) != 0 { + return false + } + + } + + if len(m.GetClaimsToHeaders()) != len(target.GetClaimsToHeaders()) { + return false + } + for idx, v := range m.GetClaimsToHeaders() { + + if h, ok := interface{}(v).(equality.Equalizer); ok { + if !h.Equal(target.GetClaimsToHeaders()[idx]) { + return false + } + } else { + if !proto.Equal(v, target.GetClaimsToHeaders()[idx]) { + return false + } + } + + } + switch m.ValidationType.(type) { case *ExtAuthConfig_AccessTokenValidationConfig_IntrospectionUrl: @@ -5672,6 +5897,45 @@ func (m *ExtAuthConfig_AccessTokenValidationConfig) Equal(that interface{}) bool } } + switch m.Provider.(type) { + + case *ExtAuthConfig_AccessTokenValidationConfig_Default_: + if _, ok := target.Provider.(*ExtAuthConfig_AccessTokenValidationConfig_Default_); !ok { + return false + } + + if h, ok := interface{}(m.GetDefault()).(equality.Equalizer); ok { + if !h.Equal(target.GetDefault()) { + return false + } + } else { + if !proto.Equal(m.GetDefault(), target.GetDefault()) { + return false + } + } + + case *ExtAuthConfig_AccessTokenValidationConfig_Azure: + if _, ok := target.Provider.(*ExtAuthConfig_AccessTokenValidationConfig_Azure); !ok { + return false + } + + if h, ok := interface{}(m.GetAzure()).(equality.Equalizer); ok { + if !h.Equal(target.GetAzure()) { + return false + } + } else { + if !proto.Equal(m.GetAzure(), target.GetAzure()) { + return false + } + } + + default: + // m is nil but target is not nil + if m.Provider != target.Provider { + return false + } + } + return true } @@ -5955,6 +6219,21 @@ func (m *ExtAuthConfig_ApiKeyAuthConfig) Equal(that interface{}) bool { } } + case *ExtAuthConfig_ApiKeyAuthConfig_ServerDefaultApikeyStorage: + if _, ok := target.StorageBackend.(*ExtAuthConfig_ApiKeyAuthConfig_ServerDefaultApikeyStorage); !ok { + return false + } + + if h, ok := interface{}(m.GetServerDefaultApikeyStorage()).(equality.Equalizer); ok { + if !h.Equal(target.GetServerDefaultApikeyStorage()) { + return false + } + } else { + if !proto.Equal(m.GetServerDefaultApikeyStorage(), target.GetServerDefaultApikeyStorage()) { + return false + } + } + default: // m is nil but target is not nil if m.StorageBackend != target.StorageBackend { @@ -6766,42 +7045,6 @@ func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConf return true } -// Equal function -func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) Equal(that interface{}) bool { - if that == nil { - return m == nil - } - - target, ok := that.(*ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) - if !ok { - that2, ok := that.(ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) - if ok { - target = &that2 - } else { - return false - } - } - if target == nil { - return m == nil - } else if m == nil { - return false - } - - if strings.Compare(m.GetClaim(), target.GetClaim()) != 0 { - return false - } - - if strings.Compare(m.GetHeader(), target.GetHeader()) != 0 { - return false - } - - if m.GetAppend() != target.GetAppend() { - return false - } - - return true -} - // Equal function func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken) Equal(that interface{}) bool { if that == nil { @@ -6908,52 +7151,6 @@ func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_Default) Equal(that interface return true } -// Equal function -func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure) Equal(that interface{}) bool { - if that == nil { - return m == nil - } - - target, ok := that.(*ExtAuthConfig_OidcAuthorizationCodeConfig_Azure) - if !ok { - that2, ok := that.(ExtAuthConfig_OidcAuthorizationCodeConfig_Azure) - if ok { - target = &that2 - } else { - return false - } - } - if target == nil { - return m == nil - } else if m == nil { - return false - } - - if strings.Compare(m.GetClientId(), target.GetClientId()) != 0 { - return false - } - - if strings.Compare(m.GetTenantId(), target.GetTenantId()) != 0 { - return false - } - - if strings.Compare(m.GetClientSecret(), target.GetClientSecret()) != 0 { - return false - } - - if h, ok := interface{}(m.GetClaimsCachingOptions()).(equality.Equalizer); ok { - if !h.Equal(target.GetClaimsCachingOptions()) { - return false - } - } else { - if !proto.Equal(m.GetClaimsCachingOptions(), target.GetClaimsCachingOptions()) { - return false - } - } - - return true -} - // Equal function func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout) Equal(that interface{}) bool { if that == nil { @@ -7124,6 +7321,30 @@ func (m *ExtAuthConfig_AccessTokenValidationConfig_ScopeList) Equal(that interfa return true } +// Equal function +func (m *ExtAuthConfig_AccessTokenValidationConfig_Default) Equal(that interface{}) bool { + if that == nil { + return m == nil + } + + target, ok := that.(*ExtAuthConfig_AccessTokenValidationConfig_Default) + if !ok { + that2, ok := that.(ExtAuthConfig_AccessTokenValidationConfig_Default) + if ok { + target = &that2 + } else { + return false + } + } + if target == nil { + return m == nil + } else if m == nil { + return false + } + + return true +} + // Equal function func (m *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks) Equal(that interface{}) bool { if that == nil { diff --git a/pkg/api/enterprise.gloo.solo.io/v1/auth_config.pb.go b/pkg/api/enterprise.gloo.solo.io/v1/auth_config.pb.go index 0c12c375..cf84e0e9 100644 --- a/pkg/api/enterprise.gloo.solo.io/v1/auth_config.pb.go +++ b/pkg/api/enterprise.gloo.solo.io/v1/auth_config.pb.go @@ -290,7 +290,7 @@ func (x AuthConfigStatus_State) Number() protoreflect.EnumNumber { // Deprecated: Use AuthConfigStatus_State.Descriptor instead. func (AuthConfigStatus_State) EnumDescriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{53, 0} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{55, 0} } // This is the user-facing auth configuration. When processed by Gloo, certain configuration types (i.a. oauth, opa) @@ -2206,6 +2206,91 @@ func (x *ClaimToHeader) GetAppend() bool { return false } +// For apps in Microsoft Azure, configure Microsoft Entra ID as the OpenID Connect (OIDC) provider. +// This way, you can enable distributed claims and caching for when users are members of more than 200 groups. +type Azure struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The client ID for the ExtAuthService app that is registered in MS Entra, + // to access the Microsoft Graph API to retrieve distributed claims. + // This app is NOT the app that you want to configure external auth for. + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + // The tenant ID represents the MS Entra organization ID where the ExtAuthService app is registered. + // This tenant ID may or may not be the same as in the top level `OidcAuthorizationCodeConfig`, + // depending on how your Azure account is provisioned. + TenantId string `protobuf:"bytes,2,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"` + // The client secret of the ExtAuthService app that is registered with MS Entra to communicate with the MS Graph API. + // The client secret data must be placed in a k8s secret under a key called 'client-secret'. + ClientSecret *core.ResourceRef `protobuf:"bytes,3,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` + // Redis connection details to cache MS Entera claims. + // This way, you avoid performance issues of accessing the Microsoft Graph API too many times. + // Note that this setting does NOT turn on Redis caching for the user session. + // To turn on Redis user session caching, use the `userSessionConfig` field. + ClaimsCachingOptions *RedisOptions `protobuf:"bytes,4,opt,name=claims_caching_options,json=claimsCachingOptions,proto3" json:"claims_caching_options,omitempty"` +} + +func (x *Azure) Reset() { + *x = Azure{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Azure) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Azure) ProtoMessage() {} + +func (x *Azure) ProtoReflect() protoreflect.Message { + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Azure.ProtoReflect.Descriptor instead. +func (*Azure) Descriptor() ([]byte, []int) { + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{22} +} + +func (x *Azure) GetClientId() string { + if x != nil { + return x.ClientId + } + return "" +} + +func (x *Azure) GetTenantId() string { + if x != nil { + return x.TenantId + } + return "" +} + +func (x *Azure) GetClientSecret() *core.ResourceRef { + if x != nil { + return x.ClientSecret + } + return nil +} + +func (x *Azure) GetClaimsCachingOptions() *RedisOptions { + if x != nil { + return x.ClaimsCachingOptions + } + return nil +} + type OidcAuthorizationCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2339,7 +2424,7 @@ type OidcAuthorizationCode struct { // Types that are assignable to Provider: // // *OidcAuthorizationCode_Default_ - // *OidcAuthorizationCode_Azure_ + // *OidcAuthorizationCode_Azure Provider isOidcAuthorizationCode_Provider `protobuf_oneof:"Provider"` // Configuration for front channel logout. This is used to log out the user from multiple apps/clients associated with one OpenId Provider (OP). // The path is registered with the OP and is called for each app/client that the user is logged into when the logout endpoint is called. @@ -2349,7 +2434,7 @@ type OidcAuthorizationCode struct { func (x *OidcAuthorizationCode) Reset() { *x = OidcAuthorizationCode{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[22] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2362,7 +2447,7 @@ func (x *OidcAuthorizationCode) String() string { func (*OidcAuthorizationCode) ProtoMessage() {} func (x *OidcAuthorizationCode) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[22] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2375,7 +2460,7 @@ func (x *OidcAuthorizationCode) ProtoReflect() protoreflect.Message { // Deprecated: Use OidcAuthorizationCode.ProtoReflect.Descriptor instead. func (*OidcAuthorizationCode) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{22} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{23} } func (x *OidcAuthorizationCode) GetClientId() string { @@ -2563,8 +2648,8 @@ func (x *OidcAuthorizationCode) GetDefault() *OidcAuthorizationCode_Default { return nil } -func (x *OidcAuthorizationCode) GetAzure() *OidcAuthorizationCode_Azure { - if x, ok := x.GetProvider().(*OidcAuthorizationCode_Azure_); ok { +func (x *OidcAuthorizationCode) GetAzure() *Azure { + if x, ok := x.GetProvider().(*OidcAuthorizationCode_Azure); ok { return x.Azure } return nil @@ -2585,13 +2670,13 @@ type OidcAuthorizationCode_Default_ struct { Default *OidcAuthorizationCode_Default `protobuf:"bytes,26,opt,name=default,proto3,oneof"` } -type OidcAuthorizationCode_Azure_ struct { - Azure *OidcAuthorizationCode_Azure `protobuf:"bytes,27,opt,name=azure,proto3,oneof"` +type OidcAuthorizationCode_Azure struct { + Azure *Azure `protobuf:"bytes,27,opt,name=azure,proto3,oneof"` } func (*OidcAuthorizationCode_Default_) isOidcAuthorizationCode_Provider() {} -func (*OidcAuthorizationCode_Azure_) isOidcAuthorizationCode_Provider() {} +func (*OidcAuthorizationCode_Azure) isOidcAuthorizationCode_Provider() {} type PlainOAuth2 struct { state protoimpl.MessageState @@ -2659,7 +2744,7 @@ type PlainOAuth2 struct { func (x *PlainOAuth2) Reset() { *x = PlainOAuth2{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[23] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2672,7 +2757,7 @@ func (x *PlainOAuth2) String() string { func (*PlainOAuth2) ProtoMessage() {} func (x *PlainOAuth2) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[23] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2685,7 +2770,7 @@ func (x *PlainOAuth2) ProtoReflect() protoreflect.Message { // Deprecated: Use PlainOAuth2.ProtoReflect.Descriptor instead. func (*PlainOAuth2) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{23} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{24} } func (x *PlainOAuth2) GetClientId() string { @@ -2822,7 +2907,7 @@ type JwtValidation struct { func (x *JwtValidation) Reset() { *x = JwtValidation{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[24] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2835,7 +2920,7 @@ func (x *JwtValidation) String() string { func (*JwtValidation) ProtoMessage() {} func (x *JwtValidation) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[24] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2848,7 +2933,7 @@ func (x *JwtValidation) ProtoReflect() protoreflect.Message { // Deprecated: Use JwtValidation.ProtoReflect.Descriptor instead. func (*JwtValidation) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{24} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{25} } func (m *JwtValidation) GetJwksSourceSpecifier() isJwtValidation_JwksSourceSpecifier { @@ -2935,7 +3020,7 @@ type IntrospectionValidation struct { func (x *IntrospectionValidation) Reset() { *x = IntrospectionValidation{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[25] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2948,7 +3033,7 @@ func (x *IntrospectionValidation) String() string { func (*IntrospectionValidation) ProtoMessage() {} func (x *IntrospectionValidation) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[25] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2961,7 +3046,7 @@ func (x *IntrospectionValidation) ProtoReflect() protoreflect.Message { // Deprecated: Use IntrospectionValidation.ProtoReflect.Descriptor instead. func (*IntrospectionValidation) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{25} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{26} } func (x *IntrospectionValidation) GetIntrospectionUrl() string { @@ -3038,12 +3123,19 @@ type AccessTokenValidation struct { // The metadata will live in a namespace specified by the canonical name of the ext auth filter (in our case `envoy.filters.http.ext_authz`), // and the structure of the claim value will be preserved in the metadata struct. DynamicMetadataFromClaims map[string]string `protobuf:"bytes,7,rep,name=dynamic_metadata_from_claims,json=dynamicMetadataFromClaims,proto3" json:"dynamic_metadata_from_claims,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // A list of claims to be mapped from the JWT token received by ext-auth-service to an upstream destination + ClaimsToHeaders []*ClaimToHeader `protobuf:"bytes,8,rep,name=claims_to_headers,json=claimsToHeaders,proto3" json:"claims_to_headers,omitempty"` + // Types that are assignable to Provider: + // + // *AccessTokenValidation_Default_ + // *AccessTokenValidation_Azure + Provider isAccessTokenValidation_Provider `protobuf_oneof:"Provider"` } func (x *AccessTokenValidation) Reset() { *x = AccessTokenValidation{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[26] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3056,7 +3148,7 @@ func (x *AccessTokenValidation) String() string { func (*AccessTokenValidation) ProtoMessage() {} func (x *AccessTokenValidation) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[26] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3069,7 +3161,7 @@ func (x *AccessTokenValidation) ProtoReflect() protoreflect.Message { // Deprecated: Use AccessTokenValidation.ProtoReflect.Descriptor instead. func (*AccessTokenValidation) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{26} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{27} } func (m *AccessTokenValidation) GetValidationType() isAccessTokenValidation_ValidationType { @@ -3136,6 +3228,34 @@ func (x *AccessTokenValidation) GetDynamicMetadataFromClaims() map[string]string return nil } +func (x *AccessTokenValidation) GetClaimsToHeaders() []*ClaimToHeader { + if x != nil { + return x.ClaimsToHeaders + } + return nil +} + +func (m *AccessTokenValidation) GetProvider() isAccessTokenValidation_Provider { + if m != nil { + return m.Provider + } + return nil +} + +func (x *AccessTokenValidation) GetDefault() *AccessTokenValidation_Default { + if x, ok := x.GetProvider().(*AccessTokenValidation_Default_); ok { + return x.Default + } + return nil +} + +func (x *AccessTokenValidation) GetAzure() *Azure { + if x, ok := x.GetProvider().(*AccessTokenValidation_Azure); ok { + return x.Azure + } + return nil +} + type isAccessTokenValidation_ValidationType interface { isAccessTokenValidation_ValidationType() } @@ -3189,6 +3309,22 @@ type AccessTokenValidation_RequiredScopes struct { func (*AccessTokenValidation_RequiredScopes) isAccessTokenValidation_ScopeValidation() {} +type isAccessTokenValidation_Provider interface { + isAccessTokenValidation_Provider() +} + +type AccessTokenValidation_Default_ struct { + Default *AccessTokenValidation_Default `protobuf:"bytes,9,opt,name=default,proto3,oneof"` +} + +type AccessTokenValidation_Azure struct { + Azure *Azure `protobuf:"bytes,10,opt,name=azure,proto3,oneof"` +} + +func (*AccessTokenValidation_Default_) isAccessTokenValidation_Provider() {} + +func (*AccessTokenValidation_Azure) isAccessTokenValidation_Provider() {} + type OauthSecret struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3200,7 +3336,7 @@ type OauthSecret struct { func (x *OauthSecret) Reset() { *x = OauthSecret{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[27] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3213,7 +3349,7 @@ func (x *OauthSecret) String() string { func (*OauthSecret) ProtoMessage() {} func (x *OauthSecret) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[27] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3226,7 +3362,7 @@ func (x *OauthSecret) ProtoReflect() protoreflect.Message { // Deprecated: Use OauthSecret.ProtoReflect.Descriptor instead. func (*OauthSecret) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{27} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{28} } func (x *OauthSecret) GetClientSecret() string { @@ -3294,7 +3430,7 @@ type ApiKeyAuth struct { func (x *ApiKeyAuth) Reset() { *x = ApiKeyAuth{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[28] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3307,7 +3443,7 @@ func (x *ApiKeyAuth) String() string { func (*ApiKeyAuth) ProtoMessage() {} func (x *ApiKeyAuth) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[28] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3320,7 +3456,7 @@ func (x *ApiKeyAuth) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiKeyAuth.ProtoReflect.Descriptor instead. func (*ApiKeyAuth) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{28} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{29} } // Deprecated: Marked as deprecated in github.com/solo-io/solo-apis/api/gloo/enterprise.gloo/v1/auth_config.proto. @@ -3421,7 +3557,7 @@ type K8SSecretApiKeyStorage struct { func (x *K8SSecretApiKeyStorage) Reset() { *x = K8SSecretApiKeyStorage{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[29] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3434,7 +3570,7 @@ func (x *K8SSecretApiKeyStorage) String() string { func (*K8SSecretApiKeyStorage) ProtoMessage() {} func (x *K8SSecretApiKeyStorage) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[29] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3447,7 +3583,7 @@ func (x *K8SSecretApiKeyStorage) ProtoReflect() protoreflect.Message { // Deprecated: Use K8SSecretApiKeyStorage.ProtoReflect.Descriptor instead. func (*K8SSecretApiKeyStorage) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{29} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{30} } func (x *K8SSecretApiKeyStorage) GetLabelSelector() map[string]string { @@ -3517,7 +3653,7 @@ type AerospikeApiKeyStorage struct { func (x *AerospikeApiKeyStorage) Reset() { *x = AerospikeApiKeyStorage{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[30] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3530,7 +3666,7 @@ func (x *AerospikeApiKeyStorage) String() string { func (*AerospikeApiKeyStorage) ProtoMessage() {} func (x *AerospikeApiKeyStorage) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[30] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3543,7 +3679,7 @@ func (x *AerospikeApiKeyStorage) ProtoReflect() protoreflect.Message { // Deprecated: Use AerospikeApiKeyStorage.ProtoReflect.Descriptor instead. func (*AerospikeApiKeyStorage) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{30} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{31} } func (x *AerospikeApiKeyStorage) GetHostname() string { @@ -3690,6 +3826,45 @@ func (*AerospikeApiKeyStorage_CommitAll) isAerospikeApiKeyStorage_CommitLevel() func (*AerospikeApiKeyStorage_CommitMaster) isAerospikeApiKeyStorage_CommitLevel() {} +// When no storage backend is specified, the default storage backend defined in the extauth server is used. +type ServerDefaultApiKeyStorage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ServerDefaultApiKeyStorage) Reset() { + *x = ServerDefaultApiKeyStorage{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerDefaultApiKeyStorage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerDefaultApiKeyStorage) ProtoMessage() {} + +func (x *ServerDefaultApiKeyStorage) ProtoReflect() protoreflect.Message { + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServerDefaultApiKeyStorage.ProtoReflect.Descriptor instead. +func (*ServerDefaultApiKeyStorage) Descriptor() ([]byte, []int) { + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{32} +} + type ApiKey struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3709,7 +3884,7 @@ type ApiKey struct { func (x *ApiKey) Reset() { *x = ApiKey{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[31] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3722,7 +3897,7 @@ func (x *ApiKey) String() string { func (*ApiKey) ProtoMessage() {} func (x *ApiKey) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[31] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3735,7 +3910,7 @@ func (x *ApiKey) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiKey.ProtoReflect.Descriptor instead. func (*ApiKey) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{31} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{33} } func (x *ApiKey) GetApiKey() string { @@ -3784,7 +3959,7 @@ type ApiKeySecret struct { func (x *ApiKeySecret) Reset() { *x = ApiKeySecret{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[32] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3797,7 +3972,7 @@ func (x *ApiKeySecret) String() string { func (*ApiKeySecret) ProtoMessage() {} func (x *ApiKeySecret) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[32] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3810,7 +3985,7 @@ func (x *ApiKeySecret) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiKeySecret.ProtoReflect.Descriptor instead. func (*ApiKeySecret) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{32} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{34} } func (x *ApiKeySecret) GetApiKey() string { @@ -3861,7 +4036,7 @@ type OpaAuth struct { func (x *OpaAuth) Reset() { *x = OpaAuth{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[33] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3874,7 +4049,7 @@ func (x *OpaAuth) String() string { func (*OpaAuth) ProtoMessage() {} func (x *OpaAuth) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[33] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3887,7 +4062,7 @@ func (x *OpaAuth) ProtoReflect() protoreflect.Message { // Deprecated: Use OpaAuth.ProtoReflect.Descriptor instead. func (*OpaAuth) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{33} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{35} } func (x *OpaAuth) GetModules() []*core.ResourceRef { @@ -3940,7 +4115,7 @@ type OpaAuthOptions struct { func (x *OpaAuthOptions) Reset() { *x = OpaAuthOptions{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[34] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3953,7 +4128,7 @@ func (x *OpaAuthOptions) String() string { func (*OpaAuthOptions) ProtoMessage() {} func (x *OpaAuthOptions) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[34] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3966,7 +4141,7 @@ func (x *OpaAuthOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use OpaAuthOptions.ProtoReflect.Descriptor instead. func (*OpaAuthOptions) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{34} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{36} } func (x *OpaAuthOptions) GetFastInputConversion() bool { @@ -4015,7 +4190,7 @@ type OpaServerAuth struct { func (x *OpaServerAuth) Reset() { *x = OpaServerAuth{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[35] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4028,7 +4203,7 @@ func (x *OpaServerAuth) String() string { func (*OpaServerAuth) ProtoMessage() {} func (x *OpaServerAuth) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[35] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4041,7 +4216,7 @@ func (x *OpaServerAuth) ProtoReflect() protoreflect.Message { // Deprecated: Use OpaServerAuth.ProtoReflect.Descriptor instead. func (*OpaServerAuth) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{35} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{37} } func (x *OpaServerAuth) GetPackage() string { @@ -4115,7 +4290,7 @@ type Ldap struct { func (x *Ldap) Reset() { *x = Ldap{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[36] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4128,7 +4303,7 @@ func (x *Ldap) String() string { func (*Ldap) ProtoMessage() {} func (x *Ldap) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[36] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4141,7 +4316,7 @@ func (x *Ldap) ProtoReflect() protoreflect.Message { // Deprecated: Use Ldap.ProtoReflect.Descriptor instead. func (*Ldap) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{36} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{38} } func (x *Ldap) GetAddress() string { @@ -4214,7 +4389,7 @@ type LdapServiceAccount struct { func (x *LdapServiceAccount) Reset() { *x = LdapServiceAccount{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[37] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4227,7 +4402,7 @@ func (x *LdapServiceAccount) String() string { func (*LdapServiceAccount) ProtoMessage() {} func (x *LdapServiceAccount) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[37] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4240,7 +4415,7 @@ func (x *LdapServiceAccount) ProtoReflect() protoreflect.Message { // Deprecated: Use LdapServiceAccount.ProtoReflect.Descriptor instead. func (*LdapServiceAccount) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{37} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{39} } func (x *LdapServiceAccount) GetCredentialsSecretRef() *core.ResourceRef { @@ -4281,7 +4456,7 @@ type PassThroughAuth struct { func (x *PassThroughAuth) Reset() { *x = PassThroughAuth{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[38] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4294,7 +4469,7 @@ func (x *PassThroughAuth) String() string { func (*PassThroughAuth) ProtoMessage() {} func (x *PassThroughAuth) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[38] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4307,7 +4482,7 @@ func (x *PassThroughAuth) ProtoReflect() protoreflect.Message { // Deprecated: Use PassThroughAuth.ProtoReflect.Descriptor instead. func (*PassThroughAuth) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{38} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{40} } func (m *PassThroughAuth) GetProtocol() isPassThroughAuth_Protocol { @@ -4378,7 +4553,7 @@ type BackoffStrategy struct { func (x *BackoffStrategy) Reset() { *x = BackoffStrategy{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[39] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4391,7 +4566,7 @@ func (x *BackoffStrategy) String() string { func (*BackoffStrategy) ProtoMessage() {} func (x *BackoffStrategy) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[39] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4404,7 +4579,7 @@ func (x *BackoffStrategy) ProtoReflect() protoreflect.Message { // Deprecated: Use BackoffStrategy.ProtoReflect.Descriptor instead. func (*BackoffStrategy) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{39} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{41} } func (x *BackoffStrategy) GetBaseInterval() *duration.Duration { @@ -4439,7 +4614,7 @@ type RetryPolicy struct { func (x *RetryPolicy) Reset() { *x = RetryPolicy{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[40] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4452,7 +4627,7 @@ func (x *RetryPolicy) String() string { func (*RetryPolicy) ProtoMessage() {} func (x *RetryPolicy) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[40] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4465,7 +4640,7 @@ func (x *RetryPolicy) ProtoReflect() protoreflect.Message { // Deprecated: Use RetryPolicy.ProtoReflect.Descriptor instead. func (*RetryPolicy) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{40} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{42} } func (x *RetryPolicy) GetNumRetries() *wrappers.UInt32Value { @@ -4527,7 +4702,7 @@ type PassThroughGrpc struct { func (x *PassThroughGrpc) Reset() { *x = PassThroughGrpc{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[41] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4540,7 +4715,7 @@ func (x *PassThroughGrpc) String() string { func (*PassThroughGrpc) ProtoMessage() {} func (x *PassThroughGrpc) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[41] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4553,7 +4728,7 @@ func (x *PassThroughGrpc) ProtoReflect() protoreflect.Message { // Deprecated: Use PassThroughGrpc.ProtoReflect.Descriptor instead. func (*PassThroughGrpc) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{41} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{43} } func (x *PassThroughGrpc) GetAddress() string { @@ -4594,7 +4769,7 @@ type PassThroughGrpcTLSConfig struct { func (x *PassThroughGrpcTLSConfig) Reset() { *x = PassThroughGrpcTLSConfig{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[42] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4607,7 +4782,7 @@ func (x *PassThroughGrpcTLSConfig) String() string { func (*PassThroughGrpcTLSConfig) ProtoMessage() {} func (x *PassThroughGrpcTLSConfig) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[42] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4620,7 +4795,7 @@ func (x *PassThroughGrpcTLSConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use PassThroughGrpcTLSConfig.ProtoReflect.Descriptor instead. func (*PassThroughGrpcTLSConfig) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{42} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44} } // Authorizes requests by making a POST HTTP/1 request to a custom HTTP auth server @@ -4652,7 +4827,7 @@ type PassThroughHttp struct { func (x *PassThroughHttp) Reset() { *x = PassThroughHttp{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[43] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4665,7 +4840,7 @@ func (x *PassThroughHttp) String() string { func (*PassThroughHttp) ProtoMessage() {} func (x *PassThroughHttp) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[43] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4678,7 +4853,7 @@ func (x *PassThroughHttp) ProtoReflect() protoreflect.Message { // Deprecated: Use PassThroughHttp.ProtoReflect.Descriptor instead. func (*PassThroughHttp) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{43} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{45} } func (x *PassThroughHttp) GetUrl() string { @@ -4746,7 +4921,7 @@ type ExtAuthConfig struct { func (x *ExtAuthConfig) Reset() { *x = ExtAuthConfig{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[44] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4759,7 +4934,7 @@ func (x *ExtAuthConfig) String() string { func (*ExtAuthConfig) ProtoMessage() {} func (x *ExtAuthConfig) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[44] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4772,7 +4947,7 @@ func (x *ExtAuthConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtAuthConfig.ProtoReflect.Descriptor instead. func (*ExtAuthConfig) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46} } func (x *ExtAuthConfig) GetAuthConfigRefName() string { @@ -4815,7 +4990,7 @@ type ApiKeyCreateRequest struct { func (x *ApiKeyCreateRequest) Reset() { *x = ApiKeyCreateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[45] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4828,7 +5003,7 @@ func (x *ApiKeyCreateRequest) String() string { func (*ApiKeyCreateRequest) ProtoMessage() {} func (x *ApiKeyCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[45] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4841,7 +5016,7 @@ func (x *ApiKeyCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiKeyCreateRequest.ProtoReflect.Descriptor instead. func (*ApiKeyCreateRequest) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{45} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{47} } func (x *ApiKeyCreateRequest) GetApiKeys() []*ApiKey { @@ -4869,7 +5044,7 @@ type ApiKeyCreateResponse struct { func (x *ApiKeyCreateResponse) Reset() { *x = ApiKeyCreateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[46] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4882,7 +5057,7 @@ func (x *ApiKeyCreateResponse) String() string { func (*ApiKeyCreateResponse) ProtoMessage() {} func (x *ApiKeyCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[46] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4895,7 +5070,7 @@ func (x *ApiKeyCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiKeyCreateResponse.ProtoReflect.Descriptor instead. func (*ApiKeyCreateResponse) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{48} } func (x *ApiKeyCreateResponse) GetApiKeys() []*ApiKey { @@ -4917,7 +5092,7 @@ type ApiKeyReadRequest struct { func (x *ApiKeyReadRequest) Reset() { *x = ApiKeyReadRequest{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[47] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4930,7 +5105,7 @@ func (x *ApiKeyReadRequest) String() string { func (*ApiKeyReadRequest) ProtoMessage() {} func (x *ApiKeyReadRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[47] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4943,7 +5118,7 @@ func (x *ApiKeyReadRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiKeyReadRequest.ProtoReflect.Descriptor instead. func (*ApiKeyReadRequest) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{47} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{49} } func (x *ApiKeyReadRequest) GetRawApiKeys() []string { @@ -4971,7 +5146,7 @@ type ApiKeyReadResponse struct { func (x *ApiKeyReadResponse) Reset() { *x = ApiKeyReadResponse{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[48] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4984,7 +5159,7 @@ func (x *ApiKeyReadResponse) String() string { func (*ApiKeyReadResponse) ProtoMessage() {} func (x *ApiKeyReadResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[48] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4997,7 +5172,7 @@ func (x *ApiKeyReadResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiKeyReadResponse.ProtoReflect.Descriptor instead. func (*ApiKeyReadResponse) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{48} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{50} } func (x *ApiKeyReadResponse) GetApiKeys() []*ApiKey { @@ -5020,7 +5195,7 @@ type ApiKeyUpdateRequest struct { func (x *ApiKeyUpdateRequest) Reset() { *x = ApiKeyUpdateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[49] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5033,7 +5208,7 @@ func (x *ApiKeyUpdateRequest) String() string { func (*ApiKeyUpdateRequest) ProtoMessage() {} func (x *ApiKeyUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[49] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5046,7 +5221,7 @@ func (x *ApiKeyUpdateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiKeyUpdateRequest.ProtoReflect.Descriptor instead. func (*ApiKeyUpdateRequest) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{49} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{51} } func (x *ApiKeyUpdateRequest) GetUpsert() bool { @@ -5081,7 +5256,7 @@ type ApiKeyUpdateResponse struct { func (x *ApiKeyUpdateResponse) Reset() { *x = ApiKeyUpdateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[50] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5094,7 +5269,7 @@ func (x *ApiKeyUpdateResponse) String() string { func (*ApiKeyUpdateResponse) ProtoMessage() {} func (x *ApiKeyUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[50] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5107,7 +5282,7 @@ func (x *ApiKeyUpdateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiKeyUpdateResponse.ProtoReflect.Descriptor instead. func (*ApiKeyUpdateResponse) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{50} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{52} } func (x *ApiKeyUpdateResponse) GetApiKeys() []*ApiKey { @@ -5129,7 +5304,7 @@ type ApiKeyDeleteRequest struct { func (x *ApiKeyDeleteRequest) Reset() { *x = ApiKeyDeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[51] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5142,7 +5317,7 @@ func (x *ApiKeyDeleteRequest) String() string { func (*ApiKeyDeleteRequest) ProtoMessage() {} func (x *ApiKeyDeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[51] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5155,7 +5330,7 @@ func (x *ApiKeyDeleteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiKeyDeleteRequest.ProtoReflect.Descriptor instead. func (*ApiKeyDeleteRequest) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{51} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{53} } func (x *ApiKeyDeleteRequest) GetRawApiKeys() []string { @@ -5181,7 +5356,7 @@ type ApiKeyDeleteResponse struct { func (x *ApiKeyDeleteResponse) Reset() { *x = ApiKeyDeleteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[52] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5194,7 +5369,7 @@ func (x *ApiKeyDeleteResponse) String() string { func (*ApiKeyDeleteResponse) ProtoMessage() {} func (x *ApiKeyDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[52] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5207,7 +5382,7 @@ func (x *ApiKeyDeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiKeyDeleteResponse.ProtoReflect.Descriptor instead. func (*ApiKeyDeleteResponse) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{52} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{54} } type AuthConfigStatus struct { @@ -5230,7 +5405,7 @@ type AuthConfigStatus struct { func (x *AuthConfigStatus) Reset() { *x = AuthConfigStatus{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[53] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5243,7 +5418,7 @@ func (x *AuthConfigStatus) String() string { func (*AuthConfigStatus) ProtoMessage() {} func (x *AuthConfigStatus) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[53] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5256,7 +5431,7 @@ func (x *AuthConfigStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use AuthConfigStatus.ProtoReflect.Descriptor instead. func (*AuthConfigStatus) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{53} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{55} } func (x *AuthConfigStatus) GetState() AuthConfigStatus_State { @@ -5305,7 +5480,7 @@ type AuthConfigNamespacedStatuses struct { func (x *AuthConfigNamespacedStatuses) Reset() { *x = AuthConfigNamespacedStatuses{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[54] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5318,7 +5493,7 @@ func (x *AuthConfigNamespacedStatuses) String() string { func (*AuthConfigNamespacedStatuses) ProtoMessage() {} func (x *AuthConfigNamespacedStatuses) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[54] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5331,7 +5506,7 @@ func (x *AuthConfigNamespacedStatuses) ProtoReflect() protoreflect.Message { // Deprecated: Use AuthConfigNamespacedStatuses.ProtoReflect.Descriptor instead. func (*AuthConfigNamespacedStatuses) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{54} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{56} } func (x *AuthConfigNamespacedStatuses) GetStatuses() map[string]*AuthConfigStatus { @@ -5370,7 +5545,7 @@ type AuthConfigSpec_Config struct { func (x *AuthConfigSpec_Config) Reset() { *x = AuthConfigSpec_Config{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[55] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5383,7 +5558,7 @@ func (x *AuthConfigSpec_Config) String() string { func (*AuthConfigSpec_Config) ProtoMessage() {} func (x *AuthConfigSpec_Config) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[55] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5591,7 +5766,7 @@ type HttpService_Request struct { func (x *HttpService_Request) Reset() { *x = HttpService_Request{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[56] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5604,7 +5779,7 @@ func (x *HttpService_Request) String() string { func (*HttpService_Request) ProtoMessage() {} func (x *HttpService_Request) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[56] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5662,7 +5837,7 @@ type HttpService_Response struct { func (x *HttpService_Response) Reset() { *x = HttpService_Response{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[57] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5675,7 +5850,7 @@ func (x *HttpService_Response) String() string { func (*HttpService_Response) ProtoMessage() {} func (x *HttpService_Response) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[57] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5725,7 +5900,7 @@ type BasicAuth_Apr struct { func (x *BasicAuth_Apr) Reset() { *x = BasicAuth_Apr{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[60] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5738,7 +5913,7 @@ func (x *BasicAuth_Apr) String() string { func (*BasicAuth_Apr) ProtoMessage() {} func (x *BasicAuth_Apr) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[60] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5777,7 +5952,7 @@ type BasicAuth_EncryptionType struct { func (x *BasicAuth_EncryptionType) Reset() { *x = BasicAuth_EncryptionType{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[61] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5790,7 +5965,7 @@ func (x *BasicAuth_EncryptionType) String() string { func (*BasicAuth_EncryptionType) ProtoMessage() {} func (x *BasicAuth_EncryptionType) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[61] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5858,7 +6033,7 @@ type BasicAuth_User struct { func (x *BasicAuth_User) Reset() { *x = BasicAuth_User{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[62] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5871,7 +6046,7 @@ func (x *BasicAuth_User) String() string { func (*BasicAuth_User) ProtoMessage() {} func (x *BasicAuth_User) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[62] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5913,7 +6088,7 @@ type BasicAuth_UserList struct { func (x *BasicAuth_UserList) Reset() { *x = BasicAuth_UserList{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[63] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5926,7 +6101,7 @@ func (x *BasicAuth_UserList) String() string { func (*BasicAuth_UserList) ProtoMessage() {} func (x *BasicAuth_UserList) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[63] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5964,7 +6139,7 @@ type BasicAuth_Apr_SaltedHashedPassword struct { func (x *BasicAuth_Apr_SaltedHashedPassword) Reset() { *x = BasicAuth_Apr_SaltedHashedPassword{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[64] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5977,7 +6152,7 @@ func (x *BasicAuth_Apr_SaltedHashedPassword) String() string { func (*BasicAuth_Apr_SaltedHashedPassword) ProtoMessage() {} func (x *BasicAuth_Apr_SaltedHashedPassword) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[64] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6018,7 +6193,7 @@ type BasicAuth_EncryptionType_Sha1 struct { func (x *BasicAuth_EncryptionType_Sha1) Reset() { *x = BasicAuth_EncryptionType_Sha1{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[66] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6031,7 +6206,7 @@ func (x *BasicAuth_EncryptionType_Sha1) String() string { func (*BasicAuth_EncryptionType_Sha1) ProtoMessage() {} func (x *BasicAuth_EncryptionType_Sha1) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[66] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6057,7 +6232,7 @@ type BasicAuth_EncryptionType_Apr struct { func (x *BasicAuth_EncryptionType_Apr) Reset() { *x = BasicAuth_EncryptionType_Apr{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[67] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6070,7 +6245,7 @@ func (x *BasicAuth_EncryptionType_Apr) String() string { func (*BasicAuth_EncryptionType_Apr) ProtoMessage() {} func (x *BasicAuth_EncryptionType_Apr) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[67] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6107,7 +6282,7 @@ type UserSession_InternalSession struct { func (x *UserSession_InternalSession) Reset() { *x = UserSession_InternalSession{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[70] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6120,7 +6295,7 @@ func (x *UserSession_InternalSession) String() string { func (*UserSession_InternalSession) ProtoMessage() {} func (x *UserSession_InternalSession) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[70] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6188,7 +6363,7 @@ type UserSession_RedisSession struct { func (x *UserSession_RedisSession) Reset() { *x = UserSession_RedisSession{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[71] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6201,7 +6376,7 @@ func (x *UserSession_RedisSession) String() string { func (*UserSession_RedisSession) ProtoMessage() {} func (x *UserSession_RedisSession) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[71] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6292,7 +6467,7 @@ type UserSession_CookieOptions struct { func (x *UserSession_CookieOptions) Reset() { *x = UserSession_CookieOptions{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[72] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6305,7 +6480,7 @@ func (x *UserSession_CookieOptions) String() string { func (*UserSession_CookieOptions) ProtoMessage() {} func (x *UserSession_CookieOptions) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[72] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6381,7 +6556,7 @@ type UserSession_CipherConfig struct { func (x *UserSession_CipherConfig) Reset() { *x = UserSession_CipherConfig{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[73] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6394,7 +6569,7 @@ func (x *UserSession_CipherConfig) String() string { func (*UserSession_CipherConfig) ProtoMessage() {} func (x *UserSession_CipherConfig) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[73] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6451,7 +6626,7 @@ type OidcAuthorizationCode_AccessToken struct { func (x *OidcAuthorizationCode_AccessToken) Reset() { *x = OidcAuthorizationCode_AccessToken{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[77] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6464,7 +6639,7 @@ func (x *OidcAuthorizationCode_AccessToken) String() string { func (*OidcAuthorizationCode_AccessToken) ProtoMessage() {} func (x *OidcAuthorizationCode_AccessToken) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[77] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6477,7 +6652,7 @@ func (x *OidcAuthorizationCode_AccessToken) ProtoReflect() protoreflect.Message // Deprecated: Use OidcAuthorizationCode_AccessToken.ProtoReflect.Descriptor instead. func (*OidcAuthorizationCode_AccessToken) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{22, 3} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{23, 3} } func (x *OidcAuthorizationCode_AccessToken) GetClaimsToHeaders() []*ClaimToHeader { @@ -6500,7 +6675,7 @@ type OidcAuthorizationCode_IdentityToken struct { func (x *OidcAuthorizationCode_IdentityToken) Reset() { *x = OidcAuthorizationCode_IdentityToken{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[78] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6513,7 +6688,7 @@ func (x *OidcAuthorizationCode_IdentityToken) String() string { func (*OidcAuthorizationCode_IdentityToken) ProtoMessage() {} func (x *OidcAuthorizationCode_IdentityToken) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[78] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6526,7 +6701,7 @@ func (x *OidcAuthorizationCode_IdentityToken) ProtoReflect() protoreflect.Messag // Deprecated: Use OidcAuthorizationCode_IdentityToken.ProtoReflect.Descriptor instead. func (*OidcAuthorizationCode_IdentityToken) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{22, 4} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{23, 4} } func (x *OidcAuthorizationCode_IdentityToken) GetClaimsToHeaders() []*ClaimToHeader { @@ -6554,7 +6729,7 @@ type OidcAuthorizationCode_ClientAuthentication struct { func (x *OidcAuthorizationCode_ClientAuthentication) Reset() { *x = OidcAuthorizationCode_ClientAuthentication{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[79] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6567,7 +6742,7 @@ func (x *OidcAuthorizationCode_ClientAuthentication) String() string { func (*OidcAuthorizationCode_ClientAuthentication) ProtoMessage() {} func (x *OidcAuthorizationCode_ClientAuthentication) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[79] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6580,7 +6755,7 @@ func (x *OidcAuthorizationCode_ClientAuthentication) ProtoReflect() protoreflect // Deprecated: Use OidcAuthorizationCode_ClientAuthentication.ProtoReflect.Descriptor instead. func (*OidcAuthorizationCode_ClientAuthentication) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{22, 5} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{23, 5} } func (m *OidcAuthorizationCode_ClientAuthentication) GetClientAuthenticationConfig() isOidcAuthorizationCode_ClientAuthentication_ClientAuthenticationConfig { @@ -6636,7 +6811,7 @@ type OidcAuthorizationCode_Default struct { func (x *OidcAuthorizationCode_Default) Reset() { *x = OidcAuthorizationCode_Default{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[80] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6649,7 +6824,7 @@ func (x *OidcAuthorizationCode_Default) String() string { func (*OidcAuthorizationCode_Default) ProtoMessage() {} func (x *OidcAuthorizationCode_Default) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[80] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6662,91 +6837,7 @@ func (x *OidcAuthorizationCode_Default) ProtoReflect() protoreflect.Message { // Deprecated: Use OidcAuthorizationCode_Default.ProtoReflect.Descriptor instead. func (*OidcAuthorizationCode_Default) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{22, 6} -} - -// For apps in Microsoft Azure, configure Microsoft Entra ID as the OpenID Connect (OIDC) provider. -// This way, you can enable distributed claims and caching for when users are members of more than 200 groups. -type OidcAuthorizationCode_Azure struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The client ID for the ExtAuthService app that is registered in MS Entra, - // to access the Microsoft Graph API to retrieve distributed claims. - // This app is NOT the app that you want to configure external auth for. - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - // The tenant ID represents the MS Entra organization ID where the ExtAuthService app is registered. - // This tenant ID may or may not be the same as in the top level `OidcAuthorizationCodeConfig`, - // depending on how your Azure account is provisioned. - TenantId string `protobuf:"bytes,2,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"` - // The client secret of the ExtAuthService app that is registered with MS Entra to communicate with the MS Graph API. - ClientSecret *core.ResourceRef `protobuf:"bytes,3,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` - // Redis connection details to cache MS Entera claims. - // This way, you avoid performance issues of accessing the Microsoft Graph API too many times. - // Note that this setting does NOT turn on Redis caching for the user session. - // To turn on Redis user session caching, use the `userSessionConfig` field. - ClaimsCachingOptions *RedisOptions `protobuf:"bytes,4,opt,name=claims_caching_options,json=claimsCachingOptions,proto3" json:"claims_caching_options,omitempty"` -} - -func (x *OidcAuthorizationCode_Azure) Reset() { - *x = OidcAuthorizationCode_Azure{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[81] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OidcAuthorizationCode_Azure) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OidcAuthorizationCode_Azure) ProtoMessage() {} - -func (x *OidcAuthorizationCode_Azure) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[81] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use OidcAuthorizationCode_Azure.ProtoReflect.Descriptor instead. -func (*OidcAuthorizationCode_Azure) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{22, 7} -} - -func (x *OidcAuthorizationCode_Azure) GetClientId() string { - if x != nil { - return x.ClientId - } - return "" -} - -func (x *OidcAuthorizationCode_Azure) GetTenantId() string { - if x != nil { - return x.TenantId - } - return "" -} - -func (x *OidcAuthorizationCode_Azure) GetClientSecret() *core.ResourceRef { - if x != nil { - return x.ClientSecret - } - return nil -} - -func (x *OidcAuthorizationCode_Azure) GetClaimsCachingOptions() *RedisOptions { - if x != nil { - return x.ClaimsCachingOptions - } - return nil + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{23, 6} } // For the moment this is just path, but we may want to configure things like iss/sid validation @@ -6762,7 +6853,7 @@ type OidcAuthorizationCode_FrontChannelLogout struct { func (x *OidcAuthorizationCode_FrontChannelLogout) Reset() { *x = OidcAuthorizationCode_FrontChannelLogout{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[82] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6775,7 +6866,7 @@ func (x *OidcAuthorizationCode_FrontChannelLogout) String() string { func (*OidcAuthorizationCode_FrontChannelLogout) ProtoMessage() {} func (x *OidcAuthorizationCode_FrontChannelLogout) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[82] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6788,7 +6879,7 @@ func (x *OidcAuthorizationCode_FrontChannelLogout) ProtoReflect() protoreflect.M // Deprecated: Use OidcAuthorizationCode_FrontChannelLogout.ProtoReflect.Descriptor instead. func (*OidcAuthorizationCode_FrontChannelLogout) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{22, 8} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{23, 7} } func (x *OidcAuthorizationCode_FrontChannelLogout) GetPath() string { @@ -6816,7 +6907,7 @@ type OidcAuthorizationCode_ClientAuthentication_ClientSecret struct { func (x *OidcAuthorizationCode_ClientAuthentication_ClientSecret) Reset() { *x = OidcAuthorizationCode_ClientAuthentication_ClientSecret{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[83] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6829,7 +6920,7 @@ func (x *OidcAuthorizationCode_ClientAuthentication_ClientSecret) String() strin func (*OidcAuthorizationCode_ClientAuthentication_ClientSecret) ProtoMessage() {} func (x *OidcAuthorizationCode_ClientAuthentication_ClientSecret) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[83] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6842,7 +6933,7 @@ func (x *OidcAuthorizationCode_ClientAuthentication_ClientSecret) ProtoReflect() // Deprecated: Use OidcAuthorizationCode_ClientAuthentication_ClientSecret.ProtoReflect.Descriptor instead. func (*OidcAuthorizationCode_ClientAuthentication_ClientSecret) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{22, 5, 0} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{23, 5, 0} } func (x *OidcAuthorizationCode_ClientAuthentication_ClientSecret) GetClientSecretRef() *core.ResourceRef { @@ -6877,7 +6968,7 @@ type OidcAuthorizationCode_ClientAuthentication_PrivateKeyJwt struct { func (x *OidcAuthorizationCode_ClientAuthentication_PrivateKeyJwt) Reset() { *x = OidcAuthorizationCode_ClientAuthentication_PrivateKeyJwt{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[84] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6890,7 +6981,7 @@ func (x *OidcAuthorizationCode_ClientAuthentication_PrivateKeyJwt) String() stri func (*OidcAuthorizationCode_ClientAuthentication_PrivateKeyJwt) ProtoMessage() {} func (x *OidcAuthorizationCode_ClientAuthentication_PrivateKeyJwt) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[84] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6903,7 +6994,7 @@ func (x *OidcAuthorizationCode_ClientAuthentication_PrivateKeyJwt) ProtoReflect( // Deprecated: Use OidcAuthorizationCode_ClientAuthentication_PrivateKeyJwt.ProtoReflect.Descriptor instead. func (*OidcAuthorizationCode_ClientAuthentication_PrivateKeyJwt) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{22, 5, 1} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{23, 5, 1} } func (x *OidcAuthorizationCode_ClientAuthentication_PrivateKeyJwt) GetSigningKeyRef() *core.ResourceRef { @@ -6939,7 +7030,7 @@ type JwtValidation_RemoteJwks struct { func (x *JwtValidation_RemoteJwks) Reset() { *x = JwtValidation_RemoteJwks{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[87] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6952,7 +7043,7 @@ func (x *JwtValidation_RemoteJwks) String() string { func (*JwtValidation_RemoteJwks) ProtoMessage() {} func (x *JwtValidation_RemoteJwks) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[87] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6965,7 +7056,7 @@ func (x *JwtValidation_RemoteJwks) ProtoReflect() protoreflect.Message { // Deprecated: Use JwtValidation_RemoteJwks.ProtoReflect.Descriptor instead. func (*JwtValidation_RemoteJwks) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{24, 0} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{25, 0} } func (x *JwtValidation_RemoteJwks) GetUrl() string { @@ -6998,7 +7089,7 @@ type JwtValidation_LocalJwks struct { func (x *JwtValidation_LocalJwks) Reset() { *x = JwtValidation_LocalJwks{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[88] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7011,7 +7102,7 @@ func (x *JwtValidation_LocalJwks) String() string { func (*JwtValidation_LocalJwks) ProtoMessage() {} func (x *JwtValidation_LocalJwks) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[88] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7024,7 +7115,7 @@ func (x *JwtValidation_LocalJwks) ProtoReflect() protoreflect.Message { // Deprecated: Use JwtValidation_LocalJwks.ProtoReflect.Descriptor instead. func (*JwtValidation_LocalJwks) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{24, 1} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{25, 1} } func (x *JwtValidation_LocalJwks) GetInlineString() string { @@ -7034,6 +7125,45 @@ func (x *JwtValidation_LocalJwks) GetInlineString() string { return "" } +// No-op, represents default OIDC distributed claims behavior +type AccessTokenValidation_Default struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AccessTokenValidation_Default) Reset() { + *x = AccessTokenValidation_Default{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[91] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccessTokenValidation_Default) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccessTokenValidation_Default) ProtoMessage() {} + +func (x *AccessTokenValidation_Default) ProtoReflect() protoreflect.Message { + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[91] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AccessTokenValidation_Default.ProtoReflect.Descriptor instead. +func (*AccessTokenValidation_Default) Descriptor() ([]byte, []int) { + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{27, 1} +} + type AccessTokenValidation_ScopeList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -7045,7 +7175,7 @@ type AccessTokenValidation_ScopeList struct { func (x *AccessTokenValidation_ScopeList) Reset() { *x = AccessTokenValidation_ScopeList{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[90] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7058,7 +7188,7 @@ func (x *AccessTokenValidation_ScopeList) String() string { func (*AccessTokenValidation_ScopeList) ProtoMessage() {} func (x *AccessTokenValidation_ScopeList) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[90] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7071,7 +7201,7 @@ func (x *AccessTokenValidation_ScopeList) ProtoReflect() protoreflect.Message { // Deprecated: Use AccessTokenValidation_ScopeList.ProtoReflect.Descriptor instead. func (*AccessTokenValidation_ScopeList) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{26, 1} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{27, 2} } func (x *AccessTokenValidation_ScopeList) GetScope() []string { @@ -7100,7 +7230,7 @@ type ApiKeyAuth_SecretKey struct { func (x *ApiKeyAuth_SecretKey) Reset() { *x = ApiKeyAuth_SecretKey{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[94] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7113,7 +7243,7 @@ func (x *ApiKeyAuth_SecretKey) String() string { func (*ApiKeyAuth_SecretKey) ProtoMessage() {} func (x *ApiKeyAuth_SecretKey) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[94] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7126,7 +7256,7 @@ func (x *ApiKeyAuth_SecretKey) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiKeyAuth_SecretKey.ProtoReflect.Descriptor instead. func (*ApiKeyAuth_SecretKey) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{28, 3} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{29, 3} } func (x *ApiKeyAuth_SecretKey) GetName() string { @@ -7161,7 +7291,7 @@ type ApiKeyAuth_MetadataEntry struct { func (x *ApiKeyAuth_MetadataEntry) Reset() { *x = ApiKeyAuth_MetadataEntry{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[95] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7174,7 +7304,7 @@ func (x *ApiKeyAuth_MetadataEntry) String() string { func (*ApiKeyAuth_MetadataEntry) ProtoMessage() {} func (x *ApiKeyAuth_MetadataEntry) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[95] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7187,7 +7317,7 @@ func (x *ApiKeyAuth_MetadataEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiKeyAuth_MetadataEntry.ProtoReflect.Descriptor instead. func (*ApiKeyAuth_MetadataEntry) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{28, 4} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{29, 4} } func (x *ApiKeyAuth_MetadataEntry) GetName() string { @@ -7221,7 +7351,7 @@ type AerospikeApiKeyStorageReadModeSc struct { func (x *AerospikeApiKeyStorageReadModeSc) Reset() { *x = AerospikeApiKeyStorageReadModeSc{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[97] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7234,7 +7364,7 @@ func (x *AerospikeApiKeyStorageReadModeSc) String() string { func (*AerospikeApiKeyStorageReadModeSc) ProtoMessage() {} func (x *AerospikeApiKeyStorageReadModeSc) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[97] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7247,7 +7377,7 @@ func (x *AerospikeApiKeyStorageReadModeSc) ProtoReflect() protoreflect.Message { // Deprecated: Use AerospikeApiKeyStorageReadModeSc.ProtoReflect.Descriptor instead. func (*AerospikeApiKeyStorageReadModeSc) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{30, 0} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{31, 0} } func (m *AerospikeApiKeyStorageReadModeSc) GetReadModeSc() isAerospikeApiKeyStorageReadModeSc_ReadModeSc { @@ -7340,7 +7470,7 @@ type AerospikeApiKeyStorageReadModeAp struct { func (x *AerospikeApiKeyStorageReadModeAp) Reset() { *x = AerospikeApiKeyStorageReadModeAp{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[98] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7353,7 +7483,7 @@ func (x *AerospikeApiKeyStorageReadModeAp) String() string { func (*AerospikeApiKeyStorageReadModeAp) ProtoMessage() {} func (x *AerospikeApiKeyStorageReadModeAp) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[98] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7366,7 +7496,7 @@ func (x *AerospikeApiKeyStorageReadModeAp) ProtoReflect() protoreflect.Message { // Deprecated: Use AerospikeApiKeyStorageReadModeAp.ProtoReflect.Descriptor instead. func (*AerospikeApiKeyStorageReadModeAp) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{30, 1} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{31, 1} } func (m *AerospikeApiKeyStorageReadModeAp) GetReadModeAp() isAerospikeApiKeyStorageReadModeAp_ReadModeAp { @@ -7428,7 +7558,7 @@ type AerospikeApiKeyStorageTlsCurveID struct { func (x *AerospikeApiKeyStorageTlsCurveID) Reset() { *x = AerospikeApiKeyStorageTlsCurveID{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[99] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7441,7 +7571,7 @@ func (x *AerospikeApiKeyStorageTlsCurveID) String() string { func (*AerospikeApiKeyStorageTlsCurveID) ProtoMessage() {} func (x *AerospikeApiKeyStorageTlsCurveID) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[99] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7454,7 +7584,7 @@ func (x *AerospikeApiKeyStorageTlsCurveID) ProtoReflect() protoreflect.Message { // Deprecated: Use AerospikeApiKeyStorageTlsCurveID.ProtoReflect.Descriptor instead. func (*AerospikeApiKeyStorageTlsCurveID) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{30, 2} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{31, 2} } func (m *AerospikeApiKeyStorageTlsCurveID) GetCurveId() isAerospikeApiKeyStorageTlsCurveID_CurveId { @@ -7536,7 +7666,7 @@ type Ldap_ConnectionPool struct { func (x *Ldap_ConnectionPool) Reset() { *x = Ldap_ConnectionPool{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[103] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7549,7 +7679,7 @@ func (x *Ldap_ConnectionPool) String() string { func (*Ldap_ConnectionPool) ProtoMessage() {} func (x *Ldap_ConnectionPool) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[103] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7562,7 +7692,7 @@ func (x *Ldap_ConnectionPool) ProtoReflect() protoreflect.Message { // Deprecated: Use Ldap_ConnectionPool.ProtoReflect.Descriptor instead. func (*Ldap_ConnectionPool) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{36, 0} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{38, 0} } func (x *Ldap_ConnectionPool) GetMaxSize() *wrappers.UInt32Value { @@ -7634,7 +7764,7 @@ type PassThroughHttp_Request struct { func (x *PassThroughHttp_Request) Reset() { *x = PassThroughHttp_Request{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[104] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7647,7 +7777,7 @@ func (x *PassThroughHttp_Request) String() string { func (*PassThroughHttp_Request) ProtoMessage() {} func (x *PassThroughHttp_Request) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[104] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7660,7 +7790,7 @@ func (x *PassThroughHttp_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use PassThroughHttp_Request.ProtoReflect.Descriptor instead. func (*PassThroughHttp_Request) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{43, 0} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{45, 0} } func (x *PassThroughHttp_Request) GetAllowedHeaders() []string { @@ -7733,7 +7863,7 @@ type PassThroughHttp_Response struct { func (x *PassThroughHttp_Response) Reset() { *x = PassThroughHttp_Response{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[105] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7746,7 +7876,7 @@ func (x *PassThroughHttp_Response) String() string { func (*PassThroughHttp_Response) ProtoMessage() {} func (x *PassThroughHttp_Response) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[105] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7759,7 +7889,7 @@ func (x *PassThroughHttp_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use PassThroughHttp_Response.ProtoReflect.Descriptor instead. func (*PassThroughHttp_Response) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{43, 1} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{45, 1} } func (x *PassThroughHttp_Response) GetAllowedUpstreamHeaders() []string { @@ -7790,17 +7920,168 @@ func (x *PassThroughHttp_Response) GetAllowedUpstreamHeadersToOverwrite() []stri return nil } -// Message to store Basic Auth Configuration. -// "Internal" refers to this format allowing for selection of the hashing algorithm and user source. -// If only the legacy "apr" field is defined, the existing public BasicAuth configuration will continue be used. -type ExtAuthConfig_BasicAuthInternal struct { +// For apps in Microsoft Azure, configure Microsoft Entra ID as the OpenID Connect (OIDC) provider. +// This way, you can enable distributed claims and caching for when users are members of more than 200 groups. +type ExtAuthConfig_Azure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Realm to use in the Basic Auth challenge. - Realm string `protobuf:"bytes,1,opt,name=realm,proto3" json:"realm,omitempty"` - // Hashing algorithm to use for password hashing. + // The client ID for the ExtAuthService app that is registered in MS Entra, + // to access the Microsoft Graph API to retrieve distributed claims. + // This app is NOT the app that you want to configure external auth for. + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + // The tenant ID represents the MS Entra organization ID where the ExtAuthService app is registered. + // This tenant ID may or may not be the same as in the top level `OidcAuthorizationCodeConfig`, + // depending on how your Azure account is provisioned. + TenantId string `protobuf:"bytes,2,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"` + // The client secret of the ExtAuthService app that is registered with MS Entra to communicate with the MS Graph API. + ClientSecret string `protobuf:"bytes,3,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` + // Redis connection details to cache MS Entera claims. + // This way, you avoid performance issues of accessing the Microsoft Graph API too many times. + // Note that this setting does NOT turn on Redis caching for the user session. + // To turn on Redis user session caching, use the `userSessionConfig` field. + ClaimsCachingOptions *RedisOptions `protobuf:"bytes,4,opt,name=claims_caching_options,json=claimsCachingOptions,proto3" json:"claims_caching_options,omitempty"` +} + +func (x *ExtAuthConfig_Azure) Reset() { + *x = ExtAuthConfig_Azure{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExtAuthConfig_Azure) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExtAuthConfig_Azure) ProtoMessage() {} + +func (x *ExtAuthConfig_Azure) ProtoReflect() protoreflect.Message { + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[109] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExtAuthConfig_Azure.ProtoReflect.Descriptor instead. +func (*ExtAuthConfig_Azure) Descriptor() ([]byte, []int) { + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 0} +} + +func (x *ExtAuthConfig_Azure) GetClientId() string { + if x != nil { + return x.ClientId + } + return "" +} + +func (x *ExtAuthConfig_Azure) GetTenantId() string { + if x != nil { + return x.TenantId + } + return "" +} + +func (x *ExtAuthConfig_Azure) GetClientSecret() string { + if x != nil { + return x.ClientSecret + } + return "" +} + +func (x *ExtAuthConfig_Azure) GetClaimsCachingOptions() *RedisOptions { + if x != nil { + return x.ClaimsCachingOptions + } + return nil +} + +// Map a single claim from an OAuth2 or OIDC token to a header in the request to the upstream destination. +type ExtAuthConfig_ClaimToHeader struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The claim name from the token, such as `sub`. + Claim string `protobuf:"bytes,1,opt,name=claim,proto3" json:"claim,omitempty"` + // The header to copy the claim to, such as `x-sub`. + Header string `protobuf:"bytes,2,opt,name=header,proto3" json:"header,omitempty"` + // If the header exists, append the claim value to the header (true), or overwrite any existing value (false). The default behavior is to overwrite any existing value (false). + Append bool `protobuf:"varint,3,opt,name=append,proto3" json:"append,omitempty"` +} + +func (x *ExtAuthConfig_ClaimToHeader) Reset() { + *x = ExtAuthConfig_ClaimToHeader{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExtAuthConfig_ClaimToHeader) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExtAuthConfig_ClaimToHeader) ProtoMessage() {} + +func (x *ExtAuthConfig_ClaimToHeader) ProtoReflect() protoreflect.Message { + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[110] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExtAuthConfig_ClaimToHeader.ProtoReflect.Descriptor instead. +func (*ExtAuthConfig_ClaimToHeader) Descriptor() ([]byte, []int) { + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 1} +} + +func (x *ExtAuthConfig_ClaimToHeader) GetClaim() string { + if x != nil { + return x.Claim + } + return "" +} + +func (x *ExtAuthConfig_ClaimToHeader) GetHeader() string { + if x != nil { + return x.Header + } + return "" +} + +func (x *ExtAuthConfig_ClaimToHeader) GetAppend() bool { + if x != nil { + return x.Append + } + return false +} + +// Message to store Basic Auth Configuration. +// "Internal" refers to this format allowing for selection of the hashing algorithm and user source. +// If only the legacy "apr" field is defined, the existing public BasicAuth configuration will continue be used. +type ExtAuthConfig_BasicAuthInternal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Realm to use in the Basic Auth challenge. + Realm string `protobuf:"bytes,1,opt,name=realm,proto3" json:"realm,omitempty"` + // Hashing algorithm to use for password hashing. Encryption *ExtAuthConfig_BasicAuthInternal_EncryptionType `protobuf:"bytes,2,opt,name=encryption,proto3" json:"encryption,omitempty"` // Source of user credential data. // @@ -7813,7 +8094,7 @@ type ExtAuthConfig_BasicAuthInternal struct { func (x *ExtAuthConfig_BasicAuthInternal) Reset() { *x = ExtAuthConfig_BasicAuthInternal{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[107] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7826,7 +8107,7 @@ func (x *ExtAuthConfig_BasicAuthInternal) String() string { func (*ExtAuthConfig_BasicAuthInternal) ProtoMessage() {} func (x *ExtAuthConfig_BasicAuthInternal) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[107] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7839,7 +8120,7 @@ func (x *ExtAuthConfig_BasicAuthInternal) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtAuthConfig_BasicAuthInternal.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_BasicAuthInternal) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 0} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 2} } func (x *ExtAuthConfig_BasicAuthInternal) GetRealm() string { @@ -7922,7 +8203,7 @@ type ExtAuthConfig_OAuthConfig struct { func (x *ExtAuthConfig_OAuthConfig) Reset() { *x = ExtAuthConfig_OAuthConfig{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[108] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7935,7 +8216,7 @@ func (x *ExtAuthConfig_OAuthConfig) String() string { func (*ExtAuthConfig_OAuthConfig) ProtoMessage() {} func (x *ExtAuthConfig_OAuthConfig) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[108] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7948,7 +8229,7 @@ func (x *ExtAuthConfig_OAuthConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtAuthConfig_OAuthConfig.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_OAuthConfig) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 1} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 3} } // Deprecated: Marked as deprecated in github.com/solo-io/solo-apis/api/gloo/enterprise.gloo/v1/auth_config.proto. @@ -8029,7 +8310,7 @@ type ExtAuthConfig_UserSessionConfig struct { func (x *ExtAuthConfig_UserSessionConfig) Reset() { *x = ExtAuthConfig_UserSessionConfig{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[109] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8042,7 +8323,7 @@ func (x *ExtAuthConfig_UserSessionConfig) String() string { func (*ExtAuthConfig_UserSessionConfig) ProtoMessage() {} func (x *ExtAuthConfig_UserSessionConfig) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[109] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8055,7 +8336,7 @@ func (x *ExtAuthConfig_UserSessionConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtAuthConfig_UserSessionConfig.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_UserSessionConfig) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 2} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 4} } func (x *ExtAuthConfig_UserSessionConfig) GetFailOnFetchFailure() bool { @@ -8220,17 +8501,28 @@ type ExtAuthConfig_OidcAuthorizationCodeConfig struct { // Types that are assignable to Provider: // // *ExtAuthConfig_OidcAuthorizationCodeConfig_Default_ - // *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure_ + // *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure Provider isExtAuthConfig_OidcAuthorizationCodeConfig_Provider `protobuf_oneof:"Provider"` // Configuration for front channel logout. This is used to log out the user from multiple apps/clients associated with one OpenId Provider (OP). // The path is registered with the OP and is called for each app/client that the user is logged into when the logout endpoint is called. FrontChannelLogout *ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout `protobuf:"bytes,28,opt,name=front_channel_logout,json=frontChannelLogout,proto3" json:"front_channel_logout,omitempty"` + // Map of metadata key to claim. Ie: + // dynamic_metadata_from_claims: + // + // issuer: iss + // email: email + // + // When specified, the matching claims from the ID token will be emitted as dynamic metadata. + // Note that metadata keys must be unique, and the claim names must be alphanumeric and use `-` or `_` as separators. + // The metadata will live in a namespace specified by the canonical name of the ext auth filter (in our case `envoy.filters.http.ext_authz`), + // and the structure of the claim value will be preserved in the metadata struct. + DynamicMetadataFromClaims map[string]string `protobuf:"bytes,29,rep,name=dynamic_metadata_from_claims,json=dynamicMetadataFromClaims,proto3" json:"dynamic_metadata_from_claims,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *ExtAuthConfig_OidcAuthorizationCodeConfig) Reset() { *x = ExtAuthConfig_OidcAuthorizationCodeConfig{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[110] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8243,7 +8535,7 @@ func (x *ExtAuthConfig_OidcAuthorizationCodeConfig) String() string { func (*ExtAuthConfig_OidcAuthorizationCodeConfig) ProtoMessage() {} func (x *ExtAuthConfig_OidcAuthorizationCodeConfig) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[110] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8256,7 +8548,7 @@ func (x *ExtAuthConfig_OidcAuthorizationCodeConfig) ProtoReflect() protoreflect. // Deprecated: Use ExtAuthConfig_OidcAuthorizationCodeConfig.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_OidcAuthorizationCodeConfig) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 3} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 5} } func (x *ExtAuthConfig_OidcAuthorizationCodeConfig) GetClientId() string { @@ -8435,8 +8727,8 @@ func (x *ExtAuthConfig_OidcAuthorizationCodeConfig) GetDefault() *ExtAuthConfig_ return nil } -func (x *ExtAuthConfig_OidcAuthorizationCodeConfig) GetAzure() *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure { - if x, ok := x.GetProvider().(*ExtAuthConfig_OidcAuthorizationCodeConfig_Azure_); ok { +func (x *ExtAuthConfig_OidcAuthorizationCodeConfig) GetAzure() *ExtAuthConfig_Azure { + if x, ok := x.GetProvider().(*ExtAuthConfig_OidcAuthorizationCodeConfig_Azure); ok { return x.Azure } return nil @@ -8449,6 +8741,13 @@ func (x *ExtAuthConfig_OidcAuthorizationCodeConfig) GetFrontChannelLogout() *Ext return nil } +func (x *ExtAuthConfig_OidcAuthorizationCodeConfig) GetDynamicMetadataFromClaims() map[string]string { + if x != nil { + return x.DynamicMetadataFromClaims + } + return nil +} + type isExtAuthConfig_OidcAuthorizationCodeConfig_Provider interface { isExtAuthConfig_OidcAuthorizationCodeConfig_Provider() } @@ -8457,14 +8756,14 @@ type ExtAuthConfig_OidcAuthorizationCodeConfig_Default_ struct { Default *ExtAuthConfig_OidcAuthorizationCodeConfig_Default `protobuf:"bytes,26,opt,name=default,proto3,oneof"` } -type ExtAuthConfig_OidcAuthorizationCodeConfig_Azure_ struct { - Azure *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure `protobuf:"bytes,27,opt,name=azure,proto3,oneof"` +type ExtAuthConfig_OidcAuthorizationCodeConfig_Azure struct { + Azure *ExtAuthConfig_Azure `protobuf:"bytes,27,opt,name=azure,proto3,oneof"` } func (*ExtAuthConfig_OidcAuthorizationCodeConfig_Default_) isExtAuthConfig_OidcAuthorizationCodeConfig_Provider() { } -func (*ExtAuthConfig_OidcAuthorizationCodeConfig_Azure_) isExtAuthConfig_OidcAuthorizationCodeConfig_Provider() { +func (*ExtAuthConfig_OidcAuthorizationCodeConfig_Azure) isExtAuthConfig_OidcAuthorizationCodeConfig_Provider() { } type ExtAuthConfig_AccessTokenValidationConfig struct { @@ -8494,12 +8793,30 @@ type ExtAuthConfig_AccessTokenValidationConfig struct { // // *ExtAuthConfig_AccessTokenValidationConfig_RequiredScopes ScopeValidation isExtAuthConfig_AccessTokenValidationConfig_ScopeValidation `protobuf_oneof:"scope_validation"` + // Map of metadata key to claim. Ie: + // dynamic_metadata_from_claims: + // + // issuer: iss + // email: email + // + // When specified, the matching claims from the access token will be emitted as dynamic metadata. + // Note that metadata keys must be unique, and the claim names must be alphanumeric and use `-` or `_` as separators. + // Works when the access token is a JWT or when the access token is opaque, in which case the claims will refer to field in the response from the token introspection endpoint. + // The metadata will live in a namespace specified by the canonical name of the ext auth filter (in our case `envoy.filters.http.ext_authz`), + // and the structure of the claim value will be preserved in the metadata struct. + DynamicMetadataFromClaims map[string]string `protobuf:"bytes,7,rep,name=dynamic_metadata_from_claims,json=dynamicMetadataFromClaims,proto3" json:"dynamic_metadata_from_claims,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ClaimsToHeaders []*ExtAuthConfig_ClaimToHeader `protobuf:"bytes,8,rep,name=claims_to_headers,json=claimsToHeaders,proto3" json:"claims_to_headers,omitempty"` + // Types that are assignable to Provider: + // + // *ExtAuthConfig_AccessTokenValidationConfig_Default_ + // *ExtAuthConfig_AccessTokenValidationConfig_Azure + Provider isExtAuthConfig_AccessTokenValidationConfig_Provider `protobuf_oneof:"Provider"` } func (x *ExtAuthConfig_AccessTokenValidationConfig) Reset() { *x = ExtAuthConfig_AccessTokenValidationConfig{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[111] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8512,7 +8829,7 @@ func (x *ExtAuthConfig_AccessTokenValidationConfig) String() string { func (*ExtAuthConfig_AccessTokenValidationConfig) ProtoMessage() {} func (x *ExtAuthConfig_AccessTokenValidationConfig) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[111] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8525,7 +8842,7 @@ func (x *ExtAuthConfig_AccessTokenValidationConfig) ProtoReflect() protoreflect. // Deprecated: Use ExtAuthConfig_AccessTokenValidationConfig.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_AccessTokenValidationConfig) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 4} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 6} } func (m *ExtAuthConfig_AccessTokenValidationConfig) GetValidationType() isExtAuthConfig_AccessTokenValidationConfig_ValidationType { @@ -8585,6 +8902,41 @@ func (x *ExtAuthConfig_AccessTokenValidationConfig) GetRequiredScopes() *ExtAuth return nil } +func (x *ExtAuthConfig_AccessTokenValidationConfig) GetDynamicMetadataFromClaims() map[string]string { + if x != nil { + return x.DynamicMetadataFromClaims + } + return nil +} + +func (x *ExtAuthConfig_AccessTokenValidationConfig) GetClaimsToHeaders() []*ExtAuthConfig_ClaimToHeader { + if x != nil { + return x.ClaimsToHeaders + } + return nil +} + +func (m *ExtAuthConfig_AccessTokenValidationConfig) GetProvider() isExtAuthConfig_AccessTokenValidationConfig_Provider { + if m != nil { + return m.Provider + } + return nil +} + +func (x *ExtAuthConfig_AccessTokenValidationConfig) GetDefault() *ExtAuthConfig_AccessTokenValidationConfig_Default { + if x, ok := x.GetProvider().(*ExtAuthConfig_AccessTokenValidationConfig_Default_); ok { + return x.Default + } + return nil +} + +func (x *ExtAuthConfig_AccessTokenValidationConfig) GetAzure() *ExtAuthConfig_Azure { + if x, ok := x.GetProvider().(*ExtAuthConfig_AccessTokenValidationConfig_Azure); ok { + return x.Azure + } + return nil +} + type isExtAuthConfig_AccessTokenValidationConfig_ValidationType interface { isExtAuthConfig_AccessTokenValidationConfig_ValidationType() } @@ -8638,6 +8990,24 @@ type ExtAuthConfig_AccessTokenValidationConfig_RequiredScopes struct { func (*ExtAuthConfig_AccessTokenValidationConfig_RequiredScopes) isExtAuthConfig_AccessTokenValidationConfig_ScopeValidation() { } +type isExtAuthConfig_AccessTokenValidationConfig_Provider interface { + isExtAuthConfig_AccessTokenValidationConfig_Provider() +} + +type ExtAuthConfig_AccessTokenValidationConfig_Default_ struct { + Default *ExtAuthConfig_AccessTokenValidationConfig_Default `protobuf:"bytes,26,opt,name=default,proto3,oneof"` +} + +type ExtAuthConfig_AccessTokenValidationConfig_Azure struct { + Azure *ExtAuthConfig_Azure `protobuf:"bytes,27,opt,name=azure,proto3,oneof"` +} + +func (*ExtAuthConfig_AccessTokenValidationConfig_Default_) isExtAuthConfig_AccessTokenValidationConfig_Provider() { +} + +func (*ExtAuthConfig_AccessTokenValidationConfig_Azure) isExtAuthConfig_AccessTokenValidationConfig_Provider() { +} + type ExtAuthConfig_PlainOAuth2Config struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -8688,7 +9058,7 @@ type ExtAuthConfig_PlainOAuth2Config struct { func (x *ExtAuthConfig_PlainOAuth2Config) Reset() { *x = ExtAuthConfig_PlainOAuth2Config{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[112] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8701,7 +9071,7 @@ func (x *ExtAuthConfig_PlainOAuth2Config) String() string { func (*ExtAuthConfig_PlainOAuth2Config) ProtoMessage() {} func (x *ExtAuthConfig_PlainOAuth2Config) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[112] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8714,7 +9084,7 @@ func (x *ExtAuthConfig_PlainOAuth2Config) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtAuthConfig_PlainOAuth2Config.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_PlainOAuth2Config) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 5} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 7} } func (x *ExtAuthConfig_PlainOAuth2Config) GetClientId() string { @@ -8832,7 +9202,7 @@ type ExtAuthConfig_OAuth2Config struct { func (x *ExtAuthConfig_OAuth2Config) Reset() { *x = ExtAuthConfig_OAuth2Config{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[113] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8845,7 +9215,7 @@ func (x *ExtAuthConfig_OAuth2Config) String() string { func (*ExtAuthConfig_OAuth2Config) ProtoMessage() {} func (x *ExtAuthConfig_OAuth2Config) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[113] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8858,7 +9228,7 @@ func (x *ExtAuthConfig_OAuth2Config) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtAuthConfig_OAuth2Config.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_OAuth2Config) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 6} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 8} } func (m *ExtAuthConfig_OAuth2Config) GetOauthType() isExtAuthConfig_OAuth2Config_OauthType { @@ -8946,6 +9316,7 @@ type ExtAuthConfig_ApiKeyAuthConfig struct { // // *ExtAuthConfig_ApiKeyAuthConfig_K8SSecretApikeyStorage // *ExtAuthConfig_ApiKeyAuthConfig_AerospikeApikeyStorage + // *ExtAuthConfig_ApiKeyAuthConfig_ServerDefaultApikeyStorage StorageBackend isExtAuthConfig_ApiKeyAuthConfig_StorageBackend `protobuf_oneof:"storage_backend"` // API key metadata may contain data is is invalid for a header, such as a newline. By default, this data will be validated // in the data plane and mitigated in a way that provides a consistent experience for the user and visibility for the operator. @@ -8956,7 +9327,7 @@ type ExtAuthConfig_ApiKeyAuthConfig struct { func (x *ExtAuthConfig_ApiKeyAuthConfig) Reset() { *x = ExtAuthConfig_ApiKeyAuthConfig{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[114] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8969,7 +9340,7 @@ func (x *ExtAuthConfig_ApiKeyAuthConfig) String() string { func (*ExtAuthConfig_ApiKeyAuthConfig) ProtoMessage() {} func (x *ExtAuthConfig_ApiKeyAuthConfig) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[114] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8982,7 +9353,7 @@ func (x *ExtAuthConfig_ApiKeyAuthConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtAuthConfig_ApiKeyAuthConfig.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_ApiKeyAuthConfig) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 7} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 9} } func (x *ExtAuthConfig_ApiKeyAuthConfig) GetValidApiKeys() map[string]*ExtAuthConfig_ApiKeyAuthConfig_KeyMetadata { @@ -9027,6 +9398,13 @@ func (x *ExtAuthConfig_ApiKeyAuthConfig) GetAerospikeApikeyStorage() *AerospikeA return nil } +func (x *ExtAuthConfig_ApiKeyAuthConfig) GetServerDefaultApikeyStorage() *ServerDefaultApiKeyStorage { + if x, ok := x.GetStorageBackend().(*ExtAuthConfig_ApiKeyAuthConfig_ServerDefaultApikeyStorage); ok { + return x.ServerDefaultApikeyStorage + } + return nil +} + func (x *ExtAuthConfig_ApiKeyAuthConfig) GetSkipMetadataValidation() bool { if x != nil { return x.SkipMetadataValidation @@ -9046,12 +9424,19 @@ type ExtAuthConfig_ApiKeyAuthConfig_AerospikeApikeyStorage struct { AerospikeApikeyStorage *AerospikeApiKeyStorage `protobuf:"bytes,5,opt,name=aerospike_apikey_storage,json=aerospikeApikeyStorage,proto3,oneof"` } +type ExtAuthConfig_ApiKeyAuthConfig_ServerDefaultApikeyStorage struct { + ServerDefaultApikeyStorage *ServerDefaultApiKeyStorage `protobuf:"bytes,7,opt,name=server_default_apikey_storage,json=serverDefaultApikeyStorage,proto3,oneof"` +} + func (*ExtAuthConfig_ApiKeyAuthConfig_K8SSecretApikeyStorage) isExtAuthConfig_ApiKeyAuthConfig_StorageBackend() { } func (*ExtAuthConfig_ApiKeyAuthConfig_AerospikeApikeyStorage) isExtAuthConfig_ApiKeyAuthConfig_StorageBackend() { } +func (*ExtAuthConfig_ApiKeyAuthConfig_ServerDefaultApikeyStorage) isExtAuthConfig_ApiKeyAuthConfig_StorageBackend() { +} + type ExtAuthConfig_OpaAuthConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -9070,7 +9455,7 @@ type ExtAuthConfig_OpaAuthConfig struct { func (x *ExtAuthConfig_OpaAuthConfig) Reset() { *x = ExtAuthConfig_OpaAuthConfig{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[115] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9083,7 +9468,7 @@ func (x *ExtAuthConfig_OpaAuthConfig) String() string { func (*ExtAuthConfig_OpaAuthConfig) ProtoMessage() {} func (x *ExtAuthConfig_OpaAuthConfig) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[115] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9096,7 +9481,7 @@ func (x *ExtAuthConfig_OpaAuthConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtAuthConfig_OpaAuthConfig.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_OpaAuthConfig) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 8} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 10} } func (x *ExtAuthConfig_OpaAuthConfig) GetModules() map[string]string { @@ -9148,7 +9533,7 @@ type ExtAuthConfig_OpaServerAuthConfig struct { func (x *ExtAuthConfig_OpaServerAuthConfig) Reset() { *x = ExtAuthConfig_OpaServerAuthConfig{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[116] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9161,7 +9546,7 @@ func (x *ExtAuthConfig_OpaServerAuthConfig) String() string { func (*ExtAuthConfig_OpaServerAuthConfig) ProtoMessage() {} func (x *ExtAuthConfig_OpaServerAuthConfig) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[116] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9174,7 +9559,7 @@ func (x *ExtAuthConfig_OpaServerAuthConfig) ProtoReflect() protoreflect.Message // Deprecated: Use ExtAuthConfig_OpaServerAuthConfig.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_OpaServerAuthConfig) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 9} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 11} } func (x *ExtAuthConfig_OpaServerAuthConfig) GetPackage() string { @@ -9240,7 +9625,7 @@ type ExtAuthConfig_LdapConfig struct { func (x *ExtAuthConfig_LdapConfig) Reset() { *x = ExtAuthConfig_LdapConfig{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[117] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9253,7 +9638,7 @@ func (x *ExtAuthConfig_LdapConfig) String() string { func (*ExtAuthConfig_LdapConfig) ProtoMessage() {} func (x *ExtAuthConfig_LdapConfig) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[117] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9266,7 +9651,7 @@ func (x *ExtAuthConfig_LdapConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtAuthConfig_LdapConfig.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_LdapConfig) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 10} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 12} } func (x *ExtAuthConfig_LdapConfig) GetAddress() string { @@ -9340,7 +9725,7 @@ type ExtAuthConfig_LdapServiceAccountConfig struct { func (x *ExtAuthConfig_LdapServiceAccountConfig) Reset() { *x = ExtAuthConfig_LdapServiceAccountConfig{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[118] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9353,7 +9738,7 @@ func (x *ExtAuthConfig_LdapServiceAccountConfig) String() string { func (*ExtAuthConfig_LdapServiceAccountConfig) ProtoMessage() {} func (x *ExtAuthConfig_LdapServiceAccountConfig) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[118] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9366,7 +9751,7 @@ func (x *ExtAuthConfig_LdapServiceAccountConfig) ProtoReflect() protoreflect.Mes // Deprecated: Use ExtAuthConfig_LdapServiceAccountConfig.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_LdapServiceAccountConfig) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 11} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 13} } func (x *ExtAuthConfig_LdapServiceAccountConfig) GetUsername() string { @@ -9410,7 +9795,7 @@ type ExtAuthConfig_HmacAuthConfig struct { func (x *ExtAuthConfig_HmacAuthConfig) Reset() { *x = ExtAuthConfig_HmacAuthConfig{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[119] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9423,7 +9808,7 @@ func (x *ExtAuthConfig_HmacAuthConfig) String() string { func (*ExtAuthConfig_HmacAuthConfig) ProtoMessage() {} func (x *ExtAuthConfig_HmacAuthConfig) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[119] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9436,7 +9821,7 @@ func (x *ExtAuthConfig_HmacAuthConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtAuthConfig_HmacAuthConfig.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_HmacAuthConfig) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 12} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 14} } func (m *ExtAuthConfig_HmacAuthConfig) GetSecretStorage() isExtAuthConfig_HmacAuthConfig_SecretStorage { @@ -9500,7 +9885,7 @@ type ExtAuthConfig_InMemorySecretList struct { func (x *ExtAuthConfig_InMemorySecretList) Reset() { *x = ExtAuthConfig_InMemorySecretList{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[120] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9513,7 +9898,7 @@ func (x *ExtAuthConfig_InMemorySecretList) String() string { func (*ExtAuthConfig_InMemorySecretList) ProtoMessage() {} func (x *ExtAuthConfig_InMemorySecretList) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[120] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9526,7 +9911,7 @@ func (x *ExtAuthConfig_InMemorySecretList) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtAuthConfig_InMemorySecretList.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_InMemorySecretList) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 13} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 15} } func (x *ExtAuthConfig_InMemorySecretList) GetSecretList() map[string]string { @@ -9567,7 +9952,7 @@ type ExtAuthConfig_Config struct { func (x *ExtAuthConfig_Config) Reset() { *x = ExtAuthConfig_Config{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[121] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9580,7 +9965,7 @@ func (x *ExtAuthConfig_Config) String() string { func (*ExtAuthConfig_Config) ProtoMessage() {} func (x *ExtAuthConfig_Config) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[121] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9593,7 +9978,7 @@ func (x *ExtAuthConfig_Config) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtAuthConfig_Config.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_Config) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 14} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 16} } func (x *ExtAuthConfig_Config) GetName() *wrappers.StringValue { @@ -9807,7 +10192,7 @@ type ExtAuthConfig_BasicAuthInternal_EncryptionType struct { func (x *ExtAuthConfig_BasicAuthInternal_EncryptionType) Reset() { *x = ExtAuthConfig_BasicAuthInternal_EncryptionType{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[122] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9820,7 +10205,7 @@ func (x *ExtAuthConfig_BasicAuthInternal_EncryptionType) String() string { func (*ExtAuthConfig_BasicAuthInternal_EncryptionType) ProtoMessage() {} func (x *ExtAuthConfig_BasicAuthInternal_EncryptionType) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[122] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9833,7 +10218,7 @@ func (x *ExtAuthConfig_BasicAuthInternal_EncryptionType) ProtoReflect() protoref // Deprecated: Use ExtAuthConfig_BasicAuthInternal_EncryptionType.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_BasicAuthInternal_EncryptionType) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 0, 0} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 2, 0} } func (m *ExtAuthConfig_BasicAuthInternal_EncryptionType) GetAlgorithm() isExtAuthConfig_BasicAuthInternal_EncryptionType_Algorithm { @@ -9888,7 +10273,7 @@ type ExtAuthConfig_BasicAuthInternal_User struct { func (x *ExtAuthConfig_BasicAuthInternal_User) Reset() { *x = ExtAuthConfig_BasicAuthInternal_User{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[123] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9901,7 +10286,7 @@ func (x *ExtAuthConfig_BasicAuthInternal_User) String() string { func (*ExtAuthConfig_BasicAuthInternal_User) ProtoMessage() {} func (x *ExtAuthConfig_BasicAuthInternal_User) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[123] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9914,7 +10299,7 @@ func (x *ExtAuthConfig_BasicAuthInternal_User) ProtoReflect() protoreflect.Messa // Deprecated: Use ExtAuthConfig_BasicAuthInternal_User.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_BasicAuthInternal_User) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 0, 1} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 2, 1} } func (x *ExtAuthConfig_BasicAuthInternal_User) GetSalt() string { @@ -9943,7 +10328,7 @@ type ExtAuthConfig_BasicAuthInternal_UserList struct { func (x *ExtAuthConfig_BasicAuthInternal_UserList) Reset() { *x = ExtAuthConfig_BasicAuthInternal_UserList{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[124] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9956,7 +10341,7 @@ func (x *ExtAuthConfig_BasicAuthInternal_UserList) String() string { func (*ExtAuthConfig_BasicAuthInternal_UserList) ProtoMessage() {} func (x *ExtAuthConfig_BasicAuthInternal_UserList) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[124] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9969,7 +10354,7 @@ func (x *ExtAuthConfig_BasicAuthInternal_UserList) ProtoReflect() protoreflect.M // Deprecated: Use ExtAuthConfig_BasicAuthInternal_UserList.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_BasicAuthInternal_UserList) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 0, 2} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 2, 2} } func (x *ExtAuthConfig_BasicAuthInternal_UserList) GetUsers() map[string]*ExtAuthConfig_BasicAuthInternal_User { @@ -9988,7 +10373,7 @@ type ExtAuthConfig_BasicAuthInternal_EncryptionType_Sha1 struct { func (x *ExtAuthConfig_BasicAuthInternal_EncryptionType_Sha1) Reset() { *x = ExtAuthConfig_BasicAuthInternal_EncryptionType_Sha1{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[125] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10001,7 +10386,7 @@ func (x *ExtAuthConfig_BasicAuthInternal_EncryptionType_Sha1) String() string { func (*ExtAuthConfig_BasicAuthInternal_EncryptionType_Sha1) ProtoMessage() {} func (x *ExtAuthConfig_BasicAuthInternal_EncryptionType_Sha1) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[125] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10014,7 +10399,7 @@ func (x *ExtAuthConfig_BasicAuthInternal_EncryptionType_Sha1) ProtoReflect() pro // Deprecated: Use ExtAuthConfig_BasicAuthInternal_EncryptionType_Sha1.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_BasicAuthInternal_EncryptionType_Sha1) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 0, 0, 0} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 2, 0, 0} } type ExtAuthConfig_BasicAuthInternal_EncryptionType_Apr struct { @@ -10026,7 +10411,7 @@ type ExtAuthConfig_BasicAuthInternal_EncryptionType_Apr struct { func (x *ExtAuthConfig_BasicAuthInternal_EncryptionType_Apr) Reset() { *x = ExtAuthConfig_BasicAuthInternal_EncryptionType_Apr{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[126] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10039,7 +10424,7 @@ func (x *ExtAuthConfig_BasicAuthInternal_EncryptionType_Apr) String() string { func (*ExtAuthConfig_BasicAuthInternal_EncryptionType_Apr) ProtoMessage() {} func (x *ExtAuthConfig_BasicAuthInternal_EncryptionType_Apr) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[126] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10052,7 +10437,7 @@ func (x *ExtAuthConfig_BasicAuthInternal_EncryptionType_Apr) ProtoReflect() prot // Deprecated: Use ExtAuthConfig_BasicAuthInternal_EncryptionType_Apr.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_BasicAuthInternal_EncryptionType_Apr) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 0, 0, 1} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 2, 0, 1} } type ExtAuthConfig_UserSessionConfig_CipherConfig struct { @@ -10068,7 +10453,7 @@ type ExtAuthConfig_UserSessionConfig_CipherConfig struct { func (x *ExtAuthConfig_UserSessionConfig_CipherConfig) Reset() { *x = ExtAuthConfig_UserSessionConfig_CipherConfig{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[129] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10081,7 +10466,7 @@ func (x *ExtAuthConfig_UserSessionConfig_CipherConfig) String() string { func (*ExtAuthConfig_UserSessionConfig_CipherConfig) ProtoMessage() {} func (x *ExtAuthConfig_UserSessionConfig_CipherConfig) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[129] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10094,7 +10479,7 @@ func (x *ExtAuthConfig_UserSessionConfig_CipherConfig) ProtoReflect() protorefle // Deprecated: Use ExtAuthConfig_UserSessionConfig_CipherConfig.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_UserSessionConfig_CipherConfig) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 2, 0} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 4, 0} } func (x *ExtAuthConfig_UserSessionConfig_CipherConfig) GetKey() string { @@ -10120,7 +10505,7 @@ type ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConfig s func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConfig) Reset() { *x = ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConfig{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[132] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10133,7 +10518,7 @@ func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConf func (*ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConfig) ProtoMessage() {} func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConfig) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[132] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10146,7 +10531,7 @@ func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConf // Deprecated: Use ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConfig.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConfig) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 3, 2} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 5, 2} } func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConfig) GetSigningKey() string { @@ -10163,73 +10548,6 @@ func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConf return nil } -// Map a single claim from an OAuth2 or OIDC token to a header in the request to the upstream destination. -type ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The claim name from the token, such as `sub`. - Claim string `protobuf:"bytes,1,opt,name=claim,proto3" json:"claim,omitempty"` - // The header to copy the claim to, such as `x-sub`. - Header string `protobuf:"bytes,2,opt,name=header,proto3" json:"header,omitempty"` - // If the header exists, append the claim value to the header (true), or overwrite any existing value (false). The default behavior is to overwrite any existing value (false). - Append bool `protobuf:"varint,3,opt,name=append,proto3" json:"append,omitempty"` -} - -func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) Reset() { - *x = ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[133] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) ProtoMessage() {} - -func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[133] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader.ProtoReflect.Descriptor instead. -func (*ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 3, 3} -} - -func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) GetClaim() string { - if x != nil { - return x.Claim - } - return "" -} - -func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) GetHeader() string { - if x != nil { - return x.Header - } - return "" -} - -func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) GetAppend() bool { - if x != nil { - return x.Append - } - return false -} - // Optional: Map a single claim from an OAuth2 access token to a header in the request to the upstream destination. type ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken struct { state protoimpl.MessageState @@ -10237,13 +10555,13 @@ type ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken struct { unknownFields protoimpl.UnknownFields // A list of claims to be mapped from the JWT token received by ext-auth-service to an upstream destination - ClaimsToHeaders []*ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader `protobuf:"bytes,1,rep,name=claims_to_headers,json=claimsToHeaders,proto3" json:"claims_to_headers,omitempty"` + ClaimsToHeaders []*ExtAuthConfig_ClaimToHeader `protobuf:"bytes,1,rep,name=claims_to_headers,json=claimsToHeaders,proto3" json:"claims_to_headers,omitempty"` } func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken) Reset() { *x = ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[134] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10256,7 +10574,7 @@ func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken) String() string func (*ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken) ProtoMessage() {} func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[134] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10269,10 +10587,10 @@ func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken) ProtoReflect() p // Deprecated: Use ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 3, 4} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 5, 3} } -func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken) GetClaimsToHeaders() []*ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader { +func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken) GetClaimsToHeaders() []*ExtAuthConfig_ClaimToHeader { if x != nil { return x.ClaimsToHeaders } @@ -10286,13 +10604,13 @@ type ExtAuthConfig_OidcAuthorizationCodeConfig_IdentityToken struct { unknownFields protoimpl.UnknownFields // A list of claims to be mapped from the JWT token received by ext-auth-service to an upstream destination - ClaimsToHeaders []*ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader `protobuf:"bytes,1,rep,name=claims_to_headers,json=claimsToHeaders,proto3" json:"claims_to_headers,omitempty"` + ClaimsToHeaders []*ExtAuthConfig_ClaimToHeader `protobuf:"bytes,1,rep,name=claims_to_headers,json=claimsToHeaders,proto3" json:"claims_to_headers,omitempty"` } func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_IdentityToken) Reset() { *x = ExtAuthConfig_OidcAuthorizationCodeConfig_IdentityToken{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[135] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10305,7 +10623,7 @@ func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_IdentityToken) String() strin func (*ExtAuthConfig_OidcAuthorizationCodeConfig_IdentityToken) ProtoMessage() {} func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_IdentityToken) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[135] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10318,10 +10636,10 @@ func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_IdentityToken) ProtoReflect() // Deprecated: Use ExtAuthConfig_OidcAuthorizationCodeConfig_IdentityToken.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_OidcAuthorizationCodeConfig_IdentityToken) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 3, 5} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 5, 4} } -func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_IdentityToken) GetClaimsToHeaders() []*ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader { +func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_IdentityToken) GetClaimsToHeaders() []*ExtAuthConfig_ClaimToHeader { if x != nil { return x.ClaimsToHeaders } @@ -10338,7 +10656,7 @@ type ExtAuthConfig_OidcAuthorizationCodeConfig_Default struct { func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_Default) Reset() { *x = ExtAuthConfig_OidcAuthorizationCodeConfig_Default{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[136] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10351,7 +10669,7 @@ func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_Default) String() string { func (*ExtAuthConfig_OidcAuthorizationCodeConfig_Default) ProtoMessage() {} func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_Default) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[136] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10364,91 +10682,7 @@ func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_Default) ProtoReflect() proto // Deprecated: Use ExtAuthConfig_OidcAuthorizationCodeConfig_Default.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_OidcAuthorizationCodeConfig_Default) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 3, 6} -} - -// For apps in Microsoft Azure, configure Microsoft Entra ID as the OpenID Connect (OIDC) provider. -// This way, you can enable distributed claims and caching for when users are members of more than 200 groups. -type ExtAuthConfig_OidcAuthorizationCodeConfig_Azure struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The client ID for the ExtAuthService app that is registered in MS Entra, - // to access the Microsoft Graph API to retrieve distributed claims. - // This app is NOT the app that you want to configure external auth for. - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - // The tenant ID represents the MS Entra organization ID where the ExtAuthService app is registered. - // This tenant ID may or may not be the same as in the top level `OidcAuthorizationCodeConfig`, - // depending on how your Azure account is provisioned. - TenantId string `protobuf:"bytes,2,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"` - // The client secret of the ExtAuthService app that is registered with MS Entra to communicate with the MS Graph API. - ClientSecret string `protobuf:"bytes,3,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` - // Redis connection details to cache MS Entera claims. - // This way, you avoid performance issues of accessing the Microsoft Graph API too many times. - // Note that this setting does NOT turn on Redis caching for the user session. - // To turn on Redis user session caching, use the `userSessionConfig` field. - ClaimsCachingOptions *RedisOptions `protobuf:"bytes,4,opt,name=claims_caching_options,json=claimsCachingOptions,proto3" json:"claims_caching_options,omitempty"` -} - -func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure) Reset() { - *x = ExtAuthConfig_OidcAuthorizationCodeConfig_Azure{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[137] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ExtAuthConfig_OidcAuthorizationCodeConfig_Azure) ProtoMessage() {} - -func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[137] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ExtAuthConfig_OidcAuthorizationCodeConfig_Azure.ProtoReflect.Descriptor instead. -func (*ExtAuthConfig_OidcAuthorizationCodeConfig_Azure) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 3, 7} -} - -func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure) GetClientId() string { - if x != nil { - return x.ClientId - } - return "" -} - -func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure) GetTenantId() string { - if x != nil { - return x.TenantId - } - return "" -} - -func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure) GetClientSecret() string { - if x != nil { - return x.ClientSecret - } - return "" -} - -func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure) GetClaimsCachingOptions() *RedisOptions { - if x != nil { - return x.ClaimsCachingOptions - } - return nil + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 5, 5} } // For the moment this is just path, but we may want to configure things like iss/sid validation @@ -10464,7 +10698,7 @@ type ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout struct { func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout) Reset() { *x = ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[138] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10477,7 +10711,7 @@ func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout) String() func (*ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout) ProtoMessage() {} func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[138] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10490,7 +10724,7 @@ func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout) ProtoRefl // Deprecated: Use ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 3, 8} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 5, 6} } func (x *ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout) GetPath() string { @@ -10536,7 +10770,7 @@ type ExtAuthConfig_AccessTokenValidationConfig_JwtValidation struct { func (x *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation) Reset() { *x = ExtAuthConfig_AccessTokenValidationConfig_JwtValidation{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[139] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10549,7 +10783,7 @@ func (x *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation) String() strin func (*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation) ProtoMessage() {} func (x *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[139] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10562,7 +10796,7 @@ func (x *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation) ProtoReflect() // Deprecated: Use ExtAuthConfig_AccessTokenValidationConfig_JwtValidation.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 4, 0} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 6, 0} } func (m *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation) GetJwksSourceSpecifier() isExtAuthConfig_AccessTokenValidationConfig_JwtValidation_JwksSourceSpecifier { @@ -10646,7 +10880,7 @@ type ExtAuthConfig_AccessTokenValidationConfig_IntrospectionValidation struct { func (x *ExtAuthConfig_AccessTokenValidationConfig_IntrospectionValidation) Reset() { *x = ExtAuthConfig_AccessTokenValidationConfig_IntrospectionValidation{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[140] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10659,7 +10893,7 @@ func (x *ExtAuthConfig_AccessTokenValidationConfig_IntrospectionValidation) Stri func (*ExtAuthConfig_AccessTokenValidationConfig_IntrospectionValidation) ProtoMessage() {} func (x *ExtAuthConfig_AccessTokenValidationConfig_IntrospectionValidation) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[140] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10672,7 +10906,7 @@ func (x *ExtAuthConfig_AccessTokenValidationConfig_IntrospectionValidation) Prot // Deprecated: Use ExtAuthConfig_AccessTokenValidationConfig_IntrospectionValidation.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_AccessTokenValidationConfig_IntrospectionValidation) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 4, 1} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 6, 1} } func (x *ExtAuthConfig_AccessTokenValidationConfig_IntrospectionValidation) GetIntrospectionUrl() string { @@ -10714,7 +10948,7 @@ type ExtAuthConfig_AccessTokenValidationConfig_ScopeList struct { func (x *ExtAuthConfig_AccessTokenValidationConfig_ScopeList) Reset() { *x = ExtAuthConfig_AccessTokenValidationConfig_ScopeList{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[141] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10727,7 +10961,7 @@ func (x *ExtAuthConfig_AccessTokenValidationConfig_ScopeList) String() string { func (*ExtAuthConfig_AccessTokenValidationConfig_ScopeList) ProtoMessage() {} func (x *ExtAuthConfig_AccessTokenValidationConfig_ScopeList) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[141] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10740,7 +10974,7 @@ func (x *ExtAuthConfig_AccessTokenValidationConfig_ScopeList) ProtoReflect() pro // Deprecated: Use ExtAuthConfig_AccessTokenValidationConfig_ScopeList.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_AccessTokenValidationConfig_ScopeList) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 4, 2} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 6, 2} } func (x *ExtAuthConfig_AccessTokenValidationConfig_ScopeList) GetScope() []string { @@ -10750,6 +10984,45 @@ func (x *ExtAuthConfig_AccessTokenValidationConfig_ScopeList) GetScope() []strin return nil } +// No-op, represents default OIDC behavior +type ExtAuthConfig_AccessTokenValidationConfig_Default struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ExtAuthConfig_AccessTokenValidationConfig_Default) Reset() { + *x = ExtAuthConfig_AccessTokenValidationConfig_Default{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[146] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExtAuthConfig_AccessTokenValidationConfig_Default) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExtAuthConfig_AccessTokenValidationConfig_Default) ProtoMessage() {} + +func (x *ExtAuthConfig_AccessTokenValidationConfig_Default) ProtoReflect() protoreflect.Message { + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[146] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExtAuthConfig_AccessTokenValidationConfig_Default.ProtoReflect.Descriptor instead. +func (*ExtAuthConfig_AccessTokenValidationConfig_Default) Descriptor() ([]byte, []int) { + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 6, 4} +} + // Specifies how to fetch JWKS from remote and how to cache it. type ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks struct { state protoimpl.MessageState @@ -10766,7 +11039,7 @@ type ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks struct { func (x *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks) Reset() { *x = ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[142] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10779,7 +11052,7 @@ func (x *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks) Str func (*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks) ProtoMessage() {} func (x *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[142] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10792,7 +11065,7 @@ func (x *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks) Pro // Deprecated: Use ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 4, 0, 0} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 6, 0, 0} } func (x *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks) GetUrl() string { @@ -10822,7 +11095,7 @@ type ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_LocalJwks struct { func (x *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_LocalJwks) Reset() { *x = ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_LocalJwks{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[143] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10835,7 +11108,7 @@ func (x *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_LocalJwks) Stri func (*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_LocalJwks) ProtoMessage() {} func (x *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_LocalJwks) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[143] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10848,7 +11121,7 @@ func (x *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_LocalJwks) Prot // Deprecated: Use ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_LocalJwks.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_LocalJwks) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 4, 0, 1} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 6, 0, 1} } func (x *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_LocalJwks) GetInlineString() string { @@ -10872,7 +11145,7 @@ type ExtAuthConfig_ApiKeyAuthConfig_KeyMetadata struct { func (x *ExtAuthConfig_ApiKeyAuthConfig_KeyMetadata) Reset() { *x = ExtAuthConfig_ApiKeyAuthConfig_KeyMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[146] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10885,7 +11158,7 @@ func (x *ExtAuthConfig_ApiKeyAuthConfig_KeyMetadata) String() string { func (*ExtAuthConfig_ApiKeyAuthConfig_KeyMetadata) ProtoMessage() {} func (x *ExtAuthConfig_ApiKeyAuthConfig_KeyMetadata) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[146] + mi := &file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10898,7 +11171,7 @@ func (x *ExtAuthConfig_ApiKeyAuthConfig_KeyMetadata) ProtoReflect() protoreflect // Deprecated: Use ExtAuthConfig_ApiKeyAuthConfig_KeyMetadata.ProtoReflect.Descriptor instead. func (*ExtAuthConfig_ApiKeyAuthConfig_KeyMetadata) Descriptor() ([]byte, []int) { - return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{44, 7, 0} + return file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDescGZIP(), []int{46, 9, 0} } func (x *ExtAuthConfig_ApiKeyAuthConfig_KeyMetadata) GetUsername() string { @@ -11449,277 +11722,156 @@ var file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_pr 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x22, 0xb2, 0x1b, 0x0a, - 0x15, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x22, 0xde, 0x01, 0x0a, + 0x05, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x66, 0x12, 0x1d, - 0x0a, 0x0a, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x88, 0x01, - 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, - 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4f, 0x69, 0x64, - 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x64, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x17, 0x61, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x8b, 0x01, 0x0a, 0x1b, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, - 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, - 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x54, + 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x3e, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, + 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, + 0x65, 0x66, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x12, 0x5b, 0x0a, 0x16, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, + 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x14, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x43, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xbb, 0x19, + 0x0a, 0x15, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x66, 0x12, + 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x88, + 0x01, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, + 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4f, 0x69, + 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x64, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x8b, 0x01, 0x0a, 0x1b, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x4c, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, + 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x2e, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x18, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x18, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x70, 0x55, 0x72, 0x6c, 0x12, - 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, - 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, - 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x6c, - 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x61, 0x66, 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x55, 0x72, 0x6c, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, - 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, - 0x69, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, - 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, - 0x69, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, - 0x59, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6f, 0x76, 0x65, - 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6e, - 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, - 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4f, - 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 0x11, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x79, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x51, 0x0a, 0x17, 0x64, 0x69, - 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, - 0x79, 0x50, 0x6f, 0x6c, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x72, 0x0a, - 0x19, 0x6a, 0x77, 0x6b, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x37, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, - 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4a, 0x77, 0x6b, 0x73, 0x4f, - 0x6e, 0x44, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x16, 0x6a, 0x77, 0x6b, 0x73, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x12, 0x37, 0x0a, 0x16, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x5f, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x13, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x1c, 0x70, 0x61, - 0x72, 0x73, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x5f, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x18, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, - 0x61, 0x74, 0x68, 0x41, 0x73, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x61, 0x0a, 0x16, 0x61, 0x75, - 0x74, 0x6f, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, - 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x61, 0x70, 0x46, 0x72, 0x6f, 0x6d, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x4d, 0x61, - 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x63, 0x0a, - 0x16, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, - 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x6e, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x14, 0x65, 0x6e, - 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, - 0x65, 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x1c, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x6c, 0x61, - 0x69, 0x6d, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x65, 0x6e, 0x74, 0x65, + 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, 0x75, + 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x70, 0x55, 0x72, 0x6c, + 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, + 0x6b, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, + 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, + 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x61, 0x66, 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x55, 0x72, 0x6c, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, - 0x2e, 0x69, 0x6f, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, - 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6c, 0x61, - 0x69, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x19, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, - 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6c, 0x61, - 0x69, 0x6d, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x15, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x02, - 0x18, 0x01, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x5d, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, - 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x63, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, + 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, + 0x2e, 0x69, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x12, 0x59, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, + 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, + 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 0x11, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x79, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x51, 0x0a, 0x17, 0x64, + 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, + 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x72, + 0x0a, 0x19, 0x6a, 0x77, 0x6b, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x72, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x37, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, + 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4a, 0x77, 0x6b, 0x73, + 0x4f, 0x6e, 0x44, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x16, 0x6a, 0x77, 0x6b, 0x73, + 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x12, 0x37, 0x0a, 0x16, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x13, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x1c, 0x70, + 0x61, 0x72, 0x73, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x5f, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x18, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x50, 0x61, 0x74, 0x68, 0x41, 0x73, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x61, 0x0a, 0x16, 0x61, + 0x75, 0x74, 0x6f, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, + 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x61, 0x70, 0x46, 0x72, 0x6f, + 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x4d, + 0x61, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x63, + 0x0a, 0x16, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, - 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0d, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x78, 0x0a, 0x15, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x65, 0x6e, 0x74, + 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x6e, 0x64, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x14, 0x65, + 0x6e, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x1c, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x14, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, - 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, - 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x00, - 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x4c, 0x0a, 0x05, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, - 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, - 0x69, 0x6f, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x48, 0x00, - 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x73, 0x0a, 0x14, 0x66, 0x72, 0x6f, 0x6e, 0x74, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x18, - 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, - 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, - 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x12, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x1a, 0x4a, 0x0a, 0x1c, - 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x1d, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4c, 0x0a, 0x1e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6c, 0x61, 0x69, - 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x1a, 0x61, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x52, 0x0a, 0x11, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x5f, 0x74, 0x6f, 0x5f, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, - 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x6f, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x54, 0x6f, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x1a, 0x63, 0x0a, 0x0d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x52, 0x0a, 0x11, 0x63, 0x6c, 0x61, 0x69, 0x6d, - 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, - 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x43, 0x6c, 0x61, - 0x69, 0x6d, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0f, 0x63, 0x6c, 0x61, 0x69, - 0x6d, 0x73, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x1a, 0xe1, 0x04, 0x0a, 0x14, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x77, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x65, 0x6e, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, + 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6c, + 0x61, 0x69, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x19, 0x64, 0x79, 0x6e, 0x61, 0x6d, + 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6c, + 0x61, 0x69, 0x6d, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x5d, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, + 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, + 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x63, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3c, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, + 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x2e, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0d, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x78, 0x0a, 0x15, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x48, 0x00, 0x52, - 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x7b, 0x0a, - 0x0f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6a, 0x77, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, - 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, - 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, - 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x4a, 0x77, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x4a, 0x77, 0x74, 0x1a, 0xa5, 0x01, 0x0a, 0x0c, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x45, 0x0a, 0x11, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x6f, - 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, - 0x66, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, - 0x65, 0x66, 0x12, 0x4e, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x1a, 0x8a, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, - 0x79, 0x4a, 0x77, 0x74, 0x12, 0x41, 0x0a, 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x5f, - 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, - 0x67, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x66, 0x12, 0x36, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x42, - 0x1e, 0x0a, 0x1c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, - 0x09, 0x0a, 0x07, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x1a, 0xde, 0x01, 0x0a, 0x05, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3e, - 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x6f, 0x6c, - 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, - 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x5b, - 0x0a, 0x16, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, - 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x14, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x43, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x28, 0x0a, 0x12, 0x46, - 0x72, 0x6f, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x6f, 0x67, 0x6f, 0x75, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x22, 0xbc, 0x07, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x4f, 0x41, 0x75, 0x74, 0x68, - 0x32, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x45, - 0x0a, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, - 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x52, 0x65, 0x66, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x52, 0x65, 0x66, 0x12, 0x7e, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x65, 0x6e, 0x74, 0x65, + 0x52, 0x14, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, + 0x6f, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, + 0x00, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x36, 0x0a, 0x05, 0x61, 0x7a, + 0x75, 0x72, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, - 0x2e, 0x69, 0x6f, 0x2e, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x2e, - 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x17, 0x61, 0x75, - 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x23, - 0x0a, 0x0d, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, - 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, - 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, - 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x81, 0x01, 0x0a, - 0x1b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, - 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x50, 0x6c, 0x61, - 0x69, 0x6e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x18, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x45, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x28, 0x0a, 0x10, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, - 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x75, - 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, - 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x72, 0x65, 0x76, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x4a, 0x0a, 0x1c, 0x41, 0x75, 0x74, 0x68, 0x45, + 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, + 0x72, 0x65, 0x12, 0x73, 0x0a, 0x14, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x5f, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x41, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, + 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, + 0x2e, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x6f, 0x67, + 0x6f, 0x75, 0x74, 0x52, 0x12, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x1a, 0x4a, 0x0a, 0x1c, 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, @@ -11729,1014 +11881,1202 @@ var file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_pr 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x81, 0x03, 0x0a, 0x0d, 0x4a, 0x77, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6a, 0x77, 0x6b, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, - 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, - 0x6f, 0x2e, 0x4a, 0x77, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x77, 0x6b, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x77, 0x6b, 0x73, 0x12, 0x51, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x6a, 0x77, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, + 0x1a, 0x4c, 0x0a, 0x1e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x61, + 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x52, 0x0a, + 0x11, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, + 0x69, 0x6f, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x52, 0x0f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x1a, 0x63, 0x0a, 0x0d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x52, 0x0a, 0x11, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x5f, 0x74, 0x6f, 0x5f, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, + 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x6f, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x54, 0x6f, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x1a, 0xe1, 0x04, 0x0a, 0x14, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x77, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, + 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, + 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, + 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x7b, 0x0a, 0x0f, 0x70, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6a, 0x77, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x51, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, + 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4f, 0x69, 0x64, 0x63, + 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, + 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, + 0x79, 0x4a, 0x77, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, + 0x65, 0x79, 0x4a, 0x77, 0x74, 0x1a, 0xa5, 0x01, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x45, 0x0a, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, + 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x52, 0x0f, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x66, 0x12, 0x4e, 0x0a, + 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, + 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x8a, 0x01, + 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x4a, 0x77, 0x74, 0x12, + 0x41, 0x0a, 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x72, + 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x52, 0x65, 0x66, 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x52, + 0x65, 0x66, 0x12, 0x36, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x42, 0x1e, 0x0a, 0x1c, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x09, 0x0a, 0x07, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x1a, 0x28, 0x0a, 0x12, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, + 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0xbc, 0x07, 0x0a, 0x0b, + 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x12, 0x1b, 0x0a, 0x09, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x11, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, + 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x52, 0x0f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x66, 0x12, + 0x7e, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, + 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x50, 0x6c, + 0x61, 0x69, 0x6e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x17, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x61, 0x70, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, + 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, + 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x81, 0x01, 0x0a, 0x1b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, - 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4a, 0x77, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x4a, 0x77, 0x6b, 0x73, 0x48, 0x00, - 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4a, 0x77, 0x6b, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x69, - 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, - 0x75, 0x65, 0x72, 0x1a, 0x64, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x77, 0x6b, - 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x75, 0x72, 0x6c, 0x12, 0x44, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x4f, 0x41, 0x75, 0x74, + 0x68, 0x32, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x18, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x66, 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x6f, 0x75, + 0x74, 0x55, 0x72, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x75, 0x74, + 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x12, 0x2f, 0x0a, 0x13, 0x72, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, + 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x12, 0x4e, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x1a, 0x4a, 0x0a, 0x1c, 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, + 0x1d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x81, 0x03, 0x0a, 0x0d, 0x4a, + 0x77, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x0b, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6a, 0x77, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, + 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4a, 0x77, 0x74, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x4a, 0x77, 0x6b, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x77, + 0x6b, 0x73, 0x12, 0x51, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6a, 0x77, 0x6b, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, + 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, + 0x2e, 0x4a, 0x77, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, + 0x6f, 0x63, 0x61, 0x6c, 0x4a, 0x77, 0x6b, 0x73, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x4a, 0x77, 0x6b, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x1a, 0x64, 0x0a, + 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x77, 0x6b, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x44, 0x0a, + 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x1a, 0x30, 0x0a, 0x09, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x4a, 0x77, 0x6b, 0x73, + 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x17, 0x0a, 0x15, 0x6a, 0x77, 0x6b, 0x73, 0x5f, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0xaf, + 0x02, 0x0a, 0x17, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x66, 0x12, 0x33, 0x0a, 0x16, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x4e, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x22, 0xc8, 0x07, 0x0a, 0x15, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x11, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x3a, 0x0a, + 0x03, 0x6a, 0x77, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, + 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4a, 0x77, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x6a, 0x77, 0x74, 0x12, 0x58, 0x0a, 0x0d, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x30, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, + 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x69, + 0x6e, 0x66, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x3e, 0x0a, 0x0d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x1a, 0x30, 0x0a, 0x09, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x4a, 0x77, 0x6b, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, - 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, - 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x17, 0x0a, 0x15, 0x6a, - 0x77, 0x6b, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x22, 0xaf, 0x02, 0x0a, 0x17, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, - 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x11, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x6f, 0x6c, - 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, - 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, - 0x66, 0x12, 0x33, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0xd1, 0x05, 0x0a, 0x15, 0x41, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x31, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, - 0x00, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x55, 0x72, 0x6c, 0x12, 0x3a, 0x0a, 0x03, 0x6a, 0x77, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, - 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4a, 0x77, 0x74, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x6a, 0x77, 0x74, 0x12, - 0x58, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x63, 0x61, 0x63, 0x68, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x63, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x64, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x38, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, + 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x53, 0x63, 0x6f, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x1c, + 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, + 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x19, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x12, 0x52, 0x0a, 0x11, + 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, + 0x6f, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, + 0x0f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x12, 0x52, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x36, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, + 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x02, 0x52, 0x07, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x12, 0x36, 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, + 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x7a, + 0x75, 0x72, 0x65, 0x48, 0x02, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x1a, 0x4c, 0x0a, 0x1e, + 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, + 0x72, 0x6f, 0x6d, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x09, 0x0a, 0x07, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x1a, 0x21, 0x0a, 0x09, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x73, + 0x63, 0x6f, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x32, 0x0a, 0x0b, 0x4f, + 0x61, 0x75, 0x74, 0x68, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, + 0xb6, 0x09, 0x0a, 0x0a, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, 0x68, 0x12, 0x61, + 0x0a, 0x0e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, - 0x2e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x73, 0x65, - 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x3e, 0x0a, 0x0d, - 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, - 0x63, 0x61, 0x63, 0x68, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x63, 0x0a, 0x0f, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, - 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, - 0x01, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x53, 0x63, 0x6f, 0x70, 0x65, - 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x1c, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x6c, 0x61, 0x69, - 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, - 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, - 0x69, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6c, 0x61, 0x69, - 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x19, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6c, 0x61, 0x69, - 0x6d, 0x73, 0x1a, 0x4c, 0x0a, 0x1e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x45, + 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, + 0x18, 0x01, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x42, 0x02, 0x18, 0x01, 0x52, 0x10, 0x61, + 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x66, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x74, 0x0a, 0x15, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x66, 0x72, 0x6f, 0x6d, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x3c, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, + 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, + 0x41, 0x75, 0x74, 0x68, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x46, 0x72, 0x6f, 0x6d, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, + 0x01, 0x52, 0x13, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x80, 0x01, 0x0a, 0x1b, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, + 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, + 0x68, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x18, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x6c, 0x0a, 0x19, 0x6b, 0x38, 0x73, + 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x5f, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, + 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4b, 0x38, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, + 0x16, 0x6b, 0x38, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x41, 0x70, 0x69, 0x6b, 0x65, 0x79, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x6b, 0x0a, 0x18, 0x61, 0x65, 0x72, 0x6f, 0x73, + 0x70, 0x69, 0x6b, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, + 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x65, 0x72, 0x6f, 0x73, 0x70, 0x69, 0x6b, 0x65, 0x41, 0x70, 0x69, + 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x16, 0x61, 0x65, + 0x72, 0x6f, 0x73, 0x70, 0x69, 0x6b, 0x65, 0x41, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x6b, 0x69, 0x70, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x40, + 0x0a, 0x12, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x1a, 0x21, 0x0a, 0x09, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, - 0x6f, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x5f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x32, 0x0a, 0x0b, 0x4f, 0x61, - 0x75, 0x74, 0x68, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0xb6, - 0x09, 0x0a, 0x0a, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, 0x68, 0x12, 0x61, 0x0a, - 0x0e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, - 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, - 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, - 0x01, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x42, 0x02, 0x18, 0x01, 0x52, 0x10, 0x61, 0x70, - 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x66, 0x73, 0x12, 0x1f, - 0x0a, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x74, 0x0a, 0x15, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, - 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, - 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x41, - 0x75, 0x74, 0x68, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, - 0x52, 0x13, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x80, 0x01, 0x0a, 0x1b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x65, 0x6e, - 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, - 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, 0x68, - 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x18, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x6c, 0x0a, 0x19, 0x6b, 0x38, 0x73, 0x5f, - 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x65, 0x6e, + 0x1a, 0x75, 0x0a, 0x18, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x43, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, + 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x41, 0x75, + 0x74, 0x68, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x7e, 0x0a, 0x1d, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x47, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, + 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x09, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x1a, 0x3f, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x22, 0x8f, 0x02, 0x0a, 0x16, 0x4b, 0x38, 0x73, + 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x12, 0x69, 0x0a, 0x0e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4b, 0x38, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x41, - 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x16, - 0x6b, 0x38, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x41, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x6b, 0x0a, 0x18, 0x61, 0x65, 0x72, 0x6f, 0x73, 0x70, - 0x69, 0x6b, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x48, + 0x0a, 0x13, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x5f, 0x72, 0x65, 0x66, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x52, 0x10, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x66, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x93, 0x0b, 0x0a, 0x16, 0x41, + 0x65, 0x72, 0x6f, 0x73, 0x70, 0x69, 0x6b, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x61, + 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x41, 0x6c, 0x6c, 0x12, 0x25, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, + 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x0c, + 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, + 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x65, 0x72, + 0x6f, 0x73, 0x70, 0x69, 0x6b, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x52, 0x0a, + 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x12, 0x5c, 0x0a, 0x0c, 0x72, 0x65, + 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3a, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, + 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x65, 0x72, 0x6f, 0x73, + 0x70, 0x69, 0x6b, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x41, 0x70, 0x52, 0x0a, 0x72, 0x65, + 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x41, 0x70, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x6c, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x63, 0x65, 0x72, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x63, 0x65, 0x72, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x6b, 0x65, 0x79, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, + 0x50, 0x61, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x6e, + 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x72, + 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x61, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x61, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, + 0x0b, 0x74, 0x6c, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6c, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x64, + 0x0a, 0x10, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x65, 0x72, 0x6f, 0x73, 0x70, 0x69, 0x6b, 0x65, 0x41, 0x70, 0x69, 0x4b, - 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x16, 0x61, 0x65, 0x72, - 0x6f, 0x73, 0x70, 0x69, 0x6b, 0x65, 0x41, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x6b, 0x69, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x40, 0x0a, - 0x12, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x75, 0x0a, 0x18, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x43, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x65, + 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x74, 0x6c, 0x73, 0x43, 0x75, 0x72, + 0x76, 0x65, 0x49, 0x44, 0x52, 0x0e, 0x74, 0x6c, 0x73, 0x43, 0x75, 0x72, 0x76, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x12, 0x69, 0x0a, 0x0e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, - 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, - 0x68, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x7e, 0x0a, 0x1d, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x47, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, - 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, - 0x69, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x09, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x1a, 0x3f, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, - 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x22, 0x8f, 0x02, 0x0a, 0x16, 0x4b, 0x38, 0x73, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x12, 0x69, 0x0a, 0x0e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x65, 0x6e, 0x74, + 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x65, 0x72, 0x6f, 0x73, 0x70, 0x69, 0x6b, 0x65, + 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, + 0xff, 0x01, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x12, 0x31, + 0x0a, 0x14, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x5f, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x11, + 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x35, 0x0a, 0x16, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, + 0x63, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x13, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x4c, + 0x69, 0x6e, 0x65, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x61, 0x64, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, + 0x64, 0x65, 0x53, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x44, 0x0a, 0x1e, 0x72, + 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x5f, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x1a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x53, + 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, + 0x63, 0x1a, 0x72, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x41, 0x70, 0x12, + 0x29, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x70, 0x5f, + 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x61, + 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x41, 0x70, 0x4f, 0x6e, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, + 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x70, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, + 0x41, 0x70, 0x41, 0x6c, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x5f, 0x61, 0x70, 0x1a, 0x96, 0x01, 0x0a, 0x0a, 0x74, 0x6c, 0x73, 0x43, 0x75, 0x72, + 0x76, 0x65, 0x49, 0x44, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x75, 0x72, 0x76, 0x65, 0x5f, 0x70, 0x32, + 0x35, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x63, 0x75, 0x72, 0x76, + 0x65, 0x50, 0x32, 0x35, 0x36, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x75, 0x72, 0x76, 0x65, 0x5f, 0x70, + 0x33, 0x38, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x63, 0x75, 0x72, + 0x76, 0x65, 0x50, 0x33, 0x38, 0x34, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x75, 0x72, 0x76, 0x65, 0x5f, + 0x70, 0x35, 0x32, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x63, 0x75, + 0x72, 0x76, 0x65, 0x50, 0x35, 0x32, 0x31, 0x12, 0x19, 0x0a, 0x07, 0x78, 0x5f, 0x32, 0x35, 0x35, + 0x31, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x78, 0x32, 0x35, 0x35, + 0x31, 0x39, 0x42, 0x0a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x76, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x40, + 0x0a, 0x12, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x42, 0x0e, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x22, 0xd5, + 0x01, 0x0a, 0x06, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x69, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x69, 0x4b, + 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x49, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, + 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x2e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xcd, 0x01, 0x0a, 0x0c, 0x41, 0x70, 0x69, 0x4b, 0x65, + 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x69, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, + 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x4f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, - 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4b, 0x38, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x41, 0x70, - 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x48, 0x0a, - 0x13, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, - 0x72, 0x65, 0x66, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x52, 0x65, 0x66, 0x52, 0x10, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x52, 0x65, 0x66, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x93, 0x0b, 0x0a, 0x16, 0x41, 0x65, - 0x72, 0x6f, 0x73, 0x70, 0x69, 0x6b, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x53, - 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x61, 0x6c, - 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x41, 0x6c, 0x6c, 0x12, 0x25, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6d, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x0c, 0x72, - 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3a, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, - 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x65, 0x72, 0x6f, - 0x73, 0x70, 0x69, 0x6b, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x52, 0x0a, 0x72, - 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x12, 0x5c, 0x0a, 0x0c, 0x72, 0x65, 0x61, - 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3a, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, - 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x65, 0x72, 0x6f, 0x73, 0x70, - 0x69, 0x6b, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x41, 0x70, 0x52, 0x0a, 0x72, 0x65, 0x61, - 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x41, 0x70, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x74, 0x6c, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x6c, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, - 0x65, 0x72, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x63, 0x65, 0x72, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x6e, 0x73, - 0x65, 0x63, 0x75, 0x72, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x49, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x72, 0x6f, - 0x6f, 0x74, 0x5f, 0x63, 0x61, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x61, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, - 0x74, 0x6c, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x74, 0x6c, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x64, 0x0a, - 0x10, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x97, 0x01, 0x0a, 0x07, 0x4f, 0x70, 0x61, 0x41, 0x75, + 0x74, 0x68, 0x12, 0x33, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, + 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x52, 0x07, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x41, 0x0a, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, + 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4f, 0x70, 0x61, 0x41, 0x75, 0x74, 0x68, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0x7a, 0x0a, 0x0e, 0x4f, 0x70, 0x61, 0x41, 0x75, 0x74, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x13, 0x66, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x5f, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x65, + 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xaa, 0x01, 0x0a, + 0x0d, 0x4f, 0x70, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x75, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x12, 0x41, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, - 0x6f, 0x2e, 0x41, 0x65, 0x72, 0x6f, 0x73, 0x70, 0x69, 0x6b, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, - 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x74, 0x6c, 0x73, 0x43, 0x75, 0x72, 0x76, - 0x65, 0x49, 0x44, 0x52, 0x0e, 0x74, 0x6c, 0x73, 0x43, 0x75, 0x72, 0x76, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x12, 0x69, 0x0a, 0x0e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x65, 0x6e, - 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, - 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x65, 0x72, 0x6f, 0x73, 0x70, 0x69, 0x6b, 0x65, 0x41, - 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0xff, - 0x01, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x12, 0x31, 0x0a, - 0x14, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x5f, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x11, 0x72, - 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x35, 0x0a, 0x16, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, - 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x13, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x4c, 0x69, - 0x6e, 0x65, 0x61, 0x72, 0x69, 0x7a, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x61, 0x64, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, - 0x65, 0x53, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x44, 0x0a, 0x1e, 0x72, 0x65, - 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x5f, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x1a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x63, - 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x42, 0x0e, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, - 0x1a, 0x72, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x41, 0x70, 0x12, 0x29, - 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x70, 0x5f, 0x6f, - 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, - 0x4d, 0x6f, 0x64, 0x65, 0x41, 0x70, 0x4f, 0x6e, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x61, - 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x70, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x41, - 0x70, 0x41, 0x6c, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x5f, 0x61, 0x70, 0x1a, 0x96, 0x01, 0x0a, 0x0a, 0x74, 0x6c, 0x73, 0x43, 0x75, 0x72, 0x76, - 0x65, 0x49, 0x44, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x75, 0x72, 0x76, 0x65, 0x5f, 0x70, 0x32, 0x35, - 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x63, 0x75, 0x72, 0x76, 0x65, - 0x50, 0x32, 0x35, 0x36, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x75, 0x72, 0x76, 0x65, 0x5f, 0x70, 0x33, - 0x38, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x63, 0x75, 0x72, 0x76, - 0x65, 0x50, 0x33, 0x38, 0x34, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x75, 0x72, 0x76, 0x65, 0x5f, 0x70, - 0x35, 0x32, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x63, 0x75, 0x72, - 0x76, 0x65, 0x50, 0x35, 0x32, 0x31, 0x12, 0x19, 0x0a, 0x07, 0x78, 0x5f, 0x32, 0x35, 0x35, 0x31, - 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x78, 0x32, 0x35, 0x35, 0x31, - 0x39, 0x42, 0x0a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x76, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x40, 0x0a, - 0x12, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, - 0x0e, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, - 0xd5, 0x01, 0x0a, 0x06, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, - 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x69, - 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x49, 0x0a, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, - 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x2e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xcd, 0x01, 0x0a, 0x0c, 0x41, 0x70, 0x69, 0x4b, - 0x65, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x69, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x69, 0x4b, 0x65, - 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x4f, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6e, - 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, - 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x97, 0x01, 0x0a, 0x07, 0x4f, 0x70, 0x61, 0x41, - 0x75, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, - 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x52, - 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x41, - 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, - 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4f, 0x70, 0x61, 0x41, 0x75, 0x74, - 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x22, 0x7a, 0x0a, 0x0e, 0x4f, 0x70, 0x61, 0x41, 0x75, 0x74, 0x68, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x13, 0x66, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x5f, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, - 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xaa, 0x01, - 0x0a, 0x0d, 0x4f, 0x70, 0x61, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x12, - 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x75, 0x6c, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x75, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x12, 0x41, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, - 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, - 0x69, 0x6f, 0x2e, 0x4f, 0x70, 0x61, 0x41, 0x75, 0x74, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xb0, 0x04, 0x0a, 0x04, 0x4c, - 0x64, 0x61, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, - 0x0e, 0x75, 0x73, 0x65, 0x72, 0x44, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x44, 0x6e, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x17, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x68, 0x69, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, - 0x69, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x40, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, - 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4c, 0x64, - 0x61, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, - 0x6c, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x16, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x12, 0x5f, 0x0a, 0x15, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, - 0x70, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, - 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4c, 0x64, 0x61, 0x70, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x13, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x1a, 0x88, 0x01, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x3e, 0x0a, - 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xaf, 0x01, - 0x0a, 0x12, 0x4c, 0x64, 0x61, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x16, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, - 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x52, - 0x14, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x53, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x52, 0x65, 0x66, 0x12, 0x48, 0x0a, 0x21, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x1d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x57, 0x69, 0x74, - 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0xfc, 0x01, 0x0a, 0x0f, 0x50, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x41, - 0x75, 0x74, 0x68, 0x12, 0x3e, 0x0a, 0x04, 0x67, 0x72, 0x70, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, - 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x50, 0x61, 0x73, 0x73, - 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x47, 0x72, 0x70, 0x63, 0x48, 0x00, 0x52, 0x04, 0x67, - 0x72, 0x70, 0x63, 0x12, 0x3e, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, - 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x50, 0x61, 0x73, 0x73, - 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x48, 0x74, 0x74, 0x70, 0x48, 0x00, 0x52, 0x04, 0x68, - 0x74, 0x74, 0x70, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x41, 0x6c, 0x6c, - 0x6f, 0x77, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x8f, - 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, - 0x67, 0x79, 0x12, 0x3e, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x12, 0x3c, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x22, 0xaa, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, + 0x6f, 0x2e, 0x4f, 0x70, 0x61, 0x41, 0x75, 0x74, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xb0, 0x04, 0x0a, 0x04, 0x4c, 0x64, + 0x61, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0e, + 0x75, 0x73, 0x65, 0x72, 0x44, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x44, 0x6e, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x17, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, + 0x69, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, + 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, + 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x12, 0x40, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, + 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4c, 0x64, 0x61, + 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, + 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x67, + 0x12, 0x5f, 0x0a, 0x15, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, + 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, + 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4c, 0x64, 0x61, 0x70, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x13, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x1a, 0x88, 0x01, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, - 0x50, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6f, 0x66, - 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x6c, 0x75, 0x65, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x3e, 0x0a, 0x0b, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xaf, 0x01, 0x0a, + 0x12, 0x4c, 0x64, 0x61, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x16, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, + 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x52, 0x14, + 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x52, 0x65, 0x66, 0x12, 0x48, 0x0a, 0x21, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x1d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x57, 0x69, 0x74, 0x68, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfc, + 0x01, 0x0a, 0x0f, 0x50, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x41, 0x75, + 0x74, 0x68, 0x12, 0x3e, 0x0a, 0x04, 0x67, 0x72, 0x70, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, + 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x54, + 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x47, 0x72, 0x70, 0x63, 0x48, 0x00, 0x52, 0x04, 0x67, 0x72, + 0x70, 0x63, 0x12, 0x3e, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, + 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x54, + 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x48, 0x74, 0x74, 0x70, 0x48, 0x00, 0x52, 0x04, 0x68, 0x74, + 0x74, 0x70, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x10, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x41, 0x6c, 0x6c, 0x6f, + 0x77, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x8f, 0x01, + 0x0a, 0x0f, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x79, 0x12, 0x3e, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x12, 0x3c, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, + 0xaa, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, + 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x50, + 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6f, 0x66, 0x66, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, + 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, + 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, + 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x74, 0x72, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x4f, 0x66, 0x66, + 0x42, 0x0a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x22, 0x8f, 0x02, 0x0a, + 0x0f, 0x50, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x47, 0x72, 0x70, 0x63, + 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x48, 0x0a, 0x12, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x12, 0x4f, 0x0a, 0x09, 0x74, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, - 0x6f, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, - 0x79, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x74, 0x72, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x4f, 0x66, - 0x66, 0x42, 0x0a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x22, 0x8f, 0x02, - 0x0a, 0x0f, 0x50, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x47, 0x72, 0x70, - 0x63, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x48, 0x0a, 0x12, 0x63, + 0x6f, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x47, 0x72, 0x70, + 0x63, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x74, 0x6c, 0x73, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x47, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, + 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x52, 0x0b, 0x72, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x1a, + 0x0a, 0x18, 0x50, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x47, 0x72, 0x70, + 0x63, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x9d, 0x07, 0x0a, 0x0f, 0x50, + 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x48, 0x74, 0x74, 0x70, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, + 0x12, 0x4a, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, + 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x50, 0x61, 0x73, 0x73, + 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x48, 0x74, 0x74, 0x70, 0x2e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x08, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, + 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, + 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, + 0x6f, 0x75, 0x67, 0x68, 0x48, 0x74, 0x74, 0x70, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x4f, 0x0a, 0x09, 0x74, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, - 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, - 0x69, 0x6f, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x47, 0x72, - 0x70, 0x63, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x74, 0x6c, 0x73, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x47, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, - 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, - 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x52, 0x0b, 0x72, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, - 0x1a, 0x0a, 0x18, 0x50, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x47, 0x72, - 0x70, 0x63, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x9d, 0x07, 0x0a, 0x0f, - 0x50, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x48, 0x74, 0x74, 0x70, 0x12, - 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, - 0x6c, 0x12, 0x4a, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0xf8, 0x02, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x68, 0x0a, 0x0e, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x48, 0x74, 0x74, 0x70, 0x2e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, - 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x31, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, - 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x54, 0x68, - 0x72, 0x6f, 0x75, 0x67, 0x68, 0x48, 0x74, 0x74, 0x70, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x12, - 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0xf8, 0x02, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x68, 0x0a, 0x0e, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, - 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x50, 0x61, - 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x48, 0x74, 0x74, 0x70, 0x2e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, - 0x64, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x54, 0x6f, 0x41, 0x64, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x68, - 0x72, 0x6f, 0x75, 0x67, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x10, 0x70, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x72, 0x6f, - 0x75, 0x67, 0x68, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x70, 0x61, 0x73, 0x73, 0x54, - 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x72, - 0x6f, 0x75, 0x67, 0x68, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0f, 0x70, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x42, 0x6f, 0x64, 0x79, - 0x1a, 0x3f, 0x0a, 0x11, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x1a, 0x97, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, - 0x0a, 0x18, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x16, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x46, 0x0a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x1c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, 0x6e, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, - 0x12, 0x37, 0x0a, 0x18, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x66, - 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x15, 0x72, 0x65, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x72, 0x6f, - 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x25, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, - 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x21, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x54, 0x6f, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x22, 0xe5, 0x59, 0x0a, 0x0d, - 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2f, 0x0a, - 0x14, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x66, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x75, 0x74, - 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x47, - 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2d, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, - 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, - 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x3f, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x65, - 0x61, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x62, 0x6f, 0x6f, - 0x6c, 0x65, 0x61, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x61, 0x69, 0x6c, - 0x5f, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x4f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x1a, 0xa6, 0x06, 0x0a, 0x11, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x67, - 0x0a, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, - 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, - 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, - 0x41, 0x75, 0x74, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x45, 0x6e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x65, 0x6e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x65, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, - 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0xf1, 0x01, 0x0a, 0x0e, 0x45, 0x6e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5f, 0x0a, 0x03, - 0x61, 0x70, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x65, 0x6e, 0x74, 0x65, - 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, - 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x2e, 0x41, 0x70, 0x72, 0x48, 0x00, 0x52, 0x03, 0x61, 0x70, 0x72, 0x12, 0x62, 0x0a, - 0x04, 0x73, 0x68, 0x61, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x65, 0x6e, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, + 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, + 0x6f, 0x41, 0x64, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x72, + 0x6f, 0x75, 0x67, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x10, 0x70, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, + 0x67, 0x68, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x70, 0x61, 0x73, 0x73, 0x54, 0x68, + 0x72, 0x6f, 0x75, 0x67, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x72, 0x6f, + 0x75, 0x67, 0x68, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, + 0x70, 0x61, 0x73, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x42, 0x6f, 0x64, 0x79, 0x1a, + 0x3f, 0x0a, 0x11, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x97, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, + 0x18, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x16, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x46, 0x0a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x1c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, 0x6e, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x12, + 0x37, 0x0a, 0x18, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x72, + 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x15, 0x72, 0x65, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x72, 0x6f, 0x6d, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x25, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x21, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, + 0x6f, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x22, 0x96, 0x60, 0x0a, 0x0d, 0x45, + 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2f, 0x0a, 0x14, + 0x61, 0x75, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x66, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x75, 0x74, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, + 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, + 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x3f, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, + 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x62, 0x6f, 0x6f, 0x6c, + 0x65, 0x61, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x5f, + 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x4f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x1a, 0xc9, 0x01, 0x0a, 0x05, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xc8, 0xf5, + 0x04, 0x01, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x12, 0x5b, 0x0a, 0x16, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, + 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x14, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x43, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x55, 0x0a, + 0x0d, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, + 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x70, + 0x70, 0x65, 0x6e, 0x64, 0x1a, 0xa6, 0x06, 0x0a, 0x11, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, + 0x74, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x12, 0x67, 0x0a, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, + 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, + 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x61, 0x73, + 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x45, + 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x65, + 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x09, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, + 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x48, + 0x00, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0xf1, 0x01, 0x0a, 0x0e, + 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5f, + 0x0a, 0x03, 0x61, 0x70, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x53, 0x68, 0x61, 0x31, 0x48, 0x00, 0x52, 0x04, 0x73, 0x68, 0x61, - 0x31, 0x1a, 0x06, 0x0a, 0x04, 0x53, 0x68, 0x61, 0x31, 0x1a, 0x05, 0x0a, 0x03, 0x41, 0x70, 0x72, - 0x42, 0x0b, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x1a, 0x43, 0x0a, - 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x68, 0x61, 0x73, - 0x68, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x1a, 0xe7, 0x01, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x62, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, - 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, - 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, - 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x75, 0x73, - 0x65, 0x72, 0x73, 0x1a, 0x77, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x53, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, - 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, - 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, - 0x41, 0x75, 0x74, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0d, 0x0a, 0x0b, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xbf, 0x03, 0x0a, 0x0b, - 0x4f, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x09, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, - 0x18, 0x01, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x0d, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x06, 0xc8, 0xf5, 0x04, 0x01, 0x18, 0x01, 0x52, 0x0c, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0a, 0x69, 0x73, 0x73, - 0x75, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, - 0x01, 0x52, 0x09, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x90, 0x01, 0x0a, - 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x4f, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, - 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, - 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, - 0x1b, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x61, 0x70, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x27, 0x0a, 0x0d, - 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, - 0x6b, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, - 0x73, 0x1a, 0x4a, 0x0a, 0x1c, 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xdb, 0x03, - 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x6f, 0x6e, 0x5f, 0x66, - 0x65, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x12, 0x66, 0x61, 0x69, 0x6c, 0x4f, 0x6e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, - 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x59, 0x0a, 0x0e, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, - 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, - 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, - 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x0d, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x34, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, - 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, - 0x65, 0x12, 0x49, 0x0a, 0x05, 0x72, 0x65, 0x64, 0x69, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, - 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x72, 0x65, 0x64, 0x69, 0x73, 0x12, 0x6a, 0x0a, 0x0d, - 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x41, 0x70, 0x72, 0x48, 0x00, 0x52, 0x03, 0x61, 0x70, 0x72, 0x12, + 0x62, 0x0a, 0x04, 0x73, 0x68, 0x61, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, + 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x53, 0x68, 0x61, 0x31, 0x48, 0x00, 0x52, 0x04, 0x73, + 0x68, 0x61, 0x31, 0x1a, 0x06, 0x0a, 0x04, 0x53, 0x68, 0x61, 0x31, 0x1a, 0x05, 0x0a, 0x03, 0x41, + 0x70, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x1a, + 0x43, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x68, + 0x61, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x1a, 0xe7, 0x01, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x62, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x4c, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, + 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, + 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, + 0x74, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, + 0x69, 0x73, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, + 0x75, 0x73, 0x65, 0x72, 0x73, 0x1a, 0x77, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x53, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, + 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, + 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x61, 0x73, + 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0d, + 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xbf, 0x03, + 0x0a, 0x0b, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, + 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2b, + 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xc8, 0xf5, 0x04, 0x01, 0x18, 0x01, 0x52, 0x0c, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0a, 0x69, + 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x09, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x90, + 0x01, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, - 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x69, - 0x70, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x63, 0x69, 0x70, 0x68, - 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x26, 0x0a, 0x0c, 0x43, 0x69, 0x70, 0x68, - 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xc8, 0xf5, 0x04, 0x01, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x42, 0x09, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0xbf, 0x18, 0x0a, 0x1b, - 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x04, 0xc8, 0xf5, 0x04, 0x01, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x55, - 0x72, 0x6c, 0x12, 0x9c, 0x01, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5f, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x41, 0x75, 0x74, + 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x45, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x1b, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x61, 0x70, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x27, + 0x0a, 0x0d, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, + 0x61, 0x63, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x73, 0x63, 0x6f, + 0x70, 0x65, 0x73, 0x1a, 0x4a, 0x0a, 0x1c, 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0xdb, 0x03, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x31, 0x0a, 0x15, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x6f, 0x6e, + 0x5f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, 0x61, 0x69, 0x6c, 0x4f, 0x6e, 0x46, 0x65, 0x74, 0x63, + 0x68, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x59, 0x0a, 0x0e, 0x63, 0x6f, 0x6f, 0x6b, + 0x69, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x32, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, + 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, + 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6f, + 0x6b, 0x69, 0x65, 0x12, 0x49, 0x0a, 0x05, 0x72, 0x65, 0x64, 0x69, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, + 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x72, 0x65, 0x64, 0x69, 0x73, 0x12, 0x6a, + 0x0a, 0x0d, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, + 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, + 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x63, 0x69, + 0x70, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x26, 0x0a, 0x0c, 0x43, 0x69, + 0x70, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xc8, 0xf5, 0x04, 0x01, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0xb9, 0x17, + 0x0a, 0x1b, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, + 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x0d, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x04, 0xc8, 0xf5, 0x04, 0x01, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x73, 0x73, 0x75, 0x65, + 0x72, 0x55, 0x72, 0x6c, 0x12, 0x9c, 0x01, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5f, 0x2e, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, + 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, + 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, + 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x60, 0x2e, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, + 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x18, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, 0x75, 0x72, 0x6c, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x23, + 0x0a, 0x0d, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, + 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, + 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x6c, 0x6f, + 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, + 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, + 0x01, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x07, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, + 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x12, 0x59, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, + 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, + 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, + 0x72, 0x79, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 0x11, 0x64, 0x69, 0x73, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x51, 0x0a, + 0x17, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x12, 0x72, 0x0a, 0x19, 0x6a, 0x77, 0x6b, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x72, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, + 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4a, 0x77, + 0x6b, 0x73, 0x4f, 0x6e, 0x44, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x16, 0x6a, 0x77, + 0x6b, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x12, 0x33, 0x0a, 0x16, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x1c, 0x70, 0x61, 0x72, + 0x73, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x5f, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x18, 0x70, 0x61, 0x72, 0x73, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, + 0x74, 0x68, 0x41, 0x73, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x61, 0x0a, 0x16, 0x61, 0x75, 0x74, + 0x6f, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, + 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x61, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x4d, 0x61, 0x70, + 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x63, 0x0a, 0x16, + 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, + 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x6e, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x14, 0x65, 0x6e, 0x64, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, + 0x73, 0x12, 0x5b, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, - 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, 0x74, 0x68, - 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x60, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xb0, + 0x01, 0x0a, 0x23, 0x70, 0x6b, 0x5f, 0x6a, 0x77, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x62, 0x2e, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, + 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x50, 0x6b, 0x4a, 0x77, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x1f, 0x70, 0x6b, 0x4a, 0x77, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, + 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x71, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x18, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x23, 0x0a, 0x0d, - 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x74, - 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x50, 0x61, - 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x6f, - 0x75, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, - 0x6f, 0x70, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, - 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x52, - 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6e, 0x74, 0x65, - 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, - 0x2e, 0x69, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x12, 0x59, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6f, 0x76, - 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, + 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x77, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, - 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, - 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 0x11, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, - 0x65, 0x72, 0x79, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x51, 0x0a, 0x17, 0x64, - 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x72, - 0x0a, 0x19, 0x6a, 0x77, 0x6b, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x72, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x37, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, - 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4a, 0x77, 0x6b, 0x73, - 0x4f, 0x6e, 0x44, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x16, 0x6a, 0x77, 0x6b, 0x73, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x12, 0x33, 0x0a, 0x16, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x13, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x1c, 0x70, 0x61, 0x72, 0x73, 0x65, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x61, - 0x73, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x70, - 0x61, 0x72, 0x73, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x74, 0x68, - 0x41, 0x73, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x61, 0x0a, 0x16, 0x61, 0x75, 0x74, 0x6f, 0x5f, - 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, - 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, - 0x6f, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x61, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x4d, 0x61, 0x70, 0x46, 0x72, - 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x63, 0x0a, 0x16, 0x65, 0x6e, - 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x69, 0x65, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x65, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, - 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x6e, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x14, 0x65, 0x6e, 0x64, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, - 0x5b, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, - 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, - 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x0b, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xb0, 0x01, 0x0a, - 0x23, 0x70, 0x6b, 0x5f, 0x6a, 0x77, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x61, - 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x62, 0x2e, 0x65, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, - 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, - 0x6b, 0x4a, 0x77, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x1f, - 0x70, 0x6b, 0x4a, 0x77, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x71, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, - 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, - 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x69, - 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x77, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x65, 0x6e, 0x74, + 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0d, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x66, 0x0a, + 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, + 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, + 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x18, 0x1b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, + 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, + 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x7a, 0x75, + 0x72, 0x65, 0x48, 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x14, + 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6c, 0x6f, + 0x67, 0x6f, 0x75, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0d, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x66, 0x0a, 0x07, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x65, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x46, + 0x72, 0x6f, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x6f, 0x67, 0x6f, 0x75, + 0x74, 0x52, 0x12, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, + 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0xa2, 0x01, 0x0a, 0x1c, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, + 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, + 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x61, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x12, 0x60, 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x18, 0x1b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, - 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, - 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x05, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x14, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x5f, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x18, 0x1c, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, - 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, - 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x69, 0x64, - 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x12, 0x66, 0x72, 0x6f, - 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x1a, - 0x4a, 0x0a, 0x1c, 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x1d, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x80, 0x01, 0x0a, 0x1f, 0x50, 0x6b, 0x4a, - 0x77, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0b, - 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x04, 0xc8, 0xf5, 0x04, 0x01, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, - 0x4b, 0x65, 0x79, 0x12, 0x36, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x66, 0x6f, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x1a, 0x55, 0x0a, 0x0d, 0x43, - 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6c, 0x61, - 0x69, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x70, - 0x70, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x70, 0x70, 0x65, - 0x6e, 0x64, 0x1a, 0x8b, 0x01, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x7c, 0x0a, 0x11, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x5f, 0x74, 0x6f, 0x5f, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x50, 0x2e, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, - 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, - 0x0f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x1a, 0x8d, 0x01, 0x0a, 0x0d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x7c, 0x0a, 0x11, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x5f, 0x74, 0x6f, 0x5f, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x50, 0x2e, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, - 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, - 0x0f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x1a, 0x09, 0x0a, 0x07, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x1a, 0xc9, 0x01, 0x0a, 0x05, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x29, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xc8, 0xf5, 0x04, 0x01, 0x52, 0x0c, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x5b, 0x0a, 0x16, 0x63, 0x6c, - 0x61, 0x69, 0x6d, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x65, 0x6e, 0x74, + 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x19, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x1a, 0x4a, 0x0a, 0x1c, 0x41, 0x75, + 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x1d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x80, 0x01, 0x0a, 0x1f, 0x50, 0x6b, 0x4a, 0x77, 0x74, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x69, + 0x6e, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xc8, 0xf5, + 0x04, 0x01, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x36, + 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x1a, 0x6f, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x60, 0x0a, 0x11, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x5f, + 0x74, 0x6f, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x34, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, + 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, + 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x6f, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x54, 0x6f, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x1a, 0x71, 0x0a, 0x0d, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x60, 0x0a, 0x11, 0x63, 0x6c, 0x61, 0x69, + 0x6d, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, + 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, + 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6c, 0x61, 0x69, + 0x6d, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0f, 0x63, 0x6c, 0x61, 0x69, 0x6d, + 0x73, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x1a, 0x09, 0x0a, 0x07, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x1a, 0x28, 0x0a, 0x12, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x1a, + 0x4c, 0x0a, 0x1e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x0a, + 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x1a, 0x99, 0x0e, 0x0a, 0x1b, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x31, 0x0a, 0x11, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x64, 0x0a, 0x03, + 0x6a, 0x77, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, + 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4a, 0x77, + 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x6a, + 0x77, 0x74, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5a, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, - 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x14, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x28, 0x0a, 0x12, 0x46, 0x72, 0x6f, 0x6e, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x1a, 0xff, 0x09, - 0x0a, 0x1b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x31, 0x0a, - 0x11, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, - 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x10, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, - 0x12, 0x64, 0x0a, 0x03, 0x6a, 0x77, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x50, 0x2e, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, - 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x4a, 0x77, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, - 0x00, 0x52, 0x03, 0x6a, 0x77, 0x74, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5a, - 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, - 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x75, - 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x3e, - 0x0a, 0x0d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0c, 0x63, 0x61, 0x63, 0x68, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x77, - 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, - 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, - 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x63, 0x6f, 0x70, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x1a, 0xd5, 0x03, 0x0a, 0x0d, 0x4a, 0x77, 0x74, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7e, 0x0a, 0x0b, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x6a, 0x77, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5b, + 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x73, + 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x69, + 0x6e, 0x66, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x75, + 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x3e, 0x0a, 0x0d, 0x63, 0x61, + 0x63, 0x68, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x63, 0x61, + 0x63, 0x68, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x77, 0x0a, 0x0f, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, + 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, + 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x48, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x53, 0x63, 0x6f, + 0x70, 0x65, 0x73, 0x12, 0xa2, 0x01, 0x0a, 0x1c, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x61, 0x2e, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, + 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, + 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x72, + 0x6f, 0x6d, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x19, 0x64, + 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x72, + 0x6f, 0x6d, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x12, 0x60, 0x0a, 0x11, 0x63, 0x6c, 0x61, 0x69, + 0x6d, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, + 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, + 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6c, 0x61, 0x69, + 0x6d, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0f, 0x63, 0x6c, 0x61, 0x69, 0x6d, + 0x73, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x66, 0x0a, 0x07, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, + 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x02, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, + 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, + 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x48, + 0x02, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x1a, 0xd5, 0x03, 0x0a, 0x0d, 0x4a, 0x77, 0x74, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7e, 0x0a, 0x0b, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6a, 0x77, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x5b, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, + 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, + 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x4a, 0x77, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x77, 0x6b, 0x73, 0x48, 0x00, 0x52, 0x0a, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x77, 0x6b, 0x73, 0x12, 0x7b, 0x0a, 0x0a, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x6a, 0x77, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5a, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4a, 0x77, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x77, 0x6b, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x77, 0x6b, 0x73, 0x12, 0x7b, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x6a, 0x77, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5a, 0x2e, - 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, - 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x4a, 0x77, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x4a, 0x77, 0x6b, 0x73, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x4a, 0x77, 0x6b, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x1a, 0x64, - 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x77, 0x6b, 0x73, 0x12, 0x10, 0x0a, 0x03, - 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x44, - 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x1a, 0x30, 0x0a, 0x09, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x4a, 0x77, 0x6b, - 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x17, 0x0a, 0x15, 0x6a, 0x77, 0x6b, 0x73, 0x5f, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x1a, - 0xc3, 0x01, 0x0a, 0x17, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xc8, 0xf5, - 0x04, 0x01, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x12, 0x33, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x21, 0x0a, 0x09, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x73, - 0x63, 0x6f, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, - 0xe0, 0x07, 0x0a, 0x11, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x29, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xc8, 0xf5, 0x04, 0x01, 0x52, - 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x92, 0x01, - 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, - 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, - 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x6c, 0x61, 0x69, 0x6e, - 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, 0x74, - 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x45, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x63, - 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x74, 0x68, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x74, 0x65, + 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x4a, 0x77, 0x6b, 0x73, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x4a, 0x77, 0x6b, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x1a, + 0x64, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x77, 0x6b, 0x73, 0x12, 0x10, 0x0a, + 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, + 0x44, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x1a, 0x30, 0x0a, 0x09, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x4a, 0x77, + 0x6b, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x17, 0x0a, 0x15, 0x6a, 0x77, 0x6b, 0x73, 0x5f, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x1a, 0xc3, 0x01, 0x0a, 0x17, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xc8, + 0xf5, 0x04, 0x01, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x12, 0x33, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x21, 0x0a, 0x09, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x1a, 0x4c, 0x0a, 0x1e, 0x44, 0x79, 0x6e, + 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, + 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x09, 0x0a, 0x07, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x5f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x1a, 0xe0, 0x07, 0x0a, 0x11, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x4f, + 0x41, 0x75, 0x74, 0x68, 0x32, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x04, 0xc8, 0xf5, 0x04, 0x01, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x12, 0x92, 0x01, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, + 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x17, 0x61, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x70, 0x55, 0x72, + 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x42, + 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, + 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x50, + 0x61, 0x74, 0x68, 0x12, 0x95, 0x01, 0x0a, 0x1b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, - 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, - 0x02, 0x18, 0x01, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, - 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x95, 0x01, - 0x0a, 0x1b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x09, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, - 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, - 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x6c, 0x61, 0x69, - 0x6e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x18, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x6c, - 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x61, 0x66, 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x55, 0x72, 0x6c, 0x12, - 0x23, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x72, - 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x76, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x0c, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, - 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, - 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x75, 0x73, - 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x4a, 0x0a, 0x1c, 0x41, 0x75, 0x74, - 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x1d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x8d, 0x03, 0x0a, 0x0c, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x7c, 0x0a, 0x17, 0x6f, 0x69, 0x64, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, - 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, - 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x69, 0x64, - 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x15, 0x6f, 0x69, 0x64, 0x63, - 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x89, 0x01, 0x0a, 0x1e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x65, 0x6e, 0x74, + 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2e, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x18, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x66, 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x6f, + 0x75, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x75, + 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x72, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, + 0x72, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, + 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, + 0x4a, 0x0a, 0x1c, 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x1d, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x8d, 0x03, 0x0a, 0x0c, 0x4f, 0x41, 0x75, + 0x74, 0x68, 0x32, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x7c, 0x0a, 0x17, 0x6f, 0x69, 0x64, + 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, - 0x52, 0x1b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5f, 0x0a, - 0x0d, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, - 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, - 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x6c, 0x61, - 0x69, 0x6e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, - 0x52, 0x0c, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x0c, - 0x0a, 0x0a, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x04, 0x08, 0x02, - 0x10, 0x03, 0x1a, 0x8d, 0x08, 0x0a, 0x10, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, - 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x75, 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x49, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, - 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, - 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x41, 0x75, - 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x70, - 0x69, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x04, 0xc8, 0xf5, 0x04, 0x01, - 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1f, - 0x0a, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x8e, 0x01, 0x0a, 0x19, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x66, 0x72, 0x6f, 0x6d, - 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x53, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, - 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, - 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x70, 0x69, 0x4b, - 0x65, 0x79, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x6c, 0x0a, 0x19, 0x6b, 0x38, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x61, - 0x70, 0x69, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, - 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4b, 0x38, - 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x16, 0x6b, 0x38, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x41, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x6b, - 0x0a, 0x18, 0x61, 0x65, 0x72, 0x6f, 0x73, 0x70, 0x69, 0x6b, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x6b, - 0x65, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, - 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x65, 0x72, 0x6f, 0x73, - 0x70, 0x69, 0x6b, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x48, 0x00, 0x52, 0x16, 0x61, 0x65, 0x72, 0x6f, 0x73, 0x70, 0x69, 0x6b, 0x65, 0x41, 0x70, + 0x69, 0x67, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, + 0x52, 0x15, 0x6f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x1e, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x42, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, + 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, + 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x1b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x5f, 0x0a, 0x0d, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, + 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0c, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x1a, 0x87, 0x09, 0x0a, 0x10, 0x41, 0x70, 0x69, + 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x75, 0x0a, + 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, + 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, + 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x70, + 0x69, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x42, 0x04, 0xc8, 0xf5, 0x04, 0x01, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x70, 0x69, + 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x19, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x53, 0x2e, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, + 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4b, 0x65, + 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4b, 0x65, 0x79, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x6c, 0x0a, 0x19, 0x6b, 0x38, 0x73, 0x5f, 0x73, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, + 0x2e, 0x69, 0x6f, 0x2e, 0x4b, 0x38, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x41, 0x70, 0x69, + 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x16, 0x6b, 0x38, + 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x41, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x12, 0x6b, 0x0a, 0x18, 0x61, 0x65, 0x72, 0x6f, 0x73, 0x70, 0x69, 0x6b, + 0x65, 0x5f, 0x61, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, + 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, + 0x2e, 0x41, 0x65, 0x72, 0x6f, 0x73, 0x70, 0x69, 0x6b, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x16, 0x61, 0x65, 0x72, 0x6f, 0x73, + 0x70, 0x69, 0x6b, 0x65, 0x41, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x12, 0x78, 0x0a, 0x1d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x70, 0x72, 0x69, 0x73, 0x65, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, + 0x69, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, + 0x1a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x41, 0x70, 0x69, 0x6b, 0x65, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, @@ -13094,7 +13434,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } var file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes = make([]protoimpl.MessageInfo, 154) +var file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes = make([]protoimpl.MessageInfo, 159) var file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_goTypes = []interface{}{ (Settings_ApiVersion)(0), // 0: enterprise.gloo.solo.io.Settings.ApiVersion (RedisOptions_SocketType)(0), // 1: enterprise.gloo.solo.io.RedisOptions.SocketType @@ -13123,399 +13463,413 @@ var file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_pr (*AutoMapFromMetadata)(nil), // 24: enterprise.gloo.solo.io.AutoMapFromMetadata (*EndSessionProperties)(nil), // 25: enterprise.gloo.solo.io.EndSessionProperties (*ClaimToHeader)(nil), // 26: enterprise.gloo.solo.io.ClaimToHeader - (*OidcAuthorizationCode)(nil), // 27: enterprise.gloo.solo.io.OidcAuthorizationCode - (*PlainOAuth2)(nil), // 28: enterprise.gloo.solo.io.PlainOAuth2 - (*JwtValidation)(nil), // 29: enterprise.gloo.solo.io.JwtValidation - (*IntrospectionValidation)(nil), // 30: enterprise.gloo.solo.io.IntrospectionValidation - (*AccessTokenValidation)(nil), // 31: enterprise.gloo.solo.io.AccessTokenValidation - (*OauthSecret)(nil), // 32: enterprise.gloo.solo.io.OauthSecret - (*ApiKeyAuth)(nil), // 33: enterprise.gloo.solo.io.ApiKeyAuth - (*K8SSecretApiKeyStorage)(nil), // 34: enterprise.gloo.solo.io.K8sSecretApiKeyStorage - (*AerospikeApiKeyStorage)(nil), // 35: enterprise.gloo.solo.io.AerospikeApiKeyStorage - (*ApiKey)(nil), // 36: enterprise.gloo.solo.io.ApiKey - (*ApiKeySecret)(nil), // 37: enterprise.gloo.solo.io.ApiKeySecret - (*OpaAuth)(nil), // 38: enterprise.gloo.solo.io.OpaAuth - (*OpaAuthOptions)(nil), // 39: enterprise.gloo.solo.io.OpaAuthOptions - (*OpaServerAuth)(nil), // 40: enterprise.gloo.solo.io.OpaServerAuth - (*Ldap)(nil), // 41: enterprise.gloo.solo.io.Ldap - (*LdapServiceAccount)(nil), // 42: enterprise.gloo.solo.io.LdapServiceAccount - (*PassThroughAuth)(nil), // 43: enterprise.gloo.solo.io.PassThroughAuth - (*BackoffStrategy)(nil), // 44: enterprise.gloo.solo.io.BackoffStrategy - (*RetryPolicy)(nil), // 45: enterprise.gloo.solo.io.RetryPolicy - (*PassThroughGrpc)(nil), // 46: enterprise.gloo.solo.io.PassThroughGrpc - (*PassThroughGrpcTLSConfig)(nil), // 47: enterprise.gloo.solo.io.PassThroughGrpcTLSConfig - (*PassThroughHttp)(nil), // 48: enterprise.gloo.solo.io.PassThroughHttp - (*ExtAuthConfig)(nil), // 49: enterprise.gloo.solo.io.ExtAuthConfig - (*ApiKeyCreateRequest)(nil), // 50: enterprise.gloo.solo.io.ApiKeyCreateRequest - (*ApiKeyCreateResponse)(nil), // 51: enterprise.gloo.solo.io.ApiKeyCreateResponse - (*ApiKeyReadRequest)(nil), // 52: enterprise.gloo.solo.io.ApiKeyReadRequest - (*ApiKeyReadResponse)(nil), // 53: enterprise.gloo.solo.io.ApiKeyReadResponse - (*ApiKeyUpdateRequest)(nil), // 54: enterprise.gloo.solo.io.ApiKeyUpdateRequest - (*ApiKeyUpdateResponse)(nil), // 55: enterprise.gloo.solo.io.ApiKeyUpdateResponse - (*ApiKeyDeleteRequest)(nil), // 56: enterprise.gloo.solo.io.ApiKeyDeleteRequest - (*ApiKeyDeleteResponse)(nil), // 57: enterprise.gloo.solo.io.ApiKeyDeleteResponse - (*AuthConfigStatus)(nil), // 58: enterprise.gloo.solo.io.AuthConfigStatus - (*AuthConfigNamespacedStatuses)(nil), // 59: enterprise.gloo.solo.io.AuthConfigNamespacedStatuses - (*AuthConfigSpec_Config)(nil), // 60: enterprise.gloo.solo.io.AuthConfigSpec.Config - (*HttpService_Request)(nil), // 61: enterprise.gloo.solo.io.HttpService.Request - (*HttpService_Response)(nil), // 62: enterprise.gloo.solo.io.HttpService.Response - nil, // 63: enterprise.gloo.solo.io.HttpService.Request.HeadersToAddEntry - nil, // 64: enterprise.gloo.solo.io.CustomAuth.ContextExtensionsEntry - (*BasicAuth_Apr)(nil), // 65: enterprise.gloo.solo.io.BasicAuth.Apr - (*BasicAuth_EncryptionType)(nil), // 66: enterprise.gloo.solo.io.BasicAuth.EncryptionType - (*BasicAuth_User)(nil), // 67: enterprise.gloo.solo.io.BasicAuth.User - (*BasicAuth_UserList)(nil), // 68: enterprise.gloo.solo.io.BasicAuth.UserList - (*BasicAuth_Apr_SaltedHashedPassword)(nil), // 69: enterprise.gloo.solo.io.BasicAuth.Apr.SaltedHashedPassword - nil, // 70: enterprise.gloo.solo.io.BasicAuth.Apr.UsersEntry - (*BasicAuth_EncryptionType_Sha1)(nil), // 71: enterprise.gloo.solo.io.BasicAuth.EncryptionType.Sha1 - (*BasicAuth_EncryptionType_Apr)(nil), // 72: enterprise.gloo.solo.io.BasicAuth.EncryptionType.Apr - nil, // 73: enterprise.gloo.solo.io.BasicAuth.UserList.UsersEntry - nil, // 74: enterprise.gloo.solo.io.OAuth.AuthEndpointQueryParamsEntry - (*UserSession_InternalSession)(nil), // 75: enterprise.gloo.solo.io.UserSession.InternalSession - (*UserSession_RedisSession)(nil), // 76: enterprise.gloo.solo.io.UserSession.RedisSession - (*UserSession_CookieOptions)(nil), // 77: enterprise.gloo.solo.io.UserSession.CookieOptions - (*UserSession_CipherConfig)(nil), // 78: enterprise.gloo.solo.io.UserSession.CipherConfig - nil, // 79: enterprise.gloo.solo.io.OidcAuthorizationCode.AuthEndpointQueryParamsEntry - nil, // 80: enterprise.gloo.solo.io.OidcAuthorizationCode.TokenEndpointQueryParamsEntry - nil, // 81: enterprise.gloo.solo.io.OidcAuthorizationCode.DynamicMetadataFromClaimsEntry - (*OidcAuthorizationCode_AccessToken)(nil), // 82: enterprise.gloo.solo.io.OidcAuthorizationCode.AccessToken - (*OidcAuthorizationCode_IdentityToken)(nil), // 83: enterprise.gloo.solo.io.OidcAuthorizationCode.IdentityToken - (*OidcAuthorizationCode_ClientAuthentication)(nil), // 84: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication - (*OidcAuthorizationCode_Default)(nil), // 85: enterprise.gloo.solo.io.OidcAuthorizationCode.Default - (*OidcAuthorizationCode_Azure)(nil), // 86: enterprise.gloo.solo.io.OidcAuthorizationCode.Azure - (*OidcAuthorizationCode_FrontChannelLogout)(nil), // 87: enterprise.gloo.solo.io.OidcAuthorizationCode.FrontChannelLogout - (*OidcAuthorizationCode_ClientAuthentication_ClientSecret)(nil), // 88: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.ClientSecret - (*OidcAuthorizationCode_ClientAuthentication_PrivateKeyJwt)(nil), // 89: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.PrivateKeyJwt - nil, // 90: enterprise.gloo.solo.io.PlainOAuth2.AuthEndpointQueryParamsEntry - nil, // 91: enterprise.gloo.solo.io.PlainOAuth2.TokenEndpointQueryParamsEntry - (*JwtValidation_RemoteJwks)(nil), // 92: enterprise.gloo.solo.io.JwtValidation.RemoteJwks - (*JwtValidation_LocalJwks)(nil), // 93: enterprise.gloo.solo.io.JwtValidation.LocalJwks - nil, // 94: enterprise.gloo.solo.io.AccessTokenValidation.DynamicMetadataFromClaimsEntry - (*AccessTokenValidation_ScopeList)(nil), // 95: enterprise.gloo.solo.io.AccessTokenValidation.ScopeList - nil, // 96: enterprise.gloo.solo.io.ApiKeyAuth.LabelSelectorEntry - nil, // 97: enterprise.gloo.solo.io.ApiKeyAuth.HeadersFromMetadataEntry - nil, // 98: enterprise.gloo.solo.io.ApiKeyAuth.HeadersFromMetadataEntryEntry - (*ApiKeyAuth_SecretKey)(nil), // 99: enterprise.gloo.solo.io.ApiKeyAuth.SecretKey - (*ApiKeyAuth_MetadataEntry)(nil), // 100: enterprise.gloo.solo.io.ApiKeyAuth.MetadataEntry - nil, // 101: enterprise.gloo.solo.io.K8sSecretApiKeyStorage.LabelSelectorEntry - (*AerospikeApiKeyStorageReadModeSc)(nil), // 102: enterprise.gloo.solo.io.AerospikeApiKeyStorage.readModeSc - (*AerospikeApiKeyStorageReadModeAp)(nil), // 103: enterprise.gloo.solo.io.AerospikeApiKeyStorage.readModeAp - (*AerospikeApiKeyStorageTlsCurveID)(nil), // 104: enterprise.gloo.solo.io.AerospikeApiKeyStorage.tlsCurveID - nil, // 105: enterprise.gloo.solo.io.AerospikeApiKeyStorage.LabelSelectorEntry - nil, // 106: enterprise.gloo.solo.io.ApiKey.MetadataEntry - nil, // 107: enterprise.gloo.solo.io.ApiKeySecret.MetadataEntry - (*Ldap_ConnectionPool)(nil), // 108: enterprise.gloo.solo.io.Ldap.ConnectionPool - (*PassThroughHttp_Request)(nil), // 109: enterprise.gloo.solo.io.PassThroughHttp.Request - (*PassThroughHttp_Response)(nil), // 110: enterprise.gloo.solo.io.PassThroughHttp.Response - nil, // 111: enterprise.gloo.solo.io.PassThroughHttp.Request.HeadersToAddEntry - (*ExtAuthConfig_BasicAuthInternal)(nil), // 112: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal - (*ExtAuthConfig_OAuthConfig)(nil), // 113: enterprise.gloo.solo.io.ExtAuthConfig.OAuthConfig - (*ExtAuthConfig_UserSessionConfig)(nil), // 114: enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig - (*ExtAuthConfig_OidcAuthorizationCodeConfig)(nil), // 115: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig - (*ExtAuthConfig_AccessTokenValidationConfig)(nil), // 116: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig - (*ExtAuthConfig_PlainOAuth2Config)(nil), // 117: enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config - (*ExtAuthConfig_OAuth2Config)(nil), // 118: enterprise.gloo.solo.io.ExtAuthConfig.OAuth2Config - (*ExtAuthConfig_ApiKeyAuthConfig)(nil), // 119: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig - (*ExtAuthConfig_OpaAuthConfig)(nil), // 120: enterprise.gloo.solo.io.ExtAuthConfig.OpaAuthConfig - (*ExtAuthConfig_OpaServerAuthConfig)(nil), // 121: enterprise.gloo.solo.io.ExtAuthConfig.OpaServerAuthConfig - (*ExtAuthConfig_LdapConfig)(nil), // 122: enterprise.gloo.solo.io.ExtAuthConfig.LdapConfig - (*ExtAuthConfig_LdapServiceAccountConfig)(nil), // 123: enterprise.gloo.solo.io.ExtAuthConfig.LdapServiceAccountConfig - (*ExtAuthConfig_HmacAuthConfig)(nil), // 124: enterprise.gloo.solo.io.ExtAuthConfig.HmacAuthConfig - (*ExtAuthConfig_InMemorySecretList)(nil), // 125: enterprise.gloo.solo.io.ExtAuthConfig.InMemorySecretList - (*ExtAuthConfig_Config)(nil), // 126: enterprise.gloo.solo.io.ExtAuthConfig.Config - (*ExtAuthConfig_BasicAuthInternal_EncryptionType)(nil), // 127: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.EncryptionType - (*ExtAuthConfig_BasicAuthInternal_User)(nil), // 128: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.User - (*ExtAuthConfig_BasicAuthInternal_UserList)(nil), // 129: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.UserList - (*ExtAuthConfig_BasicAuthInternal_EncryptionType_Sha1)(nil), // 130: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.EncryptionType.Sha1 - (*ExtAuthConfig_BasicAuthInternal_EncryptionType_Apr)(nil), // 131: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.EncryptionType.Apr - nil, // 132: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.UserList.UsersEntry - nil, // 133: enterprise.gloo.solo.io.ExtAuthConfig.OAuthConfig.AuthEndpointQueryParamsEntry - (*ExtAuthConfig_UserSessionConfig_CipherConfig)(nil), // 134: enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig.CipherConfig - nil, // 135: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.AuthEndpointQueryParamsEntry - nil, // 136: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.TokenEndpointQueryParamsEntry - (*ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConfig)(nil), // 137: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.PkJwtClientAuthenticationConfig - (*ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader)(nil), // 138: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.ClaimToHeader - (*ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken)(nil), // 139: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.AccessToken - (*ExtAuthConfig_OidcAuthorizationCodeConfig_IdentityToken)(nil), // 140: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.IdentityToken - (*ExtAuthConfig_OidcAuthorizationCodeConfig_Default)(nil), // 141: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.Default - (*ExtAuthConfig_OidcAuthorizationCodeConfig_Azure)(nil), // 142: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.Azure - (*ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout)(nil), // 143: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.FrontChannelLogout - (*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation)(nil), // 144: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation - (*ExtAuthConfig_AccessTokenValidationConfig_IntrospectionValidation)(nil), // 145: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.IntrospectionValidation - (*ExtAuthConfig_AccessTokenValidationConfig_ScopeList)(nil), // 146: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.ScopeList - (*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks)(nil), // 147: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation.RemoteJwks - (*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_LocalJwks)(nil), // 148: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation.LocalJwks - nil, // 149: enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config.AuthEndpointQueryParamsEntry - nil, // 150: enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config.TokenEndpointQueryParamsEntry - (*ExtAuthConfig_ApiKeyAuthConfig_KeyMetadata)(nil), // 151: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.KeyMetadata - nil, // 152: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.ValidApiKeysEntry - nil, // 153: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.HeadersFromKeyMetadataEntry - nil, // 154: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.KeyMetadata.MetadataEntry - nil, // 155: enterprise.gloo.solo.io.ExtAuthConfig.OpaAuthConfig.ModulesEntry - nil, // 156: enterprise.gloo.solo.io.ExtAuthConfig.InMemorySecretList.SecretListEntry - nil, // 157: enterprise.gloo.solo.io.AuthConfigStatus.SubresourceStatusesEntry - nil, // 158: enterprise.gloo.solo.io.AuthConfigNamespacedStatuses.StatusesEntry - (*wrappers.StringValue)(nil), // 159: google.protobuf.StringValue - (*core.ResourceRef)(nil), // 160: core.solo.io.ResourceRef - (*duration.Duration)(nil), // 161: google.protobuf.Duration - (*_struct.Struct)(nil), // 162: google.protobuf.Struct - (*wrappers.BoolValue)(nil), // 163: google.protobuf.BoolValue - (*empty.Empty)(nil), // 164: google.protobuf.Empty - (*wrappers.UInt32Value)(nil), // 165: google.protobuf.UInt32Value - (*v2.DiscoveryRequest)(nil), // 166: envoy.api.v2.DiscoveryRequest - (*v2.DeltaDiscoveryRequest)(nil), // 167: envoy.api.v2.DeltaDiscoveryRequest - (*v2.DiscoveryResponse)(nil), // 168: envoy.api.v2.DiscoveryResponse - (*v2.DeltaDiscoveryResponse)(nil), // 169: envoy.api.v2.DeltaDiscoveryResponse + (*Azure)(nil), // 27: enterprise.gloo.solo.io.Azure + (*OidcAuthorizationCode)(nil), // 28: enterprise.gloo.solo.io.OidcAuthorizationCode + (*PlainOAuth2)(nil), // 29: enterprise.gloo.solo.io.PlainOAuth2 + (*JwtValidation)(nil), // 30: enterprise.gloo.solo.io.JwtValidation + (*IntrospectionValidation)(nil), // 31: enterprise.gloo.solo.io.IntrospectionValidation + (*AccessTokenValidation)(nil), // 32: enterprise.gloo.solo.io.AccessTokenValidation + (*OauthSecret)(nil), // 33: enterprise.gloo.solo.io.OauthSecret + (*ApiKeyAuth)(nil), // 34: enterprise.gloo.solo.io.ApiKeyAuth + (*K8SSecretApiKeyStorage)(nil), // 35: enterprise.gloo.solo.io.K8sSecretApiKeyStorage + (*AerospikeApiKeyStorage)(nil), // 36: enterprise.gloo.solo.io.AerospikeApiKeyStorage + (*ServerDefaultApiKeyStorage)(nil), // 37: enterprise.gloo.solo.io.ServerDefaultApiKeyStorage + (*ApiKey)(nil), // 38: enterprise.gloo.solo.io.ApiKey + (*ApiKeySecret)(nil), // 39: enterprise.gloo.solo.io.ApiKeySecret + (*OpaAuth)(nil), // 40: enterprise.gloo.solo.io.OpaAuth + (*OpaAuthOptions)(nil), // 41: enterprise.gloo.solo.io.OpaAuthOptions + (*OpaServerAuth)(nil), // 42: enterprise.gloo.solo.io.OpaServerAuth + (*Ldap)(nil), // 43: enterprise.gloo.solo.io.Ldap + (*LdapServiceAccount)(nil), // 44: enterprise.gloo.solo.io.LdapServiceAccount + (*PassThroughAuth)(nil), // 45: enterprise.gloo.solo.io.PassThroughAuth + (*BackoffStrategy)(nil), // 46: enterprise.gloo.solo.io.BackoffStrategy + (*RetryPolicy)(nil), // 47: enterprise.gloo.solo.io.RetryPolicy + (*PassThroughGrpc)(nil), // 48: enterprise.gloo.solo.io.PassThroughGrpc + (*PassThroughGrpcTLSConfig)(nil), // 49: enterprise.gloo.solo.io.PassThroughGrpcTLSConfig + (*PassThroughHttp)(nil), // 50: enterprise.gloo.solo.io.PassThroughHttp + (*ExtAuthConfig)(nil), // 51: enterprise.gloo.solo.io.ExtAuthConfig + (*ApiKeyCreateRequest)(nil), // 52: enterprise.gloo.solo.io.ApiKeyCreateRequest + (*ApiKeyCreateResponse)(nil), // 53: enterprise.gloo.solo.io.ApiKeyCreateResponse + (*ApiKeyReadRequest)(nil), // 54: enterprise.gloo.solo.io.ApiKeyReadRequest + (*ApiKeyReadResponse)(nil), // 55: enterprise.gloo.solo.io.ApiKeyReadResponse + (*ApiKeyUpdateRequest)(nil), // 56: enterprise.gloo.solo.io.ApiKeyUpdateRequest + (*ApiKeyUpdateResponse)(nil), // 57: enterprise.gloo.solo.io.ApiKeyUpdateResponse + (*ApiKeyDeleteRequest)(nil), // 58: enterprise.gloo.solo.io.ApiKeyDeleteRequest + (*ApiKeyDeleteResponse)(nil), // 59: enterprise.gloo.solo.io.ApiKeyDeleteResponse + (*AuthConfigStatus)(nil), // 60: enterprise.gloo.solo.io.AuthConfigStatus + (*AuthConfigNamespacedStatuses)(nil), // 61: enterprise.gloo.solo.io.AuthConfigNamespacedStatuses + (*AuthConfigSpec_Config)(nil), // 62: enterprise.gloo.solo.io.AuthConfigSpec.Config + (*HttpService_Request)(nil), // 63: enterprise.gloo.solo.io.HttpService.Request + (*HttpService_Response)(nil), // 64: enterprise.gloo.solo.io.HttpService.Response + nil, // 65: enterprise.gloo.solo.io.HttpService.Request.HeadersToAddEntry + nil, // 66: enterprise.gloo.solo.io.CustomAuth.ContextExtensionsEntry + (*BasicAuth_Apr)(nil), // 67: enterprise.gloo.solo.io.BasicAuth.Apr + (*BasicAuth_EncryptionType)(nil), // 68: enterprise.gloo.solo.io.BasicAuth.EncryptionType + (*BasicAuth_User)(nil), // 69: enterprise.gloo.solo.io.BasicAuth.User + (*BasicAuth_UserList)(nil), // 70: enterprise.gloo.solo.io.BasicAuth.UserList + (*BasicAuth_Apr_SaltedHashedPassword)(nil), // 71: enterprise.gloo.solo.io.BasicAuth.Apr.SaltedHashedPassword + nil, // 72: enterprise.gloo.solo.io.BasicAuth.Apr.UsersEntry + (*BasicAuth_EncryptionType_Sha1)(nil), // 73: enterprise.gloo.solo.io.BasicAuth.EncryptionType.Sha1 + (*BasicAuth_EncryptionType_Apr)(nil), // 74: enterprise.gloo.solo.io.BasicAuth.EncryptionType.Apr + nil, // 75: enterprise.gloo.solo.io.BasicAuth.UserList.UsersEntry + nil, // 76: enterprise.gloo.solo.io.OAuth.AuthEndpointQueryParamsEntry + (*UserSession_InternalSession)(nil), // 77: enterprise.gloo.solo.io.UserSession.InternalSession + (*UserSession_RedisSession)(nil), // 78: enterprise.gloo.solo.io.UserSession.RedisSession + (*UserSession_CookieOptions)(nil), // 79: enterprise.gloo.solo.io.UserSession.CookieOptions + (*UserSession_CipherConfig)(nil), // 80: enterprise.gloo.solo.io.UserSession.CipherConfig + nil, // 81: enterprise.gloo.solo.io.OidcAuthorizationCode.AuthEndpointQueryParamsEntry + nil, // 82: enterprise.gloo.solo.io.OidcAuthorizationCode.TokenEndpointQueryParamsEntry + nil, // 83: enterprise.gloo.solo.io.OidcAuthorizationCode.DynamicMetadataFromClaimsEntry + (*OidcAuthorizationCode_AccessToken)(nil), // 84: enterprise.gloo.solo.io.OidcAuthorizationCode.AccessToken + (*OidcAuthorizationCode_IdentityToken)(nil), // 85: enterprise.gloo.solo.io.OidcAuthorizationCode.IdentityToken + (*OidcAuthorizationCode_ClientAuthentication)(nil), // 86: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication + (*OidcAuthorizationCode_Default)(nil), // 87: enterprise.gloo.solo.io.OidcAuthorizationCode.Default + (*OidcAuthorizationCode_FrontChannelLogout)(nil), // 88: enterprise.gloo.solo.io.OidcAuthorizationCode.FrontChannelLogout + (*OidcAuthorizationCode_ClientAuthentication_ClientSecret)(nil), // 89: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.ClientSecret + (*OidcAuthorizationCode_ClientAuthentication_PrivateKeyJwt)(nil), // 90: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.PrivateKeyJwt + nil, // 91: enterprise.gloo.solo.io.PlainOAuth2.AuthEndpointQueryParamsEntry + nil, // 92: enterprise.gloo.solo.io.PlainOAuth2.TokenEndpointQueryParamsEntry + (*JwtValidation_RemoteJwks)(nil), // 93: enterprise.gloo.solo.io.JwtValidation.RemoteJwks + (*JwtValidation_LocalJwks)(nil), // 94: enterprise.gloo.solo.io.JwtValidation.LocalJwks + nil, // 95: enterprise.gloo.solo.io.AccessTokenValidation.DynamicMetadataFromClaimsEntry + (*AccessTokenValidation_Default)(nil), // 96: enterprise.gloo.solo.io.AccessTokenValidation.Default + (*AccessTokenValidation_ScopeList)(nil), // 97: enterprise.gloo.solo.io.AccessTokenValidation.ScopeList + nil, // 98: enterprise.gloo.solo.io.ApiKeyAuth.LabelSelectorEntry + nil, // 99: enterprise.gloo.solo.io.ApiKeyAuth.HeadersFromMetadataEntry + nil, // 100: enterprise.gloo.solo.io.ApiKeyAuth.HeadersFromMetadataEntryEntry + (*ApiKeyAuth_SecretKey)(nil), // 101: enterprise.gloo.solo.io.ApiKeyAuth.SecretKey + (*ApiKeyAuth_MetadataEntry)(nil), // 102: enterprise.gloo.solo.io.ApiKeyAuth.MetadataEntry + nil, // 103: enterprise.gloo.solo.io.K8sSecretApiKeyStorage.LabelSelectorEntry + (*AerospikeApiKeyStorageReadModeSc)(nil), // 104: enterprise.gloo.solo.io.AerospikeApiKeyStorage.readModeSc + (*AerospikeApiKeyStorageReadModeAp)(nil), // 105: enterprise.gloo.solo.io.AerospikeApiKeyStorage.readModeAp + (*AerospikeApiKeyStorageTlsCurveID)(nil), // 106: enterprise.gloo.solo.io.AerospikeApiKeyStorage.tlsCurveID + nil, // 107: enterprise.gloo.solo.io.AerospikeApiKeyStorage.LabelSelectorEntry + nil, // 108: enterprise.gloo.solo.io.ApiKey.MetadataEntry + nil, // 109: enterprise.gloo.solo.io.ApiKeySecret.MetadataEntry + (*Ldap_ConnectionPool)(nil), // 110: enterprise.gloo.solo.io.Ldap.ConnectionPool + (*PassThroughHttp_Request)(nil), // 111: enterprise.gloo.solo.io.PassThroughHttp.Request + (*PassThroughHttp_Response)(nil), // 112: enterprise.gloo.solo.io.PassThroughHttp.Response + nil, // 113: enterprise.gloo.solo.io.PassThroughHttp.Request.HeadersToAddEntry + (*ExtAuthConfig_Azure)(nil), // 114: enterprise.gloo.solo.io.ExtAuthConfig.Azure + (*ExtAuthConfig_ClaimToHeader)(nil), // 115: enterprise.gloo.solo.io.ExtAuthConfig.ClaimToHeader + (*ExtAuthConfig_BasicAuthInternal)(nil), // 116: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal + (*ExtAuthConfig_OAuthConfig)(nil), // 117: enterprise.gloo.solo.io.ExtAuthConfig.OAuthConfig + (*ExtAuthConfig_UserSessionConfig)(nil), // 118: enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig + (*ExtAuthConfig_OidcAuthorizationCodeConfig)(nil), // 119: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig + (*ExtAuthConfig_AccessTokenValidationConfig)(nil), // 120: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig + (*ExtAuthConfig_PlainOAuth2Config)(nil), // 121: enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config + (*ExtAuthConfig_OAuth2Config)(nil), // 122: enterprise.gloo.solo.io.ExtAuthConfig.OAuth2Config + (*ExtAuthConfig_ApiKeyAuthConfig)(nil), // 123: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig + (*ExtAuthConfig_OpaAuthConfig)(nil), // 124: enterprise.gloo.solo.io.ExtAuthConfig.OpaAuthConfig + (*ExtAuthConfig_OpaServerAuthConfig)(nil), // 125: enterprise.gloo.solo.io.ExtAuthConfig.OpaServerAuthConfig + (*ExtAuthConfig_LdapConfig)(nil), // 126: enterprise.gloo.solo.io.ExtAuthConfig.LdapConfig + (*ExtAuthConfig_LdapServiceAccountConfig)(nil), // 127: enterprise.gloo.solo.io.ExtAuthConfig.LdapServiceAccountConfig + (*ExtAuthConfig_HmacAuthConfig)(nil), // 128: enterprise.gloo.solo.io.ExtAuthConfig.HmacAuthConfig + (*ExtAuthConfig_InMemorySecretList)(nil), // 129: enterprise.gloo.solo.io.ExtAuthConfig.InMemorySecretList + (*ExtAuthConfig_Config)(nil), // 130: enterprise.gloo.solo.io.ExtAuthConfig.Config + (*ExtAuthConfig_BasicAuthInternal_EncryptionType)(nil), // 131: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.EncryptionType + (*ExtAuthConfig_BasicAuthInternal_User)(nil), // 132: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.User + (*ExtAuthConfig_BasicAuthInternal_UserList)(nil), // 133: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.UserList + (*ExtAuthConfig_BasicAuthInternal_EncryptionType_Sha1)(nil), // 134: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.EncryptionType.Sha1 + (*ExtAuthConfig_BasicAuthInternal_EncryptionType_Apr)(nil), // 135: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.EncryptionType.Apr + nil, // 136: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.UserList.UsersEntry + nil, // 137: enterprise.gloo.solo.io.ExtAuthConfig.OAuthConfig.AuthEndpointQueryParamsEntry + (*ExtAuthConfig_UserSessionConfig_CipherConfig)(nil), // 138: enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig.CipherConfig + nil, // 139: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.AuthEndpointQueryParamsEntry + nil, // 140: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.TokenEndpointQueryParamsEntry + (*ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConfig)(nil), // 141: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.PkJwtClientAuthenticationConfig + (*ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken)(nil), // 142: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.AccessToken + (*ExtAuthConfig_OidcAuthorizationCodeConfig_IdentityToken)(nil), // 143: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.IdentityToken + (*ExtAuthConfig_OidcAuthorizationCodeConfig_Default)(nil), // 144: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.Default + (*ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout)(nil), // 145: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.FrontChannelLogout + nil, // 146: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.DynamicMetadataFromClaimsEntry + (*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation)(nil), // 147: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation + (*ExtAuthConfig_AccessTokenValidationConfig_IntrospectionValidation)(nil), // 148: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.IntrospectionValidation + (*ExtAuthConfig_AccessTokenValidationConfig_ScopeList)(nil), // 149: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.ScopeList + nil, // 150: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.DynamicMetadataFromClaimsEntry + (*ExtAuthConfig_AccessTokenValidationConfig_Default)(nil), // 151: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.Default + (*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks)(nil), // 152: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation.RemoteJwks + (*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_LocalJwks)(nil), // 153: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation.LocalJwks + nil, // 154: enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config.AuthEndpointQueryParamsEntry + nil, // 155: enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config.TokenEndpointQueryParamsEntry + (*ExtAuthConfig_ApiKeyAuthConfig_KeyMetadata)(nil), // 156: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.KeyMetadata + nil, // 157: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.ValidApiKeysEntry + nil, // 158: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.HeadersFromKeyMetadataEntry + nil, // 159: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.KeyMetadata.MetadataEntry + nil, // 160: enterprise.gloo.solo.io.ExtAuthConfig.OpaAuthConfig.ModulesEntry + nil, // 161: enterprise.gloo.solo.io.ExtAuthConfig.InMemorySecretList.SecretListEntry + nil, // 162: enterprise.gloo.solo.io.AuthConfigStatus.SubresourceStatusesEntry + nil, // 163: enterprise.gloo.solo.io.AuthConfigNamespacedStatuses.StatusesEntry + (*wrappers.StringValue)(nil), // 164: google.protobuf.StringValue + (*core.ResourceRef)(nil), // 165: core.solo.io.ResourceRef + (*duration.Duration)(nil), // 166: google.protobuf.Duration + (*_struct.Struct)(nil), // 167: google.protobuf.Struct + (*wrappers.BoolValue)(nil), // 168: google.protobuf.BoolValue + (*empty.Empty)(nil), // 169: google.protobuf.Empty + (*wrappers.UInt32Value)(nil), // 170: google.protobuf.UInt32Value + (*v2.DiscoveryRequest)(nil), // 171: envoy.api.v2.DiscoveryRequest + (*v2.DeltaDiscoveryRequest)(nil), // 172: envoy.api.v2.DeltaDiscoveryRequest + (*v2.DiscoveryResponse)(nil), // 173: envoy.api.v2.DiscoveryResponse + (*v2.DeltaDiscoveryResponse)(nil), // 174: envoy.api.v2.DeltaDiscoveryResponse } var file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_depIdxs = []int32{ - 60, // 0: enterprise.gloo.solo.io.AuthConfigSpec.configs:type_name -> enterprise.gloo.solo.io.AuthConfigSpec.Config - 159, // 1: enterprise.gloo.solo.io.AuthConfigSpec.boolean_expr:type_name -> google.protobuf.StringValue - 160, // 2: enterprise.gloo.solo.io.ExtAuthExtension.config_ref:type_name -> core.solo.io.ResourceRef + 62, // 0: enterprise.gloo.solo.io.AuthConfigSpec.configs:type_name -> enterprise.gloo.solo.io.AuthConfigSpec.Config + 164, // 1: enterprise.gloo.solo.io.AuthConfigSpec.boolean_expr:type_name -> google.protobuf.StringValue + 165, // 2: enterprise.gloo.solo.io.ExtAuthExtension.config_ref:type_name -> core.solo.io.ResourceRef 11, // 3: enterprise.gloo.solo.io.ExtAuthExtension.custom_auth:type_name -> enterprise.gloo.solo.io.CustomAuth - 160, // 4: enterprise.gloo.solo.io.Settings.extauthz_server_ref:type_name -> core.solo.io.ResourceRef + 165, // 4: enterprise.gloo.solo.io.Settings.extauthz_server_ref:type_name -> core.solo.io.ResourceRef 9, // 5: enterprise.gloo.solo.io.Settings.http_service:type_name -> enterprise.gloo.solo.io.HttpService 8, // 6: enterprise.gloo.solo.io.Settings.grpc_service:type_name -> enterprise.gloo.solo.io.GrpcService - 161, // 7: enterprise.gloo.solo.io.Settings.request_timeout:type_name -> google.protobuf.Duration + 166, // 7: enterprise.gloo.solo.io.Settings.request_timeout:type_name -> google.protobuf.Duration 10, // 8: enterprise.gloo.solo.io.Settings.request_body:type_name -> enterprise.gloo.solo.io.BufferSettings 0, // 9: enterprise.gloo.solo.io.Settings.transport_api_version:type_name -> enterprise.gloo.solo.io.Settings.ApiVersion - 61, // 10: enterprise.gloo.solo.io.HttpService.request:type_name -> enterprise.gloo.solo.io.HttpService.Request - 62, // 11: enterprise.gloo.solo.io.HttpService.response:type_name -> enterprise.gloo.solo.io.HttpService.Response - 64, // 12: enterprise.gloo.solo.io.CustomAuth.context_extensions:type_name -> enterprise.gloo.solo.io.CustomAuth.ContextExtensionsEntry - 162, // 13: enterprise.gloo.solo.io.AuthPlugin.config:type_name -> google.protobuf.Struct - 65, // 14: enterprise.gloo.solo.io.BasicAuth.apr:type_name -> enterprise.gloo.solo.io.BasicAuth.Apr - 66, // 15: enterprise.gloo.solo.io.BasicAuth.encryption:type_name -> enterprise.gloo.solo.io.BasicAuth.EncryptionType - 68, // 16: enterprise.gloo.solo.io.BasicAuth.user_list:type_name -> enterprise.gloo.solo.io.BasicAuth.UserList + 63, // 10: enterprise.gloo.solo.io.HttpService.request:type_name -> enterprise.gloo.solo.io.HttpService.Request + 64, // 11: enterprise.gloo.solo.io.HttpService.response:type_name -> enterprise.gloo.solo.io.HttpService.Response + 66, // 12: enterprise.gloo.solo.io.CustomAuth.context_extensions:type_name -> enterprise.gloo.solo.io.CustomAuth.ContextExtensionsEntry + 167, // 13: enterprise.gloo.solo.io.AuthPlugin.config:type_name -> google.protobuf.Struct + 67, // 14: enterprise.gloo.solo.io.BasicAuth.apr:type_name -> enterprise.gloo.solo.io.BasicAuth.Apr + 68, // 15: enterprise.gloo.solo.io.BasicAuth.encryption:type_name -> enterprise.gloo.solo.io.BasicAuth.EncryptionType + 70, // 16: enterprise.gloo.solo.io.BasicAuth.user_list:type_name -> enterprise.gloo.solo.io.BasicAuth.UserList 15, // 17: enterprise.gloo.solo.io.HmacAuth.secret_refs:type_name -> enterprise.gloo.solo.io.SecretRefList 16, // 18: enterprise.gloo.solo.io.HmacAuth.parameters_in_headers:type_name -> enterprise.gloo.solo.io.HmacParametersInHeaders - 160, // 19: enterprise.gloo.solo.io.SecretRefList.secret_refs:type_name -> core.solo.io.ResourceRef - 160, // 20: enterprise.gloo.solo.io.OAuth.client_secret_ref:type_name -> core.solo.io.ResourceRef - 74, // 21: enterprise.gloo.solo.io.OAuth.auth_endpoint_query_params:type_name -> enterprise.gloo.solo.io.OAuth.AuthEndpointQueryParamsEntry - 27, // 22: enterprise.gloo.solo.io.OAuth2.oidc_authorization_code:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode - 31, // 23: enterprise.gloo.solo.io.OAuth2.access_token_validation:type_name -> enterprise.gloo.solo.io.AccessTokenValidation - 28, // 24: enterprise.gloo.solo.io.OAuth2.oauth2:type_name -> enterprise.gloo.solo.io.PlainOAuth2 + 165, // 19: enterprise.gloo.solo.io.SecretRefList.secret_refs:type_name -> core.solo.io.ResourceRef + 165, // 20: enterprise.gloo.solo.io.OAuth.client_secret_ref:type_name -> core.solo.io.ResourceRef + 76, // 21: enterprise.gloo.solo.io.OAuth.auth_endpoint_query_params:type_name -> enterprise.gloo.solo.io.OAuth.AuthEndpointQueryParamsEntry + 28, // 22: enterprise.gloo.solo.io.OAuth2.oidc_authorization_code:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode + 32, // 23: enterprise.gloo.solo.io.OAuth2.access_token_validation:type_name -> enterprise.gloo.solo.io.AccessTokenValidation + 29, // 24: enterprise.gloo.solo.io.OAuth2.oauth2:type_name -> enterprise.gloo.solo.io.PlainOAuth2 1, // 25: enterprise.gloo.solo.io.RedisOptions.socket_type:type_name -> enterprise.gloo.solo.io.RedisOptions.SocketType - 77, // 26: enterprise.gloo.solo.io.UserSession.cookie_options:type_name -> enterprise.gloo.solo.io.UserSession.CookieOptions - 75, // 27: enterprise.gloo.solo.io.UserSession.cookie:type_name -> enterprise.gloo.solo.io.UserSession.InternalSession - 76, // 28: enterprise.gloo.solo.io.UserSession.redis:type_name -> enterprise.gloo.solo.io.UserSession.RedisSession - 78, // 29: enterprise.gloo.solo.io.UserSession.cipher_config:type_name -> enterprise.gloo.solo.io.UserSession.CipherConfig - 163, // 30: enterprise.gloo.solo.io.HeaderConfiguration.use_bearer_schema_for_authorization:type_name -> google.protobuf.BoolValue - 164, // 31: enterprise.gloo.solo.io.JwksOnDemandCacheRefreshPolicy.never:type_name -> google.protobuf.Empty - 164, // 32: enterprise.gloo.solo.io.JwksOnDemandCacheRefreshPolicy.always:type_name -> google.protobuf.Empty + 79, // 26: enterprise.gloo.solo.io.UserSession.cookie_options:type_name -> enterprise.gloo.solo.io.UserSession.CookieOptions + 77, // 27: enterprise.gloo.solo.io.UserSession.cookie:type_name -> enterprise.gloo.solo.io.UserSession.InternalSession + 78, // 28: enterprise.gloo.solo.io.UserSession.redis:type_name -> enterprise.gloo.solo.io.UserSession.RedisSession + 80, // 29: enterprise.gloo.solo.io.UserSession.cipher_config:type_name -> enterprise.gloo.solo.io.UserSession.CipherConfig + 168, // 30: enterprise.gloo.solo.io.HeaderConfiguration.use_bearer_schema_for_authorization:type_name -> google.protobuf.BoolValue + 169, // 31: enterprise.gloo.solo.io.JwksOnDemandCacheRefreshPolicy.never:type_name -> google.protobuf.Empty + 169, // 32: enterprise.gloo.solo.io.JwksOnDemandCacheRefreshPolicy.always:type_name -> google.protobuf.Empty 3, // 33: enterprise.gloo.solo.io.EndSessionProperties.methodType:type_name -> enterprise.gloo.solo.io.EndSessionProperties.MethodType - 160, // 34: enterprise.gloo.solo.io.OidcAuthorizationCode.client_secret_ref:type_name -> core.solo.io.ResourceRef - 79, // 35: enterprise.gloo.solo.io.OidcAuthorizationCode.auth_endpoint_query_params:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.AuthEndpointQueryParamsEntry - 80, // 36: enterprise.gloo.solo.io.OidcAuthorizationCode.token_endpoint_query_params:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.TokenEndpointQueryParamsEntry - 20, // 37: enterprise.gloo.solo.io.OidcAuthorizationCode.session:type_name -> enterprise.gloo.solo.io.UserSession - 21, // 38: enterprise.gloo.solo.io.OidcAuthorizationCode.headers:type_name -> enterprise.gloo.solo.io.HeaderConfiguration - 22, // 39: enterprise.gloo.solo.io.OidcAuthorizationCode.discovery_override:type_name -> enterprise.gloo.solo.io.DiscoveryOverride - 161, // 40: enterprise.gloo.solo.io.OidcAuthorizationCode.discovery_poll_interval:type_name -> google.protobuf.Duration - 23, // 41: enterprise.gloo.solo.io.OidcAuthorizationCode.jwks_cache_refresh_policy:type_name -> enterprise.gloo.solo.io.JwksOnDemandCacheRefreshPolicy - 24, // 42: enterprise.gloo.solo.io.OidcAuthorizationCode.auto_map_from_metadata:type_name -> enterprise.gloo.solo.io.AutoMapFromMetadata - 25, // 43: enterprise.gloo.solo.io.OidcAuthorizationCode.end_session_properties:type_name -> enterprise.gloo.solo.io.EndSessionProperties - 81, // 44: enterprise.gloo.solo.io.OidcAuthorizationCode.dynamic_metadata_from_claims:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.DynamicMetadataFromClaimsEntry - 163, // 45: enterprise.gloo.solo.io.OidcAuthorizationCode.disable_client_secret:type_name -> google.protobuf.BoolValue - 82, // 46: enterprise.gloo.solo.io.OidcAuthorizationCode.access_token:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.AccessToken - 83, // 47: enterprise.gloo.solo.io.OidcAuthorizationCode.identity_token:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.IdentityToken - 84, // 48: enterprise.gloo.solo.io.OidcAuthorizationCode.client_authentication:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication - 85, // 49: enterprise.gloo.solo.io.OidcAuthorizationCode.default:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.Default - 86, // 50: enterprise.gloo.solo.io.OidcAuthorizationCode.azure:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.Azure - 87, // 51: enterprise.gloo.solo.io.OidcAuthorizationCode.front_channel_logout:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.FrontChannelLogout - 160, // 52: enterprise.gloo.solo.io.PlainOAuth2.client_secret_ref:type_name -> core.solo.io.ResourceRef - 90, // 53: enterprise.gloo.solo.io.PlainOAuth2.auth_endpoint_query_params:type_name -> enterprise.gloo.solo.io.PlainOAuth2.AuthEndpointQueryParamsEntry - 20, // 54: enterprise.gloo.solo.io.PlainOAuth2.session:type_name -> enterprise.gloo.solo.io.UserSession - 91, // 55: enterprise.gloo.solo.io.PlainOAuth2.token_endpoint_query_params:type_name -> enterprise.gloo.solo.io.PlainOAuth2.TokenEndpointQueryParamsEntry - 163, // 56: enterprise.gloo.solo.io.PlainOAuth2.disable_client_secret:type_name -> google.protobuf.BoolValue - 92, // 57: enterprise.gloo.solo.io.JwtValidation.remote_jwks:type_name -> enterprise.gloo.solo.io.JwtValidation.RemoteJwks - 93, // 58: enterprise.gloo.solo.io.JwtValidation.local_jwks:type_name -> enterprise.gloo.solo.io.JwtValidation.LocalJwks - 160, // 59: enterprise.gloo.solo.io.IntrospectionValidation.client_secret_ref:type_name -> core.solo.io.ResourceRef - 163, // 60: enterprise.gloo.solo.io.IntrospectionValidation.disable_client_secret:type_name -> google.protobuf.BoolValue - 29, // 61: enterprise.gloo.solo.io.AccessTokenValidation.jwt:type_name -> enterprise.gloo.solo.io.JwtValidation - 30, // 62: enterprise.gloo.solo.io.AccessTokenValidation.introspection:type_name -> enterprise.gloo.solo.io.IntrospectionValidation - 161, // 63: enterprise.gloo.solo.io.AccessTokenValidation.cache_timeout:type_name -> google.protobuf.Duration - 95, // 64: enterprise.gloo.solo.io.AccessTokenValidation.required_scopes:type_name -> enterprise.gloo.solo.io.AccessTokenValidation.ScopeList - 94, // 65: enterprise.gloo.solo.io.AccessTokenValidation.dynamic_metadata_from_claims:type_name -> enterprise.gloo.solo.io.AccessTokenValidation.DynamicMetadataFromClaimsEntry - 96, // 66: enterprise.gloo.solo.io.ApiKeyAuth.label_selector:type_name -> enterprise.gloo.solo.io.ApiKeyAuth.LabelSelectorEntry - 160, // 67: enterprise.gloo.solo.io.ApiKeyAuth.api_key_secret_refs:type_name -> core.solo.io.ResourceRef - 97, // 68: enterprise.gloo.solo.io.ApiKeyAuth.headers_from_metadata:type_name -> enterprise.gloo.solo.io.ApiKeyAuth.HeadersFromMetadataEntry - 98, // 69: enterprise.gloo.solo.io.ApiKeyAuth.headers_from_metadata_entry:type_name -> enterprise.gloo.solo.io.ApiKeyAuth.HeadersFromMetadataEntryEntry - 34, // 70: enterprise.gloo.solo.io.ApiKeyAuth.k8s_secret_apikey_storage:type_name -> enterprise.gloo.solo.io.K8sSecretApiKeyStorage - 35, // 71: enterprise.gloo.solo.io.ApiKeyAuth.aerospike_apikey_storage:type_name -> enterprise.gloo.solo.io.AerospikeApiKeyStorage - 101, // 72: enterprise.gloo.solo.io.K8sSecretApiKeyStorage.label_selector:type_name -> enterprise.gloo.solo.io.K8sSecretApiKeyStorage.LabelSelectorEntry - 160, // 73: enterprise.gloo.solo.io.K8sSecretApiKeyStorage.api_key_secret_refs:type_name -> core.solo.io.ResourceRef - 102, // 74: enterprise.gloo.solo.io.AerospikeApiKeyStorage.read_mode_sc:type_name -> enterprise.gloo.solo.io.AerospikeApiKeyStorage.readModeSc - 103, // 75: enterprise.gloo.solo.io.AerospikeApiKeyStorage.read_mode_ap:type_name -> enterprise.gloo.solo.io.AerospikeApiKeyStorage.readModeAp - 104, // 76: enterprise.gloo.solo.io.AerospikeApiKeyStorage.tls_curve_groups:type_name -> enterprise.gloo.solo.io.AerospikeApiKeyStorage.tlsCurveID - 105, // 77: enterprise.gloo.solo.io.AerospikeApiKeyStorage.label_selector:type_name -> enterprise.gloo.solo.io.AerospikeApiKeyStorage.LabelSelectorEntry - 106, // 78: enterprise.gloo.solo.io.ApiKey.metadata:type_name -> enterprise.gloo.solo.io.ApiKey.MetadataEntry - 107, // 79: enterprise.gloo.solo.io.ApiKeySecret.metadata:type_name -> enterprise.gloo.solo.io.ApiKeySecret.MetadataEntry - 160, // 80: enterprise.gloo.solo.io.OpaAuth.modules:type_name -> core.solo.io.ResourceRef - 39, // 81: enterprise.gloo.solo.io.OpaAuth.options:type_name -> enterprise.gloo.solo.io.OpaAuthOptions - 39, // 82: enterprise.gloo.solo.io.OpaServerAuth.options:type_name -> enterprise.gloo.solo.io.OpaAuthOptions - 108, // 83: enterprise.gloo.solo.io.Ldap.pool:type_name -> enterprise.gloo.solo.io.Ldap.ConnectionPool - 42, // 84: enterprise.gloo.solo.io.Ldap.group_lookup_settings:type_name -> enterprise.gloo.solo.io.LdapServiceAccount - 160, // 85: enterprise.gloo.solo.io.LdapServiceAccount.credentials_secret_ref:type_name -> core.solo.io.ResourceRef - 46, // 86: enterprise.gloo.solo.io.PassThroughAuth.grpc:type_name -> enterprise.gloo.solo.io.PassThroughGrpc - 48, // 87: enterprise.gloo.solo.io.PassThroughAuth.http:type_name -> enterprise.gloo.solo.io.PassThroughHttp - 162, // 88: enterprise.gloo.solo.io.PassThroughAuth.config:type_name -> google.protobuf.Struct - 161, // 89: enterprise.gloo.solo.io.BackoffStrategy.base_interval:type_name -> google.protobuf.Duration - 161, // 90: enterprise.gloo.solo.io.BackoffStrategy.max_interval:type_name -> google.protobuf.Duration - 165, // 91: enterprise.gloo.solo.io.RetryPolicy.num_retries:type_name -> google.protobuf.UInt32Value - 44, // 92: enterprise.gloo.solo.io.RetryPolicy.retry_back_off:type_name -> enterprise.gloo.solo.io.BackoffStrategy - 161, // 93: enterprise.gloo.solo.io.PassThroughGrpc.connection_timeout:type_name -> google.protobuf.Duration - 47, // 94: enterprise.gloo.solo.io.PassThroughGrpc.tlsConfig:type_name -> enterprise.gloo.solo.io.PassThroughGrpcTLSConfig - 45, // 95: enterprise.gloo.solo.io.PassThroughGrpc.retry_policy:type_name -> enterprise.gloo.solo.io.RetryPolicy - 109, // 96: enterprise.gloo.solo.io.PassThroughHttp.request:type_name -> enterprise.gloo.solo.io.PassThroughHttp.Request - 110, // 97: enterprise.gloo.solo.io.PassThroughHttp.response:type_name -> enterprise.gloo.solo.io.PassThroughHttp.Response - 161, // 98: enterprise.gloo.solo.io.PassThroughHttp.connection_timeout:type_name -> google.protobuf.Duration - 126, // 99: enterprise.gloo.solo.io.ExtAuthConfig.configs:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.Config - 159, // 100: enterprise.gloo.solo.io.ExtAuthConfig.boolean_expr:type_name -> google.protobuf.StringValue - 36, // 101: enterprise.gloo.solo.io.ApiKeyCreateRequest.api_keys:type_name -> enterprise.gloo.solo.io.ApiKey - 36, // 102: enterprise.gloo.solo.io.ApiKeyCreateResponse.api_keys:type_name -> enterprise.gloo.solo.io.ApiKey - 36, // 103: enterprise.gloo.solo.io.ApiKeyReadResponse.api_keys:type_name -> enterprise.gloo.solo.io.ApiKey - 36, // 104: enterprise.gloo.solo.io.ApiKeyUpdateRequest.api_keys:type_name -> enterprise.gloo.solo.io.ApiKey - 36, // 105: enterprise.gloo.solo.io.ApiKeyUpdateResponse.api_keys:type_name -> enterprise.gloo.solo.io.ApiKey - 4, // 106: enterprise.gloo.solo.io.AuthConfigStatus.state:type_name -> enterprise.gloo.solo.io.AuthConfigStatus.State - 157, // 107: enterprise.gloo.solo.io.AuthConfigStatus.subresource_statuses:type_name -> enterprise.gloo.solo.io.AuthConfigStatus.SubresourceStatusesEntry - 162, // 108: enterprise.gloo.solo.io.AuthConfigStatus.details:type_name -> google.protobuf.Struct - 158, // 109: enterprise.gloo.solo.io.AuthConfigNamespacedStatuses.statuses:type_name -> enterprise.gloo.solo.io.AuthConfigNamespacedStatuses.StatusesEntry - 159, // 110: enterprise.gloo.solo.io.AuthConfigSpec.Config.name:type_name -> google.protobuf.StringValue - 13, // 111: enterprise.gloo.solo.io.AuthConfigSpec.Config.basic_auth:type_name -> enterprise.gloo.solo.io.BasicAuth - 17, // 112: enterprise.gloo.solo.io.AuthConfigSpec.Config.oauth:type_name -> enterprise.gloo.solo.io.OAuth - 18, // 113: enterprise.gloo.solo.io.AuthConfigSpec.Config.oauth2:type_name -> enterprise.gloo.solo.io.OAuth2 - 33, // 114: enterprise.gloo.solo.io.AuthConfigSpec.Config.api_key_auth:type_name -> enterprise.gloo.solo.io.ApiKeyAuth - 12, // 115: enterprise.gloo.solo.io.AuthConfigSpec.Config.plugin_auth:type_name -> enterprise.gloo.solo.io.AuthPlugin - 38, // 116: enterprise.gloo.solo.io.AuthConfigSpec.Config.opa_auth:type_name -> enterprise.gloo.solo.io.OpaAuth - 41, // 117: enterprise.gloo.solo.io.AuthConfigSpec.Config.ldap:type_name -> enterprise.gloo.solo.io.Ldap - 164, // 118: enterprise.gloo.solo.io.AuthConfigSpec.Config.jwt:type_name -> google.protobuf.Empty - 43, // 119: enterprise.gloo.solo.io.AuthConfigSpec.Config.pass_through_auth:type_name -> enterprise.gloo.solo.io.PassThroughAuth - 14, // 120: enterprise.gloo.solo.io.AuthConfigSpec.Config.hmac_auth:type_name -> enterprise.gloo.solo.io.HmacAuth - 40, // 121: enterprise.gloo.solo.io.AuthConfigSpec.Config.opa_server_auth:type_name -> enterprise.gloo.solo.io.OpaServerAuth - 63, // 122: enterprise.gloo.solo.io.HttpService.Request.headers_to_add:type_name -> enterprise.gloo.solo.io.HttpService.Request.HeadersToAddEntry - 70, // 123: enterprise.gloo.solo.io.BasicAuth.Apr.users:type_name -> enterprise.gloo.solo.io.BasicAuth.Apr.UsersEntry - 72, // 124: enterprise.gloo.solo.io.BasicAuth.EncryptionType.apr:type_name -> enterprise.gloo.solo.io.BasicAuth.EncryptionType.Apr - 71, // 125: enterprise.gloo.solo.io.BasicAuth.EncryptionType.sha1:type_name -> enterprise.gloo.solo.io.BasicAuth.EncryptionType.Sha1 - 73, // 126: enterprise.gloo.solo.io.BasicAuth.UserList.users:type_name -> enterprise.gloo.solo.io.BasicAuth.UserList.UsersEntry - 69, // 127: enterprise.gloo.solo.io.BasicAuth.Apr.UsersEntry.value:type_name -> enterprise.gloo.solo.io.BasicAuth.Apr.SaltedHashedPassword - 67, // 128: enterprise.gloo.solo.io.BasicAuth.UserList.UsersEntry.value:type_name -> enterprise.gloo.solo.io.BasicAuth.User - 163, // 129: enterprise.gloo.solo.io.UserSession.InternalSession.allow_refreshing:type_name -> google.protobuf.BoolValue - 19, // 130: enterprise.gloo.solo.io.UserSession.RedisSession.options:type_name -> enterprise.gloo.solo.io.RedisOptions - 163, // 131: enterprise.gloo.solo.io.UserSession.RedisSession.allow_refreshing:type_name -> google.protobuf.BoolValue - 161, // 132: enterprise.gloo.solo.io.UserSession.RedisSession.pre_expiry_buffer:type_name -> google.protobuf.Duration - 165, // 133: enterprise.gloo.solo.io.UserSession.CookieOptions.max_age:type_name -> google.protobuf.UInt32Value - 163, // 134: enterprise.gloo.solo.io.UserSession.CookieOptions.http_only:type_name -> google.protobuf.BoolValue - 159, // 135: enterprise.gloo.solo.io.UserSession.CookieOptions.path:type_name -> google.protobuf.StringValue - 2, // 136: enterprise.gloo.solo.io.UserSession.CookieOptions.same_site:type_name -> enterprise.gloo.solo.io.UserSession.CookieOptions.SameSite - 160, // 137: enterprise.gloo.solo.io.UserSession.CipherConfig.key_ref:type_name -> core.solo.io.ResourceRef - 26, // 138: enterprise.gloo.solo.io.OidcAuthorizationCode.AccessToken.claims_to_headers:type_name -> enterprise.gloo.solo.io.ClaimToHeader - 26, // 139: enterprise.gloo.solo.io.OidcAuthorizationCode.IdentityToken.claims_to_headers:type_name -> enterprise.gloo.solo.io.ClaimToHeader - 88, // 140: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.client_secret:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.ClientSecret - 89, // 141: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.private_key_jwt:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.PrivateKeyJwt - 160, // 142: enterprise.gloo.solo.io.OidcAuthorizationCode.Azure.client_secret:type_name -> core.solo.io.ResourceRef - 19, // 143: enterprise.gloo.solo.io.OidcAuthorizationCode.Azure.claims_caching_options:type_name -> enterprise.gloo.solo.io.RedisOptions - 160, // 144: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.ClientSecret.client_secret_ref:type_name -> core.solo.io.ResourceRef - 163, // 145: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.ClientSecret.disable_client_secret:type_name -> google.protobuf.BoolValue - 160, // 146: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.PrivateKeyJwt.signing_key_ref:type_name -> core.solo.io.ResourceRef - 161, // 147: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.PrivateKeyJwt.valid_for:type_name -> google.protobuf.Duration - 161, // 148: enterprise.gloo.solo.io.JwtValidation.RemoteJwks.refresh_interval:type_name -> google.protobuf.Duration - 99, // 149: enterprise.gloo.solo.io.ApiKeyAuth.HeadersFromMetadataEntry.value:type_name -> enterprise.gloo.solo.io.ApiKeyAuth.SecretKey - 100, // 150: enterprise.gloo.solo.io.ApiKeyAuth.HeadersFromMetadataEntryEntry.value:type_name -> enterprise.gloo.solo.io.ApiKeyAuth.MetadataEntry - 165, // 151: enterprise.gloo.solo.io.Ldap.ConnectionPool.maxSize:type_name -> google.protobuf.UInt32Value - 165, // 152: enterprise.gloo.solo.io.Ldap.ConnectionPool.initialSize:type_name -> google.protobuf.UInt32Value - 111, // 153: enterprise.gloo.solo.io.PassThroughHttp.Request.headers_to_add:type_name -> enterprise.gloo.solo.io.PassThroughHttp.Request.HeadersToAddEntry - 127, // 154: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.encryption:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.EncryptionType - 129, // 155: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.user_list:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.UserList - 133, // 156: enterprise.gloo.solo.io.ExtAuthConfig.OAuthConfig.auth_endpoint_query_params:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OAuthConfig.AuthEndpointQueryParamsEntry - 77, // 157: enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig.cookie_options:type_name -> enterprise.gloo.solo.io.UserSession.CookieOptions - 75, // 158: enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig.cookie:type_name -> enterprise.gloo.solo.io.UserSession.InternalSession - 76, // 159: enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig.redis:type_name -> enterprise.gloo.solo.io.UserSession.RedisSession - 134, // 160: enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig.cipher_config:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig.CipherConfig - 135, // 161: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.auth_endpoint_query_params:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.AuthEndpointQueryParamsEntry - 136, // 162: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.token_endpoint_query_params:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.TokenEndpointQueryParamsEntry - 20, // 163: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.session:type_name -> enterprise.gloo.solo.io.UserSession - 21, // 164: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.headers:type_name -> enterprise.gloo.solo.io.HeaderConfiguration - 22, // 165: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.discovery_override:type_name -> enterprise.gloo.solo.io.DiscoveryOverride - 161, // 166: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.discovery_poll_interval:type_name -> google.protobuf.Duration - 23, // 167: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.jwks_cache_refresh_policy:type_name -> enterprise.gloo.solo.io.JwksOnDemandCacheRefreshPolicy - 24, // 168: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.auto_map_from_metadata:type_name -> enterprise.gloo.solo.io.AutoMapFromMetadata - 25, // 169: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.end_session_properties:type_name -> enterprise.gloo.solo.io.EndSessionProperties - 114, // 170: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.user_session:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig - 137, // 171: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.pk_jwt_client_authentication_config:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.PkJwtClientAuthenticationConfig - 139, // 172: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.access_token:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.AccessToken - 140, // 173: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.identity_token:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.IdentityToken - 141, // 174: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.default:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.Default - 142, // 175: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.azure:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.Azure - 143, // 176: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.front_channel_logout:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.FrontChannelLogout - 144, // 177: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.jwt:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation - 145, // 178: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.introspection:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.IntrospectionValidation - 161, // 179: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.cache_timeout:type_name -> google.protobuf.Duration - 146, // 180: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.required_scopes:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.ScopeList - 149, // 181: enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config.auth_endpoint_query_params:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config.AuthEndpointQueryParamsEntry - 20, // 182: enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config.session:type_name -> enterprise.gloo.solo.io.UserSession - 150, // 183: enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config.token_endpoint_query_params:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config.TokenEndpointQueryParamsEntry - 114, // 184: enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config.user_session:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig - 115, // 185: enterprise.gloo.solo.io.ExtAuthConfig.OAuth2Config.oidc_authorization_code:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig - 116, // 186: enterprise.gloo.solo.io.ExtAuthConfig.OAuth2Config.access_token_validation_config:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig - 117, // 187: enterprise.gloo.solo.io.ExtAuthConfig.OAuth2Config.oauth2_config:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config - 152, // 188: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.valid_api_keys:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.ValidApiKeysEntry - 153, // 189: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.headers_from_key_metadata:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.HeadersFromKeyMetadataEntry - 34, // 190: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.k8s_secret_apikey_storage:type_name -> enterprise.gloo.solo.io.K8sSecretApiKeyStorage - 35, // 191: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.aerospike_apikey_storage:type_name -> enterprise.gloo.solo.io.AerospikeApiKeyStorage - 155, // 192: enterprise.gloo.solo.io.ExtAuthConfig.OpaAuthConfig.modules:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OpaAuthConfig.ModulesEntry - 39, // 193: enterprise.gloo.solo.io.ExtAuthConfig.OpaAuthConfig.options:type_name -> enterprise.gloo.solo.io.OpaAuthOptions - 39, // 194: enterprise.gloo.solo.io.ExtAuthConfig.OpaServerAuthConfig.options:type_name -> enterprise.gloo.solo.io.OpaAuthOptions - 108, // 195: enterprise.gloo.solo.io.ExtAuthConfig.LdapConfig.pool:type_name -> enterprise.gloo.solo.io.Ldap.ConnectionPool - 123, // 196: enterprise.gloo.solo.io.ExtAuthConfig.LdapConfig.group_lookup_settings:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.LdapServiceAccountConfig - 125, // 197: enterprise.gloo.solo.io.ExtAuthConfig.HmacAuthConfig.secret_list:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.InMemorySecretList - 16, // 198: enterprise.gloo.solo.io.ExtAuthConfig.HmacAuthConfig.parameters_in_headers:type_name -> enterprise.gloo.solo.io.HmacParametersInHeaders - 156, // 199: enterprise.gloo.solo.io.ExtAuthConfig.InMemorySecretList.secret_list:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.InMemorySecretList.SecretListEntry - 159, // 200: enterprise.gloo.solo.io.ExtAuthConfig.Config.name:type_name -> google.protobuf.StringValue - 113, // 201: enterprise.gloo.solo.io.ExtAuthConfig.Config.oauth:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OAuthConfig - 118, // 202: enterprise.gloo.solo.io.ExtAuthConfig.Config.oauth2:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OAuth2Config - 13, // 203: enterprise.gloo.solo.io.ExtAuthConfig.Config.basic_auth:type_name -> enterprise.gloo.solo.io.BasicAuth - 112, // 204: enterprise.gloo.solo.io.ExtAuthConfig.Config.basic_auth_internal:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal - 119, // 205: enterprise.gloo.solo.io.ExtAuthConfig.Config.api_key_auth:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig - 12, // 206: enterprise.gloo.solo.io.ExtAuthConfig.Config.plugin_auth:type_name -> enterprise.gloo.solo.io.AuthPlugin - 120, // 207: enterprise.gloo.solo.io.ExtAuthConfig.Config.opa_auth:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OpaAuthConfig - 41, // 208: enterprise.gloo.solo.io.ExtAuthConfig.Config.ldap:type_name -> enterprise.gloo.solo.io.Ldap - 122, // 209: enterprise.gloo.solo.io.ExtAuthConfig.Config.ldap_internal:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.LdapConfig - 164, // 210: enterprise.gloo.solo.io.ExtAuthConfig.Config.jwt:type_name -> google.protobuf.Empty - 43, // 211: enterprise.gloo.solo.io.ExtAuthConfig.Config.pass_through_auth:type_name -> enterprise.gloo.solo.io.PassThroughAuth - 124, // 212: enterprise.gloo.solo.io.ExtAuthConfig.Config.hmac_auth:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.HmacAuthConfig - 121, // 213: enterprise.gloo.solo.io.ExtAuthConfig.Config.opa_server_auth:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OpaServerAuthConfig - 131, // 214: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.EncryptionType.apr:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.EncryptionType.Apr - 130, // 215: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.EncryptionType.sha1:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.EncryptionType.Sha1 - 132, // 216: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.UserList.users:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.UserList.UsersEntry - 128, // 217: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.UserList.UsersEntry.value:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.User - 161, // 218: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.PkJwtClientAuthenticationConfig.valid_for:type_name -> google.protobuf.Duration - 138, // 219: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.AccessToken.claims_to_headers:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.ClaimToHeader - 138, // 220: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.IdentityToken.claims_to_headers:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.ClaimToHeader - 19, // 221: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.Azure.claims_caching_options:type_name -> enterprise.gloo.solo.io.RedisOptions - 147, // 222: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation.remote_jwks:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation.RemoteJwks - 148, // 223: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation.local_jwks:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation.LocalJwks - 161, // 224: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation.RemoteJwks.refresh_interval:type_name -> google.protobuf.Duration - 154, // 225: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.KeyMetadata.metadata:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.KeyMetadata.MetadataEntry - 151, // 226: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.ValidApiKeysEntry.value:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.KeyMetadata - 58, // 227: enterprise.gloo.solo.io.AuthConfigStatus.SubresourceStatusesEntry.value:type_name -> enterprise.gloo.solo.io.AuthConfigStatus - 58, // 228: enterprise.gloo.solo.io.AuthConfigNamespacedStatuses.StatusesEntry.value:type_name -> enterprise.gloo.solo.io.AuthConfigStatus - 166, // 229: enterprise.gloo.solo.io.ExtAuthDiscoveryService.StreamExtAuthConfig:input_type -> envoy.api.v2.DiscoveryRequest - 167, // 230: enterprise.gloo.solo.io.ExtAuthDiscoveryService.DeltaExtAuthConfig:input_type -> envoy.api.v2.DeltaDiscoveryRequest - 166, // 231: enterprise.gloo.solo.io.ExtAuthDiscoveryService.FetchExtAuthConfig:input_type -> envoy.api.v2.DiscoveryRequest - 50, // 232: enterprise.gloo.solo.io.ApiKeyService.Create:input_type -> enterprise.gloo.solo.io.ApiKeyCreateRequest - 52, // 233: enterprise.gloo.solo.io.ApiKeyService.Read:input_type -> enterprise.gloo.solo.io.ApiKeyReadRequest - 54, // 234: enterprise.gloo.solo.io.ApiKeyService.Update:input_type -> enterprise.gloo.solo.io.ApiKeyUpdateRequest - 56, // 235: enterprise.gloo.solo.io.ApiKeyService.Delete:input_type -> enterprise.gloo.solo.io.ApiKeyDeleteRequest - 168, // 236: enterprise.gloo.solo.io.ExtAuthDiscoveryService.StreamExtAuthConfig:output_type -> envoy.api.v2.DiscoveryResponse - 169, // 237: enterprise.gloo.solo.io.ExtAuthDiscoveryService.DeltaExtAuthConfig:output_type -> envoy.api.v2.DeltaDiscoveryResponse - 168, // 238: enterprise.gloo.solo.io.ExtAuthDiscoveryService.FetchExtAuthConfig:output_type -> envoy.api.v2.DiscoveryResponse - 51, // 239: enterprise.gloo.solo.io.ApiKeyService.Create:output_type -> enterprise.gloo.solo.io.ApiKeyCreateResponse - 53, // 240: enterprise.gloo.solo.io.ApiKeyService.Read:output_type -> enterprise.gloo.solo.io.ApiKeyReadResponse - 55, // 241: enterprise.gloo.solo.io.ApiKeyService.Update:output_type -> enterprise.gloo.solo.io.ApiKeyUpdateResponse - 57, // 242: enterprise.gloo.solo.io.ApiKeyService.Delete:output_type -> enterprise.gloo.solo.io.ApiKeyDeleteResponse - 236, // [236:243] is the sub-list for method output_type - 229, // [229:236] is the sub-list for method input_type - 229, // [229:229] is the sub-list for extension type_name - 229, // [229:229] is the sub-list for extension extendee - 0, // [0:229] is the sub-list for field type_name + 165, // 34: enterprise.gloo.solo.io.Azure.client_secret:type_name -> core.solo.io.ResourceRef + 19, // 35: enterprise.gloo.solo.io.Azure.claims_caching_options:type_name -> enterprise.gloo.solo.io.RedisOptions + 165, // 36: enterprise.gloo.solo.io.OidcAuthorizationCode.client_secret_ref:type_name -> core.solo.io.ResourceRef + 81, // 37: enterprise.gloo.solo.io.OidcAuthorizationCode.auth_endpoint_query_params:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.AuthEndpointQueryParamsEntry + 82, // 38: enterprise.gloo.solo.io.OidcAuthorizationCode.token_endpoint_query_params:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.TokenEndpointQueryParamsEntry + 20, // 39: enterprise.gloo.solo.io.OidcAuthorizationCode.session:type_name -> enterprise.gloo.solo.io.UserSession + 21, // 40: enterprise.gloo.solo.io.OidcAuthorizationCode.headers:type_name -> enterprise.gloo.solo.io.HeaderConfiguration + 22, // 41: enterprise.gloo.solo.io.OidcAuthorizationCode.discovery_override:type_name -> enterprise.gloo.solo.io.DiscoveryOverride + 166, // 42: enterprise.gloo.solo.io.OidcAuthorizationCode.discovery_poll_interval:type_name -> google.protobuf.Duration + 23, // 43: enterprise.gloo.solo.io.OidcAuthorizationCode.jwks_cache_refresh_policy:type_name -> enterprise.gloo.solo.io.JwksOnDemandCacheRefreshPolicy + 24, // 44: enterprise.gloo.solo.io.OidcAuthorizationCode.auto_map_from_metadata:type_name -> enterprise.gloo.solo.io.AutoMapFromMetadata + 25, // 45: enterprise.gloo.solo.io.OidcAuthorizationCode.end_session_properties:type_name -> enterprise.gloo.solo.io.EndSessionProperties + 83, // 46: enterprise.gloo.solo.io.OidcAuthorizationCode.dynamic_metadata_from_claims:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.DynamicMetadataFromClaimsEntry + 168, // 47: enterprise.gloo.solo.io.OidcAuthorizationCode.disable_client_secret:type_name -> google.protobuf.BoolValue + 84, // 48: enterprise.gloo.solo.io.OidcAuthorizationCode.access_token:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.AccessToken + 85, // 49: enterprise.gloo.solo.io.OidcAuthorizationCode.identity_token:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.IdentityToken + 86, // 50: enterprise.gloo.solo.io.OidcAuthorizationCode.client_authentication:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication + 87, // 51: enterprise.gloo.solo.io.OidcAuthorizationCode.default:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.Default + 27, // 52: enterprise.gloo.solo.io.OidcAuthorizationCode.azure:type_name -> enterprise.gloo.solo.io.Azure + 88, // 53: enterprise.gloo.solo.io.OidcAuthorizationCode.front_channel_logout:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.FrontChannelLogout + 165, // 54: enterprise.gloo.solo.io.PlainOAuth2.client_secret_ref:type_name -> core.solo.io.ResourceRef + 91, // 55: enterprise.gloo.solo.io.PlainOAuth2.auth_endpoint_query_params:type_name -> enterprise.gloo.solo.io.PlainOAuth2.AuthEndpointQueryParamsEntry + 20, // 56: enterprise.gloo.solo.io.PlainOAuth2.session:type_name -> enterprise.gloo.solo.io.UserSession + 92, // 57: enterprise.gloo.solo.io.PlainOAuth2.token_endpoint_query_params:type_name -> enterprise.gloo.solo.io.PlainOAuth2.TokenEndpointQueryParamsEntry + 168, // 58: enterprise.gloo.solo.io.PlainOAuth2.disable_client_secret:type_name -> google.protobuf.BoolValue + 93, // 59: enterprise.gloo.solo.io.JwtValidation.remote_jwks:type_name -> enterprise.gloo.solo.io.JwtValidation.RemoteJwks + 94, // 60: enterprise.gloo.solo.io.JwtValidation.local_jwks:type_name -> enterprise.gloo.solo.io.JwtValidation.LocalJwks + 165, // 61: enterprise.gloo.solo.io.IntrospectionValidation.client_secret_ref:type_name -> core.solo.io.ResourceRef + 168, // 62: enterprise.gloo.solo.io.IntrospectionValidation.disable_client_secret:type_name -> google.protobuf.BoolValue + 30, // 63: enterprise.gloo.solo.io.AccessTokenValidation.jwt:type_name -> enterprise.gloo.solo.io.JwtValidation + 31, // 64: enterprise.gloo.solo.io.AccessTokenValidation.introspection:type_name -> enterprise.gloo.solo.io.IntrospectionValidation + 166, // 65: enterprise.gloo.solo.io.AccessTokenValidation.cache_timeout:type_name -> google.protobuf.Duration + 97, // 66: enterprise.gloo.solo.io.AccessTokenValidation.required_scopes:type_name -> enterprise.gloo.solo.io.AccessTokenValidation.ScopeList + 95, // 67: enterprise.gloo.solo.io.AccessTokenValidation.dynamic_metadata_from_claims:type_name -> enterprise.gloo.solo.io.AccessTokenValidation.DynamicMetadataFromClaimsEntry + 26, // 68: enterprise.gloo.solo.io.AccessTokenValidation.claims_to_headers:type_name -> enterprise.gloo.solo.io.ClaimToHeader + 96, // 69: enterprise.gloo.solo.io.AccessTokenValidation.default:type_name -> enterprise.gloo.solo.io.AccessTokenValidation.Default + 27, // 70: enterprise.gloo.solo.io.AccessTokenValidation.azure:type_name -> enterprise.gloo.solo.io.Azure + 98, // 71: enterprise.gloo.solo.io.ApiKeyAuth.label_selector:type_name -> enterprise.gloo.solo.io.ApiKeyAuth.LabelSelectorEntry + 165, // 72: enterprise.gloo.solo.io.ApiKeyAuth.api_key_secret_refs:type_name -> core.solo.io.ResourceRef + 99, // 73: enterprise.gloo.solo.io.ApiKeyAuth.headers_from_metadata:type_name -> enterprise.gloo.solo.io.ApiKeyAuth.HeadersFromMetadataEntry + 100, // 74: enterprise.gloo.solo.io.ApiKeyAuth.headers_from_metadata_entry:type_name -> enterprise.gloo.solo.io.ApiKeyAuth.HeadersFromMetadataEntryEntry + 35, // 75: enterprise.gloo.solo.io.ApiKeyAuth.k8s_secret_apikey_storage:type_name -> enterprise.gloo.solo.io.K8sSecretApiKeyStorage + 36, // 76: enterprise.gloo.solo.io.ApiKeyAuth.aerospike_apikey_storage:type_name -> enterprise.gloo.solo.io.AerospikeApiKeyStorage + 103, // 77: enterprise.gloo.solo.io.K8sSecretApiKeyStorage.label_selector:type_name -> enterprise.gloo.solo.io.K8sSecretApiKeyStorage.LabelSelectorEntry + 165, // 78: enterprise.gloo.solo.io.K8sSecretApiKeyStorage.api_key_secret_refs:type_name -> core.solo.io.ResourceRef + 104, // 79: enterprise.gloo.solo.io.AerospikeApiKeyStorage.read_mode_sc:type_name -> enterprise.gloo.solo.io.AerospikeApiKeyStorage.readModeSc + 105, // 80: enterprise.gloo.solo.io.AerospikeApiKeyStorage.read_mode_ap:type_name -> enterprise.gloo.solo.io.AerospikeApiKeyStorage.readModeAp + 106, // 81: enterprise.gloo.solo.io.AerospikeApiKeyStorage.tls_curve_groups:type_name -> enterprise.gloo.solo.io.AerospikeApiKeyStorage.tlsCurveID + 107, // 82: enterprise.gloo.solo.io.AerospikeApiKeyStorage.label_selector:type_name -> enterprise.gloo.solo.io.AerospikeApiKeyStorage.LabelSelectorEntry + 108, // 83: enterprise.gloo.solo.io.ApiKey.metadata:type_name -> enterprise.gloo.solo.io.ApiKey.MetadataEntry + 109, // 84: enterprise.gloo.solo.io.ApiKeySecret.metadata:type_name -> enterprise.gloo.solo.io.ApiKeySecret.MetadataEntry + 165, // 85: enterprise.gloo.solo.io.OpaAuth.modules:type_name -> core.solo.io.ResourceRef + 41, // 86: enterprise.gloo.solo.io.OpaAuth.options:type_name -> enterprise.gloo.solo.io.OpaAuthOptions + 41, // 87: enterprise.gloo.solo.io.OpaServerAuth.options:type_name -> enterprise.gloo.solo.io.OpaAuthOptions + 110, // 88: enterprise.gloo.solo.io.Ldap.pool:type_name -> enterprise.gloo.solo.io.Ldap.ConnectionPool + 44, // 89: enterprise.gloo.solo.io.Ldap.group_lookup_settings:type_name -> enterprise.gloo.solo.io.LdapServiceAccount + 165, // 90: enterprise.gloo.solo.io.LdapServiceAccount.credentials_secret_ref:type_name -> core.solo.io.ResourceRef + 48, // 91: enterprise.gloo.solo.io.PassThroughAuth.grpc:type_name -> enterprise.gloo.solo.io.PassThroughGrpc + 50, // 92: enterprise.gloo.solo.io.PassThroughAuth.http:type_name -> enterprise.gloo.solo.io.PassThroughHttp + 167, // 93: enterprise.gloo.solo.io.PassThroughAuth.config:type_name -> google.protobuf.Struct + 166, // 94: enterprise.gloo.solo.io.BackoffStrategy.base_interval:type_name -> google.protobuf.Duration + 166, // 95: enterprise.gloo.solo.io.BackoffStrategy.max_interval:type_name -> google.protobuf.Duration + 170, // 96: enterprise.gloo.solo.io.RetryPolicy.num_retries:type_name -> google.protobuf.UInt32Value + 46, // 97: enterprise.gloo.solo.io.RetryPolicy.retry_back_off:type_name -> enterprise.gloo.solo.io.BackoffStrategy + 166, // 98: enterprise.gloo.solo.io.PassThroughGrpc.connection_timeout:type_name -> google.protobuf.Duration + 49, // 99: enterprise.gloo.solo.io.PassThroughGrpc.tlsConfig:type_name -> enterprise.gloo.solo.io.PassThroughGrpcTLSConfig + 47, // 100: enterprise.gloo.solo.io.PassThroughGrpc.retry_policy:type_name -> enterprise.gloo.solo.io.RetryPolicy + 111, // 101: enterprise.gloo.solo.io.PassThroughHttp.request:type_name -> enterprise.gloo.solo.io.PassThroughHttp.Request + 112, // 102: enterprise.gloo.solo.io.PassThroughHttp.response:type_name -> enterprise.gloo.solo.io.PassThroughHttp.Response + 166, // 103: enterprise.gloo.solo.io.PassThroughHttp.connection_timeout:type_name -> google.protobuf.Duration + 130, // 104: enterprise.gloo.solo.io.ExtAuthConfig.configs:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.Config + 164, // 105: enterprise.gloo.solo.io.ExtAuthConfig.boolean_expr:type_name -> google.protobuf.StringValue + 38, // 106: enterprise.gloo.solo.io.ApiKeyCreateRequest.api_keys:type_name -> enterprise.gloo.solo.io.ApiKey + 38, // 107: enterprise.gloo.solo.io.ApiKeyCreateResponse.api_keys:type_name -> enterprise.gloo.solo.io.ApiKey + 38, // 108: enterprise.gloo.solo.io.ApiKeyReadResponse.api_keys:type_name -> enterprise.gloo.solo.io.ApiKey + 38, // 109: enterprise.gloo.solo.io.ApiKeyUpdateRequest.api_keys:type_name -> enterprise.gloo.solo.io.ApiKey + 38, // 110: enterprise.gloo.solo.io.ApiKeyUpdateResponse.api_keys:type_name -> enterprise.gloo.solo.io.ApiKey + 4, // 111: enterprise.gloo.solo.io.AuthConfigStatus.state:type_name -> enterprise.gloo.solo.io.AuthConfigStatus.State + 162, // 112: enterprise.gloo.solo.io.AuthConfigStatus.subresource_statuses:type_name -> enterprise.gloo.solo.io.AuthConfigStatus.SubresourceStatusesEntry + 167, // 113: enterprise.gloo.solo.io.AuthConfigStatus.details:type_name -> google.protobuf.Struct + 163, // 114: enterprise.gloo.solo.io.AuthConfigNamespacedStatuses.statuses:type_name -> enterprise.gloo.solo.io.AuthConfigNamespacedStatuses.StatusesEntry + 164, // 115: enterprise.gloo.solo.io.AuthConfigSpec.Config.name:type_name -> google.protobuf.StringValue + 13, // 116: enterprise.gloo.solo.io.AuthConfigSpec.Config.basic_auth:type_name -> enterprise.gloo.solo.io.BasicAuth + 17, // 117: enterprise.gloo.solo.io.AuthConfigSpec.Config.oauth:type_name -> enterprise.gloo.solo.io.OAuth + 18, // 118: enterprise.gloo.solo.io.AuthConfigSpec.Config.oauth2:type_name -> enterprise.gloo.solo.io.OAuth2 + 34, // 119: enterprise.gloo.solo.io.AuthConfigSpec.Config.api_key_auth:type_name -> enterprise.gloo.solo.io.ApiKeyAuth + 12, // 120: enterprise.gloo.solo.io.AuthConfigSpec.Config.plugin_auth:type_name -> enterprise.gloo.solo.io.AuthPlugin + 40, // 121: enterprise.gloo.solo.io.AuthConfigSpec.Config.opa_auth:type_name -> enterprise.gloo.solo.io.OpaAuth + 43, // 122: enterprise.gloo.solo.io.AuthConfigSpec.Config.ldap:type_name -> enterprise.gloo.solo.io.Ldap + 169, // 123: enterprise.gloo.solo.io.AuthConfigSpec.Config.jwt:type_name -> google.protobuf.Empty + 45, // 124: enterprise.gloo.solo.io.AuthConfigSpec.Config.pass_through_auth:type_name -> enterprise.gloo.solo.io.PassThroughAuth + 14, // 125: enterprise.gloo.solo.io.AuthConfigSpec.Config.hmac_auth:type_name -> enterprise.gloo.solo.io.HmacAuth + 42, // 126: enterprise.gloo.solo.io.AuthConfigSpec.Config.opa_server_auth:type_name -> enterprise.gloo.solo.io.OpaServerAuth + 65, // 127: enterprise.gloo.solo.io.HttpService.Request.headers_to_add:type_name -> enterprise.gloo.solo.io.HttpService.Request.HeadersToAddEntry + 72, // 128: enterprise.gloo.solo.io.BasicAuth.Apr.users:type_name -> enterprise.gloo.solo.io.BasicAuth.Apr.UsersEntry + 74, // 129: enterprise.gloo.solo.io.BasicAuth.EncryptionType.apr:type_name -> enterprise.gloo.solo.io.BasicAuth.EncryptionType.Apr + 73, // 130: enterprise.gloo.solo.io.BasicAuth.EncryptionType.sha1:type_name -> enterprise.gloo.solo.io.BasicAuth.EncryptionType.Sha1 + 75, // 131: enterprise.gloo.solo.io.BasicAuth.UserList.users:type_name -> enterprise.gloo.solo.io.BasicAuth.UserList.UsersEntry + 71, // 132: enterprise.gloo.solo.io.BasicAuth.Apr.UsersEntry.value:type_name -> enterprise.gloo.solo.io.BasicAuth.Apr.SaltedHashedPassword + 69, // 133: enterprise.gloo.solo.io.BasicAuth.UserList.UsersEntry.value:type_name -> enterprise.gloo.solo.io.BasicAuth.User + 168, // 134: enterprise.gloo.solo.io.UserSession.InternalSession.allow_refreshing:type_name -> google.protobuf.BoolValue + 19, // 135: enterprise.gloo.solo.io.UserSession.RedisSession.options:type_name -> enterprise.gloo.solo.io.RedisOptions + 168, // 136: enterprise.gloo.solo.io.UserSession.RedisSession.allow_refreshing:type_name -> google.protobuf.BoolValue + 166, // 137: enterprise.gloo.solo.io.UserSession.RedisSession.pre_expiry_buffer:type_name -> google.protobuf.Duration + 170, // 138: enterprise.gloo.solo.io.UserSession.CookieOptions.max_age:type_name -> google.protobuf.UInt32Value + 168, // 139: enterprise.gloo.solo.io.UserSession.CookieOptions.http_only:type_name -> google.protobuf.BoolValue + 164, // 140: enterprise.gloo.solo.io.UserSession.CookieOptions.path:type_name -> google.protobuf.StringValue + 2, // 141: enterprise.gloo.solo.io.UserSession.CookieOptions.same_site:type_name -> enterprise.gloo.solo.io.UserSession.CookieOptions.SameSite + 165, // 142: enterprise.gloo.solo.io.UserSession.CipherConfig.key_ref:type_name -> core.solo.io.ResourceRef + 26, // 143: enterprise.gloo.solo.io.OidcAuthorizationCode.AccessToken.claims_to_headers:type_name -> enterprise.gloo.solo.io.ClaimToHeader + 26, // 144: enterprise.gloo.solo.io.OidcAuthorizationCode.IdentityToken.claims_to_headers:type_name -> enterprise.gloo.solo.io.ClaimToHeader + 89, // 145: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.client_secret:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.ClientSecret + 90, // 146: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.private_key_jwt:type_name -> enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.PrivateKeyJwt + 165, // 147: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.ClientSecret.client_secret_ref:type_name -> core.solo.io.ResourceRef + 168, // 148: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.ClientSecret.disable_client_secret:type_name -> google.protobuf.BoolValue + 165, // 149: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.PrivateKeyJwt.signing_key_ref:type_name -> core.solo.io.ResourceRef + 166, // 150: enterprise.gloo.solo.io.OidcAuthorizationCode.ClientAuthentication.PrivateKeyJwt.valid_for:type_name -> google.protobuf.Duration + 166, // 151: enterprise.gloo.solo.io.JwtValidation.RemoteJwks.refresh_interval:type_name -> google.protobuf.Duration + 101, // 152: enterprise.gloo.solo.io.ApiKeyAuth.HeadersFromMetadataEntry.value:type_name -> enterprise.gloo.solo.io.ApiKeyAuth.SecretKey + 102, // 153: enterprise.gloo.solo.io.ApiKeyAuth.HeadersFromMetadataEntryEntry.value:type_name -> enterprise.gloo.solo.io.ApiKeyAuth.MetadataEntry + 170, // 154: enterprise.gloo.solo.io.Ldap.ConnectionPool.maxSize:type_name -> google.protobuf.UInt32Value + 170, // 155: enterprise.gloo.solo.io.Ldap.ConnectionPool.initialSize:type_name -> google.protobuf.UInt32Value + 113, // 156: enterprise.gloo.solo.io.PassThroughHttp.Request.headers_to_add:type_name -> enterprise.gloo.solo.io.PassThroughHttp.Request.HeadersToAddEntry + 19, // 157: enterprise.gloo.solo.io.ExtAuthConfig.Azure.claims_caching_options:type_name -> enterprise.gloo.solo.io.RedisOptions + 131, // 158: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.encryption:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.EncryptionType + 133, // 159: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.user_list:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.UserList + 137, // 160: enterprise.gloo.solo.io.ExtAuthConfig.OAuthConfig.auth_endpoint_query_params:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OAuthConfig.AuthEndpointQueryParamsEntry + 79, // 161: enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig.cookie_options:type_name -> enterprise.gloo.solo.io.UserSession.CookieOptions + 77, // 162: enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig.cookie:type_name -> enterprise.gloo.solo.io.UserSession.InternalSession + 78, // 163: enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig.redis:type_name -> enterprise.gloo.solo.io.UserSession.RedisSession + 138, // 164: enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig.cipher_config:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig.CipherConfig + 139, // 165: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.auth_endpoint_query_params:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.AuthEndpointQueryParamsEntry + 140, // 166: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.token_endpoint_query_params:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.TokenEndpointQueryParamsEntry + 20, // 167: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.session:type_name -> enterprise.gloo.solo.io.UserSession + 21, // 168: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.headers:type_name -> enterprise.gloo.solo.io.HeaderConfiguration + 22, // 169: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.discovery_override:type_name -> enterprise.gloo.solo.io.DiscoveryOverride + 166, // 170: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.discovery_poll_interval:type_name -> google.protobuf.Duration + 23, // 171: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.jwks_cache_refresh_policy:type_name -> enterprise.gloo.solo.io.JwksOnDemandCacheRefreshPolicy + 24, // 172: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.auto_map_from_metadata:type_name -> enterprise.gloo.solo.io.AutoMapFromMetadata + 25, // 173: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.end_session_properties:type_name -> enterprise.gloo.solo.io.EndSessionProperties + 118, // 174: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.user_session:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig + 141, // 175: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.pk_jwt_client_authentication_config:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.PkJwtClientAuthenticationConfig + 142, // 176: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.access_token:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.AccessToken + 143, // 177: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.identity_token:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.IdentityToken + 144, // 178: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.default:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.Default + 114, // 179: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.azure:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.Azure + 145, // 180: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.front_channel_logout:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.FrontChannelLogout + 146, // 181: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.dynamic_metadata_from_claims:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.DynamicMetadataFromClaimsEntry + 147, // 182: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.jwt:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation + 148, // 183: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.introspection:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.IntrospectionValidation + 166, // 184: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.cache_timeout:type_name -> google.protobuf.Duration + 149, // 185: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.required_scopes:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.ScopeList + 150, // 186: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.dynamic_metadata_from_claims:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.DynamicMetadataFromClaimsEntry + 115, // 187: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.claims_to_headers:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.ClaimToHeader + 151, // 188: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.default:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.Default + 114, // 189: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.azure:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.Azure + 154, // 190: enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config.auth_endpoint_query_params:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config.AuthEndpointQueryParamsEntry + 20, // 191: enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config.session:type_name -> enterprise.gloo.solo.io.UserSession + 155, // 192: enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config.token_endpoint_query_params:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config.TokenEndpointQueryParamsEntry + 118, // 193: enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config.user_session:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.UserSessionConfig + 119, // 194: enterprise.gloo.solo.io.ExtAuthConfig.OAuth2Config.oidc_authorization_code:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig + 120, // 195: enterprise.gloo.solo.io.ExtAuthConfig.OAuth2Config.access_token_validation_config:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig + 121, // 196: enterprise.gloo.solo.io.ExtAuthConfig.OAuth2Config.oauth2_config:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.PlainOAuth2Config + 157, // 197: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.valid_api_keys:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.ValidApiKeysEntry + 158, // 198: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.headers_from_key_metadata:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.HeadersFromKeyMetadataEntry + 35, // 199: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.k8s_secret_apikey_storage:type_name -> enterprise.gloo.solo.io.K8sSecretApiKeyStorage + 36, // 200: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.aerospike_apikey_storage:type_name -> enterprise.gloo.solo.io.AerospikeApiKeyStorage + 37, // 201: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.server_default_apikey_storage:type_name -> enterprise.gloo.solo.io.ServerDefaultApiKeyStorage + 160, // 202: enterprise.gloo.solo.io.ExtAuthConfig.OpaAuthConfig.modules:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OpaAuthConfig.ModulesEntry + 41, // 203: enterprise.gloo.solo.io.ExtAuthConfig.OpaAuthConfig.options:type_name -> enterprise.gloo.solo.io.OpaAuthOptions + 41, // 204: enterprise.gloo.solo.io.ExtAuthConfig.OpaServerAuthConfig.options:type_name -> enterprise.gloo.solo.io.OpaAuthOptions + 110, // 205: enterprise.gloo.solo.io.ExtAuthConfig.LdapConfig.pool:type_name -> enterprise.gloo.solo.io.Ldap.ConnectionPool + 127, // 206: enterprise.gloo.solo.io.ExtAuthConfig.LdapConfig.group_lookup_settings:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.LdapServiceAccountConfig + 129, // 207: enterprise.gloo.solo.io.ExtAuthConfig.HmacAuthConfig.secret_list:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.InMemorySecretList + 16, // 208: enterprise.gloo.solo.io.ExtAuthConfig.HmacAuthConfig.parameters_in_headers:type_name -> enterprise.gloo.solo.io.HmacParametersInHeaders + 161, // 209: enterprise.gloo.solo.io.ExtAuthConfig.InMemorySecretList.secret_list:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.InMemorySecretList.SecretListEntry + 164, // 210: enterprise.gloo.solo.io.ExtAuthConfig.Config.name:type_name -> google.protobuf.StringValue + 117, // 211: enterprise.gloo.solo.io.ExtAuthConfig.Config.oauth:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OAuthConfig + 122, // 212: enterprise.gloo.solo.io.ExtAuthConfig.Config.oauth2:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OAuth2Config + 13, // 213: enterprise.gloo.solo.io.ExtAuthConfig.Config.basic_auth:type_name -> enterprise.gloo.solo.io.BasicAuth + 116, // 214: enterprise.gloo.solo.io.ExtAuthConfig.Config.basic_auth_internal:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal + 123, // 215: enterprise.gloo.solo.io.ExtAuthConfig.Config.api_key_auth:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig + 12, // 216: enterprise.gloo.solo.io.ExtAuthConfig.Config.plugin_auth:type_name -> enterprise.gloo.solo.io.AuthPlugin + 124, // 217: enterprise.gloo.solo.io.ExtAuthConfig.Config.opa_auth:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OpaAuthConfig + 43, // 218: enterprise.gloo.solo.io.ExtAuthConfig.Config.ldap:type_name -> enterprise.gloo.solo.io.Ldap + 126, // 219: enterprise.gloo.solo.io.ExtAuthConfig.Config.ldap_internal:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.LdapConfig + 169, // 220: enterprise.gloo.solo.io.ExtAuthConfig.Config.jwt:type_name -> google.protobuf.Empty + 45, // 221: enterprise.gloo.solo.io.ExtAuthConfig.Config.pass_through_auth:type_name -> enterprise.gloo.solo.io.PassThroughAuth + 128, // 222: enterprise.gloo.solo.io.ExtAuthConfig.Config.hmac_auth:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.HmacAuthConfig + 125, // 223: enterprise.gloo.solo.io.ExtAuthConfig.Config.opa_server_auth:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.OpaServerAuthConfig + 135, // 224: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.EncryptionType.apr:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.EncryptionType.Apr + 134, // 225: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.EncryptionType.sha1:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.EncryptionType.Sha1 + 136, // 226: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.UserList.users:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.UserList.UsersEntry + 132, // 227: enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.UserList.UsersEntry.value:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.BasicAuthInternal.User + 166, // 228: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.PkJwtClientAuthenticationConfig.valid_for:type_name -> google.protobuf.Duration + 115, // 229: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.AccessToken.claims_to_headers:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.ClaimToHeader + 115, // 230: enterprise.gloo.solo.io.ExtAuthConfig.OidcAuthorizationCodeConfig.IdentityToken.claims_to_headers:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.ClaimToHeader + 152, // 231: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation.remote_jwks:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation.RemoteJwks + 153, // 232: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation.local_jwks:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation.LocalJwks + 166, // 233: enterprise.gloo.solo.io.ExtAuthConfig.AccessTokenValidationConfig.JwtValidation.RemoteJwks.refresh_interval:type_name -> google.protobuf.Duration + 159, // 234: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.KeyMetadata.metadata:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.KeyMetadata.MetadataEntry + 156, // 235: enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.ValidApiKeysEntry.value:type_name -> enterprise.gloo.solo.io.ExtAuthConfig.ApiKeyAuthConfig.KeyMetadata + 60, // 236: enterprise.gloo.solo.io.AuthConfigStatus.SubresourceStatusesEntry.value:type_name -> enterprise.gloo.solo.io.AuthConfigStatus + 60, // 237: enterprise.gloo.solo.io.AuthConfigNamespacedStatuses.StatusesEntry.value:type_name -> enterprise.gloo.solo.io.AuthConfigStatus + 171, // 238: enterprise.gloo.solo.io.ExtAuthDiscoveryService.StreamExtAuthConfig:input_type -> envoy.api.v2.DiscoveryRequest + 172, // 239: enterprise.gloo.solo.io.ExtAuthDiscoveryService.DeltaExtAuthConfig:input_type -> envoy.api.v2.DeltaDiscoveryRequest + 171, // 240: enterprise.gloo.solo.io.ExtAuthDiscoveryService.FetchExtAuthConfig:input_type -> envoy.api.v2.DiscoveryRequest + 52, // 241: enterprise.gloo.solo.io.ApiKeyService.Create:input_type -> enterprise.gloo.solo.io.ApiKeyCreateRequest + 54, // 242: enterprise.gloo.solo.io.ApiKeyService.Read:input_type -> enterprise.gloo.solo.io.ApiKeyReadRequest + 56, // 243: enterprise.gloo.solo.io.ApiKeyService.Update:input_type -> enterprise.gloo.solo.io.ApiKeyUpdateRequest + 58, // 244: enterprise.gloo.solo.io.ApiKeyService.Delete:input_type -> enterprise.gloo.solo.io.ApiKeyDeleteRequest + 173, // 245: enterprise.gloo.solo.io.ExtAuthDiscoveryService.StreamExtAuthConfig:output_type -> envoy.api.v2.DiscoveryResponse + 174, // 246: enterprise.gloo.solo.io.ExtAuthDiscoveryService.DeltaExtAuthConfig:output_type -> envoy.api.v2.DeltaDiscoveryResponse + 173, // 247: enterprise.gloo.solo.io.ExtAuthDiscoveryService.FetchExtAuthConfig:output_type -> envoy.api.v2.DiscoveryResponse + 53, // 248: enterprise.gloo.solo.io.ApiKeyService.Create:output_type -> enterprise.gloo.solo.io.ApiKeyCreateResponse + 55, // 249: enterprise.gloo.solo.io.ApiKeyService.Read:output_type -> enterprise.gloo.solo.io.ApiKeyReadResponse + 57, // 250: enterprise.gloo.solo.io.ApiKeyService.Update:output_type -> enterprise.gloo.solo.io.ApiKeyUpdateResponse + 59, // 251: enterprise.gloo.solo.io.ApiKeyService.Delete:output_type -> enterprise.gloo.solo.io.ApiKeyDeleteResponse + 245, // [245:252] is the sub-list for method output_type + 238, // [238:245] is the sub-list for method input_type + 238, // [238:238] is the sub-list for extension type_name + 238, // [238:238] is the sub-list for extension extendee + 0, // [0:238] is the sub-list for field type_name } func init() { file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_init() } @@ -13789,7 +14143,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OidcAuthorizationCode); i { + switch v := v.(*Azure); i { case 0: return &v.state case 1: @@ -13801,7 +14155,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PlainOAuth2); i { + switch v := v.(*OidcAuthorizationCode); i { case 0: return &v.state case 1: @@ -13813,7 +14167,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JwtValidation); i { + switch v := v.(*PlainOAuth2); i { case 0: return &v.state case 1: @@ -13825,7 +14179,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IntrospectionValidation); i { + switch v := v.(*JwtValidation); i { case 0: return &v.state case 1: @@ -13837,7 +14191,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccessTokenValidation); i { + switch v := v.(*IntrospectionValidation); i { case 0: return &v.state case 1: @@ -13849,7 +14203,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OauthSecret); i { + switch v := v.(*AccessTokenValidation); i { case 0: return &v.state case 1: @@ -13861,7 +14215,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiKeyAuth); i { + switch v := v.(*OauthSecret); i { case 0: return &v.state case 1: @@ -13873,7 +14227,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*K8SSecretApiKeyStorage); i { + switch v := v.(*ApiKeyAuth); i { case 0: return &v.state case 1: @@ -13885,7 +14239,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AerospikeApiKeyStorage); i { + switch v := v.(*K8SSecretApiKeyStorage); i { case 0: return &v.state case 1: @@ -13897,7 +14251,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiKey); i { + switch v := v.(*AerospikeApiKeyStorage); i { case 0: return &v.state case 1: @@ -13909,7 +14263,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiKeySecret); i { + switch v := v.(*ServerDefaultApiKeyStorage); i { case 0: return &v.state case 1: @@ -13921,7 +14275,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OpaAuth); i { + switch v := v.(*ApiKey); i { case 0: return &v.state case 1: @@ -13933,7 +14287,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OpaAuthOptions); i { + switch v := v.(*ApiKeySecret); i { case 0: return &v.state case 1: @@ -13945,7 +14299,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OpaServerAuth); i { + switch v := v.(*OpaAuth); i { case 0: return &v.state case 1: @@ -13957,7 +14311,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Ldap); i { + switch v := v.(*OpaAuthOptions); i { case 0: return &v.state case 1: @@ -13969,7 +14323,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LdapServiceAccount); i { + switch v := v.(*OpaServerAuth); i { case 0: return &v.state case 1: @@ -13981,7 +14335,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PassThroughAuth); i { + switch v := v.(*Ldap); i { case 0: return &v.state case 1: @@ -13993,7 +14347,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BackoffStrategy); i { + switch v := v.(*LdapServiceAccount); i { case 0: return &v.state case 1: @@ -14005,7 +14359,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RetryPolicy); i { + switch v := v.(*PassThroughAuth); i { case 0: return &v.state case 1: @@ -14017,7 +14371,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PassThroughGrpc); i { + switch v := v.(*BackoffStrategy); i { case 0: return &v.state case 1: @@ -14029,7 +14383,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PassThroughGrpcTLSConfig); i { + switch v := v.(*RetryPolicy); i { case 0: return &v.state case 1: @@ -14041,7 +14395,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PassThroughHttp); i { + switch v := v.(*PassThroughGrpc); i { case 0: return &v.state case 1: @@ -14053,7 +14407,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExtAuthConfig); i { + switch v := v.(*PassThroughGrpcTLSConfig); i { case 0: return &v.state case 1: @@ -14065,7 +14419,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiKeyCreateRequest); i { + switch v := v.(*PassThroughHttp); i { case 0: return &v.state case 1: @@ -14077,7 +14431,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiKeyCreateResponse); i { + switch v := v.(*ExtAuthConfig); i { case 0: return &v.state case 1: @@ -14089,7 +14443,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiKeyReadRequest); i { + switch v := v.(*ApiKeyCreateRequest); i { case 0: return &v.state case 1: @@ -14101,7 +14455,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiKeyReadResponse); i { + switch v := v.(*ApiKeyCreateResponse); i { case 0: return &v.state case 1: @@ -14113,7 +14467,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiKeyUpdateRequest); i { + switch v := v.(*ApiKeyReadRequest); i { case 0: return &v.state case 1: @@ -14125,7 +14479,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiKeyUpdateResponse); i { + switch v := v.(*ApiKeyReadResponse); i { case 0: return &v.state case 1: @@ -14137,7 +14491,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiKeyDeleteRequest); i { + switch v := v.(*ApiKeyUpdateRequest); i { case 0: return &v.state case 1: @@ -14149,7 +14503,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiKeyDeleteResponse); i { + switch v := v.(*ApiKeyUpdateResponse); i { case 0: return &v.state case 1: @@ -14161,7 +14515,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AuthConfigStatus); i { + switch v := v.(*ApiKeyDeleteRequest); i { case 0: return &v.state case 1: @@ -14173,7 +14527,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AuthConfigNamespacedStatuses); i { + switch v := v.(*ApiKeyDeleteResponse); i { case 0: return &v.state case 1: @@ -14185,7 +14539,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AuthConfigSpec_Config); i { + switch v := v.(*AuthConfigStatus); i { case 0: return &v.state case 1: @@ -14197,7 +14551,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HttpService_Request); i { + switch v := v.(*AuthConfigNamespacedStatuses); i { case 0: return &v.state case 1: @@ -14209,6 +14563,30 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p } } file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuthConfigSpec_Config); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HttpService_Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HttpService_Response); i { case 0: return &v.state @@ -14220,7 +14598,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BasicAuth_Apr); i { case 0: return &v.state @@ -14232,7 +14610,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BasicAuth_EncryptionType); i { case 0: return &v.state @@ -14244,7 +14622,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BasicAuth_User); i { case 0: return &v.state @@ -14256,7 +14634,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BasicAuth_UserList); i { case 0: return &v.state @@ -14268,7 +14646,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BasicAuth_Apr_SaltedHashedPassword); i { case 0: return &v.state @@ -14280,7 +14658,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BasicAuth_EncryptionType_Sha1); i { case 0: return &v.state @@ -14292,7 +14670,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BasicAuth_EncryptionType_Apr); i { case 0: return &v.state @@ -14304,7 +14682,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserSession_InternalSession); i { case 0: return &v.state @@ -14316,7 +14694,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserSession_RedisSession); i { case 0: return &v.state @@ -14328,7 +14706,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserSession_CookieOptions); i { case 0: return &v.state @@ -14340,7 +14718,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserSession_CipherConfig); i { case 0: return &v.state @@ -14352,7 +14730,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OidcAuthorizationCode_AccessToken); i { case 0: return &v.state @@ -14364,7 +14742,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OidcAuthorizationCode_IdentityToken); i { case 0: return &v.state @@ -14376,7 +14754,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OidcAuthorizationCode_ClientAuthentication); i { case 0: return &v.state @@ -14388,7 +14766,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OidcAuthorizationCode_Default); i { case 0: return &v.state @@ -14400,8 +14778,8 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OidcAuthorizationCode_Azure); i { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OidcAuthorizationCode_FrontChannelLogout); i { case 0: return &v.state case 1: @@ -14412,8 +14790,8 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OidcAuthorizationCode_FrontChannelLogout); i { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OidcAuthorizationCode_ClientAuthentication_ClientSecret); i { case 0: return &v.state case 1: @@ -14424,8 +14802,8 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OidcAuthorizationCode_ClientAuthentication_ClientSecret); i { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OidcAuthorizationCode_ClientAuthentication_PrivateKeyJwt); i { case 0: return &v.state case 1: @@ -14436,8 +14814,8 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OidcAuthorizationCode_ClientAuthentication_PrivateKeyJwt); i { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JwtValidation_RemoteJwks); i { case 0: return &v.state case 1: @@ -14448,8 +14826,8 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JwtValidation_RemoteJwks); i { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JwtValidation_LocalJwks); i { case 0: return &v.state case 1: @@ -14460,8 +14838,8 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JwtValidation_LocalJwks); i { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccessTokenValidation_Default); i { case 0: return &v.state case 1: @@ -14472,7 +14850,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccessTokenValidation_ScopeList); i { case 0: return &v.state @@ -14484,7 +14862,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApiKeyAuth_SecretKey); i { case 0: return &v.state @@ -14496,7 +14874,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApiKeyAuth_MetadataEntry); i { case 0: return &v.state @@ -14508,7 +14886,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AerospikeApiKeyStorageReadModeSc); i { case 0: return &v.state @@ -14520,7 +14898,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AerospikeApiKeyStorageReadModeAp); i { case 0: return &v.state @@ -14532,7 +14910,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AerospikeApiKeyStorageTlsCurveID); i { case 0: return &v.state @@ -14544,7 +14922,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ldap_ConnectionPool); i { case 0: return &v.state @@ -14556,7 +14934,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PassThroughHttp_Request); i { case 0: return &v.state @@ -14568,7 +14946,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PassThroughHttp_Response); i { case 0: return &v.state @@ -14580,7 +14958,31 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExtAuthConfig_Azure); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExtAuthConfig_ClaimToHeader); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_BasicAuthInternal); i { case 0: return &v.state @@ -14592,7 +14994,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_OAuthConfig); i { case 0: return &v.state @@ -14604,7 +15006,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_UserSessionConfig); i { case 0: return &v.state @@ -14616,7 +15018,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_OidcAuthorizationCodeConfig); i { case 0: return &v.state @@ -14628,7 +15030,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_AccessTokenValidationConfig); i { case 0: return &v.state @@ -14640,7 +15042,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_PlainOAuth2Config); i { case 0: return &v.state @@ -14652,7 +15054,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_OAuth2Config); i { case 0: return &v.state @@ -14664,7 +15066,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_ApiKeyAuthConfig); i { case 0: return &v.state @@ -14676,7 +15078,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_OpaAuthConfig); i { case 0: return &v.state @@ -14688,7 +15090,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_OpaServerAuthConfig); i { case 0: return &v.state @@ -14700,7 +15102,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_LdapConfig); i { case 0: return &v.state @@ -14712,7 +15114,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_LdapServiceAccountConfig); i { case 0: return &v.state @@ -14724,7 +15126,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_HmacAuthConfig); i { case 0: return &v.state @@ -14736,7 +15138,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_InMemorySecretList); i { case 0: return &v.state @@ -14748,7 +15150,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_Config); i { case 0: return &v.state @@ -14760,7 +15162,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_BasicAuthInternal_EncryptionType); i { case 0: return &v.state @@ -14772,7 +15174,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_BasicAuthInternal_User); i { case 0: return &v.state @@ -14784,7 +15186,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_BasicAuthInternal_UserList); i { case 0: return &v.state @@ -14796,7 +15198,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_BasicAuthInternal_EncryptionType_Sha1); i { case 0: return &v.state @@ -14808,7 +15210,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_BasicAuthInternal_EncryptionType_Apr); i { case 0: return &v.state @@ -14820,7 +15222,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_UserSessionConfig_CipherConfig); i { case 0: return &v.state @@ -14832,7 +15234,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConfig); i { case 0: return &v.state @@ -14844,19 +15246,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken); i { case 0: return &v.state @@ -14868,7 +15258,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_OidcAuthorizationCodeConfig_IdentityToken); i { case 0: return &v.state @@ -14880,7 +15270,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_OidcAuthorizationCodeConfig_Default); i { case 0: return &v.state @@ -14892,8 +15282,8 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExtAuthConfig_OidcAuthorizationCodeConfig_Azure); i { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout); i { case 0: return &v.state case 1: @@ -14904,8 +15294,8 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout); i { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation); i { case 0: return &v.state case 1: @@ -14916,8 +15306,8 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation); i { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExtAuthConfig_AccessTokenValidationConfig_IntrospectionValidation); i { case 0: return &v.state case 1: @@ -14928,8 +15318,8 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExtAuthConfig_AccessTokenValidationConfig_IntrospectionValidation); i { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExtAuthConfig_AccessTokenValidationConfig_ScopeList); i { case 0: return &v.state case 1: @@ -14940,8 +15330,8 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExtAuthConfig_AccessTokenValidationConfig_ScopeList); i { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExtAuthConfig_AccessTokenValidationConfig_Default); i { case 0: return &v.state case 1: @@ -14952,7 +15342,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks); i { case 0: return &v.state @@ -14964,7 +15354,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_LocalJwks); i { case 0: return &v.state @@ -14976,7 +15366,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p return nil } } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtAuthConfig_ApiKeyAuthConfig_KeyMetadata); i { case 0: return &v.state @@ -15019,36 +15409,38 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p (*JwksOnDemandCacheRefreshPolicy_Always)(nil), (*JwksOnDemandCacheRefreshPolicy_MaxIdpReqPerPollingInterval)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[22].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[23].OneofWrappers = []interface{}{ (*OidcAuthorizationCode_Default_)(nil), - (*OidcAuthorizationCode_Azure_)(nil), + (*OidcAuthorizationCode_Azure)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[24].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[25].OneofWrappers = []interface{}{ (*JwtValidation_RemoteJwks_)(nil), (*JwtValidation_LocalJwks_)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[26].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[27].OneofWrappers = []interface{}{ (*AccessTokenValidation_IntrospectionUrl)(nil), (*AccessTokenValidation_Jwt)(nil), (*AccessTokenValidation_Introspection)(nil), (*AccessTokenValidation_RequiredScopes)(nil), + (*AccessTokenValidation_Default_)(nil), + (*AccessTokenValidation_Azure)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[28].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[29].OneofWrappers = []interface{}{ (*ApiKeyAuth_K8SSecretApikeyStorage)(nil), (*ApiKeyAuth_AerospikeApikeyStorage)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[30].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[31].OneofWrappers = []interface{}{ (*AerospikeApiKeyStorage_CommitAll)(nil), (*AerospikeApiKeyStorage_CommitMaster)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[38].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[40].OneofWrappers = []interface{}{ (*PassThroughAuth_Grpc)(nil), (*PassThroughAuth_Http)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[40].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[42].OneofWrappers = []interface{}{ (*RetryPolicy_RetryBackOff)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[55].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[57].OneofWrappers = []interface{}{ (*AuthConfigSpec_Config_BasicAuth)(nil), (*AuthConfigSpec_Config_Oauth)(nil), (*AuthConfigSpec_Config_Oauth2)(nil), @@ -15061,64 +15453,67 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p (*AuthConfigSpec_Config_HmacAuth)(nil), (*AuthConfigSpec_Config_OpaServerAuth)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[61].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[63].OneofWrappers = []interface{}{ (*BasicAuth_EncryptionType_Apr_)(nil), (*BasicAuth_EncryptionType_Sha1_)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[73].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[75].OneofWrappers = []interface{}{ (*UserSession_CipherConfig_KeyRef)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[79].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[81].OneofWrappers = []interface{}{ (*OidcAuthorizationCode_ClientAuthentication_ClientSecret_)(nil), (*OidcAuthorizationCode_ClientAuthentication_PrivateKeyJwt_)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[97].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[99].OneofWrappers = []interface{}{ (*AerospikeApiKeyStorageReadModeSc_ReadModeScSession)(nil), (*AerospikeApiKeyStorageReadModeSc_ReadModeScLinearize)(nil), (*AerospikeApiKeyStorageReadModeSc_ReadModeScReplica)(nil), (*AerospikeApiKeyStorageReadModeSc_ReadModeScAllowUnavailable)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[98].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[100].OneofWrappers = []interface{}{ (*AerospikeApiKeyStorageReadModeAp_ReadModeApOne)(nil), (*AerospikeApiKeyStorageReadModeAp_ReadModeApAll)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[99].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[101].OneofWrappers = []interface{}{ (*AerospikeApiKeyStorageTlsCurveID_CurveP256)(nil), (*AerospikeApiKeyStorageTlsCurveID_CurveP384)(nil), (*AerospikeApiKeyStorageTlsCurveID_CurveP521)(nil), (*AerospikeApiKeyStorageTlsCurveID_X_25519)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[107].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[111].OneofWrappers = []interface{}{ (*ExtAuthConfig_BasicAuthInternal_UserList_)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[109].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[113].OneofWrappers = []interface{}{ (*ExtAuthConfig_UserSessionConfig_Cookie)(nil), (*ExtAuthConfig_UserSessionConfig_Redis)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[110].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[114].OneofWrappers = []interface{}{ (*ExtAuthConfig_OidcAuthorizationCodeConfig_Default_)(nil), - (*ExtAuthConfig_OidcAuthorizationCodeConfig_Azure_)(nil), + (*ExtAuthConfig_OidcAuthorizationCodeConfig_Azure)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[111].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[115].OneofWrappers = []interface{}{ (*ExtAuthConfig_AccessTokenValidationConfig_IntrospectionUrl)(nil), (*ExtAuthConfig_AccessTokenValidationConfig_Jwt)(nil), (*ExtAuthConfig_AccessTokenValidationConfig_Introspection)(nil), (*ExtAuthConfig_AccessTokenValidationConfig_RequiredScopes)(nil), + (*ExtAuthConfig_AccessTokenValidationConfig_Default_)(nil), + (*ExtAuthConfig_AccessTokenValidationConfig_Azure)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[113].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[117].OneofWrappers = []interface{}{ (*ExtAuthConfig_OAuth2Config_OidcAuthorizationCode)(nil), (*ExtAuthConfig_OAuth2Config_AccessTokenValidationConfig)(nil), (*ExtAuthConfig_OAuth2Config_Oauth2Config)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[114].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[118].OneofWrappers = []interface{}{ (*ExtAuthConfig_ApiKeyAuthConfig_K8SSecretApikeyStorage)(nil), (*ExtAuthConfig_ApiKeyAuthConfig_AerospikeApikeyStorage)(nil), + (*ExtAuthConfig_ApiKeyAuthConfig_ServerDefaultApikeyStorage)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[119].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[123].OneofWrappers = []interface{}{ (*ExtAuthConfig_HmacAuthConfig_SecretList)(nil), (*ExtAuthConfig_HmacAuthConfig_ParametersInHeaders)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[121].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[125].OneofWrappers = []interface{}{ (*ExtAuthConfig_Config_Oauth)(nil), (*ExtAuthConfig_Config_Oauth2)(nil), (*ExtAuthConfig_Config_BasicAuth)(nil), @@ -15133,11 +15528,11 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p (*ExtAuthConfig_Config_HmacAuth)(nil), (*ExtAuthConfig_Config_OpaServerAuth)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[122].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[126].OneofWrappers = []interface{}{ (*ExtAuthConfig_BasicAuthInternal_EncryptionType_Apr_)(nil), (*ExtAuthConfig_BasicAuthInternal_EncryptionType_Sha1_)(nil), } - file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[139].OneofWrappers = []interface{}{ + file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_msgTypes[142].OneofWrappers = []interface{}{ (*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks_)(nil), (*ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_LocalJwks_)(nil), } @@ -15147,7 +15542,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_p GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_github_com_solo_io_solo_apis_api_gloo_enterprise_gloo_v1_auth_config_proto_rawDesc, NumEnums: 5, - NumMessages: 154, + NumMessages: 159, NumExtensions: 0, NumServices: 2, }, diff --git a/pkg/api/enterprise.gloo.solo.io/v1/auth_config.pb.hash.go b/pkg/api/enterprise.gloo.solo.io/v1/auth_config.pb.hash.go index e843ee3a..c9887cb7 100644 --- a/pkg/api/enterprise.gloo.solo.io/v1/auth_config.pb.hash.go +++ b/pkg/api/enterprise.gloo.solo.io/v1/auth_config.pb.hash.go @@ -1311,6 +1311,70 @@ func (m *ClaimToHeader) Hash(hasher hash.Hash64) (uint64, error) { return hasher.Sum64(), nil } +// Hash function +func (m *Azure) Hash(hasher hash.Hash64) (uint64, error) { + if m == nil { + return 0, nil + } + if hasher == nil { + hasher = fnv.New64() + } + var err error + if _, err = hasher.Write([]byte("enterprise.gloo.solo.io.github.com/solo-io/solo-apis/pkg/api/enterprise.gloo.solo.io/v1.Azure")); err != nil { + return 0, err + } + + if _, err = hasher.Write([]byte(m.GetClientId())); err != nil { + return 0, err + } + + if _, err = hasher.Write([]byte(m.GetTenantId())); err != nil { + return 0, err + } + + if h, ok := interface{}(m.GetClientSecret()).(safe_hasher.SafeHasher); ok { + if _, err = hasher.Write([]byte("ClientSecret")); err != nil { + return 0, err + } + if _, err = h.Hash(hasher); err != nil { + return 0, err + } + } else { + if fieldValue, err := hashstructure.Hash(m.GetClientSecret(), nil); err != nil { + return 0, err + } else { + if _, err = hasher.Write([]byte("ClientSecret")); err != nil { + return 0, err + } + if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil { + return 0, err + } + } + } + + if h, ok := interface{}(m.GetClaimsCachingOptions()).(safe_hasher.SafeHasher); ok { + if _, err = hasher.Write([]byte("ClaimsCachingOptions")); err != nil { + return 0, err + } + if _, err = h.Hash(hasher); err != nil { + return 0, err + } + } else { + if fieldValue, err := hashstructure.Hash(m.GetClaimsCachingOptions(), nil); err != nil { + return 0, err + } else { + if _, err = hasher.Write([]byte("ClaimsCachingOptions")); err != nil { + return 0, err + } + if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil { + return 0, err + } + } + } + + return hasher.Sum64(), nil +} + // Hash function func (m *OidcAuthorizationCode) Hash(hasher hash.Hash64) (uint64, error) { if m == nil { @@ -1718,7 +1782,7 @@ func (m *OidcAuthorizationCode) Hash(hasher hash.Hash64) (uint64, error) { } } - case *OidcAuthorizationCode_Azure_: + case *OidcAuthorizationCode_Azure: if h, ok := interface{}(m.GetAzure()).(safe_hasher.SafeHasher); ok { if _, err = hasher.Write([]byte("Azure")); err != nil { @@ -2103,6 +2167,30 @@ func (m *AccessTokenValidation) Hash(hasher hash.Hash64) (uint64, error) { } + for _, v := range m.GetClaimsToHeaders() { + + if h, ok := interface{}(v).(safe_hasher.SafeHasher); ok { + if _, err = hasher.Write([]byte("")); err != nil { + return 0, err + } + if _, err = h.Hash(hasher); err != nil { + return 0, err + } + } else { + if fieldValue, err := hashstructure.Hash(v, nil); err != nil { + return 0, err + } else { + if _, err = hasher.Write([]byte("")); err != nil { + return 0, err + } + if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil { + return 0, err + } + } + } + + } + switch m.ValidationType.(type) { case *AccessTokenValidation_IntrospectionUrl: @@ -2183,6 +2271,54 @@ func (m *AccessTokenValidation) Hash(hasher hash.Hash64) (uint64, error) { } + switch m.Provider.(type) { + + case *AccessTokenValidation_Default_: + + if h, ok := interface{}(m.GetDefault()).(safe_hasher.SafeHasher); ok { + if _, err = hasher.Write([]byte("Default")); err != nil { + return 0, err + } + if _, err = h.Hash(hasher); err != nil { + return 0, err + } + } else { + if fieldValue, err := hashstructure.Hash(m.GetDefault(), nil); err != nil { + return 0, err + } else { + if _, err = hasher.Write([]byte("Default")); err != nil { + return 0, err + } + if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil { + return 0, err + } + } + } + + case *AccessTokenValidation_Azure: + + if h, ok := interface{}(m.GetAzure()).(safe_hasher.SafeHasher); ok { + if _, err = hasher.Write([]byte("Azure")); err != nil { + return 0, err + } + if _, err = h.Hash(hasher); err != nil { + return 0, err + } + } else { + if fieldValue, err := hashstructure.Hash(m.GetAzure(), nil); err != nil { + return 0, err + } else { + if _, err = hasher.Write([]byte("Azure")); err != nil { + return 0, err + } + if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil { + return 0, err + } + } + } + + } + return hasher.Sum64(), nil } @@ -2635,6 +2771,22 @@ func (m *AerospikeApiKeyStorage) Hash(hasher hash.Hash64) (uint64, error) { return hasher.Sum64(), nil } +// Hash function +func (m *ServerDefaultApiKeyStorage) Hash(hasher hash.Hash64) (uint64, error) { + if m == nil { + return 0, nil + } + if hasher == nil { + hasher = fnv.New64() + } + var err error + if _, err = hasher.Write([]byte("enterprise.gloo.solo.io.github.com/solo-io/solo-apis/pkg/api/enterprise.gloo.solo.io/v1.ServerDefaultApiKeyStorage")); err != nil { + return 0, err + } + + return hasher.Sum64(), nil +} + // Hash function func (m *ApiKey) Hash(hasher hash.Hash64) (uint64, error) { if m == nil { @@ -4960,70 +5112,6 @@ func (m *OidcAuthorizationCode_Default) Hash(hasher hash.Hash64) (uint64, error) return hasher.Sum64(), nil } -// Hash function -func (m *OidcAuthorizationCode_Azure) Hash(hasher hash.Hash64) (uint64, error) { - if m == nil { - return 0, nil - } - if hasher == nil { - hasher = fnv.New64() - } - var err error - if _, err = hasher.Write([]byte("enterprise.gloo.solo.io.github.com/solo-io/solo-apis/pkg/api/enterprise.gloo.solo.io/v1.OidcAuthorizationCode_Azure")); err != nil { - return 0, err - } - - if _, err = hasher.Write([]byte(m.GetClientId())); err != nil { - return 0, err - } - - if _, err = hasher.Write([]byte(m.GetTenantId())); err != nil { - return 0, err - } - - if h, ok := interface{}(m.GetClientSecret()).(safe_hasher.SafeHasher); ok { - if _, err = hasher.Write([]byte("ClientSecret")); err != nil { - return 0, err - } - if _, err = h.Hash(hasher); err != nil { - return 0, err - } - } else { - if fieldValue, err := hashstructure.Hash(m.GetClientSecret(), nil); err != nil { - return 0, err - } else { - if _, err = hasher.Write([]byte("ClientSecret")); err != nil { - return 0, err - } - if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil { - return 0, err - } - } - } - - if h, ok := interface{}(m.GetClaimsCachingOptions()).(safe_hasher.SafeHasher); ok { - if _, err = hasher.Write([]byte("ClaimsCachingOptions")); err != nil { - return 0, err - } - if _, err = h.Hash(hasher); err != nil { - return 0, err - } - } else { - if fieldValue, err := hashstructure.Hash(m.GetClaimsCachingOptions(), nil); err != nil { - return 0, err - } else { - if _, err = hasher.Write([]byte("ClaimsCachingOptions")); err != nil { - return 0, err - } - if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil { - return 0, err - } - } - } - - return hasher.Sum64(), nil -} - // Hash function func (m *OidcAuthorizationCode_FrontChannelLogout) Hash(hasher hash.Hash64) (uint64, error) { if m == nil { @@ -5216,6 +5304,22 @@ func (m *JwtValidation_LocalJwks) Hash(hasher hash.Hash64) (uint64, error) { return hasher.Sum64(), nil } +// Hash function +func (m *AccessTokenValidation_Default) Hash(hasher hash.Hash64) (uint64, error) { + if m == nil { + return 0, nil + } + if hasher == nil { + hasher = fnv.New64() + } + var err error + if _, err = hasher.Write([]byte("enterprise.gloo.solo.io.github.com/solo-io/solo-apis/pkg/api/enterprise.gloo.solo.io/v1.AccessTokenValidation_Default")); err != nil { + return 0, err + } + + return hasher.Sum64(), nil +} + // Hash function func (m *AccessTokenValidation_ScopeList) Hash(hasher hash.Hash64) (uint64, error) { if m == nil { @@ -5584,7 +5688,7 @@ func (m *PassThroughHttp_Response) Hash(hasher hash.Hash64) (uint64, error) { } // Hash function -func (m *ExtAuthConfig_BasicAuthInternal) Hash(hasher hash.Hash64) (uint64, error) { +func (m *ExtAuthConfig_Azure) Hash(hasher hash.Hash64) (uint64, error) { if m == nil { return 0, nil } @@ -5592,26 +5696,34 @@ func (m *ExtAuthConfig_BasicAuthInternal) Hash(hasher hash.Hash64) (uint64, erro hasher = fnv.New64() } var err error - if _, err = hasher.Write([]byte("enterprise.gloo.solo.io.github.com/solo-io/solo-apis/pkg/api/enterprise.gloo.solo.io/v1.ExtAuthConfig_BasicAuthInternal")); err != nil { + if _, err = hasher.Write([]byte("enterprise.gloo.solo.io.github.com/solo-io/solo-apis/pkg/api/enterprise.gloo.solo.io/v1.ExtAuthConfig_Azure")); err != nil { return 0, err } - if _, err = hasher.Write([]byte(m.GetRealm())); err != nil { + if _, err = hasher.Write([]byte(m.GetClientId())); err != nil { return 0, err } - if h, ok := interface{}(m.GetEncryption()).(safe_hasher.SafeHasher); ok { - if _, err = hasher.Write([]byte("Encryption")); err != nil { + if _, err = hasher.Write([]byte(m.GetTenantId())); err != nil { + return 0, err + } + + if _, err = hasher.Write([]byte(m.GetClientSecret())); err != nil { + return 0, err + } + + if h, ok := interface{}(m.GetClaimsCachingOptions()).(safe_hasher.SafeHasher); ok { + if _, err = hasher.Write([]byte("ClaimsCachingOptions")); err != nil { return 0, err } if _, err = h.Hash(hasher); err != nil { return 0, err } } else { - if fieldValue, err := hashstructure.Hash(m.GetEncryption(), nil); err != nil { + if fieldValue, err := hashstructure.Hash(m.GetClaimsCachingOptions(), nil); err != nil { return 0, err } else { - if _, err = hasher.Write([]byte("Encryption")); err != nil { + if _, err = hasher.Write([]byte("ClaimsCachingOptions")); err != nil { return 0, err } if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil { @@ -5620,9 +5732,78 @@ func (m *ExtAuthConfig_BasicAuthInternal) Hash(hasher hash.Hash64) (uint64, erro } } - switch m.UserSource.(type) { + return hasher.Sum64(), nil +} - case *ExtAuthConfig_BasicAuthInternal_UserList_: +// Hash function +func (m *ExtAuthConfig_ClaimToHeader) Hash(hasher hash.Hash64) (uint64, error) { + if m == nil { + return 0, nil + } + if hasher == nil { + hasher = fnv.New64() + } + var err error + if _, err = hasher.Write([]byte("enterprise.gloo.solo.io.github.com/solo-io/solo-apis/pkg/api/enterprise.gloo.solo.io/v1.ExtAuthConfig_ClaimToHeader")); err != nil { + return 0, err + } + + if _, err = hasher.Write([]byte(m.GetClaim())); err != nil { + return 0, err + } + + if _, err = hasher.Write([]byte(m.GetHeader())); err != nil { + return 0, err + } + + err = binary.Write(hasher, binary.LittleEndian, m.GetAppend()) + if err != nil { + return 0, err + } + + return hasher.Sum64(), nil +} + +// Hash function +func (m *ExtAuthConfig_BasicAuthInternal) Hash(hasher hash.Hash64) (uint64, error) { + if m == nil { + return 0, nil + } + if hasher == nil { + hasher = fnv.New64() + } + var err error + if _, err = hasher.Write([]byte("enterprise.gloo.solo.io.github.com/solo-io/solo-apis/pkg/api/enterprise.gloo.solo.io/v1.ExtAuthConfig_BasicAuthInternal")); err != nil { + return 0, err + } + + if _, err = hasher.Write([]byte(m.GetRealm())); err != nil { + return 0, err + } + + if h, ok := interface{}(m.GetEncryption()).(safe_hasher.SafeHasher); ok { + if _, err = hasher.Write([]byte("Encryption")); err != nil { + return 0, err + } + if _, err = h.Hash(hasher); err != nil { + return 0, err + } + } else { + if fieldValue, err := hashstructure.Hash(m.GetEncryption(), nil); err != nil { + return 0, err + } else { + if _, err = hasher.Write([]byte("Encryption")); err != nil { + return 0, err + } + if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil { + return 0, err + } + } + } + + switch m.UserSource.(type) { + + case *ExtAuthConfig_BasicAuthInternal_UserList_: if h, ok := interface{}(m.GetUserList()).(safe_hasher.SafeHasher); ok { if _, err = hasher.Write([]byte("UserList")); err != nil { @@ -6169,6 +6350,29 @@ func (m *ExtAuthConfig_OidcAuthorizationCodeConfig) Hash(hasher hash.Hash64) (ui } } + { + var result uint64 + innerHash := fnv.New64() + for k, v := range m.GetDynamicMetadataFromClaims() { + innerHash.Reset() + + if _, err = innerHash.Write([]byte(v)); err != nil { + return 0, err + } + + if _, err = innerHash.Write([]byte(k)); err != nil { + return 0, err + } + + result = result ^ innerHash.Sum64() + } + err = binary.Write(hasher, binary.LittleEndian, result) + if err != nil { + return 0, err + } + + } + switch m.Provider.(type) { case *ExtAuthConfig_OidcAuthorizationCodeConfig_Default_: @@ -6193,7 +6397,7 @@ func (m *ExtAuthConfig_OidcAuthorizationCodeConfig) Hash(hasher hash.Hash64) (ui } } - case *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure_: + case *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure: if h, ok := interface{}(m.GetAzure()).(safe_hasher.SafeHasher); ok { if _, err = hasher.Write([]byte("Azure")); err != nil { @@ -6257,6 +6461,53 @@ func (m *ExtAuthConfig_AccessTokenValidationConfig) Hash(hasher hash.Hash64) (ui } } + { + var result uint64 + innerHash := fnv.New64() + for k, v := range m.GetDynamicMetadataFromClaims() { + innerHash.Reset() + + if _, err = innerHash.Write([]byte(v)); err != nil { + return 0, err + } + + if _, err = innerHash.Write([]byte(k)); err != nil { + return 0, err + } + + result = result ^ innerHash.Sum64() + } + err = binary.Write(hasher, binary.LittleEndian, result) + if err != nil { + return 0, err + } + + } + + for _, v := range m.GetClaimsToHeaders() { + + if h, ok := interface{}(v).(safe_hasher.SafeHasher); ok { + if _, err = hasher.Write([]byte("")); err != nil { + return 0, err + } + if _, err = h.Hash(hasher); err != nil { + return 0, err + } + } else { + if fieldValue, err := hashstructure.Hash(v, nil); err != nil { + return 0, err + } else { + if _, err = hasher.Write([]byte("")); err != nil { + return 0, err + } + if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil { + return 0, err + } + } + } + + } + switch m.ValidationType.(type) { case *ExtAuthConfig_AccessTokenValidationConfig_IntrospectionUrl: @@ -6337,6 +6588,54 @@ func (m *ExtAuthConfig_AccessTokenValidationConfig) Hash(hasher hash.Hash64) (ui } + switch m.Provider.(type) { + + case *ExtAuthConfig_AccessTokenValidationConfig_Default_: + + if h, ok := interface{}(m.GetDefault()).(safe_hasher.SafeHasher); ok { + if _, err = hasher.Write([]byte("Default")); err != nil { + return 0, err + } + if _, err = h.Hash(hasher); err != nil { + return 0, err + } + } else { + if fieldValue, err := hashstructure.Hash(m.GetDefault(), nil); err != nil { + return 0, err + } else { + if _, err = hasher.Write([]byte("Default")); err != nil { + return 0, err + } + if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil { + return 0, err + } + } + } + + case *ExtAuthConfig_AccessTokenValidationConfig_Azure: + + if h, ok := interface{}(m.GetAzure()).(safe_hasher.SafeHasher); ok { + if _, err = hasher.Write([]byte("Azure")); err != nil { + return 0, err + } + if _, err = h.Hash(hasher); err != nil { + return 0, err + } + } else { + if fieldValue, err := hashstructure.Hash(m.GetAzure(), nil); err != nil { + return 0, err + } else { + if _, err = hasher.Write([]byte("Azure")); err != nil { + return 0, err + } + if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil { + return 0, err + } + } + } + + } + return hasher.Sum64(), nil } @@ -6702,6 +7001,28 @@ func (m *ExtAuthConfig_ApiKeyAuthConfig) Hash(hasher hash.Hash64) (uint64, error } } + case *ExtAuthConfig_ApiKeyAuthConfig_ServerDefaultApikeyStorage: + + if h, ok := interface{}(m.GetServerDefaultApikeyStorage()).(safe_hasher.SafeHasher); ok { + if _, err = hasher.Write([]byte("ServerDefaultApikeyStorage")); err != nil { + return 0, err + } + if _, err = h.Hash(hasher); err != nil { + return 0, err + } + } else { + if fieldValue, err := hashstructure.Hash(m.GetServerDefaultApikeyStorage(), nil); err != nil { + return 0, err + } else { + if _, err = hasher.Write([]byte("ServerDefaultApikeyStorage")); err != nil { + return 0, err + } + if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil { + return 0, err + } + } + } + } return hasher.Sum64(), nil @@ -7600,35 +7921,6 @@ func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_PkJwtClientAuthenticationConf return hasher.Sum64(), nil } -// Hash function -func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader) Hash(hasher hash.Hash64) (uint64, error) { - if m == nil { - return 0, nil - } - if hasher == nil { - hasher = fnv.New64() - } - var err error - if _, err = hasher.Write([]byte("enterprise.gloo.solo.io.github.com/solo-io/solo-apis/pkg/api/enterprise.gloo.solo.io/v1.ExtAuthConfig_OidcAuthorizationCodeConfig_ClaimToHeader")); err != nil { - return 0, err - } - - if _, err = hasher.Write([]byte(m.GetClaim())); err != nil { - return 0, err - } - - if _, err = hasher.Write([]byte(m.GetHeader())); err != nil { - return 0, err - } - - err = binary.Write(hasher, binary.LittleEndian, m.GetAppend()) - if err != nil { - return 0, err - } - - return hasher.Sum64(), nil -} - // Hash function func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_AccessToken) Hash(hasher hash.Hash64) (uint64, error) { if m == nil { @@ -7725,54 +8017,6 @@ func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_Default) Hash(hasher hash.Has return hasher.Sum64(), nil } -// Hash function -func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_Azure) Hash(hasher hash.Hash64) (uint64, error) { - if m == nil { - return 0, nil - } - if hasher == nil { - hasher = fnv.New64() - } - var err error - if _, err = hasher.Write([]byte("enterprise.gloo.solo.io.github.com/solo-io/solo-apis/pkg/api/enterprise.gloo.solo.io/v1.ExtAuthConfig_OidcAuthorizationCodeConfig_Azure")); err != nil { - return 0, err - } - - if _, err = hasher.Write([]byte(m.GetClientId())); err != nil { - return 0, err - } - - if _, err = hasher.Write([]byte(m.GetTenantId())); err != nil { - return 0, err - } - - if _, err = hasher.Write([]byte(m.GetClientSecret())); err != nil { - return 0, err - } - - if h, ok := interface{}(m.GetClaimsCachingOptions()).(safe_hasher.SafeHasher); ok { - if _, err = hasher.Write([]byte("ClaimsCachingOptions")); err != nil { - return 0, err - } - if _, err = h.Hash(hasher); err != nil { - return 0, err - } - } else { - if fieldValue, err := hashstructure.Hash(m.GetClaimsCachingOptions(), nil); err != nil { - return 0, err - } else { - if _, err = hasher.Write([]byte("ClaimsCachingOptions")); err != nil { - return 0, err - } - if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil { - return 0, err - } - } - } - - return hasher.Sum64(), nil -} - // Hash function func (m *ExtAuthConfig_OidcAuthorizationCodeConfig_FrontChannelLogout) Hash(hasher hash.Hash64) (uint64, error) { if m == nil { @@ -7917,6 +8161,22 @@ func (m *ExtAuthConfig_AccessTokenValidationConfig_ScopeList) Hash(hasher hash.H return hasher.Sum64(), nil } +// Hash function +func (m *ExtAuthConfig_AccessTokenValidationConfig_Default) Hash(hasher hash.Hash64) (uint64, error) { + if m == nil { + return 0, nil + } + if hasher == nil { + hasher = fnv.New64() + } + var err error + if _, err = hasher.Write([]byte("enterprise.gloo.solo.io.github.com/solo-io/solo-apis/pkg/api/enterprise.gloo.solo.io/v1.ExtAuthConfig_AccessTokenValidationConfig_Default")); err != nil { + return 0, err + } + + return hasher.Sum64(), nil +} + // Hash function func (m *ExtAuthConfig_AccessTokenValidationConfig_JwtValidation_RemoteJwks) Hash(hasher hash.Hash64) (uint64, error) { if m == nil { diff --git a/pkg/api/gateway.solo.io/v1/route_table.pb.go b/pkg/api/gateway.solo.io/v1/route_table.pb.go index e027f0ad..a3b90c52 100644 --- a/pkg/api/gateway.solo.io/v1/route_table.pb.go +++ b/pkg/api/gateway.solo.io/v1/route_table.pb.go @@ -247,10 +247,11 @@ type RouteTableSpec struct { // The list of routes for the route table Routes []*Route `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"` - // When a delegated route defines a `RouteTableSelector` that matches multiple route tables, Gloo will inspect this - // field to determine the order in which the route tables are to be evaluated. This determines the order in which + // When a delegated route in a VirtualService or RouteTable defines a `RouteTableSelector` that matches + // multiple route tables, Gloo will inspect this field to determine the order in which + // the route tables are to be evaluated. This determines the order in which // the routes will appear on the final `Proxy` resource. The field is optional; if no value is specified, the weight - // defaults to 0 (zero). + // defaults to 0 (zero). Note that this field is ignored if it is not used in a route delegation scenario. // // Gloo will process the route tables matched by a selector in ascending order by weight and collect the routes of // each route table in the order they are defined. If multiple route tables define the same weight, Gloo will sort the diff --git a/pkg/api/gloo.solo.io/v1/enterprise/options/ai/ai.pb.clone.go b/pkg/api/gloo.solo.io/v1/enterprise/options/ai/ai.pb.clone.go index 9e056b80..ba1d4f14 100644 --- a/pkg/api/gloo.solo.io/v1/enterprise/options/ai/ai.pb.clone.go +++ b/pkg/api/gloo.solo.io/v1/enterprise/options/ai/ai.pb.clone.go @@ -849,10 +849,14 @@ func (m *AIPromptGuard_Regex) Clone() proto.Message { target = &AIPromptGuard_Regex{} if m.GetMatches() != nil { - target.Matches = make([]string, len(m.GetMatches())) + target.Matches = make([]*AIPromptGuard_Regex_RegexMatch, len(m.GetMatches())) for idx, v := range m.GetMatches() { - target.Matches[idx] = v + if h, ok := interface{}(v).(clone.Cloner); ok { + target.Matches[idx] = h.Clone().(*AIPromptGuard_Regex_RegexMatch) + } else { + target.Matches[idx] = proto.Clone(v).(*AIPromptGuard_Regex_RegexMatch) + } } } @@ -866,6 +870,8 @@ func (m *AIPromptGuard_Regex) Clone() proto.Message { } } + target.Action = m.GetAction() + return target } @@ -881,14 +887,14 @@ func (m *AIPromptGuard_Webhook) Clone() proto.Message { target.Port = m.GetPort() - if m.GetHeaders() != nil { - target.Headers = make([]*AIPromptGuard_Webhook_HeaderMatch, len(m.GetHeaders())) - for idx, v := range m.GetHeaders() { + if m.GetForwardHeaders() != nil { + target.ForwardHeaders = make([]*AIPromptGuard_Webhook_HeaderMatch, len(m.GetForwardHeaders())) + for idx, v := range m.GetForwardHeaders() { if h, ok := interface{}(v).(clone.Cloner); ok { - target.Headers[idx] = h.Clone().(*AIPromptGuard_Webhook_HeaderMatch) + target.ForwardHeaders[idx] = h.Clone().(*AIPromptGuard_Webhook_HeaderMatch) } else { - target.Headers[idx] = proto.Clone(v).(*AIPromptGuard_Webhook_HeaderMatch) + target.ForwardHeaders[idx] = proto.Clone(v).(*AIPromptGuard_Webhook_HeaderMatch) } } @@ -949,6 +955,21 @@ func (m *AIPromptGuard_Response) Clone() proto.Message { return target } +// Clone function +func (m *AIPromptGuard_Regex_RegexMatch) Clone() proto.Message { + var target *AIPromptGuard_Regex_RegexMatch + if m == nil { + return target + } + target = &AIPromptGuard_Regex_RegexMatch{} + + target.Pattern = m.GetPattern() + + target.Name = m.GetName() + + return target +} + // Clone function func (m *AIPromptGuard_Webhook_HeaderMatch) Clone() proto.Message { var target *AIPromptGuard_Webhook_HeaderMatch diff --git a/pkg/api/gloo.solo.io/v1/enterprise/options/ai/ai.pb.equal.go b/pkg/api/gloo.solo.io/v1/enterprise/options/ai/ai.pb.equal.go index 0e14ee69..1507d4f1 100644 --- a/pkg/api/gloo.solo.io/v1/enterprise/options/ai/ai.pb.equal.go +++ b/pkg/api/gloo.solo.io/v1/enterprise/options/ai/ai.pb.equal.go @@ -1464,8 +1464,14 @@ func (m *AIPromptGuard_Regex) Equal(that interface{}) bool { } for idx, v := range m.GetMatches() { - if strings.Compare(v, target.GetMatches()[idx]) != 0 { - return false + if h, ok := interface{}(v).(equality.Equalizer); ok { + if !h.Equal(target.GetMatches()[idx]) { + return false + } + } else { + if !proto.Equal(v, target.GetMatches()[idx]) { + return false + } } } @@ -1481,6 +1487,10 @@ func (m *AIPromptGuard_Regex) Equal(that interface{}) bool { } + if m.GetAction() != target.GetAction() { + return false + } + return true } @@ -1513,17 +1523,17 @@ func (m *AIPromptGuard_Webhook) Equal(that interface{}) bool { return false } - if len(m.GetHeaders()) != len(target.GetHeaders()) { + if len(m.GetForwardHeaders()) != len(target.GetForwardHeaders()) { return false } - for idx, v := range m.GetHeaders() { + for idx, v := range m.GetForwardHeaders() { if h, ok := interface{}(v).(equality.Equalizer); ok { - if !h.Equal(target.GetHeaders()[idx]) { + if !h.Equal(target.GetForwardHeaders()[idx]) { return false } } else { - if !proto.Equal(v, target.GetHeaders()[idx]) { + if !proto.Equal(v, target.GetForwardHeaders()[idx]) { return false } } @@ -1631,6 +1641,38 @@ func (m *AIPromptGuard_Response) Equal(that interface{}) bool { return true } +// Equal function +func (m *AIPromptGuard_Regex_RegexMatch) Equal(that interface{}) bool { + if that == nil { + return m == nil + } + + target, ok := that.(*AIPromptGuard_Regex_RegexMatch) + if !ok { + that2, ok := that.(AIPromptGuard_Regex_RegexMatch) + if ok { + target = &that2 + } else { + return false + } + } + if target == nil { + return m == nil + } else if m == nil { + return false + } + + if strings.Compare(m.GetPattern(), target.GetPattern()) != 0 { + return false + } + + if strings.Compare(m.GetName(), target.GetName()) != 0 { + return false + } + + return true +} + // Equal function func (m *AIPromptGuard_Webhook_HeaderMatch) Equal(that interface{}) bool { if that == nil { diff --git a/pkg/api/gloo.solo.io/v1/enterprise/options/ai/ai.pb.go b/pkg/api/gloo.solo.io/v1/enterprise/options/ai/ai.pb.go index 456e6c14..4714c358 100644 --- a/pkg/api/gloo.solo.io/v1/enterprise/options/ai/ai.pb.go +++ b/pkg/api/gloo.solo.io/v1/enterprise/options/ai/ai.pb.go @@ -10,10 +10,7 @@ import ( reflect "reflect" sync "sync" - _ "github.com/golang/protobuf/ptypes/duration" - _ "github.com/golang/protobuf/ptypes/empty" _struct "github.com/golang/protobuf/ptypes/struct" - _ "github.com/golang/protobuf/ptypes/wrappers" _ "github.com/solo-io/protoc-gen-ext/extproto" core "github.com/solo-io/solo-kit/pkg/api/v1/resources/core" protoreflect "google.golang.org/protobuf/reflect/protoreflect" @@ -125,6 +122,10 @@ const ( AIPromptGuard_Regex_SSN AIPromptGuard_Regex_BuiltIn = 0 // Default REGEX for Credit Card Numbers AIPromptGuard_Regex_CREDIT_CARD AIPromptGuard_Regex_BuiltIn = 1 + // Default REGEX for Phone Numbers + AIPromptGuard_Regex_PHONE_NUMBER AIPromptGuard_Regex_BuiltIn = 2 + // Default REGEX for Email Addresses + AIPromptGuard_Regex_EMAIL AIPromptGuard_Regex_BuiltIn = 3 ) // Enum value maps for AIPromptGuard_Regex_BuiltIn. @@ -132,10 +133,14 @@ var ( AIPromptGuard_Regex_BuiltIn_name = map[int32]string{ 0: "SSN", 1: "CREDIT_CARD", + 2: "PHONE_NUMBER", + 3: "EMAIL", } AIPromptGuard_Regex_BuiltIn_value = map[string]int32{ - "SSN": 0, - "CREDIT_CARD": 1, + "SSN": 0, + "CREDIT_CARD": 1, + "PHONE_NUMBER": 2, + "EMAIL": 3, } ) @@ -166,6 +171,54 @@ func (AIPromptGuard_Regex_BuiltIn) EnumDescriptor() ([]byte, []int) { return file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_rawDescGZIP(), []int{9, 0, 0} } +type AIPromptGuard_Regex_Action int32 + +const ( + // Mask the response if the regex matches + AIPromptGuard_Regex_MASK AIPromptGuard_Regex_Action = 0 + // Reject the request if the regex matches + AIPromptGuard_Regex_REJECT AIPromptGuard_Regex_Action = 1 +) + +// Enum value maps for AIPromptGuard_Regex_Action. +var ( + AIPromptGuard_Regex_Action_name = map[int32]string{ + 0: "MASK", + 1: "REJECT", + } + AIPromptGuard_Regex_Action_value = map[string]int32{ + "MASK": 0, + "REJECT": 1, + } +) + +func (x AIPromptGuard_Regex_Action) Enum() *AIPromptGuard_Regex_Action { + p := new(AIPromptGuard_Regex_Action) + *p = x + return p +} + +func (x AIPromptGuard_Regex_Action) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AIPromptGuard_Regex_Action) Descriptor() protoreflect.EnumDescriptor { + return file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_enumTypes[3].Descriptor() +} + +func (AIPromptGuard_Regex_Action) Type() protoreflect.EnumType { + return &file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_enumTypes[3] +} + +func (x AIPromptGuard_Regex_Action) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AIPromptGuard_Regex_Action.Descriptor instead. +func (AIPromptGuard_Regex_Action) EnumDescriptor() ([]byte, []int) { + return file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_rawDescGZIP(), []int{9, 0, 1} +} + type AIPromptGuard_Webhook_HeaderMatch_MatchType int32 const ( @@ -210,11 +263,11 @@ func (x AIPromptGuard_Webhook_HeaderMatch_MatchType) String() string { } func (AIPromptGuard_Webhook_HeaderMatch_MatchType) Descriptor() protoreflect.EnumDescriptor { - return file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_enumTypes[3].Descriptor() + return file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_enumTypes[4].Descriptor() } func (AIPromptGuard_Webhook_HeaderMatch_MatchType) Type() protoreflect.EnumType { - return &file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_enumTypes[3] + return &file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_enumTypes[4] } func (x AIPromptGuard_Webhook_HeaderMatch_MatchType) Number() protoreflect.EnumNumber { @@ -2426,10 +2479,13 @@ type AIPromptGuard_Regex struct { // A list of Regex patterns to match against the response. // All matches will be masked before being sent back to the client. // matches and builtins are additive. - Matches []string `protobuf:"bytes,1,rep,name=matches,proto3" json:"matches,omitempty"` + Matches []*AIPromptGuard_Regex_RegexMatch `protobuf:"bytes,1,rep,name=matches,proto3" json:"matches,omitempty"` // A list of built-in regexes to mask in the response. // matches and builtins are additive. Builtins []AIPromptGuard_Regex_BuiltIn `protobuf:"varint,2,rep,packed,name=builtins,proto3,enum=ai.options.gloo.solo.io.AIPromptGuard_Regex_BuiltIn" json:"builtins,omitempty"` + // The action to take if the regex matches + // NOTE: This will only apply to request matches, response matches will always mask + Action AIPromptGuard_Regex_Action `protobuf:"varint,3,opt,name=action,proto3,enum=ai.options.gloo.solo.io.AIPromptGuard_Regex_Action" json:"action,omitempty"` } func (x *AIPromptGuard_Regex) Reset() { @@ -2464,7 +2520,7 @@ func (*AIPromptGuard_Regex) Descriptor() ([]byte, []int) { return file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_rawDescGZIP(), []int{9, 0} } -func (x *AIPromptGuard_Regex) GetMatches() []string { +func (x *AIPromptGuard_Regex) GetMatches() []*AIPromptGuard_Regex_RegexMatch { if x != nil { return x.Matches } @@ -2478,6 +2534,13 @@ func (x *AIPromptGuard_Regex) GetBuiltins() []AIPromptGuard_Regex_BuiltIn { return nil } +func (x *AIPromptGuard_Regex) GetAction() AIPromptGuard_Regex_Action { + if x != nil { + return x.Action + } + return AIPromptGuard_Regex_MASK +} + // Webhook settings for prompt guard type AIPromptGuard_Webhook struct { state protoimpl.MessageState @@ -2489,7 +2552,7 @@ type AIPromptGuard_Webhook struct { // Port to send the traffic to Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` // Headers to forward with the request - Headers []*AIPromptGuard_Webhook_HeaderMatch `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty"` + ForwardHeaders []*AIPromptGuard_Webhook_HeaderMatch `protobuf:"bytes,3,rep,name=forwardHeaders,proto3" json:"forwardHeaders,omitempty"` } func (x *AIPromptGuard_Webhook) Reset() { @@ -2538,9 +2601,9 @@ func (x *AIPromptGuard_Webhook) GetPort() uint32 { return 0 } -func (x *AIPromptGuard_Webhook) GetHeaders() []*AIPromptGuard_Webhook_HeaderMatch { +func (x *AIPromptGuard_Webhook) GetForwardHeaders() []*AIPromptGuard_Webhook_HeaderMatch { if x != nil { - return x.Headers + return x.ForwardHeaders } return nil } @@ -2672,6 +2735,63 @@ func (x *AIPromptGuard_Response) GetWebhook() *AIPromptGuard_Webhook { return nil } +type AIPromptGuard_Regex_RegexMatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The regex pattern to match against the response. + Pattern string `protobuf:"bytes,1,opt,name=pattern,proto3" json:"pattern,omitempty"` + // An optional name for this match which can be used for debugging purposes. + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *AIPromptGuard_Regex_RegexMatch) Reset() { + *x = AIPromptGuard_Regex_RegexMatch{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AIPromptGuard_Regex_RegexMatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AIPromptGuard_Regex_RegexMatch) ProtoMessage() {} + +func (x *AIPromptGuard_Regex_RegexMatch) ProtoReflect() protoreflect.Message { + mi := &file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AIPromptGuard_Regex_RegexMatch.ProtoReflect.Descriptor instead. +func (*AIPromptGuard_Regex_RegexMatch) Descriptor() ([]byte, []int) { + return file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_rawDescGZIP(), []int{9, 0, 0} +} + +func (x *AIPromptGuard_Regex_RegexMatch) GetPattern() string { + if x != nil { + return x.Pattern + } + return "" +} + +func (x *AIPromptGuard_Regex_RegexMatch) GetName() string { + if x != nil { + return x.Name + } + return "" +} + type AIPromptGuard_Webhook_HeaderMatch struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2686,7 +2806,7 @@ type AIPromptGuard_Webhook_HeaderMatch struct { func (x *AIPromptGuard_Webhook_HeaderMatch) Reset() { *x = AIPromptGuard_Webhook_HeaderMatch{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_msgTypes[30] + mi := &file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2699,7 +2819,7 @@ func (x *AIPromptGuard_Webhook_HeaderMatch) String() string { func (*AIPromptGuard_Webhook_HeaderMatch) ProtoMessage() {} func (x *AIPromptGuard_Webhook_HeaderMatch) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_msgTypes[30] + mi := &file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2745,7 +2865,7 @@ type AIPromptGuard_Request_CustomResponse struct { func (x *AIPromptGuard_Request_CustomResponse) Reset() { *x = AIPromptGuard_Request_CustomResponse{} if protoimpl.UnsafeEnabled { - mi := &file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_msgTypes[31] + mi := &file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2758,7 +2878,7 @@ func (x *AIPromptGuard_Request_CustomResponse) String() string { func (*AIPromptGuard_Request_CustomResponse) ProtoMessage() {} func (x *AIPromptGuard_Request_CustomResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_msgTypes[31] + mi := &file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2800,333 +2920,344 @@ var file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_ 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x6f, 0x6c, 0x6f, 0x2d, 0x69, 0x6f, 0x2f, 0x73, 0x6f, 0x6c, 0x6f, 0x2d, 0x6b, 0x69, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x66, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x12, 0x65, 0x78, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x78, 0x74, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7c, 0x0a, 0x0f, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x75, - 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x06, 0x69, 0x6e, 0x6c, 0x69, 0x6e, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x6c, 0x69, 0x6e, - 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x6f, 0x6c, - 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, - 0x48, 0x00, 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x66, 0x42, 0x13, 0x0a, - 0x11, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x22, 0xbd, 0x10, 0x0a, 0x0c, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, - 0x70, 0x65, 0x63, 0x12, 0x46, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x41, - 0x49, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x12, 0x49, 0x0a, 0x07, 0x6d, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, + 0x6f, 0x74, 0x6f, 0x1a, 0x12, 0x65, 0x78, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x78, + 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7c, 0x0a, 0x0f, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x06, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x72, + 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x52, 0x65, 0x66, 0x48, 0x00, 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x66, + 0x42, 0x13, 0x0a, 0x11, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xbd, 0x10, 0x0a, 0x0c, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x12, 0x46, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, + 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4f, 0x70, + 0x65, 0x6e, 0x41, 0x49, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x12, 0x49, + 0x0a, 0x07, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, + 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x48, 0x00, + 0x52, 0x07, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x12, 0x4f, 0x0a, 0x09, 0x61, 0x6e, 0x74, + 0x68, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, - 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x6d, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x12, 0x4f, 0x0a, 0x09, 0x61, 0x6e, 0x74, 0x68, 0x72, 0x6f, - 0x70, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x61, 0x69, 0x2e, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, - 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, - 0x2e, 0x41, 0x6e, 0x74, 0x68, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6e, - 0x74, 0x68, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x56, 0x0a, 0x0c, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, - 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, - 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x49, - 0x48, 0x00, 0x52, 0x0b, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x12, - 0x47, 0x0a, 0x05, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, - 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, - 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x50, 0x6f, 0x6f, 0x6c, 0x48, - 0x00, 0x52, 0x05, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x12, 0x46, 0x0a, 0x06, 0x67, 0x65, 0x6d, 0x69, - 0x6e, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, - 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, - 0x47, 0x65, 0x6d, 0x69, 0x6e, 0x69, 0x48, 0x00, 0x52, 0x06, 0x67, 0x65, 0x6d, 0x69, 0x6e, 0x69, - 0x1a, 0x34, 0x0a, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, - 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0xba, 0x01, 0x0a, 0x06, 0x4f, 0x70, 0x65, 0x6e, 0x41, - 0x49, 0x12, 0x47, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, - 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, - 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x51, 0x0a, 0x0b, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x30, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, - 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x6f, 0x73, - 0x74, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x1a, 0xd3, 0x01, 0x0a, 0x0b, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, - 0x6e, 0x41, 0x49, 0x12, 0x49, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, - 0x6f, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1a, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x13, 0x0a, 0x11, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x9f, 0x01, 0x0a, 0x06, 0x47, 0x65, - 0x6d, 0x69, 0x6e, 0x69, 0x12, 0x49, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, + 0x70, 0x65, 0x63, 0x2e, 0x41, 0x6e, 0x74, 0x68, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x48, 0x00, 0x52, + 0x09, 0x61, 0x6e, 0x74, 0x68, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x56, 0x0a, 0x0c, 0x61, 0x7a, + 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x31, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, + 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, + 0x6e, 0x41, 0x49, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, + 0x61, 0x69, 0x12, 0x47, 0x0a, 0x05, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, + 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x50, 0x6f, + 0x6f, 0x6c, 0x48, 0x00, 0x52, 0x05, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x12, 0x46, 0x0a, 0x06, 0x67, + 0x65, 0x6d, 0x69, 0x6e, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x69, + 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, + 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, + 0x65, 0x63, 0x2e, 0x47, 0x65, 0x6d, 0x69, 0x6e, 0x69, 0x48, 0x00, 0x52, 0x06, 0x67, 0x65, 0x6d, + 0x69, 0x6e, 0x69, 0x1a, 0x34, 0x0a, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x6f, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0xba, 0x01, 0x0a, 0x06, 0x4f, 0x70, + 0x65, 0x6e, 0x41, 0x49, 0x12, 0x47, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x13, 0x0a, 0x11, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xbb, 0x01, 0x0a, 0x07, - 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x12, 0x47, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x69, - 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, - 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x68, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x51, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, - 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, - 0x6f, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x1a, 0xd7, 0x01, 0x0a, 0x09, 0x41, 0x6e, - 0x74, 0x68, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x47, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x69, - 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, - 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x68, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x51, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, - 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, - 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, - 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x1a, 0xd5, 0x04, 0x0a, 0x09, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x50, 0x6f, 0x6f, - 0x6c, 0x12, 0x58, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, - 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, - 0x0a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x94, 0x03, 0x0a, 0x07, - 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x61, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, - 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4f, - 0x70, 0x65, 0x6e, 0x41, 0x49, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x12, - 0x49, 0x0a, 0x07, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, - 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x48, - 0x00, 0x52, 0x07, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x12, 0x4f, 0x0a, 0x09, 0x61, 0x6e, - 0x74, 0x68, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, - 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x6e, 0x74, 0x68, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x48, 0x00, - 0x52, 0x09, 0x61, 0x6e, 0x74, 0x68, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x56, 0x0a, 0x0c, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x31, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, - 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x4f, 0x70, - 0x65, 0x6e, 0x41, 0x49, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, - 0x6e, 0x61, 0x69, 0x12, 0x46, 0x0a, 0x06, 0x67, 0x65, 0x6d, 0x69, 0x6e, 0x69, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x47, 0x65, 0x6d, 0x69, 0x6e, - 0x69, 0x48, 0x00, 0x52, 0x06, 0x67, 0x65, 0x6d, 0x69, 0x6e, 0x69, 0x42, 0x05, 0x0a, 0x03, 0x6c, - 0x6c, 0x6d, 0x1a, 0x57, 0x0a, 0x08, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x4b, - 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x61, - 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, - 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, - 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x42, 0x61, - 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x05, 0x0a, 0x03, 0x6c, - 0x6c, 0x6d, 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x12, 0x58, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x65, - 0x6e, 0x72, 0x69, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2b, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, - 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, - 0x70, 0x74, 0x45, 0x6e, 0x72, 0x69, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x45, 0x6e, 0x72, 0x69, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, - 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x67, 0x75, 0x61, 0x72, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, - 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x12, 0x2e, 0x0a, 0x03, 0x72, 0x61, 0x67, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, - 0x2e, 0x52, 0x41, 0x47, 0x52, 0x03, 0x72, 0x61, 0x67, 0x12, 0x4d, 0x0a, 0x0e, 0x73, 0x65, 0x6d, - 0x61, 0x6e, 0x74, 0x69, 0x63, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, - 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x65, 0x6d, 0x61, - 0x6e, 0x74, 0x69, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x0d, 0x73, 0x65, 0x6d, 0x61, 0x6e, - 0x74, 0x69, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x69, 0x2e, + 0x65, 0x6e, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x51, 0x0a, + 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x48, 0x6f, 0x73, 0x74, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x6f, 0x73, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x1a, 0xd3, 0x01, 0x0a, 0x0b, 0x41, 0x7a, 0x75, 0x72, 0x65, + 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x49, 0x12, 0x49, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, - 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x52, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x4f, 0x0a, 0x0a, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x30, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, - 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x15, 0x0a, 0x09, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x48, 0x41, - 0x54, 0x10, 0x00, 0x22, 0x6e, 0x0a, 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, - 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, - 0x69, 0x64, 0x65, 0x22, 0x60, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x12, - 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x0f, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xf2, 0x03, 0x0a, 0x09, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x12, 0x43, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x6d, - 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x49, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x12, 0x53, 0x0a, 0x0c, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, - 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x49, 0x48, 0x00, - 0x52, 0x0b, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x1a, 0x68, 0x0a, - 0x06, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x49, 0x12, 0x49, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, + 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x27, 0x0a, + 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x13, 0x0a, 0x11, 0x61, 0x75, 0x74, 0x68, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x9f, 0x01, 0x0a, + 0x06, 0x47, 0x65, 0x6d, 0x69, 0x6e, 0x69, 0x12, 0x49, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x42, 0x13, 0x0a, 0x11, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xd3, 0x01, 0x0a, 0x0b, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x49, 0x12, 0x49, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x69, - 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, - 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x68, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, - 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x61, 0x75, 0x74, 0x68, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x0b, 0x0a, - 0x09, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xa0, 0x05, 0x0a, 0x0d, 0x53, - 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x4e, 0x0a, 0x09, - 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x30, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, - 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, - 0x69, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, - 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x40, 0x0a, 0x09, - 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, - 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x52, 0x09, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x10, - 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x74, 0x6c, - 0x12, 0x3f, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, + 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x13, 0x0a, 0x11, 0x61, 0x75, 0x74, + 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xbb, + 0x01, 0x0a, 0x07, 0x4d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x12, 0x47, 0x0a, 0x0a, 0x61, 0x75, + 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, - 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, - 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, - 0x65, 0x1a, 0x5d, 0x0a, 0x05, 0x52, 0x65, 0x64, 0x69, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x0e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x1a, 0x74, 0x0a, 0x08, 0x57, 0x65, 0x61, 0x76, 0x69, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x08, 0x67, 0x72, 0x70, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, - 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x6e, - 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x1a, 0xad, 0x01, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x53, - 0x74, 0x6f, 0x72, 0x65, 0x12, 0x44, 0x0a, 0x05, 0x72, 0x65, 0x64, 0x69, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x65, - 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x69, - 0x73, 0x48, 0x00, 0x52, 0x05, 0x72, 0x65, 0x64, 0x69, 0x73, 0x12, 0x4d, 0x0a, 0x08, 0x77, 0x65, - 0x61, 0x76, 0x69, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x61, - 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, - 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x2e, 0x57, 0x65, 0x61, 0x76, 0x69, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, - 0x08, 0x77, 0x65, 0x61, 0x76, 0x69, 0x61, 0x74, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x64, 0x61, 0x74, - 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x25, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0e, - 0x0a, 0x0a, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0x00, 0x12, 0x0d, - 0x0a, 0x09, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x22, 0x91, 0x02, - 0x0a, 0x03, 0x52, 0x41, 0x47, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, + 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, + 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x51, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x68, 0x6f, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, - 0x69, 0x6f, 0x2e, 0x52, 0x41, 0x47, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, - 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x65, - 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x1a, 0xd7, 0x01, 0x0a, + 0x09, 0x41, 0x6e, 0x74, 0x68, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x47, 0x0a, 0x0a, 0x61, 0x75, + 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, - 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x52, 0x09, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, - 0x0f, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x59, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, - 0x6f, 0x72, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, - 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x22, 0xe9, 0x01, 0x0a, 0x12, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x45, 0x6e, - 0x72, 0x69, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x07, 0x70, 0x72, 0x65, 0x70, - 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x61, 0x69, 0x2e, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, - 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x45, 0x6e, 0x72, 0x69, - 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, - 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x4b, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x65, 0x6e, - 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, + 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, + 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x51, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x68, 0x6f, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, + 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x1a, 0xd5, 0x04, 0x0a, 0x09, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x58, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, + 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x94, + 0x03, 0x0a, 0x07, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x6f, 0x70, + 0x65, 0x6e, 0x61, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x69, 0x2e, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, + 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, + 0x63, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x49, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, + 0x61, 0x69, 0x12, 0x49, 0x0a, 0x07, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x69, 0x73, 0x74, 0x72, + 0x61, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x12, 0x4f, 0x0a, + 0x09, 0x61, 0x6e, 0x74, 0x68, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, + 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x6e, 0x74, 0x68, 0x72, 0x6f, 0x70, 0x69, + 0x63, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6e, 0x74, 0x68, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x56, + 0x0a, 0x0c, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, + 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x7a, 0x75, 0x72, + 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x49, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x7a, 0x75, 0x72, 0x65, + 0x4f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x12, 0x46, 0x0a, 0x06, 0x67, 0x65, 0x6d, 0x69, 0x6e, 0x69, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, + 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x47, 0x65, + 0x6d, 0x69, 0x6e, 0x69, 0x48, 0x00, 0x52, 0x06, 0x67, 0x65, 0x6d, 0x69, 0x6e, 0x69, 0x42, 0x05, + 0x0a, 0x03, 0x6c, 0x6c, 0x6d, 0x1a, 0x57, 0x0a, 0x08, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x12, 0x4b, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x37, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, + 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x50, 0x6f, 0x6f, 0x6c, + 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x05, + 0x0a, 0x03, 0x6c, 0x6c, 0x6d, 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x58, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x6d, 0x70, + 0x74, 0x5f, 0x65, 0x6e, 0x72, 0x69, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x49, 0x50, + 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x45, 0x6e, 0x72, 0x69, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x10, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x45, 0x6e, 0x72, 0x69, 0x63, 0x68, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x49, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x67, 0x75, 0x61, 0x72, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, - 0x6f, 0x2e, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x45, 0x6e, 0x72, 0x69, 0x63, 0x68, - 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x06, 0x61, 0x70, - 0x70, 0x65, 0x6e, 0x64, 0x1a, 0x37, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, - 0x6f, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x85, 0x09, - 0x0a, 0x0d, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x12, - 0x48, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, - 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x49, 0x50, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x08, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x61, 0x69, + 0x6f, 0x2e, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x52, + 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x12, 0x2e, 0x0a, 0x03, + 0x72, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x69, 0x2e, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, + 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x41, 0x47, 0x52, 0x03, 0x72, 0x61, 0x67, 0x12, 0x4d, 0x0a, 0x0e, + 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, + 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x0d, 0x73, 0x65, + 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, + 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x52, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x4f, + 0x0a, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x15, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, + 0x43, 0x48, 0x41, 0x54, 0x10, 0x00, 0x22, 0x6e, 0x0a, 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x2c, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x22, 0x60, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, + 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xf2, 0x03, 0x0a, 0x09, 0x45, 0x6d, 0x62, + 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x43, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, + 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x41, + 0x49, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x12, 0x53, 0x0a, 0x0c, 0x61, + 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, + 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x6d, 0x62, 0x65, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x41, + 0x49, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x61, 0x69, + 0x1a, 0x68, 0x0a, 0x06, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x49, 0x12, 0x49, 0x0a, 0x0a, 0x61, 0x75, + 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, + 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, + 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x13, 0x0a, 0x11, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xd3, 0x01, 0x0a, 0x0b, 0x41, + 0x7a, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x49, 0x12, 0x49, 0x0a, 0x0a, 0x61, 0x75, + 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, + 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, + 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x61, + 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x42, 0x0b, 0x0a, 0x09, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xa0, 0x05, + 0x0a, 0x0d, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, + 0x4e, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x65, 0x6d, + 0x61, 0x6e, 0x74, 0x69, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, + 0x74, 0x6f, 0x72, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, + 0x40, 0x0a, 0x09, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x6d, 0x62, + 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, + 0x74, 0x74, 0x6c, 0x12, 0x3f, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, + 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x65, 0x6d, 0x61, + 0x6e, 0x74, 0x69, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, + 0x6d, 0x6f, 0x64, 0x65, 0x1a, 0x5d, 0x0a, 0x05, 0x52, 0x65, 0x64, 0x69, 0x73, 0x12, 0x2b, 0x0a, + 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x1a, 0x74, 0x0a, 0x08, 0x57, 0x65, 0x61, 0x76, 0x69, 0x61, 0x74, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, + 0x6f, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x72, 0x70, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x1a, 0xad, 0x01, 0x0a, 0x09, 0x44, 0x61, + 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x44, 0x0a, 0x05, 0x72, 0x65, 0x64, 0x69, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, + 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x52, + 0x65, 0x64, 0x69, 0x73, 0x48, 0x00, 0x52, 0x05, 0x72, 0x65, 0x64, 0x69, 0x73, 0x12, 0x4d, 0x0a, + 0x08, 0x77, 0x65, 0x61, 0x76, 0x69, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2f, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, + 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, + 0x69, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x57, 0x65, 0x61, 0x76, 0x69, 0x61, 0x74, 0x65, + 0x48, 0x00, 0x52, 0x08, 0x77, 0x65, 0x61, 0x76, 0x69, 0x61, 0x74, 0x65, 0x42, 0x0b, 0x0a, 0x09, + 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x25, 0x0a, 0x04, 0x4d, 0x6f, 0x64, + 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01, + 0x22, 0x91, 0x02, 0x0a, 0x03, 0x52, 0x41, 0x47, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, - 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x47, 0x75, - 0x61, 0x72, 0x64, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x98, 0x01, 0x0a, 0x05, 0x52, 0x65, 0x67, 0x65, 0x78, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x08, 0x62, 0x75, - 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x61, + 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x52, 0x41, 0x47, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, + 0x6f, 0x72, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x40, + 0x0a, 0x09, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, + 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x45, 0x6d, 0x62, 0x65, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6d, 0x70, + 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x59, 0x0a, 0x09, 0x44, 0x61, 0x74, + 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, + 0x69, 0x6f, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x70, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x22, 0xe9, 0x01, 0x0a, 0x12, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, + 0x74, 0x45, 0x6e, 0x72, 0x69, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x07, 0x70, + 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, - 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x47, - 0x75, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x74, - 0x49, 0x6e, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x73, 0x22, 0x23, 0x0a, 0x07, - 0x42, 0x75, 0x69, 0x6c, 0x74, 0x49, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x53, 0x4e, 0x10, 0x00, - 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x52, 0x45, 0x44, 0x49, 0x54, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x10, - 0x01, 0x1a, 0xd7, 0x02, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x12, 0x0a, - 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x54, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, - 0x2e, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x57, - 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x1a, 0xcd, 0x01, 0x0a, 0x0b, + 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x45, + 0x6e, 0x72, 0x69, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x07, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x4b, 0x0a, 0x06, 0x61, 0x70, + 0x70, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x61, 0x69, 0x2e, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, + 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x45, 0x6e, 0x72, + 0x69, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x06, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x1a, 0x37, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x22, 0x92, 0x0b, 0x0a, 0x0d, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x47, 0x75, 0x61, + 0x72, 0x64, 0x12, 0x48, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x49, + 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x08, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, + 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, + 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, + 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, + 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x97, 0x03, 0x0a, 0x05, 0x52, 0x65, + 0x67, 0x65, 0x78, 0x12, 0x51, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, + 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x65, 0x67, + 0x65, 0x78, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x07, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, + 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, + 0x69, 0x6f, 0x2e, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, + 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x49, 0x6e, 0x52, 0x08, + 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, + 0x69, 0x6f, 0x2e, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, + 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x3a, 0x0a, 0x0a, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x40, 0x0a, 0x07, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x49, 0x6e, 0x12, 0x07, 0x0a, 0x03, + 0x53, 0x53, 0x4e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x52, 0x45, 0x44, 0x49, 0x54, 0x5f, + 0x43, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x48, 0x4f, 0x4e, 0x45, 0x5f, + 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4d, 0x41, 0x49, + 0x4c, 0x10, 0x03, 0x22, 0x1e, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, + 0x04, 0x4d, 0x41, 0x53, 0x4b, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4a, 0x45, 0x43, + 0x54, 0x10, 0x01, 0x1a, 0xe5, 0x02, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, + 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, + 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x62, 0x0a, 0x0e, 0x66, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x3a, 0x2e, 0x61, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6c, 0x6f, + 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x41, 0x49, 0x50, 0x72, 0x6f, 0x6d, + 0x70, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x2e, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x0e, 0x66, 0x6f, 0x72, + 0x77, 0x61, 0x72, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x1a, 0xcd, 0x01, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x63, 0x0a, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -3191,107 +3322,111 @@ func file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai return file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_rawDescData } -var file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_msgTypes = make([]protoimpl.MessageInfo, 32) +var file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_msgTypes = make([]protoimpl.MessageInfo, 33) var file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_goTypes = []interface{}{ (RouteSettings_RouteType)(0), // 0: ai.options.gloo.solo.io.RouteSettings.RouteType (SemanticCache_Mode)(0), // 1: ai.options.gloo.solo.io.SemanticCache.Mode (AIPromptGuard_Regex_BuiltIn)(0), // 2: ai.options.gloo.solo.io.AIPromptGuard.Regex.BuiltIn - (AIPromptGuard_Webhook_HeaderMatch_MatchType)(0), // 3: ai.options.gloo.solo.io.AIPromptGuard.Webhook.HeaderMatch.MatchType - (*SingleAuthToken)(nil), // 4: ai.options.gloo.solo.io.SingleAuthToken - (*UpstreamSpec)(nil), // 5: ai.options.gloo.solo.io.UpstreamSpec - (*RouteSettings)(nil), // 6: ai.options.gloo.solo.io.RouteSettings - (*FieldDefault)(nil), // 7: ai.options.gloo.solo.io.FieldDefault - (*Postgres)(nil), // 8: ai.options.gloo.solo.io.Postgres - (*Embedding)(nil), // 9: ai.options.gloo.solo.io.Embedding - (*SemanticCache)(nil), // 10: ai.options.gloo.solo.io.SemanticCache - (*RAG)(nil), // 11: ai.options.gloo.solo.io.RAG - (*AIPromptEnrichment)(nil), // 12: ai.options.gloo.solo.io.AIPromptEnrichment - (*AIPromptGuard)(nil), // 13: ai.options.gloo.solo.io.AIPromptGuard - (*UpstreamSpec_CustomHost)(nil), // 14: ai.options.gloo.solo.io.UpstreamSpec.CustomHost - (*UpstreamSpec_OpenAI)(nil), // 15: ai.options.gloo.solo.io.UpstreamSpec.OpenAI - (*UpstreamSpec_AzureOpenAI)(nil), // 16: ai.options.gloo.solo.io.UpstreamSpec.AzureOpenAI - (*UpstreamSpec_Gemini)(nil), // 17: ai.options.gloo.solo.io.UpstreamSpec.Gemini - (*UpstreamSpec_Mistral)(nil), // 18: ai.options.gloo.solo.io.UpstreamSpec.Mistral - (*UpstreamSpec_Anthropic)(nil), // 19: ai.options.gloo.solo.io.UpstreamSpec.Anthropic - (*UpstreamSpec_MultiPool)(nil), // 20: ai.options.gloo.solo.io.UpstreamSpec.MultiPool - (*UpstreamSpec_MultiPool_Backend)(nil), // 21: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Backend - (*UpstreamSpec_MultiPool_Priority)(nil), // 22: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Priority - (*Embedding_OpenAI)(nil), // 23: ai.options.gloo.solo.io.Embedding.OpenAI - (*Embedding_AzureOpenAI)(nil), // 24: ai.options.gloo.solo.io.Embedding.AzureOpenAI - (*SemanticCache_Redis)(nil), // 25: ai.options.gloo.solo.io.SemanticCache.Redis - (*SemanticCache_Weaviate)(nil), // 26: ai.options.gloo.solo.io.SemanticCache.Weaviate - (*SemanticCache_DataStore)(nil), // 27: ai.options.gloo.solo.io.SemanticCache.DataStore - (*RAG_DataStore)(nil), // 28: ai.options.gloo.solo.io.RAG.DataStore - (*AIPromptEnrichment_Message)(nil), // 29: ai.options.gloo.solo.io.AIPromptEnrichment.Message - (*AIPromptGuard_Regex)(nil), // 30: ai.options.gloo.solo.io.AIPromptGuard.Regex - (*AIPromptGuard_Webhook)(nil), // 31: ai.options.gloo.solo.io.AIPromptGuard.Webhook - (*AIPromptGuard_Request)(nil), // 32: ai.options.gloo.solo.io.AIPromptGuard.Request - (*AIPromptGuard_Response)(nil), // 33: ai.options.gloo.solo.io.AIPromptGuard.Response - (*AIPromptGuard_Webhook_HeaderMatch)(nil), // 34: ai.options.gloo.solo.io.AIPromptGuard.Webhook.HeaderMatch - (*AIPromptGuard_Request_CustomResponse)(nil), // 35: ai.options.gloo.solo.io.AIPromptGuard.Request.CustomResponse - (*core.ResourceRef)(nil), // 36: core.solo.io.ResourceRef - (*_struct.Value)(nil), // 37: google.protobuf.Value + (AIPromptGuard_Regex_Action)(0), // 3: ai.options.gloo.solo.io.AIPromptGuard.Regex.Action + (AIPromptGuard_Webhook_HeaderMatch_MatchType)(0), // 4: ai.options.gloo.solo.io.AIPromptGuard.Webhook.HeaderMatch.MatchType + (*SingleAuthToken)(nil), // 5: ai.options.gloo.solo.io.SingleAuthToken + (*UpstreamSpec)(nil), // 6: ai.options.gloo.solo.io.UpstreamSpec + (*RouteSettings)(nil), // 7: ai.options.gloo.solo.io.RouteSettings + (*FieldDefault)(nil), // 8: ai.options.gloo.solo.io.FieldDefault + (*Postgres)(nil), // 9: ai.options.gloo.solo.io.Postgres + (*Embedding)(nil), // 10: ai.options.gloo.solo.io.Embedding + (*SemanticCache)(nil), // 11: ai.options.gloo.solo.io.SemanticCache + (*RAG)(nil), // 12: ai.options.gloo.solo.io.RAG + (*AIPromptEnrichment)(nil), // 13: ai.options.gloo.solo.io.AIPromptEnrichment + (*AIPromptGuard)(nil), // 14: ai.options.gloo.solo.io.AIPromptGuard + (*UpstreamSpec_CustomHost)(nil), // 15: ai.options.gloo.solo.io.UpstreamSpec.CustomHost + (*UpstreamSpec_OpenAI)(nil), // 16: ai.options.gloo.solo.io.UpstreamSpec.OpenAI + (*UpstreamSpec_AzureOpenAI)(nil), // 17: ai.options.gloo.solo.io.UpstreamSpec.AzureOpenAI + (*UpstreamSpec_Gemini)(nil), // 18: ai.options.gloo.solo.io.UpstreamSpec.Gemini + (*UpstreamSpec_Mistral)(nil), // 19: ai.options.gloo.solo.io.UpstreamSpec.Mistral + (*UpstreamSpec_Anthropic)(nil), // 20: ai.options.gloo.solo.io.UpstreamSpec.Anthropic + (*UpstreamSpec_MultiPool)(nil), // 21: ai.options.gloo.solo.io.UpstreamSpec.MultiPool + (*UpstreamSpec_MultiPool_Backend)(nil), // 22: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Backend + (*UpstreamSpec_MultiPool_Priority)(nil), // 23: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Priority + (*Embedding_OpenAI)(nil), // 24: ai.options.gloo.solo.io.Embedding.OpenAI + (*Embedding_AzureOpenAI)(nil), // 25: ai.options.gloo.solo.io.Embedding.AzureOpenAI + (*SemanticCache_Redis)(nil), // 26: ai.options.gloo.solo.io.SemanticCache.Redis + (*SemanticCache_Weaviate)(nil), // 27: ai.options.gloo.solo.io.SemanticCache.Weaviate + (*SemanticCache_DataStore)(nil), // 28: ai.options.gloo.solo.io.SemanticCache.DataStore + (*RAG_DataStore)(nil), // 29: ai.options.gloo.solo.io.RAG.DataStore + (*AIPromptEnrichment_Message)(nil), // 30: ai.options.gloo.solo.io.AIPromptEnrichment.Message + (*AIPromptGuard_Regex)(nil), // 31: ai.options.gloo.solo.io.AIPromptGuard.Regex + (*AIPromptGuard_Webhook)(nil), // 32: ai.options.gloo.solo.io.AIPromptGuard.Webhook + (*AIPromptGuard_Request)(nil), // 33: ai.options.gloo.solo.io.AIPromptGuard.Request + (*AIPromptGuard_Response)(nil), // 34: ai.options.gloo.solo.io.AIPromptGuard.Response + (*AIPromptGuard_Regex_RegexMatch)(nil), // 35: ai.options.gloo.solo.io.AIPromptGuard.Regex.RegexMatch + (*AIPromptGuard_Webhook_HeaderMatch)(nil), // 36: ai.options.gloo.solo.io.AIPromptGuard.Webhook.HeaderMatch + (*AIPromptGuard_Request_CustomResponse)(nil), // 37: ai.options.gloo.solo.io.AIPromptGuard.Request.CustomResponse + (*core.ResourceRef)(nil), // 38: core.solo.io.ResourceRef + (*_struct.Value)(nil), // 39: google.protobuf.Value } var file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_depIdxs = []int32{ - 36, // 0: ai.options.gloo.solo.io.SingleAuthToken.secret_ref:type_name -> core.solo.io.ResourceRef - 15, // 1: ai.options.gloo.solo.io.UpstreamSpec.openai:type_name -> ai.options.gloo.solo.io.UpstreamSpec.OpenAI - 18, // 2: ai.options.gloo.solo.io.UpstreamSpec.mistral:type_name -> ai.options.gloo.solo.io.UpstreamSpec.Mistral - 19, // 3: ai.options.gloo.solo.io.UpstreamSpec.anthropic:type_name -> ai.options.gloo.solo.io.UpstreamSpec.Anthropic - 16, // 4: ai.options.gloo.solo.io.UpstreamSpec.azure_openai:type_name -> ai.options.gloo.solo.io.UpstreamSpec.AzureOpenAI - 20, // 5: ai.options.gloo.solo.io.UpstreamSpec.multi:type_name -> ai.options.gloo.solo.io.UpstreamSpec.MultiPool - 17, // 6: ai.options.gloo.solo.io.UpstreamSpec.gemini:type_name -> ai.options.gloo.solo.io.UpstreamSpec.Gemini - 12, // 7: ai.options.gloo.solo.io.RouteSettings.prompt_enrichment:type_name -> ai.options.gloo.solo.io.AIPromptEnrichment - 13, // 8: ai.options.gloo.solo.io.RouteSettings.prompt_guard:type_name -> ai.options.gloo.solo.io.AIPromptGuard - 11, // 9: ai.options.gloo.solo.io.RouteSettings.rag:type_name -> ai.options.gloo.solo.io.RAG - 10, // 10: ai.options.gloo.solo.io.RouteSettings.semantic_cache:type_name -> ai.options.gloo.solo.io.SemanticCache - 7, // 11: ai.options.gloo.solo.io.RouteSettings.defaults:type_name -> ai.options.gloo.solo.io.FieldDefault + 38, // 0: ai.options.gloo.solo.io.SingleAuthToken.secret_ref:type_name -> core.solo.io.ResourceRef + 16, // 1: ai.options.gloo.solo.io.UpstreamSpec.openai:type_name -> ai.options.gloo.solo.io.UpstreamSpec.OpenAI + 19, // 2: ai.options.gloo.solo.io.UpstreamSpec.mistral:type_name -> ai.options.gloo.solo.io.UpstreamSpec.Mistral + 20, // 3: ai.options.gloo.solo.io.UpstreamSpec.anthropic:type_name -> ai.options.gloo.solo.io.UpstreamSpec.Anthropic + 17, // 4: ai.options.gloo.solo.io.UpstreamSpec.azure_openai:type_name -> ai.options.gloo.solo.io.UpstreamSpec.AzureOpenAI + 21, // 5: ai.options.gloo.solo.io.UpstreamSpec.multi:type_name -> ai.options.gloo.solo.io.UpstreamSpec.MultiPool + 18, // 6: ai.options.gloo.solo.io.UpstreamSpec.gemini:type_name -> ai.options.gloo.solo.io.UpstreamSpec.Gemini + 13, // 7: ai.options.gloo.solo.io.RouteSettings.prompt_enrichment:type_name -> ai.options.gloo.solo.io.AIPromptEnrichment + 14, // 8: ai.options.gloo.solo.io.RouteSettings.prompt_guard:type_name -> ai.options.gloo.solo.io.AIPromptGuard + 12, // 9: ai.options.gloo.solo.io.RouteSettings.rag:type_name -> ai.options.gloo.solo.io.RAG + 11, // 10: ai.options.gloo.solo.io.RouteSettings.semantic_cache:type_name -> ai.options.gloo.solo.io.SemanticCache + 8, // 11: ai.options.gloo.solo.io.RouteSettings.defaults:type_name -> ai.options.gloo.solo.io.FieldDefault 0, // 12: ai.options.gloo.solo.io.RouteSettings.route_type:type_name -> ai.options.gloo.solo.io.RouteSettings.RouteType - 37, // 13: ai.options.gloo.solo.io.FieldDefault.value:type_name -> google.protobuf.Value - 23, // 14: ai.options.gloo.solo.io.Embedding.openai:type_name -> ai.options.gloo.solo.io.Embedding.OpenAI - 24, // 15: ai.options.gloo.solo.io.Embedding.azure_openai:type_name -> ai.options.gloo.solo.io.Embedding.AzureOpenAI - 27, // 16: ai.options.gloo.solo.io.SemanticCache.datastore:type_name -> ai.options.gloo.solo.io.SemanticCache.DataStore - 9, // 17: ai.options.gloo.solo.io.SemanticCache.embedding:type_name -> ai.options.gloo.solo.io.Embedding + 39, // 13: ai.options.gloo.solo.io.FieldDefault.value:type_name -> google.protobuf.Value + 24, // 14: ai.options.gloo.solo.io.Embedding.openai:type_name -> ai.options.gloo.solo.io.Embedding.OpenAI + 25, // 15: ai.options.gloo.solo.io.Embedding.azure_openai:type_name -> ai.options.gloo.solo.io.Embedding.AzureOpenAI + 28, // 16: ai.options.gloo.solo.io.SemanticCache.datastore:type_name -> ai.options.gloo.solo.io.SemanticCache.DataStore + 10, // 17: ai.options.gloo.solo.io.SemanticCache.embedding:type_name -> ai.options.gloo.solo.io.Embedding 1, // 18: ai.options.gloo.solo.io.SemanticCache.mode:type_name -> ai.options.gloo.solo.io.SemanticCache.Mode - 28, // 19: ai.options.gloo.solo.io.RAG.datastore:type_name -> ai.options.gloo.solo.io.RAG.DataStore - 9, // 20: ai.options.gloo.solo.io.RAG.embedding:type_name -> ai.options.gloo.solo.io.Embedding - 29, // 21: ai.options.gloo.solo.io.AIPromptEnrichment.prepend:type_name -> ai.options.gloo.solo.io.AIPromptEnrichment.Message - 29, // 22: ai.options.gloo.solo.io.AIPromptEnrichment.append:type_name -> ai.options.gloo.solo.io.AIPromptEnrichment.Message - 32, // 23: ai.options.gloo.solo.io.AIPromptGuard.request:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Request - 33, // 24: ai.options.gloo.solo.io.AIPromptGuard.response:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Response - 4, // 25: ai.options.gloo.solo.io.UpstreamSpec.OpenAI.auth_token:type_name -> ai.options.gloo.solo.io.SingleAuthToken - 14, // 26: ai.options.gloo.solo.io.UpstreamSpec.OpenAI.custom_host:type_name -> ai.options.gloo.solo.io.UpstreamSpec.CustomHost - 4, // 27: ai.options.gloo.solo.io.UpstreamSpec.AzureOpenAI.auth_token:type_name -> ai.options.gloo.solo.io.SingleAuthToken - 4, // 28: ai.options.gloo.solo.io.UpstreamSpec.Gemini.auth_token:type_name -> ai.options.gloo.solo.io.SingleAuthToken - 4, // 29: ai.options.gloo.solo.io.UpstreamSpec.Mistral.auth_token:type_name -> ai.options.gloo.solo.io.SingleAuthToken - 14, // 30: ai.options.gloo.solo.io.UpstreamSpec.Mistral.custom_host:type_name -> ai.options.gloo.solo.io.UpstreamSpec.CustomHost - 4, // 31: ai.options.gloo.solo.io.UpstreamSpec.Anthropic.auth_token:type_name -> ai.options.gloo.solo.io.SingleAuthToken - 14, // 32: ai.options.gloo.solo.io.UpstreamSpec.Anthropic.custom_host:type_name -> ai.options.gloo.solo.io.UpstreamSpec.CustomHost - 22, // 33: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.priorities:type_name -> ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Priority - 15, // 34: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Backend.openai:type_name -> ai.options.gloo.solo.io.UpstreamSpec.OpenAI - 18, // 35: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Backend.mistral:type_name -> ai.options.gloo.solo.io.UpstreamSpec.Mistral - 19, // 36: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Backend.anthropic:type_name -> ai.options.gloo.solo.io.UpstreamSpec.Anthropic - 16, // 37: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Backend.azure_openai:type_name -> ai.options.gloo.solo.io.UpstreamSpec.AzureOpenAI - 17, // 38: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Backend.gemini:type_name -> ai.options.gloo.solo.io.UpstreamSpec.Gemini - 21, // 39: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Priority.pool:type_name -> ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Backend - 4, // 40: ai.options.gloo.solo.io.Embedding.OpenAI.auth_token:type_name -> ai.options.gloo.solo.io.SingleAuthToken - 4, // 41: ai.options.gloo.solo.io.Embedding.AzureOpenAI.auth_token:type_name -> ai.options.gloo.solo.io.SingleAuthToken - 25, // 42: ai.options.gloo.solo.io.SemanticCache.DataStore.redis:type_name -> ai.options.gloo.solo.io.SemanticCache.Redis - 26, // 43: ai.options.gloo.solo.io.SemanticCache.DataStore.weaviate:type_name -> ai.options.gloo.solo.io.SemanticCache.Weaviate - 8, // 44: ai.options.gloo.solo.io.RAG.DataStore.postgres:type_name -> ai.options.gloo.solo.io.Postgres - 2, // 45: ai.options.gloo.solo.io.AIPromptGuard.Regex.builtins:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Regex.BuiltIn - 34, // 46: ai.options.gloo.solo.io.AIPromptGuard.Webhook.headers:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Webhook.HeaderMatch - 35, // 47: ai.options.gloo.solo.io.AIPromptGuard.Request.custom_response:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Request.CustomResponse - 30, // 48: ai.options.gloo.solo.io.AIPromptGuard.Request.regex:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Regex - 31, // 49: ai.options.gloo.solo.io.AIPromptGuard.Request.webhook:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Webhook - 30, // 50: ai.options.gloo.solo.io.AIPromptGuard.Response.regex:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Regex - 31, // 51: ai.options.gloo.solo.io.AIPromptGuard.Response.webhook:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Webhook - 3, // 52: ai.options.gloo.solo.io.AIPromptGuard.Webhook.HeaderMatch.match_type:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Webhook.HeaderMatch.MatchType - 53, // [53:53] is the sub-list for method output_type - 53, // [53:53] is the sub-list for method input_type - 53, // [53:53] is the sub-list for extension type_name - 53, // [53:53] is the sub-list for extension extendee - 0, // [0:53] is the sub-list for field type_name + 29, // 19: ai.options.gloo.solo.io.RAG.datastore:type_name -> ai.options.gloo.solo.io.RAG.DataStore + 10, // 20: ai.options.gloo.solo.io.RAG.embedding:type_name -> ai.options.gloo.solo.io.Embedding + 30, // 21: ai.options.gloo.solo.io.AIPromptEnrichment.prepend:type_name -> ai.options.gloo.solo.io.AIPromptEnrichment.Message + 30, // 22: ai.options.gloo.solo.io.AIPromptEnrichment.append:type_name -> ai.options.gloo.solo.io.AIPromptEnrichment.Message + 33, // 23: ai.options.gloo.solo.io.AIPromptGuard.request:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Request + 34, // 24: ai.options.gloo.solo.io.AIPromptGuard.response:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Response + 5, // 25: ai.options.gloo.solo.io.UpstreamSpec.OpenAI.auth_token:type_name -> ai.options.gloo.solo.io.SingleAuthToken + 15, // 26: ai.options.gloo.solo.io.UpstreamSpec.OpenAI.custom_host:type_name -> ai.options.gloo.solo.io.UpstreamSpec.CustomHost + 5, // 27: ai.options.gloo.solo.io.UpstreamSpec.AzureOpenAI.auth_token:type_name -> ai.options.gloo.solo.io.SingleAuthToken + 5, // 28: ai.options.gloo.solo.io.UpstreamSpec.Gemini.auth_token:type_name -> ai.options.gloo.solo.io.SingleAuthToken + 5, // 29: ai.options.gloo.solo.io.UpstreamSpec.Mistral.auth_token:type_name -> ai.options.gloo.solo.io.SingleAuthToken + 15, // 30: ai.options.gloo.solo.io.UpstreamSpec.Mistral.custom_host:type_name -> ai.options.gloo.solo.io.UpstreamSpec.CustomHost + 5, // 31: ai.options.gloo.solo.io.UpstreamSpec.Anthropic.auth_token:type_name -> ai.options.gloo.solo.io.SingleAuthToken + 15, // 32: ai.options.gloo.solo.io.UpstreamSpec.Anthropic.custom_host:type_name -> ai.options.gloo.solo.io.UpstreamSpec.CustomHost + 23, // 33: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.priorities:type_name -> ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Priority + 16, // 34: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Backend.openai:type_name -> ai.options.gloo.solo.io.UpstreamSpec.OpenAI + 19, // 35: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Backend.mistral:type_name -> ai.options.gloo.solo.io.UpstreamSpec.Mistral + 20, // 36: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Backend.anthropic:type_name -> ai.options.gloo.solo.io.UpstreamSpec.Anthropic + 17, // 37: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Backend.azure_openai:type_name -> ai.options.gloo.solo.io.UpstreamSpec.AzureOpenAI + 18, // 38: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Backend.gemini:type_name -> ai.options.gloo.solo.io.UpstreamSpec.Gemini + 22, // 39: ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Priority.pool:type_name -> ai.options.gloo.solo.io.UpstreamSpec.MultiPool.Backend + 5, // 40: ai.options.gloo.solo.io.Embedding.OpenAI.auth_token:type_name -> ai.options.gloo.solo.io.SingleAuthToken + 5, // 41: ai.options.gloo.solo.io.Embedding.AzureOpenAI.auth_token:type_name -> ai.options.gloo.solo.io.SingleAuthToken + 26, // 42: ai.options.gloo.solo.io.SemanticCache.DataStore.redis:type_name -> ai.options.gloo.solo.io.SemanticCache.Redis + 27, // 43: ai.options.gloo.solo.io.SemanticCache.DataStore.weaviate:type_name -> ai.options.gloo.solo.io.SemanticCache.Weaviate + 9, // 44: ai.options.gloo.solo.io.RAG.DataStore.postgres:type_name -> ai.options.gloo.solo.io.Postgres + 35, // 45: ai.options.gloo.solo.io.AIPromptGuard.Regex.matches:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Regex.RegexMatch + 2, // 46: ai.options.gloo.solo.io.AIPromptGuard.Regex.builtins:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Regex.BuiltIn + 3, // 47: ai.options.gloo.solo.io.AIPromptGuard.Regex.action:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Regex.Action + 36, // 48: ai.options.gloo.solo.io.AIPromptGuard.Webhook.forwardHeaders:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Webhook.HeaderMatch + 37, // 49: ai.options.gloo.solo.io.AIPromptGuard.Request.custom_response:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Request.CustomResponse + 31, // 50: ai.options.gloo.solo.io.AIPromptGuard.Request.regex:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Regex + 32, // 51: ai.options.gloo.solo.io.AIPromptGuard.Request.webhook:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Webhook + 31, // 52: ai.options.gloo.solo.io.AIPromptGuard.Response.regex:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Regex + 32, // 53: ai.options.gloo.solo.io.AIPromptGuard.Response.webhook:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Webhook + 4, // 54: ai.options.gloo.solo.io.AIPromptGuard.Webhook.HeaderMatch.match_type:type_name -> ai.options.gloo.solo.io.AIPromptGuard.Webhook.HeaderMatch.MatchType + 55, // [55:55] is the sub-list for method output_type + 55, // [55:55] is the sub-list for method input_type + 55, // [55:55] is the sub-list for extension type_name + 55, // [55:55] is the sub-list for extension extendee + 0, // [0:55] is the sub-list for field type_name } func init() { file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_init() } @@ -3661,7 +3796,7 @@ func file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai } } file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AIPromptGuard_Webhook_HeaderMatch); i { + switch v := v.(*AIPromptGuard_Regex_RegexMatch); i { case 0: return &v.state case 1: @@ -3673,6 +3808,18 @@ func file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai } } file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AIPromptGuard_Webhook_HeaderMatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AIPromptGuard_Request_CustomResponse); i { case 0: return &v.state @@ -3732,8 +3879,8 @@ func file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_enterprise_options_ai_ai_proto_rawDesc, - NumEnums: 4, - NumMessages: 32, + NumEnums: 5, + NumMessages: 33, NumExtensions: 0, NumServices: 0, }, diff --git a/pkg/api/gloo.solo.io/v1/enterprise/options/ai/ai.pb.hash.go b/pkg/api/gloo.solo.io/v1/enterprise/options/ai/ai.pb.hash.go index 1158d2c3..0d9775ed 100644 --- a/pkg/api/gloo.solo.io/v1/enterprise/options/ai/ai.pb.hash.go +++ b/pkg/api/gloo.solo.io/v1/enterprise/options/ai/ai.pb.hash.go @@ -1553,8 +1553,24 @@ func (m *AIPromptGuard_Regex) Hash(hasher hash.Hash64) (uint64, error) { for _, v := range m.GetMatches() { - if _, err = hasher.Write([]byte(v)); err != nil { - return 0, err + if h, ok := interface{}(v).(safe_hasher.SafeHasher); ok { + if _, err = hasher.Write([]byte("")); err != nil { + return 0, err + } + if _, err = h.Hash(hasher); err != nil { + return 0, err + } + } else { + if fieldValue, err := hashstructure.Hash(v, nil); err != nil { + return 0, err + } else { + if _, err = hasher.Write([]byte("")); err != nil { + return 0, err + } + if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil { + return 0, err + } + } } } @@ -1568,6 +1584,11 @@ func (m *AIPromptGuard_Regex) Hash(hasher hash.Hash64) (uint64, error) { } + err = binary.Write(hasher, binary.LittleEndian, m.GetAction()) + if err != nil { + return 0, err + } + return hasher.Sum64(), nil } @@ -1593,7 +1614,7 @@ func (m *AIPromptGuard_Webhook) Hash(hasher hash.Hash64) (uint64, error) { return 0, err } - for _, v := range m.GetHeaders() { + for _, v := range m.GetForwardHeaders() { if h, ok := interface{}(v).(safe_hasher.SafeHasher); ok { if _, err = hasher.Write([]byte("")); err != nil { @@ -1752,6 +1773,30 @@ func (m *AIPromptGuard_Response) Hash(hasher hash.Hash64) (uint64, error) { return hasher.Sum64(), nil } +// Hash function +func (m *AIPromptGuard_Regex_RegexMatch) Hash(hasher hash.Hash64) (uint64, error) { + if m == nil { + return 0, nil + } + if hasher == nil { + hasher = fnv.New64() + } + var err error + if _, err = hasher.Write([]byte("ai.options.gloo.solo.io.github.com/solo-io/solo-apis/pkg/api/gloo.solo.io/v1/enterprise/options/ai.AIPromptGuard_Regex_RegexMatch")); err != nil { + return 0, err + } + + if _, err = hasher.Write([]byte(m.GetPattern())); err != nil { + return 0, err + } + + if _, err = hasher.Write([]byte(m.GetName())); err != nil { + return 0, err + } + + return hasher.Sum64(), nil +} + // Hash function func (m *AIPromptGuard_Webhook_HeaderMatch) Hash(hasher hash.Hash64) (uint64, error) { if m == nil { diff --git a/pkg/api/gloo.solo.io/v1/load_balancer.pb.clone.go b/pkg/api/gloo.solo.io/v1/load_balancer.pb.clone.go index bd353b7e..917d16c1 100644 --- a/pkg/api/gloo.solo.io/v1/load_balancer.pb.clone.go +++ b/pkg/api/gloo.solo.io/v1/load_balancer.pb.clone.go @@ -57,6 +57,8 @@ func (m *LoadBalancerConfig) Clone() proto.Message { target.UseHostnameForHashing = proto.Clone(m.GetUseHostnameForHashing()).(*github_com_golang_protobuf_ptypes_wrappers.BoolValue) } + target.CloseConnectionsOnHostSetChange = m.GetCloseConnectionsOnHostSetChange() + switch m.Type.(type) { case *LoadBalancerConfig_RoundRobin_: diff --git a/pkg/api/gloo.solo.io/v1/load_balancer.pb.equal.go b/pkg/api/gloo.solo.io/v1/load_balancer.pb.equal.go index f82422cb..7b3f32b7 100644 --- a/pkg/api/gloo.solo.io/v1/load_balancer.pb.equal.go +++ b/pkg/api/gloo.solo.io/v1/load_balancer.pb.equal.go @@ -76,6 +76,10 @@ func (m *LoadBalancerConfig) Equal(that interface{}) bool { } } + if m.GetCloseConnectionsOnHostSetChange() != target.GetCloseConnectionsOnHostSetChange() { + return false + } + switch m.Type.(type) { case *LoadBalancerConfig_RoundRobin_: diff --git a/pkg/api/gloo.solo.io/v1/load_balancer.pb.go b/pkg/api/gloo.solo.io/v1/load_balancer.pb.go index 2517aa34..b2e1ec2e 100644 --- a/pkg/api/gloo.solo.io/v1/load_balancer.pb.go +++ b/pkg/api/gloo.solo.io/v1/load_balancer.pb.go @@ -53,6 +53,17 @@ type LoadBalancerConfig struct { LocalityConfig isLoadBalancerConfig_LocalityConfig `protobuf_oneof:"locality_config"` // Default: false, If set to true, the hostname will be used for hashing when using maglev for example, useful when using multiple host in the upstreams that resolve to the same IP. UseHostnameForHashing *wrappers.BoolValue `protobuf:"bytes,9,opt,name=use_hostname_for_hashing,json=useHostnameForHashing,proto3" json:"use_hostname_for_hashing,omitempty"` + // If set to true, the load balancer will drain connections when the host set changes. + // + // Ring Hash or Maglev can be used to ensure that clients with the same key + // are routed to the same upstream host. + // Distruptions can cause new connections with the same key as existing connections + // to be routed to different hosts. + // Enabling this feature will cause the load balancer to drain existing connections + // when the host set changes, ensuring that new connections with the same key are + // consistently routed to the same host. + // Connections are not immediately closed, but are allowed to drain. + CloseConnectionsOnHostSetChange bool `protobuf:"varint,10,opt,name=close_connections_on_host_set_change,json=closeConnectionsOnHostSetChange,proto3" json:"close_connections_on_host_set_change,omitempty"` } func (x *LoadBalancerConfig) Reset() { @@ -164,6 +175,13 @@ func (x *LoadBalancerConfig) GetUseHostnameForHashing() *wrappers.BoolValue { return nil } +func (x *LoadBalancerConfig) GetCloseConnectionsOnHostSetChange() bool { + if x != nil { + return x.CloseConnectionsOnHostSetChange + } + return false +} + type isLoadBalancerConfig_Type interface { isLoadBalancerConfig_Type() } @@ -603,7 +621,7 @@ var file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_load_balancer_proto_rawDe 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x12, 0x65, 0x78, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0xbc, 0x0b, 0x0a, 0x12, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x74, 0x6f, 0x22, 0x8b, 0x0c, 0x0a, 0x12, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x54, 0x0a, 0x17, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x5f, 0x70, 0x61, 0x6e, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, @@ -648,58 +666,63 @@ var file_github_com_solo_io_solo_apis_api_gloo_gloo_v1_load_balancer_proto_rawDe 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x75, 0x73, 0x65, 0x48, 0x6f, 0x73, 0x74, - 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x48, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x1a, 0x6a, - 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x6f, 0x62, 0x69, 0x6e, 0x12, 0x5c, 0x0a, 0x11, - 0x73, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, - 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x6c, 0x6f, 0x77, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0f, 0x73, 0x6c, 0x6f, 0x77, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x8f, 0x01, 0x0a, 0x0c, 0x4c, - 0x65, 0x61, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5c, - 0x0a, 0x11, 0x73, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, - 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x6c, 0x6f, 0x77, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0f, 0x73, 0x6c, 0x6f, - 0x77, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x08, 0x0a, 0x06, - 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x1a, 0x68, 0x0a, 0x0e, 0x52, 0x69, 0x6e, 0x67, 0x48, 0x61, - 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x69, 0x6e, 0x67, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, - 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x7a, 0x65, - 0x1a, 0x65, 0x0a, 0x08, 0x52, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, 0x68, 0x12, 0x59, 0x0a, 0x10, - 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, + 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x48, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x4d, + 0x0a, 0x24, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1f, 0x63, 0x6c, + 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x6e, + 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x1a, 0x6a, 0x0a, + 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x6f, 0x62, 0x69, 0x6e, 0x12, 0x5c, 0x0a, 0x11, 0x73, + 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, - 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, - 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x08, 0x0a, 0x06, 0x4d, 0x61, 0x67, 0x6c, 0x65, - 0x76, 0x1a, 0xe2, 0x01, 0x0a, 0x0f, 0x53, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x45, 0x0a, 0x11, 0x73, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x73, 0x6c, 0x6f, - 0x77, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x3c, 0x0a, 0x0a, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x12, 0x6d, 0x69, - 0x6e, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, - 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, - 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x42, 0x42, 0xb8, 0xf5, 0x04, 0x01, 0xc0, 0xf5, 0x04, 0x01, 0xd0, 0xf5, 0x04, 0x01, 0x5a, - 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x6f, 0x6c, 0x6f, - 0x2d, 0x69, 0x6f, 0x2f, 0x73, 0x6f, 0x6c, 0x6f, 0x2d, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x70, 0x6b, - 0x67, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, - 0x69, 0x6f, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0f, 0x73, 0x6c, 0x6f, 0x77, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x8f, 0x01, 0x0a, 0x0c, 0x4c, 0x65, + 0x61, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5c, 0x0a, + 0x11, 0x73, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, + 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x6c, 0x6f, 0x77, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0f, 0x73, 0x6c, 0x6f, 0x77, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x08, 0x0a, 0x06, 0x52, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x1a, 0x68, 0x0a, 0x0e, 0x52, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, + 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x69, 0x6e, 0x67, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, + 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x1a, + 0x65, 0x0a, 0x08, 0x52, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, 0x68, 0x12, 0x59, 0x0a, 0x10, 0x72, + 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, + 0x6f, 0x2e, 0x69, 0x6f, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x08, 0x0a, 0x06, 0x4d, 0x61, 0x67, 0x6c, 0x65, 0x76, + 0x1a, 0xe2, 0x01, 0x0a, 0x0f, 0x53, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x45, 0x0a, 0x11, 0x73, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x73, 0x6c, 0x6f, 0x77, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x3c, 0x0a, 0x0a, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x12, 0x6d, 0x69, 0x6e, + 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x65, + 0x72, 0x63, 0x65, 0x6e, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, + 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x42, 0x42, 0xb8, 0xf5, 0x04, 0x01, 0xc0, 0xf5, 0x04, 0x01, 0xd0, 0xf5, 0x04, 0x01, 0x5a, 0x34, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x6f, 0x6c, 0x6f, 0x2d, + 0x69, 0x6f, 0x2f, 0x73, 0x6f, 0x6c, 0x6f, 0x2d, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x70, 0x6b, 0x67, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6c, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x6c, 0x6f, 0x2e, 0x69, + 0x6f, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pkg/api/gloo.solo.io/v1/load_balancer.pb.hash.go b/pkg/api/gloo.solo.io/v1/load_balancer.pb.hash.go index ad63afd0..47ebd887 100644 --- a/pkg/api/gloo.solo.io/v1/load_balancer.pb.hash.go +++ b/pkg/api/gloo.solo.io/v1/load_balancer.pb.hash.go @@ -98,6 +98,11 @@ func (m *LoadBalancerConfig) Hash(hasher hash.Hash64) (uint64, error) { } } + err = binary.Write(hasher, binary.LittleEndian, m.GetCloseConnectionsOnHostSetChange()) + if err != nil { + return 0, err + } + switch m.Type.(type) { case *LoadBalancerConfig_RoundRobin_: diff --git a/pkg/api/gloo.solo.io/v1/settings.pb.go b/pkg/api/gloo.solo.io/v1/settings.pb.go index 0691808a..0817c17b 100644 --- a/pkg/api/gloo.solo.io/v1/settings.pb.go +++ b/pkg/api/gloo.solo.io/v1/settings.pb.go @@ -3672,7 +3672,8 @@ type GatewayOptions_ValidationOptions struct { // validation mode. This has an negative impact on the total translation throughput, but it // helps ensure the configuration will not be nacked when served to Envoy. // - // This feature is not yet implemented. + // This feature is disabled by default and is not recommended for production deployments unless + // the performance implications are well understood and acceptable. FullEnvoyValidation *wrappers.BoolValue `protobuf:"bytes,14,opt,name=full_envoy_validation,json=fullEnvoyValidation,proto3" json:"full_envoy_validation,omitempty"` }