/**
 * Copyright 2019 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */ import { KubernetesObject } from 'kpt-functions' ; import * as apisMetaV1 from './io.k8s.apimachinery.pkg.apis.meta.v1' ; export class AggregationRule { public clusterRoleSelectors ? : apisMetaV1 . LabelSelector [ ] ; } export class ClusterRole implements KubernetesObject { public aggregationRule ? : AggregationRule ; public apiVersion : string ; public kind : string ; public metadata : apisMetaV1 . ObjectMeta ; public rules ? : PolicyRule [ ] ; constructor ( desc ) { this . aggregationRule = desc . aggregationRule ; this . apiVersion = ClusterRole . apiVersion ; this . kind = ClusterRole . kind ; this . metadata = desc . metadata ; this . rules = desc . rules ; } } export function isClusterRole ( o ) { return ( o && o . apiVersion === ClusterRole . apiVersion && o . kind === ClusterRole . kind ) ; } export namespace ClusterRole { export const apiVersion = 'rbac.authorization.k8s.io/v1beta1' ; export const group = 'rbac.authorization.k8s.io' ; export const version = 'v1beta1' ; export const kind = 'ClusterRole' ; export function named ( name ) { return new ClusterRole ( { metadata : { name } } ) ; } export interface Interface { aggregationRule ? : AggregationRule ; metadata : apisMetaV1 . ObjectMeta ; rules ? : PolicyRule [ ] ; } } export class ClusterRoleBinding implements KubernetesObject { public apiVersion : string ; public kind : string ; public metadata : apisMetaV1 . ObjectMeta ; public roleRef : RoleRef ; public subjects ? : Subject [ ] ; constructor ( desc ) { this . apiVersion = ClusterRoleBinding . apiVersion ; this . kind = ClusterRoleBinding . kind ; this . metadata = desc . metadata ; this . roleRef = desc . roleRef ; this . subjects = desc . subjects ; } } export function isClusterRoleBinding ( o ) { return ( o && o . apiVersion === ClusterRoleBinding . apiVersion && o . kind === ClusterRoleBinding . kind ) ; } export namespace ClusterRoleBinding { export const apiVersion = 'rbac.authorization.k8s.io/v1beta1' ; export const group = 'rbac.authorization.k8s.io' ; export const version = 'v1beta1' ; export const kind = 'ClusterRoleBinding' ; export interface Interface { metadata : apisMetaV1 . ObjectMeta ; roleRef : RoleRef ; subjects ? : Subject [ ] ; } } export class ClusterRoleBindingList { public apiVersion : string ; public items : ClusterRoleBinding [ ] ; public kind : string ; public metadata ? : apisMetaV1 . ListMeta ; constructor ( desc ) { this . apiVersion = ClusterRoleBindingList . apiVersion ; this . items = desc . items . map ( ( i ) => new ClusterRoleBinding ( i ) ) ; this . kind = ClusterRoleBindingList . kind ; this . metadata = desc . metadata ; } } export function isClusterRoleBindingList ( o ) { return ( o && o . apiVersion === ClusterRoleBindingList . apiVersion && o . kind === ClusterRoleBindingList . kind ) ; } export namespace ClusterRoleBindingList { export const apiVersion = 'rbac.authorization.k8s.io/v1beta1' ; export const group = 'rbac.authorization.k8s.io' ; export const version = 'v1beta1' ; export const kind = 'ClusterRoleBindingList' ; export interface Interface { items : ClusterRoleBinding [ ] ; metadata ? : apisMetaV1 . ListMeta ; } } export class ClusterRoleList { public apiVersion : string ; public items : ClusterRole [ ] ; public kind : string ; public metadata ? : apisMetaV1 . ListMeta ; constructor ( desc ) { this . apiVersion = ClusterRoleList . apiVersion ; this . items = desc . items . map ( ( i ) => new ClusterRole ( i ) ) ; this . kind = ClusterRoleList . kind ; this . metadata = desc . metadata ; } } export function isClusterRoleList ( o ) { return ( o && o . apiVersion === ClusterRoleList . apiVersion && o . kind === ClusterRoleList . kind ) ; } export namespace ClusterRoleList { export const apiVersion = 'rbac.authorization.k8s.io/v1beta1' ; export const group = 'rbac.authorization.k8s.io' ; export const version = 'v1beta1' ; export const kind = 'ClusterRoleList' ; export interface Interface { items : ClusterRole [ ] ; metadata ? : apisMetaV1 . ListMeta ; } } export class PolicyRule { public apiGroups ? : string [ ] ; public nonResourceURLs ? : string [ ] ; public resourceNames ? : string [ ] ; public resources ? : string [ ] ; public verbs : string [ ] ; constructor ( desc ) { this . apiGroups = desc . apiGroups ; this . nonResourceURLs = desc . nonResourceURLs ; this . resourceNames = desc . resourceNames ; this . resources = desc . resources ; this . verbs = desc . verbs ; } } export class Role implements KubernetesObject { public apiVersion : string ; public kind : string ; public metadata : apisMetaV1 . ObjectMeta ; public rules ? : PolicyRule [ ] ; constructor ( desc ) { this . apiVersion = Role . apiVersion ; this . kind = Role . kind ; this . metadata = desc . metadata ; this . rules = desc . rules ; } } export function isRole ( o ) { return o && o . apiVersion === Role . apiVersion && o . kind === Role . kind ; } export namespace Role { export const apiVersion = 'rbac.authorization.k8s.io/v1beta1' ; export const group = 'rbac.authorization.k8s.io' ; export const version = 'v1beta1' ; export const kind = 'Role' ; export function named ( name ) { return new Role ( { metadata : { name } } ) ; } export interface Interface { metadata : apisMetaV1 . ObjectMeta ; rules ? : PolicyRule [ ] ; } } export class RoleBinding implements KubernetesObject { public apiVersion : string ; public kind : string ; public metadata : apisMetaV1 . ObjectMeta ; public roleRef : RoleRef ; public subjects ? : Subject [ ] ; constructor ( desc ) { this . apiVersion = RoleBinding . apiVersion ; this . kind = RoleBinding . kind ; this . metadata = desc . metadata ; this . roleRef = desc . roleRef ; this . subjects = desc . subjects ; } } export function isRoleBinding ( o ) { return ( o && o . apiVersion === RoleBinding . apiVersion && o . kind === RoleBinding . kind ) ; } export namespace RoleBinding { export const apiVersion = 'rbac.authorization.k8s.io/v1beta1' ; export const group = 'rbac.authorization.k8s.io' ; export const version = 'v1beta1' ; export const kind = 'RoleBinding' ; export interface Interface { metadata : apisMetaV1 . ObjectMeta ; roleRef : RoleRef ; subjects ? : Subject [ ] ; } } export class RoleBindingList { public apiVersion : string ; public items : RoleBinding [ ] ; public kind : string ; public metadata ? : apisMetaV1 . ListMeta ; constructor ( desc ) { this . apiVersion = RoleBindingList . apiVersion ; this . items = desc . items . map ( ( i ) => new RoleBinding ( i ) ) ; this . kind = RoleBindingList . kind ; this . metadata = desc . metadata ; } } export function isRoleBindingList ( o ) { return ( o && o . apiVersion === RoleBindingList . apiVersion && o . kind === RoleBindingList . kind ) ; } export namespace RoleBindingList { export const apiVersion = 'rbac.authorization.k8s.io/v1beta1' ; export const group = 'rbac.authorization.k8s.io' ; export const version = 'v1beta1' ; export const kind = 'RoleBindingList' ; export interface Interface { items : RoleBinding [ ] ; metadata ? : apisMetaV1 . ListMeta ; } } export class RoleList { public apiVersion : string ; public items : Role [ ] ; public kind : string ; public metadata ? : apisMetaV1 . ListMeta ; constructor ( desc ) { this . apiVersion = RoleList . apiVersion ; this . items = desc . items . map ( ( i ) => new Role ( i ) ) ; this . kind = RoleList . kind ; this . metadata = desc . metadata ; } } export function isRoleList ( o ) { return o && o . apiVersion === RoleList . apiVersion && o . kind === RoleList . kind ; } export namespace RoleList { export const apiVersion = 'rbac.authorization.k8s.io/v1beta1' ; export const group = 'rbac.authorization.k8s.io' ; export const version = 'v1beta1' ; export const kind = 'RoleList' ; export interface Interface { items : Role [ ] ; metadata ? : apisMetaV1 . ListMeta ; } } export class RoleRef { public apiGroup : string ; public kind : string ; public name : string ; constructor ( desc ) { this . apiGroup = desc . apiGroup ; this . kind = desc . kind ; this . name = desc . name ; } } export class Subject { public apiGroup ? : string ; public kind : string ; public name : string ; public namespace ? : string ; constructor ( desc ) { this . apiGroup = desc . apiGroup ; this . kind = desc . kind ; this . name = desc . name ; this . namespace = desc . namespace ; } }