github.com/Axway/agent-sdk@v1.1.101/pkg/apic/apiserver/clients/definitions/v1alpha1/AccessControlList.go (about)

     1  /*
     2   * This file is automatically generated
     3   */
     4  
     5  package definitions
     6  
     7  import (
     8  	"fmt"
     9  
    10  	v1 "github.com/Axway/agent-sdk/pkg/apic/apiserver/clients/api/v1"
    11  	apiv1 "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/api/v1"
    12  	m "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/definitions/v1alpha1"
    13  )
    14  
    15  type AccessControlListMergeFunc func(*m.AccessControlList, *m.AccessControlList) (*m.AccessControlList, error)
    16  
    17  // AccessControlListMerge builds a merge option for an update operation
    18  func AccessControlListMerge(f AccessControlListMergeFunc) v1.UpdateOption {
    19  	return v1.Merge(func(prev, new apiv1.Interface) (apiv1.Interface, error) {
    20  		p, n := &m.AccessControlList{}, &m.AccessControlList{}
    21  
    22  		switch t := prev.(type) {
    23  		case *m.AccessControlList:
    24  			p = t
    25  		case *apiv1.ResourceInstance:
    26  			err := p.FromInstance(t)
    27  			if err != nil {
    28  				return nil, fmt.Errorf("merge: failed to unserialise prev resource: %w", err)
    29  			}
    30  		default:
    31  			return nil, fmt.Errorf("merge: failed to unserialise prev resource, unxexpected resource type: %T", t)
    32  		}
    33  
    34  		switch t := new.(type) {
    35  		case *m.AccessControlList:
    36  			n = t
    37  		case *apiv1.ResourceInstance:
    38  			err := n.FromInstance(t)
    39  			if err != nil {
    40  				return nil, fmt.Errorf("merge: failed to unserialize new resource: %w", err)
    41  			}
    42  		default:
    43  			return nil, fmt.Errorf("merge: failed to unserialise new resource, unxexpected resource type: %T", t)
    44  		}
    45  
    46  		return f(p, n)
    47  	})
    48  }
    49  
    50  // AccessControlListClient - rest client for AccessControlList resources that have a defined resource scope
    51  type AccessControlListClient struct {
    52  	client v1.Scoped
    53  }
    54  
    55  // UnscopedAccessControlListClient - rest client for AccessControlList resources that do not have a defined scope
    56  type UnscopedAccessControlListClient struct {
    57  	client v1.Unscoped
    58  }
    59  
    60  // NewAccessControlListClient - creates a client that is not scoped to any resource
    61  func NewAccessControlListClient(c v1.Base) (*UnscopedAccessControlListClient, error) {
    62  
    63  	client, err := c.ForKind(m.AccessControlListGVK())
    64  	if err != nil {
    65  		return nil, err
    66  	}
    67  
    68  	return &UnscopedAccessControlListClient{client}, nil
    69  
    70  }
    71  
    72  // WithScope - sets the resource scope for the client
    73  func (c *UnscopedAccessControlListClient) WithScope(scope string) *AccessControlListClient {
    74  	return &AccessControlListClient{
    75  		c.client.WithScope(scope),
    76  	}
    77  }
    78  
    79  // Get - gets a resource by name
    80  func (c *UnscopedAccessControlListClient) Get(name string) (*m.AccessControlList, error) {
    81  	ri, err := c.client.Get(name)
    82  	if err != nil {
    83  		return nil, err
    84  	}
    85  
    86  	service := &m.AccessControlList{}
    87  	service.FromInstance(ri)
    88  
    89  	return service, nil
    90  }
    91  
    92  // Update - updates a resource
    93  func (c *UnscopedAccessControlListClient) Update(res *m.AccessControlList, opts ...v1.UpdateOption) (*m.AccessControlList, error) {
    94  	ri, err := res.AsInstance()
    95  	if err != nil {
    96  		return nil, err
    97  	}
    98  	resource, err := c.client.Update(ri, opts...)
    99  	if err != nil {
   100  		return nil, err
   101  	}
   102  
   103  	updated := &m.AccessControlList{}
   104  
   105  	// Updates the resource in place
   106  	err = updated.FromInstance(resource)
   107  	if err != nil {
   108  		return nil, err
   109  	}
   110  
   111  	return updated, nil
   112  }
   113  
   114  // List - gets a list of resources
   115  func (c *AccessControlListClient) List(options ...v1.ListOptions) ([]*m.AccessControlList, error) {
   116  	riList, err := c.client.List(options...)
   117  	if err != nil {
   118  		return nil, err
   119  	}
   120  
   121  	result := make([]*m.AccessControlList, len(riList))
   122  
   123  	for i := range riList {
   124  		result[i] = &m.AccessControlList{}
   125  		err := result[i].FromInstance(riList[i])
   126  		if err != nil {
   127  			return nil, err
   128  		}
   129  	}
   130  
   131  	return result, nil
   132  }
   133  
   134  // Get - gets a resource by name
   135  func (c *AccessControlListClient) Get(name string) (*m.AccessControlList, error) {
   136  	ri, err := c.client.Get(name)
   137  	if err != nil {
   138  		return nil, err
   139  	}
   140  
   141  	service := &m.AccessControlList{}
   142  	service.FromInstance(ri)
   143  
   144  	return service, nil
   145  }
   146  
   147  // Delete - deletes a resource
   148  func (c *AccessControlListClient) Delete(res *m.AccessControlList) error {
   149  	ri, err := res.AsInstance()
   150  
   151  	if err != nil {
   152  		return err
   153  	}
   154  
   155  	return c.client.Delete(ri)
   156  }
   157  
   158  // Create - creates a resource
   159  func (c *AccessControlListClient) Create(res *m.AccessControlList, opts ...v1.CreateOption) (*m.AccessControlList, error) {
   160  	ri, err := res.AsInstance()
   161  
   162  	if err != nil {
   163  		return nil, err
   164  	}
   165  
   166  	cri, err := c.client.Create(ri, opts...)
   167  	if err != nil {
   168  		return nil, err
   169  	}
   170  
   171  	created := &m.AccessControlList{}
   172  
   173  	err = created.FromInstance(cri)
   174  	if err != nil {
   175  		return nil, err
   176  	}
   177  
   178  	return created, err
   179  }
   180  
   181  // Update - updates a resource
   182  func (c *AccessControlListClient) Update(res *m.AccessControlList, opts ...v1.UpdateOption) (*m.AccessControlList, error) {
   183  	ri, err := res.AsInstance()
   184  	if err != nil {
   185  		return nil, err
   186  	}
   187  	resource, err := c.client.Update(ri, opts...)
   188  	if err != nil {
   189  		return nil, err
   190  	}
   191  
   192  	updated := &m.AccessControlList{}
   193  
   194  	// Updates the resource in place
   195  	err = updated.FromInstance(resource)
   196  	if err != nil {
   197  		return nil, err
   198  	}
   199  
   200  	return updated, nil
   201  }