Class ResourcePolicyRule

  • All Implemented Interfaces:
    com.marcnuri.yakc.model.Model

    public class ResourcePolicyRule
    extends java.lang.Object
    implements com.marcnuri.yakc.model.Model
    ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==""`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.
    • Constructor Summary

      Constructors 
      Constructor Description
      ResourcePolicyRule()  
      ResourcePolicyRule​(@NonNull java.util.List<java.lang.String> apiGroups, java.lang.Boolean clusterScope, java.util.List<java.lang.String> namespaces, @NonNull java.util.List<java.lang.String> resources, @NonNull java.util.List<java.lang.String> verbs)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static ResourcePolicyRule.Builder builder()  
      protected boolean canEqual​(java.lang.Object other)  
      boolean equals​(java.lang.Object o)  
      @NonNull java.util.List<java.lang.String> getApiGroups()
      `apiGroups` is a list of matching API groups and may not be empty.
      java.lang.Boolean getClusterScope()
      `clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces).
      java.util.List<java.lang.String> getNamespaces()
      `namespaces` is a list of target namespaces that restricts matches.
      @NonNull java.util.List<java.lang.String> getResources()
      `resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource.
      @NonNull java.util.List<java.lang.String> getVerbs()
      `verbs` is a list of matching verbs and may not be empty.
      int hashCode()  
      void setApiGroups​(@NonNull java.util.List<java.lang.String> apiGroups)
      `apiGroups` is a list of matching API groups and may not be empty.
      void setClusterScope​(java.lang.Boolean clusterScope)
      `clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces).
      void setNamespaces​(java.util.List<java.lang.String> namespaces)
      `namespaces` is a list of target namespaces that restricts matches.
      void setResources​(@NonNull java.util.List<java.lang.String> resources)
      `resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource.
      void setVerbs​(@NonNull java.util.List<java.lang.String> verbs)
      `verbs` is a list of matching verbs and may not be empty.
      ResourcePolicyRule.Builder toBuilder()  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ResourcePolicyRule

        public ResourcePolicyRule​(@NonNull
                                  @NonNull java.util.List<java.lang.String> apiGroups,
                                  java.lang.Boolean clusterScope,
                                  java.util.List<java.lang.String> namespaces,
                                  @NonNull
                                  @NonNull java.util.List<java.lang.String> resources,
                                  @NonNull
                                  @NonNull java.util.List<java.lang.String> verbs)
      • ResourcePolicyRule

        public ResourcePolicyRule()
    • Method Detail

      • getApiGroups

        @NonNull
        public @NonNull java.util.List<java.lang.String> getApiGroups()
        `apiGroups` is a list of matching API groups and may not be empty. "*" matches all API groups and, if present, must be the only entry. Required.
      • getClusterScope

        public java.lang.Boolean getClusterScope()
        `clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.
      • getNamespaces

        public java.util.List<java.lang.String> getNamespaces()
        `namespaces` is a list of target namespaces that restricts matches. A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains "*". Note that "*" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.
      • getResources

        @NonNull
        public @NonNull java.util.List<java.lang.String> getResources()
        `resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource. For example, [ "services", "nodes/status" ]. This list may not be empty. "*" matches all resources and, if present, must be the only entry. Required.
      • getVerbs

        @NonNull
        public @NonNull java.util.List<java.lang.String> getVerbs()
        `verbs` is a list of matching verbs and may not be empty. "*" matches all verbs and, if present, must be the only entry. Required.
      • setApiGroups

        public void setApiGroups​(@NonNull
                                 @NonNull java.util.List<java.lang.String> apiGroups)
        `apiGroups` is a list of matching API groups and may not be empty. "*" matches all API groups and, if present, must be the only entry. Required.
      • setClusterScope

        public void setClusterScope​(java.lang.Boolean clusterScope)
        `clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.
      • setNamespaces

        public void setNamespaces​(java.util.List<java.lang.String> namespaces)
        `namespaces` is a list of target namespaces that restricts matches. A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains "*". Note that "*" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.
      • setResources

        public void setResources​(@NonNull
                                 @NonNull java.util.List<java.lang.String> resources)
        `resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource. For example, [ "services", "nodes/status" ]. This list may not be empty. "*" matches all resources and, if present, must be the only entry. Required.
      • setVerbs

        public void setVerbs​(@NonNull
                             @NonNull java.util.List<java.lang.String> verbs)
        `verbs` is a list of matching verbs and may not be empty. "*" matches all verbs and, if present, must be the only entry. Required.
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • canEqual

        protected boolean canEqual​(java.lang.Object other)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object