Skip to content

Commit aaaa3c5

Browse files
stainless-app[bot]stainless-bot
authored andcommittedNov 6, 2024·
feat(api): api update (#3573)
1 parent afe6a91 commit aaaa3c5

18 files changed

+85
-7723
lines changed
 

‎.stats.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
configured_endpoints: 1397
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-011592842d973a3e62f468488f0f813dd511233ee29c6feab3516ce5b9475814.yml
1+
configured_endpoints: 1361
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-f42cd2aad7c5dc546130b78d1b183a339ff0c666d7b0e98159bdfbf09eecd80d.yml

‎api.md

+1-131
Large diffs are not rendered by default.

‎filters/filter.go

-467
Large diffs are not rendered by default.

‎filters/filter_test.go

-163
This file was deleted.

‎firewall/accessrule.go

+82-1,548
Large diffs are not rendered by default.

‎firewall/accessrule_test.go

-96
Original file line numberDiff line numberDiff line change
@@ -82,99 +82,3 @@ func TestAccessRuleListWithOptionalParams(t *testing.T) {
8282
t.Fatalf("err should be nil: %s", err.Error())
8383
}
8484
}
85-
86-
func TestAccessRuleDeleteWithOptionalParams(t *testing.T) {
87-
t.Skip("TODO: investigate broken test")
88-
baseURL := "http://localhost:4010"
89-
if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
90-
baseURL = envURL
91-
}
92-
if !testutil.CheckTestServer(t, baseURL) {
93-
return
94-
}
95-
client := cloudflare.NewClient(
96-
option.WithBaseURL(baseURL),
97-
option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"),
98-
option.WithAPIEmail("user@example.com"),
99-
)
100-
_, err := client.Firewall.AccessRules.Delete(
101-
context.TODO(),
102-
"023e105f4ecef8ad9ca31a8372d0c353",
103-
firewall.AccessRuleDeleteParams{
104-
AccountID: cloudflare.F("account_id"),
105-
},
106-
)
107-
if err != nil {
108-
var apierr *cloudflare.Error
109-
if errors.As(err, &apierr) {
110-
t.Log(string(apierr.DumpRequest(true)))
111-
}
112-
t.Fatalf("err should be nil: %s", err.Error())
113-
}
114-
}
115-
116-
func TestAccessRuleEditWithOptionalParams(t *testing.T) {
117-
t.Skip("TODO: investigate broken test")
118-
baseURL := "http://localhost:4010"
119-
if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
120-
baseURL = envURL
121-
}
122-
if !testutil.CheckTestServer(t, baseURL) {
123-
return
124-
}
125-
client := cloudflare.NewClient(
126-
option.WithBaseURL(baseURL),
127-
option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"),
128-
option.WithAPIEmail("user@example.com"),
129-
)
130-
_, err := client.Firewall.AccessRules.Edit(
131-
context.TODO(),
132-
"023e105f4ecef8ad9ca31a8372d0c353",
133-
firewall.AccessRuleEditParams{
134-
Configuration: cloudflare.F[firewall.AccessRuleEditParamsConfigurationUnion](firewall.AccessRuleIPConfigurationParam{
135-
Target: cloudflare.F(firewall.AccessRuleIPConfigurationTargetIP),
136-
Value: cloudflare.F("198.51.100.4"),
137-
}),
138-
Mode: cloudflare.F(firewall.AccessRuleEditParamsModeBlock),
139-
AccountID: cloudflare.F("account_id"),
140-
Notes: cloudflare.F("This rule is enabled because of an event that occurred on date X."),
141-
},
142-
)
143-
if err != nil {
144-
var apierr *cloudflare.Error
145-
if errors.As(err, &apierr) {
146-
t.Log(string(apierr.DumpRequest(true)))
147-
}
148-
t.Fatalf("err should be nil: %s", err.Error())
149-
}
150-
}
151-
152-
func TestAccessRuleGetWithOptionalParams(t *testing.T) {
153-
t.Skip("TODO: investigate broken test")
154-
baseURL := "http://localhost:4010"
155-
if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
156-
baseURL = envURL
157-
}
158-
if !testutil.CheckTestServer(t, baseURL) {
159-
return
160-
}
161-
client := cloudflare.NewClient(
162-
option.WithBaseURL(baseURL),
163-
option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"),
164-
option.WithAPIEmail("user@example.com"),
165-
)
166-
_, err := client.Firewall.AccessRules.Get(
167-
context.TODO(),
168-
"023e105f4ecef8ad9ca31a8372d0c353",
169-
firewall.AccessRuleGetParams{
170-
AccountID: cloudflare.F("account_id"),
171-
},
172-
)
173-
if err != nil {
174-
var apierr *cloudflare.Error
175-
if errors.As(err, &apierr) {
176-
t.Log(string(apierr.DumpRequest(true)))
177-
}
178-
t.Fatalf("err should be nil: %s", err.Error())
179-
}
180-
}

‎firewall/lockdown.go

-655
Large diffs are not rendered by default.

‎firewall/lockdown_test.go

-176
This file was deleted.

‎firewall/rule.go

-827
Large diffs are not rendered by default.

‎firewall/rule_test.go

-220
This file was deleted.

‎firewall/uarule.go

-585
Large diffs are not rendered by default.

‎firewall/uarule_test.go

-169
This file was deleted.

‎firewall/wafoverride.go

-604
Large diffs are not rendered by default.

‎firewall/wafoverride_test.go

-169
This file was deleted.

‎firewall/wafpackage.go

-298
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,7 @@
33
package firewall
44

55
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"
176
"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"
217
)
228

239
// WAFPackageService contains methods and other services that help with interacting
@@ -42,287 +28,3 @@ func NewWAFPackageService(opts ...option.RequestOption) (r *WAFPackageService) {
4228
r.Rules = NewWAFPackageRuleService(opts...)
4329
return
4430
}
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-
}

‎firewall/wafpackage_test.go

-76
This file was deleted.

‎rate_limits/ratelimit.go

-1,315
Large diffs are not rendered by default.

‎rate_limits/ratelimit_test.go

-222
This file was deleted.

0 commit comments

Comments
 (0)
Please sign in to comment.