1
0
mirror of https://github.com/rancher/types.git synced 2025-07-05 09:46:13 +00:00

Merge pull request #49 from prachidamle/authn_crd

Adding authn types, moved auth_types to authz_types
This commit is contained in:
Darren Shepherd 2017-12-08 19:18:16 -06:00 committed by GitHub
commit a33c987eac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 2127 additions and 3 deletions

View File

@ -0,0 +1,63 @@
package v3
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
type Token struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
TokenID string `json:"tokenID,omitempty"`
TokenValue string `json:"tokenValue,omitempty"`
User string `json:"user,omitempty"`
ExternalID string `json:"externalID,omitempty"`
AuthProvider string `json:"authProvider,omitempty"`
TTLMillis string `json:"ttl,omitempty"`
RefreshTTLMillis string `json:"refreshTTL,omitempty"`
LastUpdateTime string `json:"lastUpdateTime,omitempty"`
IsDerived bool `json:"isDerived,omitempty"`
Description string `json:"description,omitempty"`
}
type User struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
UserName string `json:"userName,omitempty"`
Secret string `json:"secret,omitempty"`
DisplayName string `json:"displayName,omitempty"`
ExternalID string `json:"externalID,omitempty"`
}
type Group struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
GroupName string `json:"groupName,omitempty"`
DisplayName string `json:"displayName,omitempty"`
ExternalID string `json:"externalID,omitempty"`
}
type GroupMember struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
GroupExternalID string `json:"groupExternalID,omitempty"`
MemberExternalID string `json:"memberExternalID,omitempty"`
}
type Identity struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
ExternalID string `json:"externalID,omitempty"`
DisplayName string `json:"displayName,omitempty"`
IdentityName string `json:"identityName,omitempty"`
ProfilePicture string `json:"profilePicture,omitempty"`
ProfileURL string `json:"profileURL,omitempty"`
Kind string `json:"kind,omitempty"`
Me bool `json:"me,omitempty"`
MemberOf bool `json:"memberOf,omitempty"`
ExtraInfo map[string]string `json:"extraInfo,omitempty"`
}

View File

@ -19,9 +19,10 @@ var (
Schemas = factory.Schemas(&Version).
Init(nodeTypes).
Init(machineTypes).
Init(authTypes).
Init(authzTypes).
Init(clusterTypes).
Init(catalogTypes)
Init(catalogTypes).
Init(authnTypes)
)
func catalogTypes(schemas *types.Schemas) *types.Schemas {
@ -68,7 +69,7 @@ func clusterTypes(schemas *types.Schemas) *types.Schemas {
MustImport(&Version, v3.Cluster{})
}
func authTypes(schemas *types.Schemas) *types.Schemas {
func authzTypes(schemas *types.Schemas) *types.Schemas {
return schemas.
AddMapperForType(&Version, v3.Project{},
m.DisplayName{},
@ -111,3 +112,12 @@ func machineTypes(schemas *types.Schemas) *types.Schemas {
MustImport(&Version, v3.MachineDriver{}).
MustImport(&Version, v3.MachineTemplate{})
}
func authnTypes(schemas *types.Schemas) *types.Schemas {
return schemas.
MustImport(&Version, v3.Token{}).
MustImport(&Version, v3.User{}).
MustImport(&Version, v3.Group{}).
MustImport(&Version, v3.GroupMember{}).
MustImport(&Version, v3.Identity{})
}

View File

@ -534,6 +534,196 @@ func (in *GoogleKubernetesEngineConfig) DeepCopy() *GoogleKubernetesEngineConfig
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Group) DeepCopyInto(out *Group) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Group.
func (in *Group) DeepCopy() *Group {
if in == nil {
return nil
}
out := new(Group)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Group) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
} else {
return nil
}
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GroupList) DeepCopyInto(out *GroupList) {
*out = *in
out.TypeMeta = in.TypeMeta
out.ListMeta = in.ListMeta
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]Group, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupList.
func (in *GroupList) DeepCopy() *GroupList {
if in == nil {
return nil
}
out := new(GroupList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *GroupList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
} else {
return nil
}
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GroupMember) DeepCopyInto(out *GroupMember) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupMember.
func (in *GroupMember) DeepCopy() *GroupMember {
if in == nil {
return nil
}
out := new(GroupMember)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *GroupMember) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
} else {
return nil
}
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GroupMemberList) DeepCopyInto(out *GroupMemberList) {
*out = *in
out.TypeMeta = in.TypeMeta
out.ListMeta = in.ListMeta
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]GroupMember, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupMemberList.
func (in *GroupMemberList) DeepCopy() *GroupMemberList {
if in == nil {
return nil
}
out := new(GroupMemberList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *GroupMemberList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
} else {
return nil
}
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Identity) DeepCopyInto(out *Identity) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
if in.ExtraInfo != nil {
in, out := &in.ExtraInfo, &out.ExtraInfo
*out = make(map[string]string, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Identity.
func (in *Identity) DeepCopy() *Identity {
if in == nil {
return nil
}
out := new(Identity)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Identity) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
} else {
return nil
}
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *IdentityList) DeepCopyInto(out *IdentityList) {
*out = *in
out.TypeMeta = in.TypeMeta
out.ListMeta = in.ListMeta
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]Identity, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IdentityList.
func (in *IdentityList) DeepCopy() *IdentityList {
if in == nil {
return nil
}
out := new(IdentityList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *IdentityList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
} else {
return nil
}
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *KubeAPIService) DeepCopyInto(out *KubeAPIService) {
*out = *in
@ -1670,3 +1860,125 @@ func (in *TemplateVersionStatus) DeepCopy() *TemplateVersionStatus {
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Token) DeepCopyInto(out *Token) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Token.
func (in *Token) DeepCopy() *Token {
if in == nil {
return nil
}
out := new(Token)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *Token) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
} else {
return nil
}
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TokenList) DeepCopyInto(out *TokenList) {
*out = *in
out.TypeMeta = in.TypeMeta
out.ListMeta = in.ListMeta
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]Token, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenList.
func (in *TokenList) DeepCopy() *TokenList {
if in == nil {
return nil
}
out := new(TokenList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *TokenList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
} else {
return nil
}
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *User) DeepCopyInto(out *User) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new User.
func (in *User) DeepCopy() *User {
if in == nil {
return nil
}
out := new(User)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *User) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
} else {
return nil
}
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *UserList) DeepCopyInto(out *UserList) {
*out = *in
out.TypeMeta = in.TypeMeta
out.ListMeta = in.ListMeta
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]User, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserList.
func (in *UserList) DeepCopy() *UserList {
if in == nil {
return nil
}
out := new(UserList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *UserList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
} else {
return nil
}
}

View File

@ -0,0 +1,187 @@
package v3
import (
"context"
"github.com/rancher/norman/clientbase"
"github.com/rancher/norman/controller"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/client-go/tools/cache"
)
var (
GroupGroupVersionKind = schema.GroupVersionKind{
Version: "v3",
Group: "management.cattle.io",
Kind: "Group",
}
GroupResource = metav1.APIResource{
Name: "groups",
SingularName: "group",
Namespaced: false,
Kind: GroupGroupVersionKind.Kind,
}
)
type GroupList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Group
}
type GroupHandlerFunc func(key string, obj *Group) error
type GroupLister interface {
List(namespace string, selector labels.Selector) (ret []*Group, err error)
Get(namespace, name string) (*Group, error)
}
type GroupController interface {
Informer() cache.SharedIndexInformer
Lister() GroupLister
AddHandler(handler GroupHandlerFunc)
Enqueue(namespace, name string)
Sync(ctx context.Context) error
Start(ctx context.Context, threadiness int) error
}
type GroupInterface interface {
ObjectClient() *clientbase.ObjectClient
Create(*Group) (*Group, error)
Get(name string, opts metav1.GetOptions) (*Group, error)
Update(*Group) (*Group, error)
Delete(name string, options *metav1.DeleteOptions) error
List(opts metav1.ListOptions) (*GroupList, error)
Watch(opts metav1.ListOptions) (watch.Interface, error)
DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error
Controller() GroupController
}
type groupLister struct {
controller *groupController
}
func (l *groupLister) List(namespace string, selector labels.Selector) (ret []*Group, err error) {
err = cache.ListAllByNamespace(l.controller.Informer().GetIndexer(), namespace, selector, func(obj interface{}) {
ret = append(ret, obj.(*Group))
})
return
}
func (l *groupLister) Get(namespace, name string) (*Group, error) {
obj, exists, err := l.controller.Informer().GetIndexer().GetByKey(namespace + "/" + name)
if err != nil {
return nil, err
}
if !exists {
return nil, errors.NewNotFound(schema.GroupResource{
Group: GroupGroupVersionKind.Group,
Resource: "group",
}, name)
}
return obj.(*Group), nil
}
type groupController struct {
controller.GenericController
}
func (c *groupController) Lister() GroupLister {
return &groupLister{
controller: c,
}
}
func (c *groupController) AddHandler(handler GroupHandlerFunc) {
c.GenericController.AddHandler(func(key string) error {
obj, exists, err := c.Informer().GetStore().GetByKey(key)
if err != nil {
return err
}
if !exists {
return handler(key, nil)
}
return handler(key, obj.(*Group))
})
}
type groupFactory struct {
}
func (c groupFactory) Object() runtime.Object {
return &Group{}
}
func (c groupFactory) List() runtime.Object {
return &GroupList{}
}
func (s *groupClient) Controller() GroupController {
s.client.Lock()
defer s.client.Unlock()
c, ok := s.client.groupControllers[s.ns]
if ok {
return c
}
genericController := controller.NewGenericController(GroupGroupVersionKind.Kind+"Controller",
s.objectClient)
c = &groupController{
GenericController: genericController,
}
s.client.groupControllers[s.ns] = c
s.client.starters = append(s.client.starters, c)
return c
}
type groupClient struct {
client *Client
ns string
objectClient *clientbase.ObjectClient
controller GroupController
}
func (s *groupClient) ObjectClient() *clientbase.ObjectClient {
return s.objectClient
}
func (s *groupClient) Create(o *Group) (*Group, error) {
obj, err := s.objectClient.Create(o)
return obj.(*Group), err
}
func (s *groupClient) Get(name string, opts metav1.GetOptions) (*Group, error) {
obj, err := s.objectClient.Get(name, opts)
return obj.(*Group), err
}
func (s *groupClient) Update(o *Group) (*Group, error) {
obj, err := s.objectClient.Update(o.Name, o)
return obj.(*Group), err
}
func (s *groupClient) Delete(name string, options *metav1.DeleteOptions) error {
return s.objectClient.Delete(name, options)
}
func (s *groupClient) List(opts metav1.ListOptions) (*GroupList, error) {
obj, err := s.objectClient.List(opts)
return obj.(*GroupList), err
}
func (s *groupClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
return s.objectClient.Watch(opts)
}
func (s *groupClient) DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error {
return s.objectClient.DeleteCollection(deleteOpts, listOpts)
}

View File

@ -0,0 +1,39 @@
package v3
import (
"github.com/rancher/norman/lifecycle"
"k8s.io/apimachinery/pkg/runtime"
)
type GroupLifecycle interface {
Create(obj *Group) error
Remove(obj *Group) error
Updated(obj *Group) error
}
type groupLifecycleAdapter struct {
lifecycle GroupLifecycle
}
func (w *groupLifecycleAdapter) Create(obj runtime.Object) error {
return w.lifecycle.Create(obj.(*Group))
}
func (w *groupLifecycleAdapter) Finalize(obj runtime.Object) error {
return w.lifecycle.Remove(obj.(*Group))
}
func (w *groupLifecycleAdapter) Updated(obj runtime.Object) error {
return w.lifecycle.Updated(obj.(*Group))
}
func NewGroupLifecycleAdapter(name string, client GroupInterface, l GroupLifecycle) GroupHandlerFunc {
adapter := &groupLifecycleAdapter{lifecycle: l}
syncFn := lifecycle.NewObjectLifecycleAdapter(name, adapter, client.ObjectClient())
return func(key string, obj *Group) error {
if obj == nil {
return syncFn(key, nil)
}
return syncFn(key, obj)
}
}

View File

@ -0,0 +1,187 @@
package v3
import (
"context"
"github.com/rancher/norman/clientbase"
"github.com/rancher/norman/controller"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/client-go/tools/cache"
)
var (
GroupMemberGroupVersionKind = schema.GroupVersionKind{
Version: "v3",
Group: "management.cattle.io",
Kind: "GroupMember",
}
GroupMemberResource = metav1.APIResource{
Name: "groupmembers",
SingularName: "groupmember",
Namespaced: false,
Kind: GroupMemberGroupVersionKind.Kind,
}
)
type GroupMemberList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []GroupMember
}
type GroupMemberHandlerFunc func(key string, obj *GroupMember) error
type GroupMemberLister interface {
List(namespace string, selector labels.Selector) (ret []*GroupMember, err error)
Get(namespace, name string) (*GroupMember, error)
}
type GroupMemberController interface {
Informer() cache.SharedIndexInformer
Lister() GroupMemberLister
AddHandler(handler GroupMemberHandlerFunc)
Enqueue(namespace, name string)
Sync(ctx context.Context) error
Start(ctx context.Context, threadiness int) error
}
type GroupMemberInterface interface {
ObjectClient() *clientbase.ObjectClient
Create(*GroupMember) (*GroupMember, error)
Get(name string, opts metav1.GetOptions) (*GroupMember, error)
Update(*GroupMember) (*GroupMember, error)
Delete(name string, options *metav1.DeleteOptions) error
List(opts metav1.ListOptions) (*GroupMemberList, error)
Watch(opts metav1.ListOptions) (watch.Interface, error)
DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error
Controller() GroupMemberController
}
type groupMemberLister struct {
controller *groupMemberController
}
func (l *groupMemberLister) List(namespace string, selector labels.Selector) (ret []*GroupMember, err error) {
err = cache.ListAllByNamespace(l.controller.Informer().GetIndexer(), namespace, selector, func(obj interface{}) {
ret = append(ret, obj.(*GroupMember))
})
return
}
func (l *groupMemberLister) Get(namespace, name string) (*GroupMember, error) {
obj, exists, err := l.controller.Informer().GetIndexer().GetByKey(namespace + "/" + name)
if err != nil {
return nil, err
}
if !exists {
return nil, errors.NewNotFound(schema.GroupResource{
Group: GroupMemberGroupVersionKind.Group,
Resource: "groupMember",
}, name)
}
return obj.(*GroupMember), nil
}
type groupMemberController struct {
controller.GenericController
}
func (c *groupMemberController) Lister() GroupMemberLister {
return &groupMemberLister{
controller: c,
}
}
func (c *groupMemberController) AddHandler(handler GroupMemberHandlerFunc) {
c.GenericController.AddHandler(func(key string) error {
obj, exists, err := c.Informer().GetStore().GetByKey(key)
if err != nil {
return err
}
if !exists {
return handler(key, nil)
}
return handler(key, obj.(*GroupMember))
})
}
type groupMemberFactory struct {
}
func (c groupMemberFactory) Object() runtime.Object {
return &GroupMember{}
}
func (c groupMemberFactory) List() runtime.Object {
return &GroupMemberList{}
}
func (s *groupMemberClient) Controller() GroupMemberController {
s.client.Lock()
defer s.client.Unlock()
c, ok := s.client.groupMemberControllers[s.ns]
if ok {
return c
}
genericController := controller.NewGenericController(GroupMemberGroupVersionKind.Kind+"Controller",
s.objectClient)
c = &groupMemberController{
GenericController: genericController,
}
s.client.groupMemberControllers[s.ns] = c
s.client.starters = append(s.client.starters, c)
return c
}
type groupMemberClient struct {
client *Client
ns string
objectClient *clientbase.ObjectClient
controller GroupMemberController
}
func (s *groupMemberClient) ObjectClient() *clientbase.ObjectClient {
return s.objectClient
}
func (s *groupMemberClient) Create(o *GroupMember) (*GroupMember, error) {
obj, err := s.objectClient.Create(o)
return obj.(*GroupMember), err
}
func (s *groupMemberClient) Get(name string, opts metav1.GetOptions) (*GroupMember, error) {
obj, err := s.objectClient.Get(name, opts)
return obj.(*GroupMember), err
}
func (s *groupMemberClient) Update(o *GroupMember) (*GroupMember, error) {
obj, err := s.objectClient.Update(o.Name, o)
return obj.(*GroupMember), err
}
func (s *groupMemberClient) Delete(name string, options *metav1.DeleteOptions) error {
return s.objectClient.Delete(name, options)
}
func (s *groupMemberClient) List(opts metav1.ListOptions) (*GroupMemberList, error) {
obj, err := s.objectClient.List(opts)
return obj.(*GroupMemberList), err
}
func (s *groupMemberClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
return s.objectClient.Watch(opts)
}
func (s *groupMemberClient) DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error {
return s.objectClient.DeleteCollection(deleteOpts, listOpts)
}

View File

@ -0,0 +1,39 @@
package v3
import (
"github.com/rancher/norman/lifecycle"
"k8s.io/apimachinery/pkg/runtime"
)
type GroupMemberLifecycle interface {
Create(obj *GroupMember) error
Remove(obj *GroupMember) error
Updated(obj *GroupMember) error
}
type groupMemberLifecycleAdapter struct {
lifecycle GroupMemberLifecycle
}
func (w *groupMemberLifecycleAdapter) Create(obj runtime.Object) error {
return w.lifecycle.Create(obj.(*GroupMember))
}
func (w *groupMemberLifecycleAdapter) Finalize(obj runtime.Object) error {
return w.lifecycle.Remove(obj.(*GroupMember))
}
func (w *groupMemberLifecycleAdapter) Updated(obj runtime.Object) error {
return w.lifecycle.Updated(obj.(*GroupMember))
}
func NewGroupMemberLifecycleAdapter(name string, client GroupMemberInterface, l GroupMemberLifecycle) GroupMemberHandlerFunc {
adapter := &groupMemberLifecycleAdapter{lifecycle: l}
syncFn := lifecycle.NewObjectLifecycleAdapter(name, adapter, client.ObjectClient())
return func(key string, obj *GroupMember) error {
if obj == nil {
return syncFn(key, nil)
}
return syncFn(key, obj)
}
}

View File

@ -0,0 +1,187 @@
package v3
import (
"context"
"github.com/rancher/norman/clientbase"
"github.com/rancher/norman/controller"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/client-go/tools/cache"
)
var (
IdentityGroupVersionKind = schema.GroupVersionKind{
Version: "v3",
Group: "management.cattle.io",
Kind: "Identity",
}
IdentityResource = metav1.APIResource{
Name: "identities",
SingularName: "identity",
Namespaced: false,
Kind: IdentityGroupVersionKind.Kind,
}
)
type IdentityList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Identity
}
type IdentityHandlerFunc func(key string, obj *Identity) error
type IdentityLister interface {
List(namespace string, selector labels.Selector) (ret []*Identity, err error)
Get(namespace, name string) (*Identity, error)
}
type IdentityController interface {
Informer() cache.SharedIndexInformer
Lister() IdentityLister
AddHandler(handler IdentityHandlerFunc)
Enqueue(namespace, name string)
Sync(ctx context.Context) error
Start(ctx context.Context, threadiness int) error
}
type IdentityInterface interface {
ObjectClient() *clientbase.ObjectClient
Create(*Identity) (*Identity, error)
Get(name string, opts metav1.GetOptions) (*Identity, error)
Update(*Identity) (*Identity, error)
Delete(name string, options *metav1.DeleteOptions) error
List(opts metav1.ListOptions) (*IdentityList, error)
Watch(opts metav1.ListOptions) (watch.Interface, error)
DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error
Controller() IdentityController
}
type identityLister struct {
controller *identityController
}
func (l *identityLister) List(namespace string, selector labels.Selector) (ret []*Identity, err error) {
err = cache.ListAllByNamespace(l.controller.Informer().GetIndexer(), namespace, selector, func(obj interface{}) {
ret = append(ret, obj.(*Identity))
})
return
}
func (l *identityLister) Get(namespace, name string) (*Identity, error) {
obj, exists, err := l.controller.Informer().GetIndexer().GetByKey(namespace + "/" + name)
if err != nil {
return nil, err
}
if !exists {
return nil, errors.NewNotFound(schema.GroupResource{
Group: IdentityGroupVersionKind.Group,
Resource: "identity",
}, name)
}
return obj.(*Identity), nil
}
type identityController struct {
controller.GenericController
}
func (c *identityController) Lister() IdentityLister {
return &identityLister{
controller: c,
}
}
func (c *identityController) AddHandler(handler IdentityHandlerFunc) {
c.GenericController.AddHandler(func(key string) error {
obj, exists, err := c.Informer().GetStore().GetByKey(key)
if err != nil {
return err
}
if !exists {
return handler(key, nil)
}
return handler(key, obj.(*Identity))
})
}
type identityFactory struct {
}
func (c identityFactory) Object() runtime.Object {
return &Identity{}
}
func (c identityFactory) List() runtime.Object {
return &IdentityList{}
}
func (s *identityClient) Controller() IdentityController {
s.client.Lock()
defer s.client.Unlock()
c, ok := s.client.identityControllers[s.ns]
if ok {
return c
}
genericController := controller.NewGenericController(IdentityGroupVersionKind.Kind+"Controller",
s.objectClient)
c = &identityController{
GenericController: genericController,
}
s.client.identityControllers[s.ns] = c
s.client.starters = append(s.client.starters, c)
return c
}
type identityClient struct {
client *Client
ns string
objectClient *clientbase.ObjectClient
controller IdentityController
}
func (s *identityClient) ObjectClient() *clientbase.ObjectClient {
return s.objectClient
}
func (s *identityClient) Create(o *Identity) (*Identity, error) {
obj, err := s.objectClient.Create(o)
return obj.(*Identity), err
}
func (s *identityClient) Get(name string, opts metav1.GetOptions) (*Identity, error) {
obj, err := s.objectClient.Get(name, opts)
return obj.(*Identity), err
}
func (s *identityClient) Update(o *Identity) (*Identity, error) {
obj, err := s.objectClient.Update(o.Name, o)
return obj.(*Identity), err
}
func (s *identityClient) Delete(name string, options *metav1.DeleteOptions) error {
return s.objectClient.Delete(name, options)
}
func (s *identityClient) List(opts metav1.ListOptions) (*IdentityList, error) {
obj, err := s.objectClient.List(opts)
return obj.(*IdentityList), err
}
func (s *identityClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
return s.objectClient.Watch(opts)
}
func (s *identityClient) DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error {
return s.objectClient.DeleteCollection(deleteOpts, listOpts)
}

View File

@ -0,0 +1,39 @@
package v3
import (
"github.com/rancher/norman/lifecycle"
"k8s.io/apimachinery/pkg/runtime"
)
type IdentityLifecycle interface {
Create(obj *Identity) error
Remove(obj *Identity) error
Updated(obj *Identity) error
}
type identityLifecycleAdapter struct {
lifecycle IdentityLifecycle
}
func (w *identityLifecycleAdapter) Create(obj runtime.Object) error {
return w.lifecycle.Create(obj.(*Identity))
}
func (w *identityLifecycleAdapter) Finalize(obj runtime.Object) error {
return w.lifecycle.Remove(obj.(*Identity))
}
func (w *identityLifecycleAdapter) Updated(obj runtime.Object) error {
return w.lifecycle.Updated(obj.(*Identity))
}
func NewIdentityLifecycleAdapter(name string, client IdentityInterface, l IdentityLifecycle) IdentityHandlerFunc {
adapter := &identityLifecycleAdapter{lifecycle: l}
syncFn := lifecycle.NewObjectLifecycleAdapter(name, adapter, client.ObjectClient())
return func(key string, obj *Identity) error {
if obj == nil {
return syncFn(key, nil)
}
return syncFn(key, obj)
}
}

View File

@ -26,6 +26,11 @@ type Interface interface {
CatalogsGetter
TemplatesGetter
TemplateVersionsGetter
TokensGetter
UsersGetter
GroupsGetter
GroupMembersGetter
IdentitiesGetter
}
type Client struct {
@ -45,6 +50,11 @@ type Client struct {
catalogControllers map[string]CatalogController
templateControllers map[string]TemplateController
templateVersionControllers map[string]TemplateVersionController
tokenControllers map[string]TokenController
userControllers map[string]UserController
groupControllers map[string]GroupController
groupMemberControllers map[string]GroupMemberController
identityControllers map[string]IdentityController
}
func NewForConfig(config rest.Config) (Interface, error) {
@ -73,6 +83,11 @@ func NewForConfig(config rest.Config) (Interface, error) {
catalogControllers: map[string]CatalogController{},
templateControllers: map[string]TemplateController{},
templateVersionControllers: map[string]TemplateVersionController{},
tokenControllers: map[string]TokenController{},
userControllers: map[string]UserController{},
groupControllers: map[string]GroupController{},
groupMemberControllers: map[string]GroupMemberController{},
identityControllers: map[string]IdentityController{},
}, nil
}
@ -243,3 +258,68 @@ func (c *Client) TemplateVersions(namespace string) TemplateVersionInterface {
objectClient: objectClient,
}
}
type TokensGetter interface {
Tokens(namespace string) TokenInterface
}
func (c *Client) Tokens(namespace string) TokenInterface {
objectClient := clientbase.NewObjectClient(namespace, c.restClient, &TokenResource, TokenGroupVersionKind, tokenFactory{})
return &tokenClient{
ns: namespace,
client: c,
objectClient: objectClient,
}
}
type UsersGetter interface {
Users(namespace string) UserInterface
}
func (c *Client) Users(namespace string) UserInterface {
objectClient := clientbase.NewObjectClient(namespace, c.restClient, &UserResource, UserGroupVersionKind, userFactory{})
return &userClient{
ns: namespace,
client: c,
objectClient: objectClient,
}
}
type GroupsGetter interface {
Groups(namespace string) GroupInterface
}
func (c *Client) Groups(namespace string) GroupInterface {
objectClient := clientbase.NewObjectClient(namespace, c.restClient, &GroupResource, GroupGroupVersionKind, groupFactory{})
return &groupClient{
ns: namespace,
client: c,
objectClient: objectClient,
}
}
type GroupMembersGetter interface {
GroupMembers(namespace string) GroupMemberInterface
}
func (c *Client) GroupMembers(namespace string) GroupMemberInterface {
objectClient := clientbase.NewObjectClient(namespace, c.restClient, &GroupMemberResource, GroupMemberGroupVersionKind, groupMemberFactory{})
return &groupMemberClient{
ns: namespace,
client: c,
objectClient: objectClient,
}
}
type IdentitiesGetter interface {
Identities(namespace string) IdentityInterface
}
func (c *Client) Identities(namespace string) IdentityInterface {
objectClient := clientbase.NewObjectClient(namespace, c.restClient, &IdentityResource, IdentityGroupVersionKind, identityFactory{})
return &identityClient{
ns: namespace,
client: c,
objectClient: objectClient,
}
}

View File

@ -0,0 +1,187 @@
package v3
import (
"context"
"github.com/rancher/norman/clientbase"
"github.com/rancher/norman/controller"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/client-go/tools/cache"
)
var (
TokenGroupVersionKind = schema.GroupVersionKind{
Version: "v3",
Group: "management.cattle.io",
Kind: "Token",
}
TokenResource = metav1.APIResource{
Name: "tokens",
SingularName: "token",
Namespaced: false,
Kind: TokenGroupVersionKind.Kind,
}
)
type TokenList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Token
}
type TokenHandlerFunc func(key string, obj *Token) error
type TokenLister interface {
List(namespace string, selector labels.Selector) (ret []*Token, err error)
Get(namespace, name string) (*Token, error)
}
type TokenController interface {
Informer() cache.SharedIndexInformer
Lister() TokenLister
AddHandler(handler TokenHandlerFunc)
Enqueue(namespace, name string)
Sync(ctx context.Context) error
Start(ctx context.Context, threadiness int) error
}
type TokenInterface interface {
ObjectClient() *clientbase.ObjectClient
Create(*Token) (*Token, error)
Get(name string, opts metav1.GetOptions) (*Token, error)
Update(*Token) (*Token, error)
Delete(name string, options *metav1.DeleteOptions) error
List(opts metav1.ListOptions) (*TokenList, error)
Watch(opts metav1.ListOptions) (watch.Interface, error)
DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error
Controller() TokenController
}
type tokenLister struct {
controller *tokenController
}
func (l *tokenLister) List(namespace string, selector labels.Selector) (ret []*Token, err error) {
err = cache.ListAllByNamespace(l.controller.Informer().GetIndexer(), namespace, selector, func(obj interface{}) {
ret = append(ret, obj.(*Token))
})
return
}
func (l *tokenLister) Get(namespace, name string) (*Token, error) {
obj, exists, err := l.controller.Informer().GetIndexer().GetByKey(namespace + "/" + name)
if err != nil {
return nil, err
}
if !exists {
return nil, errors.NewNotFound(schema.GroupResource{
Group: TokenGroupVersionKind.Group,
Resource: "token",
}, name)
}
return obj.(*Token), nil
}
type tokenController struct {
controller.GenericController
}
func (c *tokenController) Lister() TokenLister {
return &tokenLister{
controller: c,
}
}
func (c *tokenController) AddHandler(handler TokenHandlerFunc) {
c.GenericController.AddHandler(func(key string) error {
obj, exists, err := c.Informer().GetStore().GetByKey(key)
if err != nil {
return err
}
if !exists {
return handler(key, nil)
}
return handler(key, obj.(*Token))
})
}
type tokenFactory struct {
}
func (c tokenFactory) Object() runtime.Object {
return &Token{}
}
func (c tokenFactory) List() runtime.Object {
return &TokenList{}
}
func (s *tokenClient) Controller() TokenController {
s.client.Lock()
defer s.client.Unlock()
c, ok := s.client.tokenControllers[s.ns]
if ok {
return c
}
genericController := controller.NewGenericController(TokenGroupVersionKind.Kind+"Controller",
s.objectClient)
c = &tokenController{
GenericController: genericController,
}
s.client.tokenControllers[s.ns] = c
s.client.starters = append(s.client.starters, c)
return c
}
type tokenClient struct {
client *Client
ns string
objectClient *clientbase.ObjectClient
controller TokenController
}
func (s *tokenClient) ObjectClient() *clientbase.ObjectClient {
return s.objectClient
}
func (s *tokenClient) Create(o *Token) (*Token, error) {
obj, err := s.objectClient.Create(o)
return obj.(*Token), err
}
func (s *tokenClient) Get(name string, opts metav1.GetOptions) (*Token, error) {
obj, err := s.objectClient.Get(name, opts)
return obj.(*Token), err
}
func (s *tokenClient) Update(o *Token) (*Token, error) {
obj, err := s.objectClient.Update(o.Name, o)
return obj.(*Token), err
}
func (s *tokenClient) Delete(name string, options *metav1.DeleteOptions) error {
return s.objectClient.Delete(name, options)
}
func (s *tokenClient) List(opts metav1.ListOptions) (*TokenList, error) {
obj, err := s.objectClient.List(opts)
return obj.(*TokenList), err
}
func (s *tokenClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
return s.objectClient.Watch(opts)
}
func (s *tokenClient) DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error {
return s.objectClient.DeleteCollection(deleteOpts, listOpts)
}

View File

@ -0,0 +1,39 @@
package v3
import (
"github.com/rancher/norman/lifecycle"
"k8s.io/apimachinery/pkg/runtime"
)
type TokenLifecycle interface {
Create(obj *Token) error
Remove(obj *Token) error
Updated(obj *Token) error
}
type tokenLifecycleAdapter struct {
lifecycle TokenLifecycle
}
func (w *tokenLifecycleAdapter) Create(obj runtime.Object) error {
return w.lifecycle.Create(obj.(*Token))
}
func (w *tokenLifecycleAdapter) Finalize(obj runtime.Object) error {
return w.lifecycle.Remove(obj.(*Token))
}
func (w *tokenLifecycleAdapter) Updated(obj runtime.Object) error {
return w.lifecycle.Updated(obj.(*Token))
}
func NewTokenLifecycleAdapter(name string, client TokenInterface, l TokenLifecycle) TokenHandlerFunc {
adapter := &tokenLifecycleAdapter{lifecycle: l}
syncFn := lifecycle.NewObjectLifecycleAdapter(name, adapter, client.ObjectClient())
return func(key string, obj *Token) error {
if obj == nil {
return syncFn(key, nil)
}
return syncFn(key, obj)
}
}

View File

@ -0,0 +1,187 @@
package v3
import (
"context"
"github.com/rancher/norman/clientbase"
"github.com/rancher/norman/controller"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/client-go/tools/cache"
)
var (
UserGroupVersionKind = schema.GroupVersionKind{
Version: "v3",
Group: "management.cattle.io",
Kind: "User",
}
UserResource = metav1.APIResource{
Name: "users",
SingularName: "user",
Namespaced: false,
Kind: UserGroupVersionKind.Kind,
}
)
type UserList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []User
}
type UserHandlerFunc func(key string, obj *User) error
type UserLister interface {
List(namespace string, selector labels.Selector) (ret []*User, err error)
Get(namespace, name string) (*User, error)
}
type UserController interface {
Informer() cache.SharedIndexInformer
Lister() UserLister
AddHandler(handler UserHandlerFunc)
Enqueue(namespace, name string)
Sync(ctx context.Context) error
Start(ctx context.Context, threadiness int) error
}
type UserInterface interface {
ObjectClient() *clientbase.ObjectClient
Create(*User) (*User, error)
Get(name string, opts metav1.GetOptions) (*User, error)
Update(*User) (*User, error)
Delete(name string, options *metav1.DeleteOptions) error
List(opts metav1.ListOptions) (*UserList, error)
Watch(opts metav1.ListOptions) (watch.Interface, error)
DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error
Controller() UserController
}
type userLister struct {
controller *userController
}
func (l *userLister) List(namespace string, selector labels.Selector) (ret []*User, err error) {
err = cache.ListAllByNamespace(l.controller.Informer().GetIndexer(), namespace, selector, func(obj interface{}) {
ret = append(ret, obj.(*User))
})
return
}
func (l *userLister) Get(namespace, name string) (*User, error) {
obj, exists, err := l.controller.Informer().GetIndexer().GetByKey(namespace + "/" + name)
if err != nil {
return nil, err
}
if !exists {
return nil, errors.NewNotFound(schema.GroupResource{
Group: UserGroupVersionKind.Group,
Resource: "user",
}, name)
}
return obj.(*User), nil
}
type userController struct {
controller.GenericController
}
func (c *userController) Lister() UserLister {
return &userLister{
controller: c,
}
}
func (c *userController) AddHandler(handler UserHandlerFunc) {
c.GenericController.AddHandler(func(key string) error {
obj, exists, err := c.Informer().GetStore().GetByKey(key)
if err != nil {
return err
}
if !exists {
return handler(key, nil)
}
return handler(key, obj.(*User))
})
}
type userFactory struct {
}
func (c userFactory) Object() runtime.Object {
return &User{}
}
func (c userFactory) List() runtime.Object {
return &UserList{}
}
func (s *userClient) Controller() UserController {
s.client.Lock()
defer s.client.Unlock()
c, ok := s.client.userControllers[s.ns]
if ok {
return c
}
genericController := controller.NewGenericController(UserGroupVersionKind.Kind+"Controller",
s.objectClient)
c = &userController{
GenericController: genericController,
}
s.client.userControllers[s.ns] = c
s.client.starters = append(s.client.starters, c)
return c
}
type userClient struct {
client *Client
ns string
objectClient *clientbase.ObjectClient
controller UserController
}
func (s *userClient) ObjectClient() *clientbase.ObjectClient {
return s.objectClient
}
func (s *userClient) Create(o *User) (*User, error) {
obj, err := s.objectClient.Create(o)
return obj.(*User), err
}
func (s *userClient) Get(name string, opts metav1.GetOptions) (*User, error) {
obj, err := s.objectClient.Get(name, opts)
return obj.(*User), err
}
func (s *userClient) Update(o *User) (*User, error) {
obj, err := s.objectClient.Update(o.Name, o)
return obj.(*User), err
}
func (s *userClient) Delete(name string, options *metav1.DeleteOptions) error {
return s.objectClient.Delete(name, options)
}
func (s *userClient) List(opts metav1.ListOptions) (*UserList, error) {
obj, err := s.objectClient.List(opts)
return obj.(*UserList), err
}
func (s *userClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
return s.objectClient.Watch(opts)
}
func (s *userClient) DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error {
return s.objectClient.DeleteCollection(deleteOpts, listOpts)
}

View File

@ -0,0 +1,39 @@
package v3
import (
"github.com/rancher/norman/lifecycle"
"k8s.io/apimachinery/pkg/runtime"
)
type UserLifecycle interface {
Create(obj *User) error
Remove(obj *User) error
Updated(obj *User) error
}
type userLifecycleAdapter struct {
lifecycle UserLifecycle
}
func (w *userLifecycleAdapter) Create(obj runtime.Object) error {
return w.lifecycle.Create(obj.(*User))
}
func (w *userLifecycleAdapter) Finalize(obj runtime.Object) error {
return w.lifecycle.Remove(obj.(*User))
}
func (w *userLifecycleAdapter) Updated(obj runtime.Object) error {
return w.lifecycle.Updated(obj.(*User))
}
func NewUserLifecycleAdapter(name string, client UserInterface, l UserLifecycle) UserHandlerFunc {
adapter := &userLifecycleAdapter{lifecycle: l}
syncFn := lifecycle.NewObjectLifecycleAdapter(name, adapter, client.ObjectClient())
return func(key string, obj *User) error {
if obj == nil {
return syncFn(key, nil)
}
return syncFn(key, obj)
}
}

View File

@ -20,6 +20,11 @@ type Client struct {
Catalog CatalogOperations
Template TemplateOperations
TemplateVersion TemplateVersionOperations
Token TokenOperations
User UserOperations
Group GroupOperations
GroupMember GroupMemberOperations
Identity IdentityOperations
}
func NewClient(opts *clientbase.ClientOpts) (*Client, error) {
@ -45,6 +50,11 @@ func NewClient(opts *clientbase.ClientOpts) (*Client, error) {
client.Catalog = newCatalogClient(client)
client.Template = newTemplateClient(client)
client.TemplateVersion = newTemplateVersionClient(client)
client.Token = newTokenClient(client)
client.User = newUserClient(client)
client.Group = newGroupClient(client)
client.GroupMember = newGroupMemberClient(client)
client.Identity = newIdentityClient(client)
return client, nil
}

View File

@ -0,0 +1,99 @@
package client
import (
"github.com/rancher/norman/types"
)
const (
GroupType = "group"
GroupFieldAnnotations = "annotations"
GroupFieldCreated = "created"
GroupFieldDisplayName = "displayName"
GroupFieldExternalID = "externalID"
GroupFieldFinalizers = "finalizers"
GroupFieldGroupName = "groupName"
GroupFieldLabels = "labels"
GroupFieldName = "name"
GroupFieldOwnerReferences = "ownerReferences"
GroupFieldRemoved = "removed"
GroupFieldResourcePath = "resourcePath"
GroupFieldUuid = "uuid"
)
type Group struct {
types.Resource
Annotations map[string]string `json:"annotations,omitempty"`
Created string `json:"created,omitempty"`
DisplayName string `json:"displayName,omitempty"`
ExternalID string `json:"externalID,omitempty"`
Finalizers []string `json:"finalizers,omitempty"`
GroupName string `json:"groupName,omitempty"`
Labels map[string]string `json:"labels,omitempty"`
Name string `json:"name,omitempty"`
OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"`
Removed string `json:"removed,omitempty"`
ResourcePath string `json:"resourcePath,omitempty"`
Uuid string `json:"uuid,omitempty"`
}
type GroupCollection struct {
types.Collection
Data []Group `json:"data,omitempty"`
client *GroupClient
}
type GroupClient struct {
apiClient *Client
}
type GroupOperations interface {
List(opts *types.ListOpts) (*GroupCollection, error)
Create(opts *Group) (*Group, error)
Update(existing *Group, updates interface{}) (*Group, error)
ByID(id string) (*Group, error)
Delete(container *Group) error
}
func newGroupClient(apiClient *Client) *GroupClient {
return &GroupClient{
apiClient: apiClient,
}
}
func (c *GroupClient) Create(container *Group) (*Group, error) {
resp := &Group{}
err := c.apiClient.Ops.DoCreate(GroupType, container, resp)
return resp, err
}
func (c *GroupClient) Update(existing *Group, updates interface{}) (*Group, error) {
resp := &Group{}
err := c.apiClient.Ops.DoUpdate(GroupType, &existing.Resource, updates, resp)
return resp, err
}
func (c *GroupClient) List(opts *types.ListOpts) (*GroupCollection, error) {
resp := &GroupCollection{}
err := c.apiClient.Ops.DoList(GroupType, opts, resp)
resp.client = c
return resp, err
}
func (cc *GroupCollection) Next() (*GroupCollection, error) {
if cc != nil && cc.Pagination != nil && cc.Pagination.Next != "" {
resp := &GroupCollection{}
err := cc.client.apiClient.Ops.DoNext(cc.Pagination.Next, resp)
resp.client = cc.client
return resp, err
}
return nil, nil
}
func (c *GroupClient) ByID(id string) (*Group, error) {
resp := &Group{}
err := c.apiClient.Ops.DoByID(GroupType, id, resp)
return resp, err
}
func (c *GroupClient) Delete(container *Group) error {
return c.apiClient.Ops.DoResourceDelete(GroupType, &container.Resource)
}

View File

@ -0,0 +1,97 @@
package client
import (
"github.com/rancher/norman/types"
)
const (
GroupMemberType = "groupMember"
GroupMemberFieldAnnotations = "annotations"
GroupMemberFieldCreated = "created"
GroupMemberFieldFinalizers = "finalizers"
GroupMemberFieldGroupExternalID = "groupExternalID"
GroupMemberFieldLabels = "labels"
GroupMemberFieldMemberExternalID = "memberExternalID"
GroupMemberFieldName = "name"
GroupMemberFieldOwnerReferences = "ownerReferences"
GroupMemberFieldRemoved = "removed"
GroupMemberFieldResourcePath = "resourcePath"
GroupMemberFieldUuid = "uuid"
)
type GroupMember struct {
types.Resource
Annotations map[string]string `json:"annotations,omitempty"`
Created string `json:"created,omitempty"`
Finalizers []string `json:"finalizers,omitempty"`
GroupExternalID string `json:"groupExternalID,omitempty"`
Labels map[string]string `json:"labels,omitempty"`
MemberExternalID string `json:"memberExternalID,omitempty"`
Name string `json:"name,omitempty"`
OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"`
Removed string `json:"removed,omitempty"`
ResourcePath string `json:"resourcePath,omitempty"`
Uuid string `json:"uuid,omitempty"`
}
type GroupMemberCollection struct {
types.Collection
Data []GroupMember `json:"data,omitempty"`
client *GroupMemberClient
}
type GroupMemberClient struct {
apiClient *Client
}
type GroupMemberOperations interface {
List(opts *types.ListOpts) (*GroupMemberCollection, error)
Create(opts *GroupMember) (*GroupMember, error)
Update(existing *GroupMember, updates interface{}) (*GroupMember, error)
ByID(id string) (*GroupMember, error)
Delete(container *GroupMember) error
}
func newGroupMemberClient(apiClient *Client) *GroupMemberClient {
return &GroupMemberClient{
apiClient: apiClient,
}
}
func (c *GroupMemberClient) Create(container *GroupMember) (*GroupMember, error) {
resp := &GroupMember{}
err := c.apiClient.Ops.DoCreate(GroupMemberType, container, resp)
return resp, err
}
func (c *GroupMemberClient) Update(existing *GroupMember, updates interface{}) (*GroupMember, error) {
resp := &GroupMember{}
err := c.apiClient.Ops.DoUpdate(GroupMemberType, &existing.Resource, updates, resp)
return resp, err
}
func (c *GroupMemberClient) List(opts *types.ListOpts) (*GroupMemberCollection, error) {
resp := &GroupMemberCollection{}
err := c.apiClient.Ops.DoList(GroupMemberType, opts, resp)
resp.client = c
return resp, err
}
func (cc *GroupMemberCollection) Next() (*GroupMemberCollection, error) {
if cc != nil && cc.Pagination != nil && cc.Pagination.Next != "" {
resp := &GroupMemberCollection{}
err := cc.client.apiClient.Ops.DoNext(cc.Pagination.Next, resp)
resp.client = cc.client
return resp, err
}
return nil, nil
}
func (c *GroupMemberClient) ByID(id string) (*GroupMember, error) {
resp := &GroupMember{}
err := c.apiClient.Ops.DoByID(GroupMemberType, id, resp)
return resp, err
}
func (c *GroupMemberClient) Delete(container *GroupMember) error {
return c.apiClient.Ops.DoResourceDelete(GroupMemberType, &container.Resource)
}

View File

@ -0,0 +1,109 @@
package client
import (
"github.com/rancher/norman/types"
)
const (
IdentityType = "identity"
IdentityFieldAnnotations = "annotations"
IdentityFieldCreated = "created"
IdentityFieldDisplayName = "displayName"
IdentityFieldExternalID = "externalID"
IdentityFieldExtraInfo = "extraInfo"
IdentityFieldFinalizers = "finalizers"
IdentityFieldIdentityName = "identityName"
IdentityFieldLabels = "labels"
IdentityFieldMe = "me"
IdentityFieldMemberOf = "memberOf"
IdentityFieldName = "name"
IdentityFieldOwnerReferences = "ownerReferences"
IdentityFieldProfilePicture = "profilePicture"
IdentityFieldProfileURL = "profileURL"
IdentityFieldRemoved = "removed"
IdentityFieldResourcePath = "resourcePath"
IdentityFieldUuid = "uuid"
)
type Identity struct {
types.Resource
Annotations map[string]string `json:"annotations,omitempty"`
Created string `json:"created,omitempty"`
DisplayName string `json:"displayName,omitempty"`
ExternalID string `json:"externalID,omitempty"`
ExtraInfo map[string]string `json:"extraInfo,omitempty"`
Finalizers []string `json:"finalizers,omitempty"`
IdentityName string `json:"identityName,omitempty"`
Labels map[string]string `json:"labels,omitempty"`
Me *bool `json:"me,omitempty"`
MemberOf *bool `json:"memberOf,omitempty"`
Name string `json:"name,omitempty"`
OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"`
ProfilePicture string `json:"profilePicture,omitempty"`
ProfileURL string `json:"profileURL,omitempty"`
Removed string `json:"removed,omitempty"`
ResourcePath string `json:"resourcePath,omitempty"`
Uuid string `json:"uuid,omitempty"`
}
type IdentityCollection struct {
types.Collection
Data []Identity `json:"data,omitempty"`
client *IdentityClient
}
type IdentityClient struct {
apiClient *Client
}
type IdentityOperations interface {
List(opts *types.ListOpts) (*IdentityCollection, error)
Create(opts *Identity) (*Identity, error)
Update(existing *Identity, updates interface{}) (*Identity, error)
ByID(id string) (*Identity, error)
Delete(container *Identity) error
}
func newIdentityClient(apiClient *Client) *IdentityClient {
return &IdentityClient{
apiClient: apiClient,
}
}
func (c *IdentityClient) Create(container *Identity) (*Identity, error) {
resp := &Identity{}
err := c.apiClient.Ops.DoCreate(IdentityType, container, resp)
return resp, err
}
func (c *IdentityClient) Update(existing *Identity, updates interface{}) (*Identity, error) {
resp := &Identity{}
err := c.apiClient.Ops.DoUpdate(IdentityType, &existing.Resource, updates, resp)
return resp, err
}
func (c *IdentityClient) List(opts *types.ListOpts) (*IdentityCollection, error) {
resp := &IdentityCollection{}
err := c.apiClient.Ops.DoList(IdentityType, opts, resp)
resp.client = c
return resp, err
}
func (cc *IdentityCollection) Next() (*IdentityCollection, error) {
if cc != nil && cc.Pagination != nil && cc.Pagination.Next != "" {
resp := &IdentityCollection{}
err := cc.client.apiClient.Ops.DoNext(cc.Pagination.Next, resp)
resp.client = cc.client
return resp, err
}
return nil, nil
}
func (c *IdentityClient) ByID(id string) (*Identity, error) {
resp := &Identity{}
err := c.apiClient.Ops.DoByID(IdentityType, id, resp)
return resp, err
}
func (c *IdentityClient) Delete(container *Identity) error {
return c.apiClient.Ops.DoResourceDelete(IdentityType, &container.Resource)
}

View File

@ -0,0 +1,113 @@
package client
import (
"github.com/rancher/norman/types"
)
const (
TokenType = "token"
TokenFieldAnnotations = "annotations"
TokenFieldAuthProvider = "authProvider"
TokenFieldCreated = "created"
TokenFieldDescription = "description"
TokenFieldExternalID = "externalID"
TokenFieldFinalizers = "finalizers"
TokenFieldIsDerived = "isDerived"
TokenFieldLabels = "labels"
TokenFieldLastUpdateTime = "lastUpdateTime"
TokenFieldName = "name"
TokenFieldOwnerReferences = "ownerReferences"
TokenFieldRefreshTTLMillis = "refreshTTL"
TokenFieldRemoved = "removed"
TokenFieldResourcePath = "resourcePath"
TokenFieldTTLMillis = "ttl"
TokenFieldTokenID = "tokenID"
TokenFieldTokenValue = "tokenValue"
TokenFieldUser = "user"
TokenFieldUuid = "uuid"
)
type Token struct {
types.Resource
Annotations map[string]string `json:"annotations,omitempty"`
AuthProvider string `json:"authProvider,omitempty"`
Created string `json:"created,omitempty"`
Description string `json:"description,omitempty"`
ExternalID string `json:"externalID,omitempty"`
Finalizers []string `json:"finalizers,omitempty"`
IsDerived *bool `json:"isDerived,omitempty"`
Labels map[string]string `json:"labels,omitempty"`
LastUpdateTime string `json:"lastUpdateTime,omitempty"`
Name string `json:"name,omitempty"`
OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"`
RefreshTTLMillis string `json:"refreshTTL,omitempty"`
Removed string `json:"removed,omitempty"`
ResourcePath string `json:"resourcePath,omitempty"`
TTLMillis string `json:"ttl,omitempty"`
TokenID string `json:"tokenID,omitempty"`
TokenValue string `json:"tokenValue,omitempty"`
User string `json:"user,omitempty"`
Uuid string `json:"uuid,omitempty"`
}
type TokenCollection struct {
types.Collection
Data []Token `json:"data,omitempty"`
client *TokenClient
}
type TokenClient struct {
apiClient *Client
}
type TokenOperations interface {
List(opts *types.ListOpts) (*TokenCollection, error)
Create(opts *Token) (*Token, error)
Update(existing *Token, updates interface{}) (*Token, error)
ByID(id string) (*Token, error)
Delete(container *Token) error
}
func newTokenClient(apiClient *Client) *TokenClient {
return &TokenClient{
apiClient: apiClient,
}
}
func (c *TokenClient) Create(container *Token) (*Token, error) {
resp := &Token{}
err := c.apiClient.Ops.DoCreate(TokenType, container, resp)
return resp, err
}
func (c *TokenClient) Update(existing *Token, updates interface{}) (*Token, error) {
resp := &Token{}
err := c.apiClient.Ops.DoUpdate(TokenType, &existing.Resource, updates, resp)
return resp, err
}
func (c *TokenClient) List(opts *types.ListOpts) (*TokenCollection, error) {
resp := &TokenCollection{}
err := c.apiClient.Ops.DoList(TokenType, opts, resp)
resp.client = c
return resp, err
}
func (cc *TokenCollection) Next() (*TokenCollection, error) {
if cc != nil && cc.Pagination != nil && cc.Pagination.Next != "" {
resp := &TokenCollection{}
err := cc.client.apiClient.Ops.DoNext(cc.Pagination.Next, resp)
resp.client = cc.client
return resp, err
}
return nil, nil
}
func (c *TokenClient) ByID(id string) (*Token, error) {
resp := &Token{}
err := c.apiClient.Ops.DoByID(TokenType, id, resp)
return resp, err
}
func (c *TokenClient) Delete(container *Token) error {
return c.apiClient.Ops.DoResourceDelete(TokenType, &container.Resource)
}

View File

@ -0,0 +1,101 @@
package client
import (
"github.com/rancher/norman/types"
)
const (
UserType = "user"
UserFieldAnnotations = "annotations"
UserFieldCreated = "created"
UserFieldDisplayName = "displayName"
UserFieldExternalID = "externalID"
UserFieldFinalizers = "finalizers"
UserFieldLabels = "labels"
UserFieldName = "name"
UserFieldOwnerReferences = "ownerReferences"
UserFieldRemoved = "removed"
UserFieldResourcePath = "resourcePath"
UserFieldSecret = "secret"
UserFieldUserName = "userName"
UserFieldUuid = "uuid"
)
type User struct {
types.Resource
Annotations map[string]string `json:"annotations,omitempty"`
Created string `json:"created,omitempty"`
DisplayName string `json:"displayName,omitempty"`
ExternalID string `json:"externalID,omitempty"`
Finalizers []string `json:"finalizers,omitempty"`
Labels map[string]string `json:"labels,omitempty"`
Name string `json:"name,omitempty"`
OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"`
Removed string `json:"removed,omitempty"`
ResourcePath string `json:"resourcePath,omitempty"`
Secret string `json:"secret,omitempty"`
UserName string `json:"userName,omitempty"`
Uuid string `json:"uuid,omitempty"`
}
type UserCollection struct {
types.Collection
Data []User `json:"data,omitempty"`
client *UserClient
}
type UserClient struct {
apiClient *Client
}
type UserOperations interface {
List(opts *types.ListOpts) (*UserCollection, error)
Create(opts *User) (*User, error)
Update(existing *User, updates interface{}) (*User, error)
ByID(id string) (*User, error)
Delete(container *User) error
}
func newUserClient(apiClient *Client) *UserClient {
return &UserClient{
apiClient: apiClient,
}
}
func (c *UserClient) Create(container *User) (*User, error) {
resp := &User{}
err := c.apiClient.Ops.DoCreate(UserType, container, resp)
return resp, err
}
func (c *UserClient) Update(existing *User, updates interface{}) (*User, error) {
resp := &User{}
err := c.apiClient.Ops.DoUpdate(UserType, &existing.Resource, updates, resp)
return resp, err
}
func (c *UserClient) List(opts *types.ListOpts) (*UserCollection, error) {
resp := &UserCollection{}
err := c.apiClient.Ops.DoList(UserType, opts, resp)
resp.client = c
return resp, err
}
func (cc *UserCollection) Next() (*UserCollection, error) {
if cc != nil && cc.Pagination != nil && cc.Pagination.Next != "" {
resp := &UserCollection{}
err := cc.client.apiClient.Ops.DoNext(cc.Pagination.Next, resp)
resp.client = cc.client
return resp, err
}
return nil, nil
}
func (c *UserClient) ByID(id string) (*User, error) {
resp := &User{}
err := c.apiClient.Ops.DoByID(UserType, id, resp)
return resp, err
}
func (c *UserClient) Delete(container *User) error {
return c.apiClient.Ops.DoResourceDelete(UserType, &container.Resource)
}