github.com/Axway/agent-sdk@v1.1.101/pkg/apic/apiserver/clients/catalog/v1alpha1/AssetRequest.go (about) 1 /* 2 * This file is automatically generated 3 */ 4 5 package catalog 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/catalog/v1alpha1" 13 ) 14 15 type AssetRequestMergeFunc func(*m.AssetRequest, *m.AssetRequest) (*m.AssetRequest, error) 16 17 // AssetRequestMerge builds a merge option for an update operation 18 func AssetRequestMerge(f AssetRequestMergeFunc) v1.UpdateOption { 19 return v1.Merge(func(prev, new apiv1.Interface) (apiv1.Interface, error) { 20 p, n := &m.AssetRequest{}, &m.AssetRequest{} 21 22 switch t := prev.(type) { 23 case *m.AssetRequest: 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.AssetRequest: 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 // AssetRequestClient - rest client for AssetRequest resources that have a defined resource scope 51 type AssetRequestClient struct { 52 client v1.Scoped 53 } 54 55 // UnscopedAssetRequestClient - rest client for AssetRequest resources that do not have a defined scope 56 type UnscopedAssetRequestClient struct { 57 client v1.Unscoped 58 } 59 60 // NewAssetRequestClient - creates a client that is not scoped to any resource 61 func NewAssetRequestClient(c v1.Base) (*UnscopedAssetRequestClient, error) { 62 63 client, err := c.ForKind(m.AssetRequestGVK()) 64 if err != nil { 65 return nil, err 66 } 67 68 return &UnscopedAssetRequestClient{client}, nil 69 70 } 71 72 // WithScope - sets the resource scope for the client 73 func (c *UnscopedAssetRequestClient) WithScope(scope string) *AssetRequestClient { 74 return &AssetRequestClient{ 75 c.client.WithScope(scope), 76 } 77 } 78 79 // Get - gets a resource by name 80 func (c *UnscopedAssetRequestClient) Get(name string) (*m.AssetRequest, error) { 81 ri, err := c.client.Get(name) 82 if err != nil { 83 return nil, err 84 } 85 86 service := &m.AssetRequest{} 87 service.FromInstance(ri) 88 89 return service, nil 90 } 91 92 // Update - updates a resource 93 func (c *UnscopedAssetRequestClient) Update(res *m.AssetRequest, opts ...v1.UpdateOption) (*m.AssetRequest, 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.AssetRequest{} 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 *AssetRequestClient) List(options ...v1.ListOptions) ([]*m.AssetRequest, error) { 116 riList, err := c.client.List(options...) 117 if err != nil { 118 return nil, err 119 } 120 121 result := make([]*m.AssetRequest, len(riList)) 122 123 for i := range riList { 124 result[i] = &m.AssetRequest{} 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 *AssetRequestClient) Get(name string) (*m.AssetRequest, error) { 136 ri, err := c.client.Get(name) 137 if err != nil { 138 return nil, err 139 } 140 141 service := &m.AssetRequest{} 142 service.FromInstance(ri) 143 144 return service, nil 145 } 146 147 // Delete - deletes a resource 148 func (c *AssetRequestClient) Delete(res *m.AssetRequest) 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 *AssetRequestClient) Create(res *m.AssetRequest, opts ...v1.CreateOption) (*m.AssetRequest, 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.AssetRequest{} 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 *AssetRequestClient) Update(res *m.AssetRequest, opts ...v1.UpdateOption) (*m.AssetRequest, 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.AssetRequest{} 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 }