Skip to content

Commit 75d845b

Browse files
chore(api): upload stainless config from cloudflare-config
1 parent a6f85bf commit 75d845b

File tree

5 files changed

+187
-2
lines changed

5 files changed

+187
-2
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 1780
1+
configured_endpoints: 1782
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e11ecd82283dd3f7b3656cad55808ac97ed1580774b39d374ad31e8177dd90d1.yml
33
openapi_spec_hash: 7164ecdc98d777ab3e0fcff08126b34a
4-
config_hash: 3c3eb4d2344e048ccefb763165bb4e9f
4+
config_hash: 82511e0d291f7ff3bac22f87ded4e0a5

api.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8158,6 +8158,15 @@ Methods:
81588158

81598159
## BinaryStorage
81608160

8161+
Response Types:
8162+
8163+
- <a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v4/cloudforce_one">cloudforce_one</a>.<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v4/cloudforce_one#BinaryStorageNewResponse">BinaryStorageNewResponse</a>
8164+
8165+
Methods:
8166+
8167+
- <code title="post /accounts/{account_id}/cloudforce-one/binary">client.CloudforceOne.BinaryStorage.<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v4/cloudforce_one#BinaryStorageService.New">New</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, params <a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v4/cloudforce_one">cloudforce_one</a>.<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v4/cloudforce_one#BinaryStorageNewParams">BinaryStorageNewParams</a>) (<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v4/cloudforce_one">cloudforce_one</a>.<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v4/cloudforce_one#BinaryStorageNewResponse">BinaryStorageNewResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
8168+
- <code title="get /accounts/{account_id}/cloudforce-one/binary/{hash}">client.CloudforceOne.BinaryStorage.<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v4/cloudforce_one#BinaryStorageService.Get">Get</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, hash <a href="https://pkg.go.dev/builtin#string">string</a>, query <a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v4/cloudforce_one">cloudforce_one</a>.<a href="https://pkg.go.dev/github.com/cloudflare/cloudflare-go/v4/cloudforce_one#BinaryStorageGetParams">BinaryStorageGetParams</a>) <a href="https://pkg.go.dev/builtin#error">error</a></code>
8169+
81618170
## Requests
81628171

81638172
Response Types:

cloudforce_one/binarystorage.go

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,18 @@
33
package cloudforce_one
44

55
import (
6+
"bytes"
7+
"context"
8+
"errors"
9+
"fmt"
10+
"io"
11+
"mime/multipart"
12+
"net/http"
13+
14+
"github.com/cloudflare/cloudflare-go/v4/internal/apiform"
15+
"github.com/cloudflare/cloudflare-go/v4/internal/apijson"
16+
"github.com/cloudflare/cloudflare-go/v4/internal/param"
17+
"github.com/cloudflare/cloudflare-go/v4/internal/requestconfig"
618
"github.com/cloudflare/cloudflare-go/v4/option"
719
)
820

@@ -24,3 +36,94 @@ func NewBinaryStorageService(opts ...option.RequestOption) (r *BinaryStorageServ
2436
r.Options = opts
2537
return
2638
}
39+
40+
// Posts a file to BinDB
41+
func (r *BinaryStorageService) New(ctx context.Context, params BinaryStorageNewParams, opts ...option.RequestOption) (res *BinaryStorageNewResponse, err error) {
42+
opts = append(r.Options[:], opts...)
43+
if params.AccountID.Value == "" {
44+
err = errors.New("missing required account_id parameter")
45+
return
46+
}
47+
path := fmt.Sprintf("accounts/%s/cloudforce-one/binary", params.AccountID)
48+
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...)
49+
return
50+
}
51+
52+
// Posts a file to BinDB
53+
func (r *BinaryStorageService) Get(ctx context.Context, hash string, query BinaryStorageGetParams, opts ...option.RequestOption) (err error) {
54+
opts = append(r.Options[:], opts...)
55+
opts = append([]option.RequestOption{option.WithHeader("Accept", "")}, opts...)
56+
if query.AccountID.Value == "" {
57+
err = errors.New("missing required account_id parameter")
58+
return
59+
}
60+
if hash == "" {
61+
err = errors.New("missing required hash parameter")
62+
return
63+
}
64+
path := fmt.Sprintf("accounts/%s/cloudforce-one/binary/%s", query.AccountID, hash)
65+
err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, nil, opts...)
66+
return
67+
}
68+
69+
type BinaryStorageNewResponse struct {
70+
AccountIDs []string `json:"accountIds,required"`
71+
ContentType string `json:"content_type,required"`
72+
Filenames []string `json:"filenames,required"`
73+
FirstSeen float64 `json:"first_seen,required"`
74+
IsPrivate bool `json:"is_private,required"`
75+
Md5 string `json:"md5,required"`
76+
Sha1 string `json:"sha1,required"`
77+
Sha256 string `json:"sha256,required"`
78+
JSON binaryStorageNewResponseJSON `json:"-"`
79+
}
80+
81+
// binaryStorageNewResponseJSON contains the JSON metadata for the struct
82+
// [BinaryStorageNewResponse]
83+
type binaryStorageNewResponseJSON struct {
84+
AccountIDs apijson.Field
85+
ContentType apijson.Field
86+
Filenames apijson.Field
87+
FirstSeen apijson.Field
88+
IsPrivate apijson.Field
89+
Md5 apijson.Field
90+
Sha1 apijson.Field
91+
Sha256 apijson.Field
92+
raw string
93+
ExtraFields map[string]apijson.Field
94+
}
95+
96+
func (r *BinaryStorageNewResponse) UnmarshalJSON(data []byte) (err error) {
97+
return apijson.UnmarshalRoot(data, r)
98+
}
99+
100+
func (r binaryStorageNewResponseJSON) RawJSON() string {
101+
return r.raw
102+
}
103+
104+
type BinaryStorageNewParams struct {
105+
// Account ID.
106+
AccountID param.Field[string] `path:"account_id,required"`
107+
// The binary file content to upload.
108+
File param.Field[io.Reader] `json:"file,required" format:"binary"`
109+
}
110+
111+
func (r BinaryStorageNewParams) MarshalMultipart() (data []byte, contentType string, err error) {
112+
buf := bytes.NewBuffer(nil)
113+
writer := multipart.NewWriter(buf)
114+
err = apiform.MarshalRoot(r, writer)
115+
if err != nil {
116+
writer.Close()
117+
return nil, "", err
118+
}
119+
err = writer.Close()
120+
if err != nil {
121+
return nil, "", err
122+
}
123+
return buf.Bytes(), writer.FormDataContentType(), nil
124+
}
125+
126+
type BinaryStorageGetParams struct {
127+
// Account ID.
128+
AccountID param.Field[string] `path:"account_id,required"`
129+
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
package cloudforce_one_test
4+
5+
import (
6+
"bytes"
7+
"context"
8+
"errors"
9+
"io"
10+
"os"
11+
"testing"
12+
13+
"github.com/cloudflare/cloudflare-go/v4"
14+
"github.com/cloudflare/cloudflare-go/v4/cloudforce_one"
15+
"github.com/cloudflare/cloudflare-go/v4/internal/testutil"
16+
"github.com/cloudflare/cloudflare-go/v4/option"
17+
)
18+
19+
func TestBinaryStorageNew(t *testing.T) {
20+
baseURL := "http://localhost:4010"
21+
if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
22+
baseURL = envURL
23+
}
24+
if !testutil.CheckTestServer(t, baseURL) {
25+
return
26+
}
27+
client := cloudflare.NewClient(
28+
option.WithBaseURL(baseURL),
29+
option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"),
30+
option.WithAPIEmail("user@example.com"),
31+
)
32+
_, err := client.CloudforceOne.BinaryStorage.New(context.TODO(), cloudforce_one.BinaryStorageNewParams{
33+
AccountID: cloudflare.F("account_id"),
34+
File: cloudflare.F(io.Reader(bytes.NewBuffer([]byte("some file contents")))),
35+
})
36+
if err != nil {
37+
var apierr *cloudflare.Error
38+
if errors.As(err, &apierr) {
39+
t.Log(string(apierr.DumpRequest(true)))
40+
}
41+
t.Fatalf("err should be nil: %s", err.Error())
42+
}
43+
}
44+
45+
func TestBinaryStorageGet(t *testing.T) {
46+
baseURL := "http://localhost:4010"
47+
if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
48+
baseURL = envURL
49+
}
50+
if !testutil.CheckTestServer(t, baseURL) {
51+
return
52+
}
53+
client := cloudflare.NewClient(
54+
option.WithBaseURL(baseURL),
55+
option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"),
56+
option.WithAPIEmail("user@example.com"),
57+
)
58+
err := client.CloudforceOne.BinaryStorage.Get(
59+
context.TODO(),
60+
"hash",
61+
cloudforce_one.BinaryStorageGetParams{
62+
AccountID: cloudflare.F("account_id"),
63+
},
64+
)
65+
if err != nil {
66+
var apierr *cloudflare.Error
67+
if errors.As(err, &apierr) {
68+
t.Log(string(apierr.DumpRequest(true)))
69+
}
70+
t.Fatalf("err should be nil: %s", err.Error())
71+
}
72+
}

scripts/detect-breaking-changes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -566,6 +566,7 @@ TEST_PATHS=(
566566
calls/turn_test.go
567567
cloudforce_one/scanresult_test.go
568568
cloudforce_one/scanconfig_test.go
569+
cloudforce_one/binarystorage_test.go
569570
cloudforce_one/request_test.go
570571
cloudforce_one/requestmessage_test.go
571572
cloudforce_one/requestpriority_test.go

0 commit comments

Comments
 (0)