Blame


1 e6fcfaf5 2022-01-18 o // Code generated by ./crud.sh -o crud.go; DO NOT EDIT.
2 26fb88e9 2022-01-12 o
3 26fb88e9 2022-01-12 o package icinga
4 26fb88e9 2022-01-12 o
5 410b3745 2023-03-11 o import (
6 410b3745 2023-03-11 o "fmt"
7 410b3745 2023-03-11 o "net/url"
8 410b3745 2023-03-11 o )
9 26fb88e9 2022-01-12 o
10 26fb88e9 2022-01-12 o // Hosts returns a slice of Host matching the filter expression filter.
11 26fb88e9 2022-01-12 o // If no hosts match, error wraps ErrNoMatch.
12 26fb88e9 2022-01-12 o // To fetch all host, set filter to the empty string ("").
13 26fb88e9 2022-01-12 o func (c *Client) Hosts(filter string) ([]Host, error) {
14 46fe962a 2022-02-02 o objects, err := c.filterObjects("/objects/hosts", filter)
15 26fb88e9 2022-01-12 o if err != nil {
16 64e18a8d 2022-01-21 o return nil, fmt.Errorf("get hosts filter %s: %w", filter, err)
17 26fb88e9 2022-01-12 o }
18 26fb88e9 2022-01-12 o var hosts []Host
19 26fb88e9 2022-01-12 o for _, o := range objects {
20 26fb88e9 2022-01-12 o v, ok := o.(Host)
21 26fb88e9 2022-01-12 o if !ok {
22 64e18a8d 2022-01-21 o return nil, fmt.Errorf("get hosts filter %s: %T in response", filter, v)
23 26fb88e9 2022-01-12 o }
24 26fb88e9 2022-01-12 o hosts = append(hosts, v)
25 26fb88e9 2022-01-12 o }
26 26fb88e9 2022-01-12 o return hosts, nil
27 26fb88e9 2022-01-12 o }
28 26fb88e9 2022-01-12 o
29 26fb88e9 2022-01-12 o // LookupHost returns the Host identified by name. If no Host is found, error
30 26fb88e9 2022-01-12 o // wraps ErrNotExist.
31 26fb88e9 2022-01-12 o func (c *Client) LookupHost(name string) (Host, error) {
32 410b3745 2023-03-11 o obj, err := c.lookupObject("/objects/hosts/" + url.PathEscape(name))
33 26fb88e9 2022-01-12 o if err != nil {
34 26fb88e9 2022-01-12 o return Host{}, fmt.Errorf("lookup host %s: %w", name, err)
35 26fb88e9 2022-01-12 o }
36 26fb88e9 2022-01-12 o v, ok := obj.(Host)
37 26fb88e9 2022-01-12 o if !ok {
38 26fb88e9 2022-01-12 o return Host{}, fmt.Errorf("lookup host %s: result type %T is not Host", name, v)
39 26fb88e9 2022-01-12 o }
40 26fb88e9 2022-01-12 o return v, nil
41 26fb88e9 2022-01-12 o }
42 26fb88e9 2022-01-12 o
43 26fb88e9 2022-01-12 o // CreateHost creates host. Some fields of host must be set for successful
44 26fb88e9 2022-01-12 o // creation; see the type definition of Host for details.
45 26fb88e9 2022-01-12 o func (c *Client) CreateHost(host Host) error {
46 46fe962a 2022-02-02 o if err := c.createObject(host); err != nil {
47 26fb88e9 2022-01-12 o return fmt.Errorf("create host %s: %w", host.Name, err)
48 26fb88e9 2022-01-12 o }
49 26fb88e9 2022-01-12 o return nil
50 26fb88e9 2022-01-12 o }
51 26fb88e9 2022-01-12 o
52 02a1a100 2022-01-18 o // DeleteHost deletes the Host identified by name. If cascade is true, objects
53 02a1a100 2022-01-18 o // depending on the Host are also deleted. If no Host is found, error wraps
54 02a1a100 2022-01-18 o // ErrNotExist.
55 02a1a100 2022-01-18 o func (c *Client) DeleteHost(name string, cascade bool) error {
56 410b3745 2023-03-11 o if err := c.deleteObject("/objects/hosts/"+url.PathEscape(name), cascade); err != nil {
57 26fb88e9 2022-01-12 o return fmt.Errorf("delete host %s: %w", name, err)
58 26fb88e9 2022-01-12 o }
59 26fb88e9 2022-01-12 o return nil
60 26fb88e9 2022-01-12 o }
61 26fb88e9 2022-01-12 o // Services returns a slice of Service matching the filter expression filter.
62 6c703620 2022-01-12 o // If no services match, error wraps ErrNoMatch.
63 26fb88e9 2022-01-12 o // To fetch all service, set filter to the empty string ("").
64 26fb88e9 2022-01-12 o func (c *Client) Services(filter string) ([]Service, error) {
65 46fe962a 2022-02-02 o objects, err := c.filterObjects("/objects/services", filter)
66 26fb88e9 2022-01-12 o if err != nil {
67 64e18a8d 2022-01-21 o return nil, fmt.Errorf("get services filter %s: %w", filter, err)
68 26fb88e9 2022-01-12 o }
69 26fb88e9 2022-01-12 o var services []Service
70 26fb88e9 2022-01-12 o for _, o := range objects {
71 26fb88e9 2022-01-12 o v, ok := o.(Service)
72 26fb88e9 2022-01-12 o if !ok {
73 64e18a8d 2022-01-21 o return nil, fmt.Errorf("get services filter %s: %T in response", filter, v)
74 26fb88e9 2022-01-12 o }
75 26fb88e9 2022-01-12 o services = append(services, v)
76 26fb88e9 2022-01-12 o }
77 26fb88e9 2022-01-12 o return services, nil
78 26fb88e9 2022-01-12 o }
79 26fb88e9 2022-01-12 o
80 26fb88e9 2022-01-12 o // LookupService returns the Service identified by name. If no Service is found, error
81 26fb88e9 2022-01-12 o // wraps ErrNotExist.
82 26fb88e9 2022-01-12 o func (c *Client) LookupService(name string) (Service, error) {
83 410b3745 2023-03-11 o obj, err := c.lookupObject("/objects/services/" + url.PathEscape(name))
84 26fb88e9 2022-01-12 o if err != nil {
85 26fb88e9 2022-01-12 o return Service{}, fmt.Errorf("lookup service %s: %w", name, err)
86 26fb88e9 2022-01-12 o }
87 26fb88e9 2022-01-12 o v, ok := obj.(Service)
88 26fb88e9 2022-01-12 o if !ok {
89 26fb88e9 2022-01-12 o return Service{}, fmt.Errorf("lookup service %s: result type %T is not Service", name, v)
90 26fb88e9 2022-01-12 o }
91 26fb88e9 2022-01-12 o return v, nil
92 26fb88e9 2022-01-12 o }
93 26fb88e9 2022-01-12 o
94 26fb88e9 2022-01-12 o // CreateService creates service. Some fields of service must be set for successful
95 26fb88e9 2022-01-12 o // creation; see the type definition of Service for details.
96 26fb88e9 2022-01-12 o func (c *Client) CreateService(service Service) error {
97 46fe962a 2022-02-02 o if err := c.createObject(service); err != nil {
98 26fb88e9 2022-01-12 o return fmt.Errorf("create service %s: %w", service.Name, err)
99 26fb88e9 2022-01-12 o }
100 26fb88e9 2022-01-12 o return nil
101 26fb88e9 2022-01-12 o }
102 26fb88e9 2022-01-12 o
103 02a1a100 2022-01-18 o // DeleteService deletes the Service identified by name. If cascade is true, objects
104 02a1a100 2022-01-18 o // depending on the Service are also deleted. If no Service is found, error wraps
105 02a1a100 2022-01-18 o // ErrNotExist.
106 02a1a100 2022-01-18 o func (c *Client) DeleteService(name string, cascade bool) error {
107 410b3745 2023-03-11 o if err := c.deleteObject("/objects/services/"+url.PathEscape(name), cascade); err != nil {
108 26fb88e9 2022-01-12 o return fmt.Errorf("delete service %s: %w", name, err)
109 26fb88e9 2022-01-12 o }
110 26fb88e9 2022-01-12 o return nil
111 26fb88e9 2022-01-12 o }
112 26fb88e9 2022-01-12 o // Users returns a slice of User matching the filter expression filter.
113 6c703620 2022-01-12 o // If no users match, error wraps ErrNoMatch.
114 26fb88e9 2022-01-12 o // To fetch all user, set filter to the empty string ("").
115 26fb88e9 2022-01-12 o func (c *Client) Users(filter string) ([]User, error) {
116 46fe962a 2022-02-02 o objects, err := c.filterObjects("/objects/users", filter)
117 26fb88e9 2022-01-12 o if err != nil {
118 64e18a8d 2022-01-21 o return nil, fmt.Errorf("get users filter %s: %w", filter, err)
119 26fb88e9 2022-01-12 o }
120 26fb88e9 2022-01-12 o var users []User
121 26fb88e9 2022-01-12 o for _, o := range objects {
122 26fb88e9 2022-01-12 o v, ok := o.(User)
123 26fb88e9 2022-01-12 o if !ok {
124 64e18a8d 2022-01-21 o return nil, fmt.Errorf("get users filter %s: %T in response", filter, v)
125 26fb88e9 2022-01-12 o }
126 26fb88e9 2022-01-12 o users = append(users, v)
127 26fb88e9 2022-01-12 o }
128 26fb88e9 2022-01-12 o return users, nil
129 26fb88e9 2022-01-12 o }
130 26fb88e9 2022-01-12 o
131 26fb88e9 2022-01-12 o // LookupUser returns the User identified by name. If no User is found, error
132 26fb88e9 2022-01-12 o // wraps ErrNotExist.
133 26fb88e9 2022-01-12 o func (c *Client) LookupUser(name string) (User, error) {
134 410b3745 2023-03-11 o obj, err := c.lookupObject("/objects/users/" + url.PathEscape(name))
135 26fb88e9 2022-01-12 o if err != nil {
136 26fb88e9 2022-01-12 o return User{}, fmt.Errorf("lookup user %s: %w", name, err)
137 26fb88e9 2022-01-12 o }
138 26fb88e9 2022-01-12 o v, ok := obj.(User)
139 26fb88e9 2022-01-12 o if !ok {
140 26fb88e9 2022-01-12 o return User{}, fmt.Errorf("lookup user %s: result type %T is not User", name, v)
141 26fb88e9 2022-01-12 o }
142 26fb88e9 2022-01-12 o return v, nil
143 26fb88e9 2022-01-12 o }
144 26fb88e9 2022-01-12 o
145 26fb88e9 2022-01-12 o // CreateUser creates user. Some fields of user must be set for successful
146 26fb88e9 2022-01-12 o // creation; see the type definition of User for details.
147 26fb88e9 2022-01-12 o func (c *Client) CreateUser(user User) error {
148 46fe962a 2022-02-02 o if err := c.createObject(user); err != nil {
149 26fb88e9 2022-01-12 o return fmt.Errorf("create user %s: %w", user.Name, err)
150 26fb88e9 2022-01-12 o }
151 26fb88e9 2022-01-12 o return nil
152 26fb88e9 2022-01-12 o }
153 26fb88e9 2022-01-12 o
154 02a1a100 2022-01-18 o // DeleteUser deletes the User identified by name. If cascade is true, objects
155 02a1a100 2022-01-18 o // depending on the User are also deleted. If no User is found, error wraps
156 02a1a100 2022-01-18 o // ErrNotExist.
157 02a1a100 2022-01-18 o func (c *Client) DeleteUser(name string, cascade bool) error {
158 410b3745 2023-03-11 o if err := c.deleteObject("/objects/users/"+url.PathEscape(name), cascade); err != nil {
159 26fb88e9 2022-01-12 o return fmt.Errorf("delete user %s: %w", name, err)
160 26fb88e9 2022-01-12 o }
161 26fb88e9 2022-01-12 o return nil
162 26fb88e9 2022-01-12 o }
163 e0c24850 2022-01-14 o // HostGroups returns a slice of HostGroup matching the filter expression filter.
164 e0c24850 2022-01-14 o // If no hostgroups match, error wraps ErrNoMatch.
165 e0c24850 2022-01-14 o // To fetch all hostgroup, set filter to the empty string ("").
166 e0c24850 2022-01-14 o func (c *Client) HostGroups(filter string) ([]HostGroup, error) {
167 46fe962a 2022-02-02 o objects, err := c.filterObjects("/objects/hostgroups", filter)
168 e0c24850 2022-01-14 o if err != nil {
169 64e18a8d 2022-01-21 o return nil, fmt.Errorf("get hostgroups filter %s: %w", filter, err)
170 e0c24850 2022-01-14 o }
171 e0c24850 2022-01-14 o var hostgroups []HostGroup
172 e0c24850 2022-01-14 o for _, o := range objects {
173 e0c24850 2022-01-14 o v, ok := o.(HostGroup)
174 e0c24850 2022-01-14 o if !ok {
175 64e18a8d 2022-01-21 o return nil, fmt.Errorf("get hostgroups filter %s: %T in response", filter, v)
176 e0c24850 2022-01-14 o }
177 e0c24850 2022-01-14 o hostgroups = append(hostgroups, v)
178 e0c24850 2022-01-14 o }
179 e0c24850 2022-01-14 o return hostgroups, nil
180 e0c24850 2022-01-14 o }
181 e0c24850 2022-01-14 o
182 e0c24850 2022-01-14 o // LookupHostGroup returns the HostGroup identified by name. If no HostGroup is found, error
183 e0c24850 2022-01-14 o // wraps ErrNotExist.
184 e0c24850 2022-01-14 o func (c *Client) LookupHostGroup(name string) (HostGroup, error) {
185 410b3745 2023-03-11 o obj, err := c.lookupObject("/objects/hostgroups/" + url.PathEscape(name))
186 e0c24850 2022-01-14 o if err != nil {
187 e0c24850 2022-01-14 o return HostGroup{}, fmt.Errorf("lookup hostgroup %s: %w", name, err)
188 e0c24850 2022-01-14 o }
189 e0c24850 2022-01-14 o v, ok := obj.(HostGroup)
190 e0c24850 2022-01-14 o if !ok {
191 e0c24850 2022-01-14 o return HostGroup{}, fmt.Errorf("lookup hostgroup %s: result type %T is not HostGroup", name, v)
192 e0c24850 2022-01-14 o }
193 e0c24850 2022-01-14 o return v, nil
194 e0c24850 2022-01-14 o }
195 e0c24850 2022-01-14 o
196 e0c24850 2022-01-14 o // CreateHostGroup creates hostgroup. Some fields of hostgroup must be set for successful
197 e0c24850 2022-01-14 o // creation; see the type definition of HostGroup for details.
198 e0c24850 2022-01-14 o func (c *Client) CreateHostGroup(hostgroup HostGroup) error {
199 46fe962a 2022-02-02 o if err := c.createObject(hostgroup); err != nil {
200 e0c24850 2022-01-14 o return fmt.Errorf("create hostgroup %s: %w", hostgroup.Name, err)
201 e0c24850 2022-01-14 o }
202 e0c24850 2022-01-14 o return nil
203 e0c24850 2022-01-14 o }
204 e0c24850 2022-01-14 o
205 02a1a100 2022-01-18 o // DeleteHostGroup deletes the HostGroup identified by name. If cascade is true, objects
206 02a1a100 2022-01-18 o // depending on the HostGroup are also deleted. If no HostGroup is found, error wraps
207 02a1a100 2022-01-18 o // ErrNotExist.
208 02a1a100 2022-01-18 o func (c *Client) DeleteHostGroup(name string, cascade bool) error {
209 410b3745 2023-03-11 o if err := c.deleteObject("/objects/hostgroups/"+url.PathEscape(name), cascade); err != nil {
210 e0c24850 2022-01-14 o return fmt.Errorf("delete hostgroup %s: %w", name, err)
211 e0c24850 2022-01-14 o }
212 e0c24850 2022-01-14 o return nil
213 e0c24850 2022-01-14 o }