@type t() :: %Envoy.Config.Rbac.V3.Permission{
__unknown_fields__: [
{field_number :: integer(), Protobuf.Wire.Types.wire_type(),
value :: term()}
],
rule:
{:and_rules, Envoy.Config.Rbac.V3.Permission.Set.t() | nil}
| {:or_rules, Envoy.Config.Rbac.V3.Permission.Set.t() | nil}
| {:any, boolean()}
| {:header, Envoy.Config.Route.V3.HeaderMatcher.t() | nil}
| {:destination_ip, Envoy.Config.Core.V3.CidrRange.t() | nil}
| {:destination_port, non_neg_integer()}
| {:metadata, Envoy.Type.Matcher.V3.MetadataMatcher.t() | nil}
| {:not_rule, t() | nil}
| {:requested_server_name, Envoy.Type.Matcher.V3.StringMatcher.t() | nil}
| {:url_path, Envoy.Type.Matcher.V3.PathMatcher.t() | nil}
| {:destination_port_range, Envoy.Type.V3.Int32Range.t() | nil}
| {:matcher, Envoy.Config.Core.V3.TypedExtensionConfig.t() | nil}
| nil
}