github.com/cilium/cilium@v1.16.2/pkg/client/policy.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package client 5 6 import ( 7 "github.com/cilium/cilium/api/v1/client/policy" 8 "github.com/cilium/cilium/api/v1/models" 9 "github.com/cilium/cilium/pkg/api" 10 ) 11 12 // PolicyPut inserts the `policyJSON` 13 func (c *Client) PolicyPut(policyJSON string) (*models.Policy, error) { 14 params := policy.NewPutPolicyParams().WithPolicy(policyJSON).WithTimeout(api.ClientTimeout) 15 resp, err := c.Policy.PutPolicy(params) 16 if err != nil { 17 return nil, Hint(err) 18 } 19 return resp.Payload, nil 20 } 21 22 // PolicyReplace replaces the `policyJSON` 23 func (c *Client) PolicyReplace(policyJSON string, replace bool, replaceWithLabels []string) (*models.Policy, error) { 24 params := policy.NewPutPolicyParams().WithPolicy(policyJSON).WithReplace(&replace).WithReplaceWithLabels(replaceWithLabels).WithTimeout(api.ClientTimeout) 25 resp, err := c.Policy.PutPolicy(params) 26 if err != nil { 27 return nil, Hint(err) 28 } 29 return resp.Payload, nil 30 } 31 32 // PolicyGet returns policy rules 33 func (c *Client) PolicyGet(labels []string) (*models.Policy, error) { 34 params := policy.NewGetPolicyParams().WithLabels(labels).WithTimeout(api.ClientTimeout) 35 resp, err := c.Policy.GetPolicy(params) 36 if err != nil { 37 return nil, Hint(err) 38 } 39 return resp.Payload, nil 40 } 41 42 // PolicyCacheGet returns the contents of a SelectorCache. 43 func (c *Client) PolicyCacheGet() (models.SelectorCache, error) { 44 params := policy.NewGetPolicySelectorsParams().WithTimeout(api.ClientTimeout) 45 resp, err := c.Policy.GetPolicySelectors(params) 46 if err != nil { 47 return nil, Hint(err) 48 } 49 return resp.Payload, nil 50 } 51 52 // PolicyDelete deletes policy rules 53 func (c *Client) PolicyDelete(labels []string) (*models.Policy, error) { 54 params := policy.NewDeletePolicyParams().WithLabels(labels).WithTimeout(api.ClientTimeout) 55 resp, err := c.Policy.DeletePolicy(params) 56 if err != nil { 57 return nil, Hint(err) 58 } 59 return resp.Payload, Hint(err) 60 }