3
3
package firewall
4
4
5
5
import (
6
- "context"
7
- "errors"
8
- "fmt"
9
- "net/http"
10
- "net/url"
11
- "reflect"
12
-
13
- "github.com/cloudflare/cloudflare-go/v3/internal/apijson"
14
- "github.com/cloudflare/cloudflare-go/v3/internal/apiquery"
15
- "github.com/cloudflare/cloudflare-go/v3/internal/param"
16
- "github.com/cloudflare/cloudflare-go/v3/internal/requestconfig"
17
6
"github.com/cloudflare/cloudflare-go/v3/option"
18
- "github.com/cloudflare/cloudflare-go/v3/packages/pagination"
19
- "github.com/cloudflare/cloudflare-go/v3/shared"
20
- "github.com/tidwall/gjson"
21
7
)
22
8
23
9
// WAFPackageService contains methods and other services that help with interacting
@@ -42,287 +28,3 @@ func NewWAFPackageService(opts ...option.RequestOption) (r *WAFPackageService) {
42
28
r .Rules = NewWAFPackageRuleService (opts ... )
43
29
return
44
30
}
45
-
46
- // Fetches WAF packages for a zone.
47
- //
48
- // **Note:** Applies only to the
49
- // [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).
50
- func (r * WAFPackageService ) List (ctx context.Context , params WAFPackageListParams , opts ... option.RequestOption ) (res * pagination.V4PagePaginationArray [WAFPackageListResponse ], err error ) {
51
- var raw * http.Response
52
- opts = append (r .Options [:], opts ... )
53
- opts = append ([]option.RequestOption {option .WithResponseInto (& raw )}, opts ... )
54
- if params .ZoneID .Value == "" {
55
- err = errors .New ("missing required zone_id parameter" )
56
- return
57
- }
58
- path := fmt .Sprintf ("zones/%s/firewall/waf/packages" , params .ZoneID )
59
- cfg , err := requestconfig .NewRequestConfig (ctx , http .MethodGet , path , params , & res , opts ... )
60
- if err != nil {
61
- return nil , err
62
- }
63
- err = cfg .Execute ()
64
- if err != nil {
65
- return nil , err
66
- }
67
- res .SetPageConfig (cfg , raw )
68
- return res , nil
69
- }
70
-
71
- // Fetches WAF packages for a zone.
72
- //
73
- // **Note:** Applies only to the
74
- // [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).
75
- func (r * WAFPackageService ) ListAutoPaging (ctx context.Context , params WAFPackageListParams , opts ... option.RequestOption ) * pagination.V4PagePaginationArrayAutoPager [WAFPackageListResponse ] {
76
- return pagination .NewV4PagePaginationArrayAutoPager (r .List (ctx , params , opts ... ))
77
- }
78
-
79
- // Fetches the details of a WAF package.
80
- //
81
- // **Note:** Applies only to the
82
- // [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).
83
- func (r * WAFPackageService ) Get (ctx context.Context , packageID string , query WAFPackageGetParams , opts ... option.RequestOption ) (res * WAFPackageGetResponse , err error ) {
84
- opts = append (r .Options [:], opts ... )
85
- if query .ZoneID .Value == "" {
86
- err = errors .New ("missing required zone_id parameter" )
87
- return
88
- }
89
- if packageID == "" {
90
- err = errors .New ("missing required package_id parameter" )
91
- return
92
- }
93
- path := fmt .Sprintf ("zones/%s/firewall/waf/packages/%s" , query .ZoneID , packageID )
94
- err = requestconfig .ExecuteNewRequest (ctx , http .MethodGet , path , nil , & res , opts ... )
95
- return
96
- }
97
-
98
- type WAFPackageListResponse = interface {}
99
-
100
- type WAFPackageGetResponse struct {
101
- // This field can have the runtime type of [[]shared.ResponseInfo].
102
- Errors interface {} `json:"errors,required"`
103
- // This field can have the runtime type of [[]shared.ResponseInfo].
104
- Messages interface {} `json:"messages,required"`
105
- // This field can have the runtime type of [interface{}].
106
- Result interface {} `json:"result,required"`
107
- // Whether the API call was successful
108
- Success WAFPackageGetResponseSuccess `json:"success"`
109
- JSON wafPackageGetResponseJSON `json:"-"`
110
- union WAFPackageGetResponseUnion
111
- }
112
-
113
- // wafPackageGetResponseJSON contains the JSON metadata for the struct
114
- // [WAFPackageGetResponse]
115
- type wafPackageGetResponseJSON struct {
116
- Errors apijson.Field
117
- Messages apijson.Field
118
- Result apijson.Field
119
- Success apijson.Field
120
- raw string
121
- ExtraFields map [string ]apijson.Field
122
- }
123
-
124
- func (r wafPackageGetResponseJSON ) RawJSON () string {
125
- return r .raw
126
- }
127
-
128
- func (r * WAFPackageGetResponse ) UnmarshalJSON (data []byte ) (err error ) {
129
- * r = WAFPackageGetResponse {}
130
- err = apijson .UnmarshalRoot (data , & r .union )
131
- if err != nil {
132
- return err
133
- }
134
- return apijson .Port (r .union , & r )
135
- }
136
-
137
- // AsUnion returns a [WAFPackageGetResponseUnion] interface which you can cast to
138
- // the specific types for more type safety.
139
- //
140
- // Possible runtime types of the union are
141
- // [firewall.WAFPackageGetResponseFirewallAPIResponseSingle],
142
- // [firewall.WAFPackageGetResponseResult].
143
- func (r WAFPackageGetResponse ) AsUnion () WAFPackageGetResponseUnion {
144
- return r .union
145
- }
146
-
147
- // Union satisfied by [firewall.WAFPackageGetResponseFirewallAPIResponseSingle] or
148
- // [firewall.WAFPackageGetResponseResult].
149
- type WAFPackageGetResponseUnion interface {
150
- implementsFirewallWAFPackageGetResponse ()
151
- }
152
-
153
- func init () {
154
- apijson .RegisterUnion (
155
- reflect .TypeOf ((* WAFPackageGetResponseUnion )(nil )).Elem (),
156
- "" ,
157
- apijson.UnionVariant {
158
- TypeFilter : gjson .JSON ,
159
- Type : reflect .TypeOf (WAFPackageGetResponseFirewallAPIResponseSingle {}),
160
- },
161
- apijson.UnionVariant {
162
- TypeFilter : gjson .JSON ,
163
- Type : reflect .TypeOf (WAFPackageGetResponseResult {}),
164
- },
165
- )
166
- }
167
-
168
- type WAFPackageGetResponseFirewallAPIResponseSingle struct {
169
- Errors []shared.ResponseInfo `json:"errors,required"`
170
- Messages []shared.ResponseInfo `json:"messages,required"`
171
- Result interface {} `json:"result,required"`
172
- // Whether the API call was successful
173
- Success WAFPackageGetResponseFirewallAPIResponseSingleSuccess `json:"success,required"`
174
- JSON wafPackageGetResponseFirewallAPIResponseSingleJSON `json:"-"`
175
- }
176
-
177
- // wafPackageGetResponseFirewallAPIResponseSingleJSON contains the JSON metadata
178
- // for the struct [WAFPackageGetResponseFirewallAPIResponseSingle]
179
- type wafPackageGetResponseFirewallAPIResponseSingleJSON struct {
180
- Errors apijson.Field
181
- Messages apijson.Field
182
- Result apijson.Field
183
- Success apijson.Field
184
- raw string
185
- ExtraFields map [string ]apijson.Field
186
- }
187
-
188
- func (r * WAFPackageGetResponseFirewallAPIResponseSingle ) UnmarshalJSON (data []byte ) (err error ) {
189
- return apijson .UnmarshalRoot (data , r )
190
- }
191
-
192
- func (r wafPackageGetResponseFirewallAPIResponseSingleJSON ) RawJSON () string {
193
- return r .raw
194
- }
195
-
196
- func (r WAFPackageGetResponseFirewallAPIResponseSingle ) implementsFirewallWAFPackageGetResponse () {}
197
-
198
- // Whether the API call was successful
199
- type WAFPackageGetResponseFirewallAPIResponseSingleSuccess bool
200
-
201
- const (
202
- WAFPackageGetResponseFirewallAPIResponseSingleSuccessTrue WAFPackageGetResponseFirewallAPIResponseSingleSuccess = true
203
- )
204
-
205
- func (r WAFPackageGetResponseFirewallAPIResponseSingleSuccess ) IsKnown () bool {
206
- switch r {
207
- case WAFPackageGetResponseFirewallAPIResponseSingleSuccessTrue :
208
- return true
209
- }
210
- return false
211
- }
212
-
213
- type WAFPackageGetResponseResult struct {
214
- Result interface {} `json:"result"`
215
- JSON wafPackageGetResponseResultJSON `json:"-"`
216
- }
217
-
218
- // wafPackageGetResponseResultJSON contains the JSON metadata for the struct
219
- // [WAFPackageGetResponseResult]
220
- type wafPackageGetResponseResultJSON struct {
221
- Result apijson.Field
222
- raw string
223
- ExtraFields map [string ]apijson.Field
224
- }
225
-
226
- func (r * WAFPackageGetResponseResult ) UnmarshalJSON (data []byte ) (err error ) {
227
- return apijson .UnmarshalRoot (data , r )
228
- }
229
-
230
- func (r wafPackageGetResponseResultJSON ) RawJSON () string {
231
- return r .raw
232
- }
233
-
234
- func (r WAFPackageGetResponseResult ) implementsFirewallWAFPackageGetResponse () {}
235
-
236
- // Whether the API call was successful
237
- type WAFPackageGetResponseSuccess bool
238
-
239
- const (
240
- WAFPackageGetResponseSuccessTrue WAFPackageGetResponseSuccess = true
241
- )
242
-
243
- func (r WAFPackageGetResponseSuccess ) IsKnown () bool {
244
- switch r {
245
- case WAFPackageGetResponseSuccessTrue :
246
- return true
247
- }
248
- return false
249
- }
250
-
251
- type WAFPackageListParams struct {
252
- // Identifier
253
- ZoneID param.Field [string ] `path:"zone_id,required"`
254
- // The direction used to sort returned packages.
255
- Direction param.Field [WAFPackageListParamsDirection ] `query:"direction"`
256
- // When set to `all`, all the search requirements must match. When set to `any`,
257
- // only one of the search requirements has to match.
258
- Match param.Field [WAFPackageListParamsMatch ] `query:"match"`
259
- // The name of the WAF package.
260
- Name param.Field [string ] `query:"name"`
261
- // The field used to sort returned packages.
262
- Order param.Field [WAFPackageListParamsOrder ] `query:"order"`
263
- // The page number of paginated results.
264
- Page param.Field [float64 ] `query:"page"`
265
- // The number of packages per page.
266
- PerPage param.Field [float64 ] `query:"per_page"`
267
- }
268
-
269
- // URLQuery serializes [WAFPackageListParams]'s query parameters as `url.Values`.
270
- func (r WAFPackageListParams ) URLQuery () (v url.Values ) {
271
- return apiquery .MarshalWithSettings (r , apiquery.QuerySettings {
272
- ArrayFormat : apiquery .ArrayQueryFormatRepeat ,
273
- NestedFormat : apiquery .NestedQueryFormatDots ,
274
- })
275
- }
276
-
277
- // The direction used to sort returned packages.
278
- type WAFPackageListParamsDirection string
279
-
280
- const (
281
- WAFPackageListParamsDirectionAsc WAFPackageListParamsDirection = "asc"
282
- WAFPackageListParamsDirectionDesc WAFPackageListParamsDirection = "desc"
283
- )
284
-
285
- func (r WAFPackageListParamsDirection ) IsKnown () bool {
286
- switch r {
287
- case WAFPackageListParamsDirectionAsc , WAFPackageListParamsDirectionDesc :
288
- return true
289
- }
290
- return false
291
- }
292
-
293
- // When set to `all`, all the search requirements must match. When set to `any`,
294
- // only one of the search requirements has to match.
295
- type WAFPackageListParamsMatch string
296
-
297
- const (
298
- WAFPackageListParamsMatchAny WAFPackageListParamsMatch = "any"
299
- WAFPackageListParamsMatchAll WAFPackageListParamsMatch = "all"
300
- )
301
-
302
- func (r WAFPackageListParamsMatch ) IsKnown () bool {
303
- switch r {
304
- case WAFPackageListParamsMatchAny , WAFPackageListParamsMatchAll :
305
- return true
306
- }
307
- return false
308
- }
309
-
310
- // The field used to sort returned packages.
311
- type WAFPackageListParamsOrder string
312
-
313
- const (
314
- WAFPackageListParamsOrderName WAFPackageListParamsOrder = "name"
315
- )
316
-
317
- func (r WAFPackageListParamsOrder ) IsKnown () bool {
318
- switch r {
319
- case WAFPackageListParamsOrderName :
320
- return true
321
- }
322
- return false
323
- }
324
-
325
- type WAFPackageGetParams struct {
326
- // Identifier
327
- ZoneID param.Field [string ] `path:"zone_id,required"`
328
- }
0 commit comments