...

Source file src/github.com/datawire/ambassador/v2/pkg/api/envoy/config/rbac/v3/rbac.pb.go

Documentation: github.com/datawire/ambassador/v2/pkg/api/envoy/config/rbac/v3

     1  // Code generated by protoc-gen-go. DO NOT EDIT.
     2  // versions:
     3  // 	protoc-gen-go v1.25.0
     4  // 	protoc        v3.14.0
     5  // source: envoy/config/rbac/v3/rbac.proto
     6  
     7  package envoy_config_rbac_v3
     8  
     9  import (
    10  	_ "github.com/cncf/udpa/go/udpa/annotations"
    11  	v32 "github.com/datawire/ambassador/v2/pkg/api/envoy/config/core/v3"
    12  	v3 "github.com/datawire/ambassador/v2/pkg/api/envoy/config/route/v3"
    13  	v31 "github.com/datawire/ambassador/v2/pkg/api/envoy/type/matcher/v3"
    14  	_ "github.com/envoyproxy/protoc-gen-validate/validate"
    15  	proto "github.com/golang/protobuf/proto"
    16  	v1alpha1 "google.golang.org/genproto/googleapis/api/expr/v1alpha1"
    17  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    18  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    19  	reflect "reflect"
    20  	sync "sync"
    21  )
    22  
    23  const (
    24  	// Verify that this generated code is sufficiently up-to-date.
    25  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    26  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    27  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    28  )
    29  
    30  // This is a compile-time assertion that a sufficiently up-to-date version
    31  // of the legacy proto package is being used.
    32  const _ = proto.ProtoPackageIsVersion4
    33  
    34  // Should we do safe-list or block-list style access control?
    35  type RBAC_Action int32
    36  
    37  const (
    38  	// The policies grant access to principals. The rest are denied. This is safe-list style
    39  	// access control. This is the default type.
    40  	RBAC_ALLOW RBAC_Action = 0
    41  	// The policies deny access to principals. The rest are allowed. This is block-list style
    42  	// access control.
    43  	RBAC_DENY RBAC_Action = 1
    44  	// The policies set the `access_log_hint` dynamic metadata key based on if requests match.
    45  	// All requests are allowed.
    46  	RBAC_LOG RBAC_Action = 2
    47  )
    48  
    49  // Enum value maps for RBAC_Action.
    50  var (
    51  	RBAC_Action_name = map[int32]string{
    52  		0: "ALLOW",
    53  		1: "DENY",
    54  		2: "LOG",
    55  	}
    56  	RBAC_Action_value = map[string]int32{
    57  		"ALLOW": 0,
    58  		"DENY":  1,
    59  		"LOG":   2,
    60  	}
    61  )
    62  
    63  func (x RBAC_Action) Enum() *RBAC_Action {
    64  	p := new(RBAC_Action)
    65  	*p = x
    66  	return p
    67  }
    68  
    69  func (x RBAC_Action) String() string {
    70  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    71  }
    72  
    73  func (RBAC_Action) Descriptor() protoreflect.EnumDescriptor {
    74  	return file_envoy_config_rbac_v3_rbac_proto_enumTypes[0].Descriptor()
    75  }
    76  
    77  func (RBAC_Action) Type() protoreflect.EnumType {
    78  	return &file_envoy_config_rbac_v3_rbac_proto_enumTypes[0]
    79  }
    80  
    81  func (x RBAC_Action) Number() protoreflect.EnumNumber {
    82  	return protoreflect.EnumNumber(x)
    83  }
    84  
    85  // Deprecated: Use RBAC_Action.Descriptor instead.
    86  func (RBAC_Action) EnumDescriptor() ([]byte, []int) {
    87  	return file_envoy_config_rbac_v3_rbac_proto_rawDescGZIP(), []int{0, 0}
    88  }
    89  
    90  // Role Based Access Control (RBAC) provides service-level and method-level access control for a
    91  // service. RBAC policies are additive. The policies are examined in order. Requests are allowed
    92  // or denied based on the `action` and whether a matching policy is found. For instance, if the
    93  // action is ALLOW and a matching policy is found the request should be allowed.
    94  //
    95  // RBAC can also be used to make access logging decisions by communicating with access loggers
    96  // through dynamic metadata. When the action is LOG and at least one policy matches, the
    97  // `access_log_hint` value in the shared key namespace 'envoy.common' is set to `true` indicating
    98  // the request should be logged.
    99  //
   100  // Here is an example of RBAC configuration. It has two policies:
   101  //
   102  //   - Service account "cluster.local/ns/default/sa/admin" has full access to the service, and so
   103  //     does "cluster.local/ns/default/sa/superuser".
   104  //
   105  //   - Any user can read ("GET") the service at paths with prefix "/products", so long as the
   106  //     destination port is either 80 or 443.
   107  //
   108  //     .. code-block:: yaml
   109  //
   110  //     action: ALLOW
   111  //     policies:
   112  //     "service-admin":
   113  //     permissions:
   114  //
   115  //   - any: true
   116  //     principals:
   117  //
   118  //   - authenticated:
   119  //     principal_name:
   120  //     exact: "cluster.local/ns/default/sa/admin"
   121  //
   122  //   - authenticated:
   123  //     principal_name:
   124  //     exact: "cluster.local/ns/default/sa/superuser"
   125  //     "product-viewer":
   126  //     permissions:
   127  //
   128  //   - and_rules:
   129  //     rules:
   130  //
   131  //   - header: { name: ":method", exact_match: "GET" }
   132  //
   133  //   - url_path:
   134  //     path: { prefix: "/products" }
   135  //
   136  //   - or_rules:
   137  //     rules:
   138  //
   139  //   - destination_port: 80
   140  //
   141  //   - destination_port: 443
   142  //     principals:
   143  //
   144  //   - any: true
   145  type RBAC struct {
   146  	state         protoimpl.MessageState
   147  	sizeCache     protoimpl.SizeCache
   148  	unknownFields protoimpl.UnknownFields
   149  
   150  	// The action to take if a policy matches. Every action either allows or denies a request,
   151  	// and can also carry out action-specific operations.
   152  	//
   153  	// Actions:
   154  	//
   155  	//  * ALLOW: Allows the request if and only if there is a policy that matches
   156  	//    the request.
   157  	//  * DENY: Allows the request if and only if there are no policies that
   158  	//    match the request.
   159  	//  * LOG: Allows all requests. If at least one policy matches, the dynamic
   160  	//    metadata key `access_log_hint` is set to the value `true` under the shared
   161  	//    key namespace 'envoy.common'. If no policies match, it is set to `false`.
   162  	//    Other actions do not modify this key.
   163  	//
   164  	Action RBAC_Action `protobuf:"varint,1,opt,name=action,proto3,enum=envoy.config.rbac.v3.RBAC_Action" json:"action,omitempty"`
   165  	// Maps from policy name to policy. A match occurs when at least one policy matches the request.
   166  	Policies map[string]*Policy `protobuf:"bytes,2,rep,name=policies,proto3" json:"policies,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   167  }
   168  
   169  func (x *RBAC) Reset() {
   170  	*x = RBAC{}
   171  	if protoimpl.UnsafeEnabled {
   172  		mi := &file_envoy_config_rbac_v3_rbac_proto_msgTypes[0]
   173  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   174  		ms.StoreMessageInfo(mi)
   175  	}
   176  }
   177  
   178  func (x *RBAC) String() string {
   179  	return protoimpl.X.MessageStringOf(x)
   180  }
   181  
   182  func (*RBAC) ProtoMessage() {}
   183  
   184  func (x *RBAC) ProtoReflect() protoreflect.Message {
   185  	mi := &file_envoy_config_rbac_v3_rbac_proto_msgTypes[0]
   186  	if protoimpl.UnsafeEnabled && x != nil {
   187  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   188  		if ms.LoadMessageInfo() == nil {
   189  			ms.StoreMessageInfo(mi)
   190  		}
   191  		return ms
   192  	}
   193  	return mi.MessageOf(x)
   194  }
   195  
   196  // Deprecated: Use RBAC.ProtoReflect.Descriptor instead.
   197  func (*RBAC) Descriptor() ([]byte, []int) {
   198  	return file_envoy_config_rbac_v3_rbac_proto_rawDescGZIP(), []int{0}
   199  }
   200  
   201  func (x *RBAC) GetAction() RBAC_Action {
   202  	if x != nil {
   203  		return x.Action
   204  	}
   205  	return RBAC_ALLOW
   206  }
   207  
   208  func (x *RBAC) GetPolicies() map[string]*Policy {
   209  	if x != nil {
   210  		return x.Policies
   211  	}
   212  	return nil
   213  }
   214  
   215  // Policy specifies a role and the principals that are assigned/denied the role.
   216  // A policy matches if and only if at least one of its permissions match the
   217  // action taking place AND at least one of its principals match the downstream
   218  // AND the condition is true if specified.
   219  type Policy struct {
   220  	state         protoimpl.MessageState
   221  	sizeCache     protoimpl.SizeCache
   222  	unknownFields protoimpl.UnknownFields
   223  
   224  	// Required. The set of permissions that define a role. Each permission is
   225  	// matched with OR semantics. To match all actions for this policy, a single
   226  	// Permission with the `any` field set to true should be used.
   227  	Permissions []*Permission `protobuf:"bytes,1,rep,name=permissions,proto3" json:"permissions,omitempty"`
   228  	// Required. The set of principals that are assigned/denied the role based on
   229  	// “action”. Each principal is matched with OR semantics. To match all
   230  	// downstreams for this policy, a single Principal with the `any` field set to
   231  	// true should be used.
   232  	Principals []*Principal `protobuf:"bytes,2,rep,name=principals,proto3" json:"principals,omitempty"`
   233  	// An optional symbolic expression specifying an access control
   234  	// :ref:`condition <arch_overview_condition>`. The condition is combined
   235  	// with the permissions and the principals as a clause with AND semantics.
   236  	// Only be used when checked_condition is not used.
   237  	Condition *v1alpha1.Expr `protobuf:"bytes,3,opt,name=condition,proto3" json:"condition,omitempty"`
   238  	// [#not-implemented-hide:]
   239  	// An optional symbolic expression that has been successfully type checked.
   240  	// Only be used when condition is not used.
   241  	CheckedCondition *v1alpha1.CheckedExpr `protobuf:"bytes,4,opt,name=checked_condition,json=checkedCondition,proto3" json:"checked_condition,omitempty"`
   242  }
   243  
   244  func (x *Policy) Reset() {
   245  	*x = Policy{}
   246  	if protoimpl.UnsafeEnabled {
   247  		mi := &file_envoy_config_rbac_v3_rbac_proto_msgTypes[1]
   248  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   249  		ms.StoreMessageInfo(mi)
   250  	}
   251  }
   252  
   253  func (x *Policy) String() string {
   254  	return protoimpl.X.MessageStringOf(x)
   255  }
   256  
   257  func (*Policy) ProtoMessage() {}
   258  
   259  func (x *Policy) ProtoReflect() protoreflect.Message {
   260  	mi := &file_envoy_config_rbac_v3_rbac_proto_msgTypes[1]
   261  	if protoimpl.UnsafeEnabled && x != nil {
   262  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   263  		if ms.LoadMessageInfo() == nil {
   264  			ms.StoreMessageInfo(mi)
   265  		}
   266  		return ms
   267  	}
   268  	return mi.MessageOf(x)
   269  }
   270  
   271  // Deprecated: Use Policy.ProtoReflect.Descriptor instead.
   272  func (*Policy) Descriptor() ([]byte, []int) {
   273  	return file_envoy_config_rbac_v3_rbac_proto_rawDescGZIP(), []int{1}
   274  }
   275  
   276  func (x *Policy) GetPermissions() []*Permission {
   277  	if x != nil {
   278  		return x.Permissions
   279  	}
   280  	return nil
   281  }
   282  
   283  func (x *Policy) GetPrincipals() []*Principal {
   284  	if x != nil {
   285  		return x.Principals
   286  	}
   287  	return nil
   288  }
   289  
   290  func (x *Policy) GetCondition() *v1alpha1.Expr {
   291  	if x != nil {
   292  		return x.Condition
   293  	}
   294  	return nil
   295  }
   296  
   297  func (x *Policy) GetCheckedCondition() *v1alpha1.CheckedExpr {
   298  	if x != nil {
   299  		return x.CheckedCondition
   300  	}
   301  	return nil
   302  }
   303  
   304  // Permission defines an action (or actions) that a principal can take.
   305  // [#next-free-field: 11]
   306  type Permission struct {
   307  	state         protoimpl.MessageState
   308  	sizeCache     protoimpl.SizeCache
   309  	unknownFields protoimpl.UnknownFields
   310  
   311  	// Types that are assignable to Rule:
   312  	//	*Permission_AndRules
   313  	//	*Permission_OrRules
   314  	//	*Permission_Any
   315  	//	*Permission_Header
   316  	//	*Permission_UrlPath
   317  	//	*Permission_DestinationIp
   318  	//	*Permission_DestinationPort
   319  	//	*Permission_Metadata
   320  	//	*Permission_NotRule
   321  	//	*Permission_RequestedServerName
   322  	Rule isPermission_Rule `protobuf_oneof:"rule"`
   323  }
   324  
   325  func (x *Permission) Reset() {
   326  	*x = Permission{}
   327  	if protoimpl.UnsafeEnabled {
   328  		mi := &file_envoy_config_rbac_v3_rbac_proto_msgTypes[2]
   329  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   330  		ms.StoreMessageInfo(mi)
   331  	}
   332  }
   333  
   334  func (x *Permission) String() string {
   335  	return protoimpl.X.MessageStringOf(x)
   336  }
   337  
   338  func (*Permission) ProtoMessage() {}
   339  
   340  func (x *Permission) ProtoReflect() protoreflect.Message {
   341  	mi := &file_envoy_config_rbac_v3_rbac_proto_msgTypes[2]
   342  	if protoimpl.UnsafeEnabled && x != nil {
   343  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   344  		if ms.LoadMessageInfo() == nil {
   345  			ms.StoreMessageInfo(mi)
   346  		}
   347  		return ms
   348  	}
   349  	return mi.MessageOf(x)
   350  }
   351  
   352  // Deprecated: Use Permission.ProtoReflect.Descriptor instead.
   353  func (*Permission) Descriptor() ([]byte, []int) {
   354  	return file_envoy_config_rbac_v3_rbac_proto_rawDescGZIP(), []int{2}
   355  }
   356  
   357  func (m *Permission) GetRule() isPermission_Rule {
   358  	if m != nil {
   359  		return m.Rule
   360  	}
   361  	return nil
   362  }
   363  
   364  func (x *Permission) GetAndRules() *Permission_Set {
   365  	if x, ok := x.GetRule().(*Permission_AndRules); ok {
   366  		return x.AndRules
   367  	}
   368  	return nil
   369  }
   370  
   371  func (x *Permission) GetOrRules() *Permission_Set {
   372  	if x, ok := x.GetRule().(*Permission_OrRules); ok {
   373  		return x.OrRules
   374  	}
   375  	return nil
   376  }
   377  
   378  func (x *Permission) GetAny() bool {
   379  	if x, ok := x.GetRule().(*Permission_Any); ok {
   380  		return x.Any
   381  	}
   382  	return false
   383  }
   384  
   385  func (x *Permission) GetHeader() *v3.HeaderMatcher {
   386  	if x, ok := x.GetRule().(*Permission_Header); ok {
   387  		return x.Header
   388  	}
   389  	return nil
   390  }
   391  
   392  func (x *Permission) GetUrlPath() *v31.PathMatcher {
   393  	if x, ok := x.GetRule().(*Permission_UrlPath); ok {
   394  		return x.UrlPath
   395  	}
   396  	return nil
   397  }
   398  
   399  func (x *Permission) GetDestinationIp() *v32.CidrRange {
   400  	if x, ok := x.GetRule().(*Permission_DestinationIp); ok {
   401  		return x.DestinationIp
   402  	}
   403  	return nil
   404  }
   405  
   406  func (x *Permission) GetDestinationPort() uint32 {
   407  	if x, ok := x.GetRule().(*Permission_DestinationPort); ok {
   408  		return x.DestinationPort
   409  	}
   410  	return 0
   411  }
   412  
   413  func (x *Permission) GetMetadata() *v31.MetadataMatcher {
   414  	if x, ok := x.GetRule().(*Permission_Metadata); ok {
   415  		return x.Metadata
   416  	}
   417  	return nil
   418  }
   419  
   420  func (x *Permission) GetNotRule() *Permission {
   421  	if x, ok := x.GetRule().(*Permission_NotRule); ok {
   422  		return x.NotRule
   423  	}
   424  	return nil
   425  }
   426  
   427  func (x *Permission) GetRequestedServerName() *v31.StringMatcher {
   428  	if x, ok := x.GetRule().(*Permission_RequestedServerName); ok {
   429  		return x.RequestedServerName
   430  	}
   431  	return nil
   432  }
   433  
   434  type isPermission_Rule interface {
   435  	isPermission_Rule()
   436  }
   437  
   438  type Permission_AndRules struct {
   439  	// A set of rules that all must match in order to define the action.
   440  	AndRules *Permission_Set `protobuf:"bytes,1,opt,name=and_rules,json=andRules,proto3,oneof"`
   441  }
   442  
   443  type Permission_OrRules struct {
   444  	// A set of rules where at least one must match in order to define the action.
   445  	OrRules *Permission_Set `protobuf:"bytes,2,opt,name=or_rules,json=orRules,proto3,oneof"`
   446  }
   447  
   448  type Permission_Any struct {
   449  	// When any is set, it matches any action.
   450  	Any bool `protobuf:"varint,3,opt,name=any,proto3,oneof"`
   451  }
   452  
   453  type Permission_Header struct {
   454  	// A header (or pseudo-header such as :path or :method) on the incoming HTTP request. Only
   455  	// available for HTTP request.
   456  	// Note: the pseudo-header :path includes the query and fragment string. Use the `url_path`
   457  	// field if you want to match the URL path without the query and fragment string.
   458  	Header *v3.HeaderMatcher `protobuf:"bytes,4,opt,name=header,proto3,oneof"`
   459  }
   460  
   461  type Permission_UrlPath struct {
   462  	// A URL path on the incoming HTTP request. Only available for HTTP.
   463  	UrlPath *v31.PathMatcher `protobuf:"bytes,10,opt,name=url_path,json=urlPath,proto3,oneof"`
   464  }
   465  
   466  type Permission_DestinationIp struct {
   467  	// A CIDR block that describes the destination IP.
   468  	DestinationIp *v32.CidrRange `protobuf:"bytes,5,opt,name=destination_ip,json=destinationIp,proto3,oneof"`
   469  }
   470  
   471  type Permission_DestinationPort struct {
   472  	// A port number that describes the destination port connecting to.
   473  	DestinationPort uint32 `protobuf:"varint,6,opt,name=destination_port,json=destinationPort,proto3,oneof"`
   474  }
   475  
   476  type Permission_Metadata struct {
   477  	// Metadata that describes additional information about the action.
   478  	Metadata *v31.MetadataMatcher `protobuf:"bytes,7,opt,name=metadata,proto3,oneof"`
   479  }
   480  
   481  type Permission_NotRule struct {
   482  	// Negates matching the provided permission. For instance, if the value of
   483  	// `not_rule` would match, this permission would not match. Conversely, if
   484  	// the value of `not_rule` would not match, this permission would match.
   485  	NotRule *Permission `protobuf:"bytes,8,opt,name=not_rule,json=notRule,proto3,oneof"`
   486  }
   487  
   488  type Permission_RequestedServerName struct {
   489  	// The request server from the client's connection request. This is
   490  	// typically TLS SNI.
   491  	//
   492  	// .. attention::
   493  	//
   494  	//   The behavior of this field may be affected by how Envoy is configured
   495  	//   as explained below.
   496  	//
   497  	//   * If the :ref:`TLS Inspector <config_listener_filters_tls_inspector>`
   498  	//     filter is not added, and if a `FilterChainMatch` is not defined for
   499  	//     the :ref:`server name
   500  	//     <envoy_api_field_config.listener.v3.FilterChainMatch.server_names>`,
   501  	//     a TLS connection's requested SNI server name will be treated as if it
   502  	//     wasn't present.
   503  	//
   504  	//   * A :ref:`listener filter <arch_overview_listener_filters>` may
   505  	//     overwrite a connection's requested server name within Envoy.
   506  	//
   507  	// Please refer to :ref:`this FAQ entry <faq_how_to_setup_sni>` to learn to
   508  	// setup SNI.
   509  	RequestedServerName *v31.StringMatcher `protobuf:"bytes,9,opt,name=requested_server_name,json=requestedServerName,proto3,oneof"`
   510  }
   511  
   512  func (*Permission_AndRules) isPermission_Rule() {}
   513  
   514  func (*Permission_OrRules) isPermission_Rule() {}
   515  
   516  func (*Permission_Any) isPermission_Rule() {}
   517  
   518  func (*Permission_Header) isPermission_Rule() {}
   519  
   520  func (*Permission_UrlPath) isPermission_Rule() {}
   521  
   522  func (*Permission_DestinationIp) isPermission_Rule() {}
   523  
   524  func (*Permission_DestinationPort) isPermission_Rule() {}
   525  
   526  func (*Permission_Metadata) isPermission_Rule() {}
   527  
   528  func (*Permission_NotRule) isPermission_Rule() {}
   529  
   530  func (*Permission_RequestedServerName) isPermission_Rule() {}
   531  
   532  // Principal defines an identity or a group of identities for a downstream
   533  // subject.
   534  // [#next-free-field: 12]
   535  type Principal struct {
   536  	state         protoimpl.MessageState
   537  	sizeCache     protoimpl.SizeCache
   538  	unknownFields protoimpl.UnknownFields
   539  
   540  	// Types that are assignable to Identifier:
   541  	//	*Principal_AndIds
   542  	//	*Principal_OrIds
   543  	//	*Principal_Any
   544  	//	*Principal_Authenticated_
   545  	//	*Principal_SourceIp
   546  	//	*Principal_DirectRemoteIp
   547  	//	*Principal_RemoteIp
   548  	//	*Principal_Header
   549  	//	*Principal_UrlPath
   550  	//	*Principal_Metadata
   551  	//	*Principal_NotId
   552  	Identifier isPrincipal_Identifier `protobuf_oneof:"identifier"`
   553  }
   554  
   555  func (x *Principal) Reset() {
   556  	*x = Principal{}
   557  	if protoimpl.UnsafeEnabled {
   558  		mi := &file_envoy_config_rbac_v3_rbac_proto_msgTypes[3]
   559  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   560  		ms.StoreMessageInfo(mi)
   561  	}
   562  }
   563  
   564  func (x *Principal) String() string {
   565  	return protoimpl.X.MessageStringOf(x)
   566  }
   567  
   568  func (*Principal) ProtoMessage() {}
   569  
   570  func (x *Principal) ProtoReflect() protoreflect.Message {
   571  	mi := &file_envoy_config_rbac_v3_rbac_proto_msgTypes[3]
   572  	if protoimpl.UnsafeEnabled && x != nil {
   573  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   574  		if ms.LoadMessageInfo() == nil {
   575  			ms.StoreMessageInfo(mi)
   576  		}
   577  		return ms
   578  	}
   579  	return mi.MessageOf(x)
   580  }
   581  
   582  // Deprecated: Use Principal.ProtoReflect.Descriptor instead.
   583  func (*Principal) Descriptor() ([]byte, []int) {
   584  	return file_envoy_config_rbac_v3_rbac_proto_rawDescGZIP(), []int{3}
   585  }
   586  
   587  func (m *Principal) GetIdentifier() isPrincipal_Identifier {
   588  	if m != nil {
   589  		return m.Identifier
   590  	}
   591  	return nil
   592  }
   593  
   594  func (x *Principal) GetAndIds() *Principal_Set {
   595  	if x, ok := x.GetIdentifier().(*Principal_AndIds); ok {
   596  		return x.AndIds
   597  	}
   598  	return nil
   599  }
   600  
   601  func (x *Principal) GetOrIds() *Principal_Set {
   602  	if x, ok := x.GetIdentifier().(*Principal_OrIds); ok {
   603  		return x.OrIds
   604  	}
   605  	return nil
   606  }
   607  
   608  func (x *Principal) GetAny() bool {
   609  	if x, ok := x.GetIdentifier().(*Principal_Any); ok {
   610  		return x.Any
   611  	}
   612  	return false
   613  }
   614  
   615  func (x *Principal) GetAuthenticated() *Principal_Authenticated {
   616  	if x, ok := x.GetIdentifier().(*Principal_Authenticated_); ok {
   617  		return x.Authenticated
   618  	}
   619  	return nil
   620  }
   621  
   622  // Deprecated: Do not use.
   623  func (x *Principal) GetSourceIp() *v32.CidrRange {
   624  	if x, ok := x.GetIdentifier().(*Principal_SourceIp); ok {
   625  		return x.SourceIp
   626  	}
   627  	return nil
   628  }
   629  
   630  func (x *Principal) GetDirectRemoteIp() *v32.CidrRange {
   631  	if x, ok := x.GetIdentifier().(*Principal_DirectRemoteIp); ok {
   632  		return x.DirectRemoteIp
   633  	}
   634  	return nil
   635  }
   636  
   637  func (x *Principal) GetRemoteIp() *v32.CidrRange {
   638  	if x, ok := x.GetIdentifier().(*Principal_RemoteIp); ok {
   639  		return x.RemoteIp
   640  	}
   641  	return nil
   642  }
   643  
   644  func (x *Principal) GetHeader() *v3.HeaderMatcher {
   645  	if x, ok := x.GetIdentifier().(*Principal_Header); ok {
   646  		return x.Header
   647  	}
   648  	return nil
   649  }
   650  
   651  func (x *Principal) GetUrlPath() *v31.PathMatcher {
   652  	if x, ok := x.GetIdentifier().(*Principal_UrlPath); ok {
   653  		return x.UrlPath
   654  	}
   655  	return nil
   656  }
   657  
   658  func (x *Principal) GetMetadata() *v31.MetadataMatcher {
   659  	if x, ok := x.GetIdentifier().(*Principal_Metadata); ok {
   660  		return x.Metadata
   661  	}
   662  	return nil
   663  }
   664  
   665  func (x *Principal) GetNotId() *Principal {
   666  	if x, ok := x.GetIdentifier().(*Principal_NotId); ok {
   667  		return x.NotId
   668  	}
   669  	return nil
   670  }
   671  
   672  type isPrincipal_Identifier interface {
   673  	isPrincipal_Identifier()
   674  }
   675  
   676  type Principal_AndIds struct {
   677  	// A set of identifiers that all must match in order to define the
   678  	// downstream.
   679  	AndIds *Principal_Set `protobuf:"bytes,1,opt,name=and_ids,json=andIds,proto3,oneof"`
   680  }
   681  
   682  type Principal_OrIds struct {
   683  	// A set of identifiers at least one must match in order to define the
   684  	// downstream.
   685  	OrIds *Principal_Set `protobuf:"bytes,2,opt,name=or_ids,json=orIds,proto3,oneof"`
   686  }
   687  
   688  type Principal_Any struct {
   689  	// When any is set, it matches any downstream.
   690  	Any bool `protobuf:"varint,3,opt,name=any,proto3,oneof"`
   691  }
   692  
   693  type Principal_Authenticated_ struct {
   694  	// Authenticated attributes that identify the downstream.
   695  	Authenticated *Principal_Authenticated `protobuf:"bytes,4,opt,name=authenticated,proto3,oneof"`
   696  }
   697  
   698  type Principal_SourceIp struct {
   699  	// A CIDR block that describes the downstream IP.
   700  	// This address will honor proxy protocol, but will not honor XFF.
   701  	//
   702  	// Deprecated: Do not use.
   703  	SourceIp *v32.CidrRange `protobuf:"bytes,5,opt,name=source_ip,json=sourceIp,proto3,oneof"`
   704  }
   705  
   706  type Principal_DirectRemoteIp struct {
   707  	// A CIDR block that describes the downstream remote/origin address.
   708  	// Note: This is always the physical peer even if the
   709  	// :ref:`remote_ip <envoy_api_field_config.rbac.v3.Principal.remote_ip>` is
   710  	// inferred from for example the x-forwarder-for header, proxy protocol,
   711  	// etc.
   712  	DirectRemoteIp *v32.CidrRange `protobuf:"bytes,10,opt,name=direct_remote_ip,json=directRemoteIp,proto3,oneof"`
   713  }
   714  
   715  type Principal_RemoteIp struct {
   716  	// A CIDR block that describes the downstream remote/origin address.
   717  	// Note: This may not be the physical peer and could be different from the
   718  	// :ref:`direct_remote_ip
   719  	// <envoy_api_field_config.rbac.v3.Principal.direct_remote_ip>`. E.g, if the
   720  	// remote ip is inferred from for example the x-forwarder-for header, proxy
   721  	// protocol, etc.
   722  	RemoteIp *v32.CidrRange `protobuf:"bytes,11,opt,name=remote_ip,json=remoteIp,proto3,oneof"`
   723  }
   724  
   725  type Principal_Header struct {
   726  	// A header (or pseudo-header such as :path or :method) on the incoming HTTP
   727  	// request. Only available for HTTP request. Note: the pseudo-header :path
   728  	// includes the query and fragment string. Use the `url_path` field if you
   729  	// want to match the URL path without the query and fragment string.
   730  	Header *v3.HeaderMatcher `protobuf:"bytes,6,opt,name=header,proto3,oneof"`
   731  }
   732  
   733  type Principal_UrlPath struct {
   734  	// A URL path on the incoming HTTP request. Only available for HTTP.
   735  	UrlPath *v31.PathMatcher `protobuf:"bytes,9,opt,name=url_path,json=urlPath,proto3,oneof"`
   736  }
   737  
   738  type Principal_Metadata struct {
   739  	// Metadata that describes additional information about the principal.
   740  	Metadata *v31.MetadataMatcher `protobuf:"bytes,7,opt,name=metadata,proto3,oneof"`
   741  }
   742  
   743  type Principal_NotId struct {
   744  	// Negates matching the provided principal. For instance, if the value of
   745  	// `not_id` would match, this principal would not match. Conversely, if the
   746  	// value of `not_id` would not match, this principal would match.
   747  	NotId *Principal `protobuf:"bytes,8,opt,name=not_id,json=notId,proto3,oneof"`
   748  }
   749  
   750  func (*Principal_AndIds) isPrincipal_Identifier() {}
   751  
   752  func (*Principal_OrIds) isPrincipal_Identifier() {}
   753  
   754  func (*Principal_Any) isPrincipal_Identifier() {}
   755  
   756  func (*Principal_Authenticated_) isPrincipal_Identifier() {}
   757  
   758  func (*Principal_SourceIp) isPrincipal_Identifier() {}
   759  
   760  func (*Principal_DirectRemoteIp) isPrincipal_Identifier() {}
   761  
   762  func (*Principal_RemoteIp) isPrincipal_Identifier() {}
   763  
   764  func (*Principal_Header) isPrincipal_Identifier() {}
   765  
   766  func (*Principal_UrlPath) isPrincipal_Identifier() {}
   767  
   768  func (*Principal_Metadata) isPrincipal_Identifier() {}
   769  
   770  func (*Principal_NotId) isPrincipal_Identifier() {}
   771  
   772  // Used in the `and_rules` and `or_rules` fields in the `rule` oneof. Depending on the context,
   773  // each are applied with the associated behavior.
   774  type Permission_Set struct {
   775  	state         protoimpl.MessageState
   776  	sizeCache     protoimpl.SizeCache
   777  	unknownFields protoimpl.UnknownFields
   778  
   779  	Rules []*Permission `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
   780  }
   781  
   782  func (x *Permission_Set) Reset() {
   783  	*x = Permission_Set{}
   784  	if protoimpl.UnsafeEnabled {
   785  		mi := &file_envoy_config_rbac_v3_rbac_proto_msgTypes[5]
   786  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   787  		ms.StoreMessageInfo(mi)
   788  	}
   789  }
   790  
   791  func (x *Permission_Set) String() string {
   792  	return protoimpl.X.MessageStringOf(x)
   793  }
   794  
   795  func (*Permission_Set) ProtoMessage() {}
   796  
   797  func (x *Permission_Set) ProtoReflect() protoreflect.Message {
   798  	mi := &file_envoy_config_rbac_v3_rbac_proto_msgTypes[5]
   799  	if protoimpl.UnsafeEnabled && x != nil {
   800  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   801  		if ms.LoadMessageInfo() == nil {
   802  			ms.StoreMessageInfo(mi)
   803  		}
   804  		return ms
   805  	}
   806  	return mi.MessageOf(x)
   807  }
   808  
   809  // Deprecated: Use Permission_Set.ProtoReflect.Descriptor instead.
   810  func (*Permission_Set) Descriptor() ([]byte, []int) {
   811  	return file_envoy_config_rbac_v3_rbac_proto_rawDescGZIP(), []int{2, 0}
   812  }
   813  
   814  func (x *Permission_Set) GetRules() []*Permission {
   815  	if x != nil {
   816  		return x.Rules
   817  	}
   818  	return nil
   819  }
   820  
   821  // Used in the `and_ids` and `or_ids` fields in the `identifier` oneof.
   822  // Depending on the context, each are applied with the associated behavior.
   823  type Principal_Set struct {
   824  	state         protoimpl.MessageState
   825  	sizeCache     protoimpl.SizeCache
   826  	unknownFields protoimpl.UnknownFields
   827  
   828  	Ids []*Principal `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"`
   829  }
   830  
   831  func (x *Principal_Set) Reset() {
   832  	*x = Principal_Set{}
   833  	if protoimpl.UnsafeEnabled {
   834  		mi := &file_envoy_config_rbac_v3_rbac_proto_msgTypes[6]
   835  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   836  		ms.StoreMessageInfo(mi)
   837  	}
   838  }
   839  
   840  func (x *Principal_Set) String() string {
   841  	return protoimpl.X.MessageStringOf(x)
   842  }
   843  
   844  func (*Principal_Set) ProtoMessage() {}
   845  
   846  func (x *Principal_Set) ProtoReflect() protoreflect.Message {
   847  	mi := &file_envoy_config_rbac_v3_rbac_proto_msgTypes[6]
   848  	if protoimpl.UnsafeEnabled && x != nil {
   849  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   850  		if ms.LoadMessageInfo() == nil {
   851  			ms.StoreMessageInfo(mi)
   852  		}
   853  		return ms
   854  	}
   855  	return mi.MessageOf(x)
   856  }
   857  
   858  // Deprecated: Use Principal_Set.ProtoReflect.Descriptor instead.
   859  func (*Principal_Set) Descriptor() ([]byte, []int) {
   860  	return file_envoy_config_rbac_v3_rbac_proto_rawDescGZIP(), []int{3, 0}
   861  }
   862  
   863  func (x *Principal_Set) GetIds() []*Principal {
   864  	if x != nil {
   865  		return x.Ids
   866  	}
   867  	return nil
   868  }
   869  
   870  // Authentication attributes for a downstream.
   871  type Principal_Authenticated struct {
   872  	state         protoimpl.MessageState
   873  	sizeCache     protoimpl.SizeCache
   874  	unknownFields protoimpl.UnknownFields
   875  
   876  	// The name of the principal. If set, The URI SAN or DNS SAN in that order
   877  	// is used from the certificate, otherwise the subject field is used. If
   878  	// unset, it applies to any user that is authenticated.
   879  	PrincipalName *v31.StringMatcher `protobuf:"bytes,2,opt,name=principal_name,json=principalName,proto3" json:"principal_name,omitempty"`
   880  }
   881  
   882  func (x *Principal_Authenticated) Reset() {
   883  	*x = Principal_Authenticated{}
   884  	if protoimpl.UnsafeEnabled {
   885  		mi := &file_envoy_config_rbac_v3_rbac_proto_msgTypes[7]
   886  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   887  		ms.StoreMessageInfo(mi)
   888  	}
   889  }
   890  
   891  func (x *Principal_Authenticated) String() string {
   892  	return protoimpl.X.MessageStringOf(x)
   893  }
   894  
   895  func (*Principal_Authenticated) ProtoMessage() {}
   896  
   897  func (x *Principal_Authenticated) ProtoReflect() protoreflect.Message {
   898  	mi := &file_envoy_config_rbac_v3_rbac_proto_msgTypes[7]
   899  	if protoimpl.UnsafeEnabled && x != nil {
   900  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   901  		if ms.LoadMessageInfo() == nil {
   902  			ms.StoreMessageInfo(mi)
   903  		}
   904  		return ms
   905  	}
   906  	return mi.MessageOf(x)
   907  }
   908  
   909  // Deprecated: Use Principal_Authenticated.ProtoReflect.Descriptor instead.
   910  func (*Principal_Authenticated) Descriptor() ([]byte, []int) {
   911  	return file_envoy_config_rbac_v3_rbac_proto_rawDescGZIP(), []int{3, 1}
   912  }
   913  
   914  func (x *Principal_Authenticated) GetPrincipalName() *v31.StringMatcher {
   915  	if x != nil {
   916  		return x.PrincipalName
   917  	}
   918  	return nil
   919  }
   920  
   921  var File_envoy_config_rbac_v3_rbac_proto protoreflect.FileDescriptor
   922  
   923  var file_envoy_config_rbac_v3_rbac_proto_rawDesc = []byte{
   924  	0x0a, 0x1f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x72,
   925  	0x62, 0x61, 0x63, 0x2f, 0x76, 0x33, 0x2f, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74,
   926  	0x6f, 0x12, 0x14, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
   927  	0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x33, 0x1a, 0x22, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63,
   928  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x61, 0x64,
   929  	0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x65, 0x6e, 0x76,
   930  	0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2f,
   931  	0x76, 0x33, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65,
   932  	0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x65, 0x6e, 0x76, 0x6f, 0x79,
   933  	0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2f, 0x76, 0x33,
   934  	0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
   935  	0x20, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6d, 0x61, 0x74, 0x63,
   936  	0x68, 0x65, 0x72, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74,
   937  	0x6f, 0x1a, 0x22, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6d, 0x61,
   938  	0x74, 0x63, 0x68, 0x65, 0x72, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e,
   939  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70,
   940  	0x69, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f,
   941  	0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x67,
   942  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x76,
   943  	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x2e, 0x70,
   944  	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
   945  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x2e, 0x70,
   946  	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
   947  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72,
   948  	0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
   949  	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67,
   950  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
   951  	0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
   952  	0xb6, 0x02, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, 0x12, 0x43, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69,
   953  	0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
   954  	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x33, 0x2e,
   955  	0x52, 0x42, 0x41, 0x43, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05,
   956  	0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a,
   957  	0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
   958  	0x28, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72,
   959  	0x62, 0x61, 0x63, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x42, 0x41, 0x43, 0x2e, 0x50, 0x6f, 0x6c, 0x69,
   960  	0x63, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63,
   961  	0x69, 0x65, 0x73, 0x1a, 0x59, 0x0a, 0x0d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x45,
   962  	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
   963  	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
   964  	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f,
   965  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x6f, 0x6c,
   966  	0x69, 0x63, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x26,
   967  	0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x4c, 0x4f,
   968  	0x57, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x45, 0x4e, 0x59, 0x10, 0x01, 0x12, 0x07, 0x0a,
   969  	0x03, 0x4c, 0x4f, 0x47, 0x10, 0x02, 0x3a, 0x20, 0x9a, 0xc5, 0x88, 0x1e, 0x1b, 0x0a, 0x19, 0x65,
   970  	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x62, 0x61, 0x63,
   971  	0x2e, 0x76, 0x32, 0x2e, 0x52, 0x42, 0x41, 0x43, 0x22, 0x93, 0x03, 0x0a, 0x06, 0x50, 0x6f, 0x6c,
   972  	0x69, 0x63, 0x79, 0x12, 0x4c, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
   973  	0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
   974  	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x33, 0x2e,
   975  	0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92,
   976  	0x01, 0x02, 0x08, 0x01, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
   977  	0x73, 0x12, 0x49, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x73, 0x18,
   978  	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f,
   979  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x72, 0x69,
   980  	0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01,
   981  	0x52, 0x0a, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x73, 0x12, 0x5a, 0x0a, 0x09,
   982  	0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
   983  	0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70,
   984  	0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x42,
   985  	0x1c, 0xf2, 0x98, 0xfe, 0x8f, 0x05, 0x16, 0x12, 0x14, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73,
   986  	0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x09, 0x63,
   987  	0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x70, 0x0a, 0x11, 0x63, 0x68, 0x65, 0x63,
   988  	0x6b, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20,
   989  	0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69,
   990  	0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43,
   991  	0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x70, 0x72, 0x42, 0x1c, 0xf2, 0x98, 0xfe, 0x8f,
   992  	0x05, 0x16, 0x12, 0x14, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73,
   993  	0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65,
   994  	0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x22, 0x9a, 0xc5, 0x88, 0x1e,
   995  	0x1d, 0x0a, 0x1b, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
   996  	0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xbf,
   997  	0x06, 0x0a, 0x0a, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a,
   998  	0x09, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
   999  	0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  1000  	0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69,
  1001  	0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x08, 0x61, 0x6e, 0x64, 0x52, 0x75, 0x6c,
  1002  	0x65, 0x73, 0x12, 0x41, 0x0a, 0x08, 0x6f, 0x72, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02,
  1003  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e,
  1004  	0x66, 0x69, 0x67, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x65, 0x72, 0x6d,
  1005  	0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x72,
  1006  	0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x03, 0x20, 0x01,
  1007  	0x28, 0x08, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x6a, 0x02, 0x08, 0x01, 0x48, 0x00, 0x52, 0x03, 0x61,
  1008  	0x6e, 0x79, 0x12, 0x3e, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01,
  1009  	0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  1010  	0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65,
  1011  	0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64,
  1012  	0x65, 0x72, 0x12, 0x3f, 0x0a, 0x08, 0x75, 0x72, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a,
  1013  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70,
  1014  	0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x61, 0x74,
  1015  	0x68, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x48, 0x00, 0x52, 0x07, 0x75, 0x72, 0x6c, 0x50,
  1016  	0x61, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x0e, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69,
  1017  	0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e,
  1018  	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e,
  1019  	0x76, 0x33, 0x2e, 0x43, 0x69, 0x64, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0d,
  1020  	0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x12, 0x36, 0x0a,
  1021  	0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72,
  1022  	0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x2a, 0x04, 0x18, 0xff,
  1023  	0xff, 0x03, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
  1024  	0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x44, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
  1025  	0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
  1026  	0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e,
  1027  	0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x48,
  1028  	0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x08, 0x6e,
  1029  	0x6f, 0x74, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e,
  1030  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x62, 0x61,
  1031  	0x63, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48,
  1032  	0x00, 0x52, 0x07, 0x6e, 0x6f, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x5a, 0x0a, 0x15, 0x72, 0x65,
  1033  	0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e,
  1034  	0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
  1035  	0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x76,
  1036  	0x33, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x48,
  1037  	0x00, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76,
  1038  	0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x73, 0x0a, 0x03, 0x53, 0x65, 0x74, 0x12, 0x40, 0x0a,
  1039  	0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65,
  1040  	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x62, 0x61, 0x63,
  1041  	0x2e, 0x76, 0x33, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x08,
  1042  	0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a,
  1043  	0x2a, 0x9a, 0xc5, 0x88, 0x1e, 0x25, 0x0a, 0x23, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f,
  1044  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72,
  1045  	0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x3a, 0x26, 0x9a, 0xc5, 0x88,
  1046  	0x1e, 0x21, 0x0a, 0x1f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1047  	0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73,
  1048  	0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x12, 0x03, 0xf8, 0x42, 0x01,
  1049  	0x22, 0x92, 0x08, 0x0a, 0x09, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x12, 0x3e,
  1050  	0x0a, 0x07, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
  1051  	0x23, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72,
  1052  	0x62, 0x61, 0x63, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c,
  1053  	0x2e, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x06, 0x61, 0x6e, 0x64, 0x49, 0x64, 0x73, 0x12, 0x3c,
  1054  	0x0a, 0x06, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
  1055  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x62,
  1056  	0x61, 0x63, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x2e,
  1057  	0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, 0x6f, 0x72, 0x49, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x03,
  1058  	0x61, 0x6e, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x6a, 0x02,
  1059  	0x08, 0x01, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x55, 0x0a, 0x0d, 0x61, 0x75, 0x74,
  1060  	0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
  1061  	0x32, 0x2d, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  1062  	0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61,
  1063  	0x6c, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x48,
  1064  	0x00, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64,
  1065  	0x12, 0x42, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x05, 0x20,
  1066  	0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
  1067  	0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x69, 0x64, 0x72, 0x52,
  1068  	0x61, 0x6e, 0x67, 0x65, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72,
  1069  	0x63, 0x65, 0x49, 0x70, 0x12, 0x4b, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x72,
  1070  	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f,
  1071  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f,
  1072  	0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x69, 0x64, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48,
  1073  	0x00, 0x52, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49,
  1074  	0x70, 0x12, 0x3e, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x0b,
  1075  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e,
  1076  	0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x69, 0x64, 0x72,
  1077  	0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49,
  1078  	0x70, 0x12, 0x3e, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28,
  1079  	0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1080  	0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
  1081  	0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,
  1082  	0x72, 0x12, 0x3f, 0x0a, 0x08, 0x75, 0x72, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20,
  1083  	0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65,
  1084  	0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x61, 0x74, 0x68,
  1085  	0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x48, 0x00, 0x52, 0x07, 0x75, 0x72, 0x6c, 0x50, 0x61,
  1086  	0x74, 0x68, 0x12, 0x44, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07,
  1087  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70,
  1088  	0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74,
  1089  	0x61, 0x64, 0x61, 0x74, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x48, 0x00, 0x52, 0x08,
  1090  	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x5f,
  1091  	0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  1092  	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x33, 0x2e,
  1093  	0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x05, 0x6e, 0x6f, 0x74,
  1094  	0x49, 0x64, 0x1a, 0x6d, 0x0a, 0x03, 0x53, 0x65, 0x74, 0x12, 0x3b, 0x0a, 0x03, 0x69, 0x64, 0x73,
  1095  	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
  1096  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x72,
  1097  	0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08,
  1098  	0x01, 0x52, 0x03, 0x69, 0x64, 0x73, 0x3a, 0x29, 0x9a, 0xc5, 0x88, 0x1e, 0x24, 0x0a, 0x22, 0x65,
  1099  	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x62, 0x61, 0x63,
  1100  	0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x2e, 0x53, 0x65,
  1101  	0x74, 0x1a, 0x97, 0x01, 0x0a, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61,
  1102  	0x74, 0x65, 0x64, 0x12, 0x4b, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c,
  1103  	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e,
  1104  	0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72,
  1105  	0x2e, 0x76, 0x33, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65,
  1106  	0x72, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65,
  1107  	0x3a, 0x33, 0x9a, 0xc5, 0x88, 0x1e, 0x2e, 0x0a, 0x2c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
  1108  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72,
  1109  	0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69,
  1110  	0x63, 0x61, 0x74, 0x65, 0x64, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x3a, 0x25, 0x9a, 0xc5, 0x88,
  1111  	0x1e, 0x20, 0x0a, 0x1e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1112  	0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70,
  1113  	0x61, 0x6c, 0x42, 0x11, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72,
  1114  	0x12, 0x03, 0xf8, 0x42, 0x01, 0x42, 0x39, 0x0a, 0x22, 0x69, 0x6f, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
  1115  	0x79, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e,
  1116  	0x66, 0x69, 0x67, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x33, 0x42, 0x09, 0x52, 0x62, 0x61,
  1117  	0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xba, 0x80, 0xc8, 0xd1, 0x06, 0x02, 0x10, 0x02,
  1118  	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  1119  }
  1120  
  1121  var (
  1122  	file_envoy_config_rbac_v3_rbac_proto_rawDescOnce sync.Once
  1123  	file_envoy_config_rbac_v3_rbac_proto_rawDescData = file_envoy_config_rbac_v3_rbac_proto_rawDesc
  1124  )
  1125  
  1126  func file_envoy_config_rbac_v3_rbac_proto_rawDescGZIP() []byte {
  1127  	file_envoy_config_rbac_v3_rbac_proto_rawDescOnce.Do(func() {
  1128  		file_envoy_config_rbac_v3_rbac_proto_rawDescData = protoimpl.X.CompressGZIP(file_envoy_config_rbac_v3_rbac_proto_rawDescData)
  1129  	})
  1130  	return file_envoy_config_rbac_v3_rbac_proto_rawDescData
  1131  }
  1132  
  1133  var file_envoy_config_rbac_v3_rbac_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
  1134  var file_envoy_config_rbac_v3_rbac_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
  1135  var file_envoy_config_rbac_v3_rbac_proto_goTypes = []interface{}{
  1136  	(RBAC_Action)(0),                // 0: envoy.config.rbac.v3.RBAC.Action
  1137  	(*RBAC)(nil),                    // 1: envoy.config.rbac.v3.RBAC
  1138  	(*Policy)(nil),                  // 2: envoy.config.rbac.v3.Policy
  1139  	(*Permission)(nil),              // 3: envoy.config.rbac.v3.Permission
  1140  	(*Principal)(nil),               // 4: envoy.config.rbac.v3.Principal
  1141  	nil,                             // 5: envoy.config.rbac.v3.RBAC.PoliciesEntry
  1142  	(*Permission_Set)(nil),          // 6: envoy.config.rbac.v3.Permission.Set
  1143  	(*Principal_Set)(nil),           // 7: envoy.config.rbac.v3.Principal.Set
  1144  	(*Principal_Authenticated)(nil), // 8: envoy.config.rbac.v3.Principal.Authenticated
  1145  	(*v1alpha1.Expr)(nil),           // 9: google.api.expr.v1alpha1.Expr
  1146  	(*v1alpha1.CheckedExpr)(nil),    // 10: google.api.expr.v1alpha1.CheckedExpr
  1147  	(*v3.HeaderMatcher)(nil),        // 11: envoy.config.route.v3.HeaderMatcher
  1148  	(*v31.PathMatcher)(nil),         // 12: envoy.type.matcher.v3.PathMatcher
  1149  	(*v32.CidrRange)(nil),           // 13: envoy.config.core.v3.CidrRange
  1150  	(*v31.MetadataMatcher)(nil),     // 14: envoy.type.matcher.v3.MetadataMatcher
  1151  	(*v31.StringMatcher)(nil),       // 15: envoy.type.matcher.v3.StringMatcher
  1152  }
  1153  var file_envoy_config_rbac_v3_rbac_proto_depIdxs = []int32{
  1154  	0,  // 0: envoy.config.rbac.v3.RBAC.action:type_name -> envoy.config.rbac.v3.RBAC.Action
  1155  	5,  // 1: envoy.config.rbac.v3.RBAC.policies:type_name -> envoy.config.rbac.v3.RBAC.PoliciesEntry
  1156  	3,  // 2: envoy.config.rbac.v3.Policy.permissions:type_name -> envoy.config.rbac.v3.Permission
  1157  	4,  // 3: envoy.config.rbac.v3.Policy.principals:type_name -> envoy.config.rbac.v3.Principal
  1158  	9,  // 4: envoy.config.rbac.v3.Policy.condition:type_name -> google.api.expr.v1alpha1.Expr
  1159  	10, // 5: envoy.config.rbac.v3.Policy.checked_condition:type_name -> google.api.expr.v1alpha1.CheckedExpr
  1160  	6,  // 6: envoy.config.rbac.v3.Permission.and_rules:type_name -> envoy.config.rbac.v3.Permission.Set
  1161  	6,  // 7: envoy.config.rbac.v3.Permission.or_rules:type_name -> envoy.config.rbac.v3.Permission.Set
  1162  	11, // 8: envoy.config.rbac.v3.Permission.header:type_name -> envoy.config.route.v3.HeaderMatcher
  1163  	12, // 9: envoy.config.rbac.v3.Permission.url_path:type_name -> envoy.type.matcher.v3.PathMatcher
  1164  	13, // 10: envoy.config.rbac.v3.Permission.destination_ip:type_name -> envoy.config.core.v3.CidrRange
  1165  	14, // 11: envoy.config.rbac.v3.Permission.metadata:type_name -> envoy.type.matcher.v3.MetadataMatcher
  1166  	3,  // 12: envoy.config.rbac.v3.Permission.not_rule:type_name -> envoy.config.rbac.v3.Permission
  1167  	15, // 13: envoy.config.rbac.v3.Permission.requested_server_name:type_name -> envoy.type.matcher.v3.StringMatcher
  1168  	7,  // 14: envoy.config.rbac.v3.Principal.and_ids:type_name -> envoy.config.rbac.v3.Principal.Set
  1169  	7,  // 15: envoy.config.rbac.v3.Principal.or_ids:type_name -> envoy.config.rbac.v3.Principal.Set
  1170  	8,  // 16: envoy.config.rbac.v3.Principal.authenticated:type_name -> envoy.config.rbac.v3.Principal.Authenticated
  1171  	13, // 17: envoy.config.rbac.v3.Principal.source_ip:type_name -> envoy.config.core.v3.CidrRange
  1172  	13, // 18: envoy.config.rbac.v3.Principal.direct_remote_ip:type_name -> envoy.config.core.v3.CidrRange
  1173  	13, // 19: envoy.config.rbac.v3.Principal.remote_ip:type_name -> envoy.config.core.v3.CidrRange
  1174  	11, // 20: envoy.config.rbac.v3.Principal.header:type_name -> envoy.config.route.v3.HeaderMatcher
  1175  	12, // 21: envoy.config.rbac.v3.Principal.url_path:type_name -> envoy.type.matcher.v3.PathMatcher
  1176  	14, // 22: envoy.config.rbac.v3.Principal.metadata:type_name -> envoy.type.matcher.v3.MetadataMatcher
  1177  	4,  // 23: envoy.config.rbac.v3.Principal.not_id:type_name -> envoy.config.rbac.v3.Principal
  1178  	2,  // 24: envoy.config.rbac.v3.RBAC.PoliciesEntry.value:type_name -> envoy.config.rbac.v3.Policy
  1179  	3,  // 25: envoy.config.rbac.v3.Permission.Set.rules:type_name -> envoy.config.rbac.v3.Permission
  1180  	4,  // 26: envoy.config.rbac.v3.Principal.Set.ids:type_name -> envoy.config.rbac.v3.Principal
  1181  	15, // 27: envoy.config.rbac.v3.Principal.Authenticated.principal_name:type_name -> envoy.type.matcher.v3.StringMatcher
  1182  	28, // [28:28] is the sub-list for method output_type
  1183  	28, // [28:28] is the sub-list for method input_type
  1184  	28, // [28:28] is the sub-list for extension type_name
  1185  	28, // [28:28] is the sub-list for extension extendee
  1186  	0,  // [0:28] is the sub-list for field type_name
  1187  }
  1188  
  1189  func init() { file_envoy_config_rbac_v3_rbac_proto_init() }
  1190  func file_envoy_config_rbac_v3_rbac_proto_init() {
  1191  	if File_envoy_config_rbac_v3_rbac_proto != nil {
  1192  		return
  1193  	}
  1194  	if !protoimpl.UnsafeEnabled {
  1195  		file_envoy_config_rbac_v3_rbac_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  1196  			switch v := v.(*RBAC); i {
  1197  			case 0:
  1198  				return &v.state
  1199  			case 1:
  1200  				return &v.sizeCache
  1201  			case 2:
  1202  				return &v.unknownFields
  1203  			default:
  1204  				return nil
  1205  			}
  1206  		}
  1207  		file_envoy_config_rbac_v3_rbac_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  1208  			switch v := v.(*Policy); i {
  1209  			case 0:
  1210  				return &v.state
  1211  			case 1:
  1212  				return &v.sizeCache
  1213  			case 2:
  1214  				return &v.unknownFields
  1215  			default:
  1216  				return nil
  1217  			}
  1218  		}
  1219  		file_envoy_config_rbac_v3_rbac_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  1220  			switch v := v.(*Permission); i {
  1221  			case 0:
  1222  				return &v.state
  1223  			case 1:
  1224  				return &v.sizeCache
  1225  			case 2:
  1226  				return &v.unknownFields
  1227  			default:
  1228  				return nil
  1229  			}
  1230  		}
  1231  		file_envoy_config_rbac_v3_rbac_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  1232  			switch v := v.(*Principal); i {
  1233  			case 0:
  1234  				return &v.state
  1235  			case 1:
  1236  				return &v.sizeCache
  1237  			case 2:
  1238  				return &v.unknownFields
  1239  			default:
  1240  				return nil
  1241  			}
  1242  		}
  1243  		file_envoy_config_rbac_v3_rbac_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  1244  			switch v := v.(*Permission_Set); i {
  1245  			case 0:
  1246  				return &v.state
  1247  			case 1:
  1248  				return &v.sizeCache
  1249  			case 2:
  1250  				return &v.unknownFields
  1251  			default:
  1252  				return nil
  1253  			}
  1254  		}
  1255  		file_envoy_config_rbac_v3_rbac_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  1256  			switch v := v.(*Principal_Set); i {
  1257  			case 0:
  1258  				return &v.state
  1259  			case 1:
  1260  				return &v.sizeCache
  1261  			case 2:
  1262  				return &v.unknownFields
  1263  			default:
  1264  				return nil
  1265  			}
  1266  		}
  1267  		file_envoy_config_rbac_v3_rbac_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  1268  			switch v := v.(*Principal_Authenticated); i {
  1269  			case 0:
  1270  				return &v.state
  1271  			case 1:
  1272  				return &v.sizeCache
  1273  			case 2:
  1274  				return &v.unknownFields
  1275  			default:
  1276  				return nil
  1277  			}
  1278  		}
  1279  	}
  1280  	file_envoy_config_rbac_v3_rbac_proto_msgTypes[2].OneofWrappers = []interface{}{
  1281  		(*Permission_AndRules)(nil),
  1282  		(*Permission_OrRules)(nil),
  1283  		(*Permission_Any)(nil),
  1284  		(*Permission_Header)(nil),
  1285  		(*Permission_UrlPath)(nil),
  1286  		(*Permission_DestinationIp)(nil),
  1287  		(*Permission_DestinationPort)(nil),
  1288  		(*Permission_Metadata)(nil),
  1289  		(*Permission_NotRule)(nil),
  1290  		(*Permission_RequestedServerName)(nil),
  1291  	}
  1292  	file_envoy_config_rbac_v3_rbac_proto_msgTypes[3].OneofWrappers = []interface{}{
  1293  		(*Principal_AndIds)(nil),
  1294  		(*Principal_OrIds)(nil),
  1295  		(*Principal_Any)(nil),
  1296  		(*Principal_Authenticated_)(nil),
  1297  		(*Principal_SourceIp)(nil),
  1298  		(*Principal_DirectRemoteIp)(nil),
  1299  		(*Principal_RemoteIp)(nil),
  1300  		(*Principal_Header)(nil),
  1301  		(*Principal_UrlPath)(nil),
  1302  		(*Principal_Metadata)(nil),
  1303  		(*Principal_NotId)(nil),
  1304  	}
  1305  	type x struct{}
  1306  	out := protoimpl.TypeBuilder{
  1307  		File: protoimpl.DescBuilder{
  1308  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1309  			RawDescriptor: file_envoy_config_rbac_v3_rbac_proto_rawDesc,
  1310  			NumEnums:      1,
  1311  			NumMessages:   8,
  1312  			NumExtensions: 0,
  1313  			NumServices:   0,
  1314  		},
  1315  		GoTypes:           file_envoy_config_rbac_v3_rbac_proto_goTypes,
  1316  		DependencyIndexes: file_envoy_config_rbac_v3_rbac_proto_depIdxs,
  1317  		EnumInfos:         file_envoy_config_rbac_v3_rbac_proto_enumTypes,
  1318  		MessageInfos:      file_envoy_config_rbac_v3_rbac_proto_msgTypes,
  1319  	}.Build()
  1320  	File_envoy_config_rbac_v3_rbac_proto = out.File
  1321  	file_envoy_config_rbac_v3_rbac_proto_rawDesc = nil
  1322  	file_envoy_config_rbac_v3_rbac_proto_goTypes = nil
  1323  	file_envoy_config_rbac_v3_rbac_proto_depIdxs = nil
  1324  }
  1325  

View as plain text