package v1 import "cue.dev/x/k8s.io/apimachinery/pkg/apis/meta/v1" // AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole #AggregationRule: { // ClusterRoleSelectors holds a list of selectors which will be used to find // ClusterRoles and create the rules. If any of the selectors match, then the // ClusterRole's permissions will be added "clusterRoleSelectors"?: [...v1.#LabelSelector] } // ClusterRole is a cluster level, logical grouping of PolicyRules that can be // referenced as a unit by a RoleBinding or ClusterRoleBinding. #ClusterRole: { // AggregationRule is an optional field that describes how to build the Rules // for this ClusterRole. If AggregationRule is set, then the Rules are // controller managed and direct changes to Rules will be stomped by the // controller. "aggregationRule"?: #AggregationRule // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "rbac.authorization.k8s.io/v1" // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "ClusterRole" // Standard object's metadata. "metadata"?: v1.#ObjectMeta // Rules holds all the PolicyRules for this ClusterRole "rules"?: [...#PolicyRule] } // ClusterRoleBinding references a ClusterRole, but not contain it. It can // reference a ClusterRole in the global namespace, and adds who information // via Subject. #ClusterRoleBinding: { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "rbac.authorization.k8s.io/v1" // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "ClusterRoleBinding" // Standard object's metadata. "metadata"?: v1.#ObjectMeta // RoleRef can only reference a ClusterRole in the global namespace. If the // RoleRef cannot be resolved, the Authorizer must return an error. This field // is immutable. "roleRef"!: #RoleRef // Subjects holds references to the objects the role applies to. "subjects"?: [...#Subject] } // ClusterRoleBindingList is a collection of ClusterRoleBindings #ClusterRoleBindingList: { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "rbac.authorization.k8s.io/v1" // Items is a list of ClusterRoleBindings "items"!: [...#ClusterRoleBinding] // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "ClusterRoleBindingList" // Standard object's metadata. "metadata"?: v1.#ListMeta } // ClusterRoleList is a collection of ClusterRoles #ClusterRoleList: { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "rbac.authorization.k8s.io/v1" // Items is a list of ClusterRoles "items"!: [...#ClusterRole] // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "ClusterRoleList" // Standard object's metadata. "metadata"?: v1.#ListMeta } // PolicyRule holds information that describes a policy rule, but does not // contain information about who the rule applies to or which namespace the // rule applies to. #PolicyRule: { // APIGroups is the name of the APIGroup that contains the resources. If // multiple API groups are specified, any action requested against one of the // enumerated resources in any API group will be allowed. "" represents the // core API group and "*" represents all API groups. "apiGroups"?: [...string] // NonResourceURLs is a set of partial urls that a user should have access to. // *s are allowed, but only as the full, final step in the path Since // non-resource URLs are not namespaced, this field is only applicable for // ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to // API resources (such as "pods" or "secrets") or non-resource URL paths (such // as "/api"), but not both. "nonResourceURLs"?: [...string] // ResourceNames is an optional white list of names that the rule applies to. An // empty set means that everything is allowed. "resourceNames"?: [...string] // Resources is a list of resources this rule applies to. '*' represents all resources. "resources"?: [...string] // Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in // this rule. '*' represents all verbs. "verbs"!: [...string] } // Role is a namespaced, logical grouping of PolicyRules that can be referenced // as a unit by a RoleBinding. #Role: { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "rbac.authorization.k8s.io/v1" // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "Role" // Standard object's metadata. "metadata"?: v1.#ObjectMeta // Rules holds all the PolicyRules for this Role "rules"?: [...#PolicyRule] } // RoleBinding references a role, but does not contain it. It can reference a // Role in the same namespace or a ClusterRole in the global namespace. It adds // who information via Subjects and namespace information by which namespace it // exists in. RoleBindings in a given namespace only have effect in that // namespace. #RoleBinding: { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "rbac.authorization.k8s.io/v1" // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "RoleBinding" // Standard object's metadata. "metadata"?: v1.#ObjectMeta // RoleRef can reference a Role in the current namespace or a ClusterRole in the // global namespace. If the RoleRef cannot be resolved, the Authorizer must // return an error. This field is immutable. "roleRef"!: #RoleRef // Subjects holds references to the objects the role applies to. "subjects"?: [...#Subject] } // RoleBindingList is a collection of RoleBindings #RoleBindingList: { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "rbac.authorization.k8s.io/v1" // Items is a list of RoleBindings "items"!: [...#RoleBinding] // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "RoleBindingList" // Standard object's metadata. "metadata"?: v1.#ListMeta } // RoleList is a collection of Roles #RoleList: { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "rbac.authorization.k8s.io/v1" // Items is a list of Roles "items"!: [...#Role] // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "RoleList" // Standard object's metadata. "metadata"?: v1.#ListMeta } // RoleRef contains information that points to the role being used #RoleRef: { // APIGroup is the group for the resource being referenced "apiGroup"?: string // Kind is the type of resource being referenced "kind"!: string // Name is the name of resource being referenced "name"!: string } // Subject contains a reference to the object or user identities a role binding // applies to. This can either hold a direct API object reference, or a value // for non-objects such as user and group names. #Subject: { // APIGroup holds the API group of the referenced subject. Defaults to "" for // ServiceAccount subjects. Defaults to "rbac.authorization.k8s.io" for User // and Group subjects. "apiGroup"?: string // Kind of object being referenced. Values defined by this API group are "User", // "Group", and "ServiceAccount". If the Authorizer does not recognized the // kind value, the Authorizer should report an error. "kind"!: string // Name of the object being referenced. "name"!: string // Namespace of the referenced object. If the object kind is non-namespace, such // as "User" or "Group", and this value is not empty the Authorizer should // report an error. "namespace"?: string }