Skip to content

Commit 2057a68

Browse files
committedJan 30, 2025
feat(api): api update (#3876)
1 parent a3251d4 commit 2057a68

8 files changed

+361
-99
lines changed
 

‎.stats.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
configured_endpoints: 1504
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-ee0fe6ded1f6eb6dfeee8aa4341555587ceed6fdce971e87b56809c6dbf2d64a.yml
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-8973dde42d42a39c8fbc5f3f1eb1328e6ac0c805ca4d3e5920796749ed58eb0a.yml

‎api.md

+12-10
Large diffs are not rendered by default.

‎zero_trust/accessapplication.go

-40
Original file line numberDiff line numberDiff line change
@@ -364,46 +364,6 @@ func (r applicationPolicyJSON) RawJSON() string {
364364
return r.raw
365365
}
366366

367-
type ApplicationPolicyParam struct {
368-
// The UUID of the policy
369-
ID param.Field[string] `json:"id"`
370-
// Administrators who can approve a temporary authentication request.
371-
ApprovalGroups param.Field[[]ApprovalGroupParam] `json:"approval_groups"`
372-
// Requires the user to request access from an administrator at the start of each
373-
// session.
374-
ApprovalRequired param.Field[bool] `json:"approval_required"`
375-
// The action Access will take if a user matches this policy. Infrastructure
376-
// application policies can only use the Allow action.
377-
Decision param.Field[Decision] `json:"decision"`
378-
// Rules evaluated with a NOT logical operator. To match the policy, a user cannot
379-
// meet any of the Exclude rules.
380-
Exclude param.Field[[]AccessRuleUnionParam] `json:"exclude"`
381-
// Rules evaluated with an OR logical operator. A user needs to meet only one of
382-
// the Include rules.
383-
Include param.Field[[]AccessRuleUnionParam] `json:"include"`
384-
// Require this application to be served in an isolated browser for users matching
385-
// this policy. 'Client Web Isolation' must be on for the account in order to use
386-
// this feature.
387-
IsolationRequired param.Field[bool] `json:"isolation_required"`
388-
// The name of the Access policy.
389-
Name param.Field[string] `json:"name"`
390-
// A custom message that will appear on the purpose justification screen.
391-
PurposeJustificationPrompt param.Field[string] `json:"purpose_justification_prompt"`
392-
// Require users to enter a justification when they log in to the application.
393-
PurposeJustificationRequired param.Field[bool] `json:"purpose_justification_required"`
394-
// Rules evaluated with an AND logical operator. To match the policy, a user must
395-
// meet all of the Require rules.
396-
Require param.Field[[]AccessRuleUnionParam] `json:"require"`
397-
// The amount of time that tokens issued for the application will be valid. Must be
398-
// in the format `300ms` or `2h45m`. Valid time units are: ns, us (or µs), ms, s,
399-
// m, h.
400-
SessionDuration param.Field[string] `json:"session_duration"`
401-
}
402-
403-
func (r ApplicationPolicyParam) MarshalJSON() (data []byte, err error) {
404-
return apijson.MarshalRoot(r)
405-
}
406-
407367
// The application type.
408368
type ApplicationType string
409369

‎zero_trust/accessapplicationpolicytest.go

+155-8
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,14 @@ import (
77
"errors"
88
"fmt"
99
"net/http"
10+
"net/url"
1011

1112
"github.com/cloudflare/cloudflare-go/v4/internal/apijson"
13+
"github.com/cloudflare/cloudflare-go/v4/internal/apiquery"
1214
"github.com/cloudflare/cloudflare-go/v4/internal/param"
1315
"github.com/cloudflare/cloudflare-go/v4/internal/requestconfig"
1416
"github.com/cloudflare/cloudflare-go/v4/option"
17+
"github.com/cloudflare/cloudflare-go/v4/shared"
1518
)
1619

1720
// AccessApplicationPolicyTestService contains methods and other services that help
@@ -37,29 +40,39 @@ func NewAccessApplicationPolicyTestService(opts ...option.RequestOption) (r *Acc
3740

3841
// Starts an Access policy test.
3942
func (r *AccessApplicationPolicyTestService) New(ctx context.Context, params AccessApplicationPolicyTestNewParams, opts ...option.RequestOption) (res *AccessApplicationPolicyTestNewResponse, err error) {
43+
var env AccessApplicationPolicyTestNewResponseEnvelope
4044
opts = append(r.Options[:], opts...)
4145
if params.AccountID.Value == "" {
4246
err = errors.New("missing required account_id parameter")
4347
return
4448
}
4549
path := fmt.Sprintf("accounts/%s/access/policy-tests", params.AccountID)
46-
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...)
50+
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &env, opts...)
51+
if err != nil {
52+
return
53+
}
54+
res = &env.Result
4755
return
4856
}
4957

5058
// Fetches the current status of a given Access policy test.
51-
func (r *AccessApplicationPolicyTestService) Get(ctx context.Context, policyTestID string, query AccessApplicationPolicyTestGetParams, opts ...option.RequestOption) (res *AccessApplicationPolicyTestGetResponse, err error) {
59+
func (r *AccessApplicationPolicyTestService) Get(ctx context.Context, policyTestID string, params AccessApplicationPolicyTestGetParams, opts ...option.RequestOption) (res *AccessApplicationPolicyTestGetResponse, err error) {
60+
var env AccessApplicationPolicyTestGetResponseEnvelope
5261
opts = append(r.Options[:], opts...)
53-
if query.AccountID.Value == "" {
62+
if params.AccountID.Value == "" {
5463
err = errors.New("missing required account_id parameter")
5564
return
5665
}
5766
if policyTestID == "" {
5867
err = errors.New("missing required policy_test_id parameter")
5968
return
6069
}
61-
path := fmt.Sprintf("accounts/%s/access/policy-tests/%s", query.AccountID, policyTestID)
62-
err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...)
70+
path := fmt.Sprintf("accounts/%s/access/policy-tests/%s", params.AccountID, policyTestID)
71+
err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, params, &env, opts...)
72+
if err != nil {
73+
return
74+
}
75+
res = &env.Result
6376
return
6477
}
6578

@@ -168,15 +181,149 @@ func (r AccessApplicationPolicyTestGetResponseStatus) IsKnown() bool {
168181

169182
type AccessApplicationPolicyTestNewParams struct {
170183
// Identifier
171-
AccountID param.Field[string] `path:"account_id,required"`
172-
ApplicationPolicy ApplicationPolicyParam `json:"application_policy,required"`
184+
AccountID param.Field[string] `path:"account_id,required"`
185+
Policies param.Field[[]AccessApplicationPolicyTestNewParamsPolicy] `json:"policies"`
173186
}
174187

175188
func (r AccessApplicationPolicyTestNewParams) MarshalJSON() (data []byte, err error) {
176-
return apijson.MarshalRoot(r.ApplicationPolicy)
189+
return apijson.MarshalRoot(r)
190+
}
191+
192+
type AccessApplicationPolicyTestNewParamsPolicy struct {
193+
// The action Access will take if a user matches this policy. Infrastructure
194+
// application policies can only use the Allow action.
195+
Decision param.Field[Decision] `json:"decision,required"`
196+
// Rules evaluated with an OR logical operator. A user needs to meet only one of
197+
// the Include rules.
198+
Include param.Field[[]AccessRuleUnionParam] `json:"include,required"`
199+
// The name of the Access policy.
200+
Name param.Field[string] `json:"name,required"`
201+
// Administrators who can approve a temporary authentication request.
202+
ApprovalGroups param.Field[[]ApprovalGroupParam] `json:"approval_groups"`
203+
// Requires the user to request access from an administrator at the start of each
204+
// session.
205+
ApprovalRequired param.Field[bool] `json:"approval_required"`
206+
// Rules evaluated with a NOT logical operator. To match the policy, a user cannot
207+
// meet any of the Exclude rules.
208+
Exclude param.Field[[]AccessRuleUnionParam] `json:"exclude"`
209+
// Require this application to be served in an isolated browser for users matching
210+
// this policy. 'Client Web Isolation' must be on for the account in order to use
211+
// this feature.
212+
IsolationRequired param.Field[bool] `json:"isolation_required"`
213+
// A custom message that will appear on the purpose justification screen.
214+
PurposeJustificationPrompt param.Field[string] `json:"purpose_justification_prompt"`
215+
// Require users to enter a justification when they log in to the application.
216+
PurposeJustificationRequired param.Field[bool] `json:"purpose_justification_required"`
217+
// Rules evaluated with an AND logical operator. To match the policy, a user must
218+
// meet all of the Require rules.
219+
Require param.Field[[]AccessRuleUnionParam] `json:"require"`
220+
// The amount of time that tokens issued for the application will be valid. Must be
221+
// in the format `300ms` or `2h45m`. Valid time units are: ns, us (or µs), ms, s,
222+
// m, h.
223+
SessionDuration param.Field[string] `json:"session_duration"`
224+
}
225+
226+
func (r AccessApplicationPolicyTestNewParamsPolicy) MarshalJSON() (data []byte, err error) {
227+
return apijson.MarshalRoot(r)
228+
}
229+
230+
type AccessApplicationPolicyTestNewResponseEnvelope struct {
231+
Errors []shared.ResponseInfo `json:"errors,required"`
232+
Messages []shared.ResponseInfo `json:"messages,required"`
233+
// Whether the API call was successful
234+
Success AccessApplicationPolicyTestNewResponseEnvelopeSuccess `json:"success,required"`
235+
Result AccessApplicationPolicyTestNewResponse `json:"result"`
236+
JSON accessApplicationPolicyTestNewResponseEnvelopeJSON `json:"-"`
237+
}
238+
239+
// accessApplicationPolicyTestNewResponseEnvelopeJSON contains the JSON metadata
240+
// for the struct [AccessApplicationPolicyTestNewResponseEnvelope]
241+
type accessApplicationPolicyTestNewResponseEnvelopeJSON struct {
242+
Errors apijson.Field
243+
Messages apijson.Field
244+
Success apijson.Field
245+
Result apijson.Field
246+
raw string
247+
ExtraFields map[string]apijson.Field
248+
}
249+
250+
func (r *AccessApplicationPolicyTestNewResponseEnvelope) UnmarshalJSON(data []byte) (err error) {
251+
return apijson.UnmarshalRoot(data, r)
252+
}
253+
254+
func (r accessApplicationPolicyTestNewResponseEnvelopeJSON) RawJSON() string {
255+
return r.raw
256+
}
257+
258+
// Whether the API call was successful
259+
type AccessApplicationPolicyTestNewResponseEnvelopeSuccess bool
260+
261+
const (
262+
AccessApplicationPolicyTestNewResponseEnvelopeSuccessTrue AccessApplicationPolicyTestNewResponseEnvelopeSuccess = true
263+
)
264+
265+
func (r AccessApplicationPolicyTestNewResponseEnvelopeSuccess) IsKnown() bool {
266+
switch r {
267+
case AccessApplicationPolicyTestNewResponseEnvelopeSuccessTrue:
268+
return true
269+
}
270+
return false
177271
}
178272

179273
type AccessApplicationPolicyTestGetParams struct {
180274
// Identifier
181275
AccountID param.Field[string] `path:"account_id,required"`
276+
Page param.Field[int64] `query:"page"`
277+
}
278+
279+
// URLQuery serializes [AccessApplicationPolicyTestGetParams]'s query parameters as
280+
// `url.Values`.
281+
func (r AccessApplicationPolicyTestGetParams) URLQuery() (v url.Values) {
282+
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
283+
ArrayFormat: apiquery.ArrayQueryFormatRepeat,
284+
NestedFormat: apiquery.NestedQueryFormatDots,
285+
})
286+
}
287+
288+
type AccessApplicationPolicyTestGetResponseEnvelope struct {
289+
Errors []shared.ResponseInfo `json:"errors,required"`
290+
Messages []shared.ResponseInfo `json:"messages,required"`
291+
// Whether the API call was successful
292+
Success AccessApplicationPolicyTestGetResponseEnvelopeSuccess `json:"success,required"`
293+
Result AccessApplicationPolicyTestGetResponse `json:"result"`
294+
JSON accessApplicationPolicyTestGetResponseEnvelopeJSON `json:"-"`
295+
}
296+
297+
// accessApplicationPolicyTestGetResponseEnvelopeJSON contains the JSON metadata
298+
// for the struct [AccessApplicationPolicyTestGetResponseEnvelope]
299+
type accessApplicationPolicyTestGetResponseEnvelopeJSON struct {
300+
Errors apijson.Field
301+
Messages apijson.Field
302+
Success apijson.Field
303+
Result apijson.Field
304+
raw string
305+
ExtraFields map[string]apijson.Field
306+
}
307+
308+
func (r *AccessApplicationPolicyTestGetResponseEnvelope) UnmarshalJSON(data []byte) (err error) {
309+
return apijson.UnmarshalRoot(data, r)
310+
}
311+
312+
func (r accessApplicationPolicyTestGetResponseEnvelopeJSON) RawJSON() string {
313+
return r.raw
314+
}
315+
316+
// Whether the API call was successful
317+
type AccessApplicationPolicyTestGetResponseEnvelopeSuccess bool
318+
319+
const (
320+
AccessApplicationPolicyTestGetResponseEnvelopeSuccessTrue AccessApplicationPolicyTestGetResponseEnvelopeSuccess = true
321+
)
322+
323+
func (r AccessApplicationPolicyTestGetResponseEnvelopeSuccess) IsKnown() bool {
324+
switch r {
325+
case AccessApplicationPolicyTestGetResponseEnvelopeSuccessTrue:
326+
return true
327+
}
328+
return false
182329
}

‎zero_trust/accessapplicationpolicytest_test.go

+11-11
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,14 @@ func TestAccessApplicationPolicyTestNewWithOptionalParams(t *testing.T) {
2929
)
3030
_, err := client.ZeroTrust.Access.Applications.PolicyTests.New(context.TODO(), zero_trust.AccessApplicationPolicyTestNewParams{
3131
AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
32-
ApplicationPolicy: zero_trust.ApplicationPolicyParam{
33-
ID: cloudflare.F("f174e90a-fafe-4643-bbbc-4a0ed4fc8415"),
32+
Policies: cloudflare.F([]zero_trust.AccessApplicationPolicyTestNewParamsPolicy{{
33+
Decision: cloudflare.F(zero_trust.DecisionAllow),
34+
Include: cloudflare.F([]zero_trust.AccessRuleUnionParam{zero_trust.GroupRuleParam{
35+
Group: cloudflare.F(zero_trust.GroupRuleGroupParam{
36+
ID: cloudflare.F("aa0a4aab-672b-4bdb-bc33-a59f1130a11f"),
37+
}),
38+
}}),
39+
Name: cloudflare.F("Allow devs"),
3440
ApprovalGroups: cloudflare.F([]zero_trust.ApprovalGroupParam{{
3541
ApprovalsNeeded: cloudflare.F(1.000000),
3642
EmailAddresses: cloudflare.F([]string{"test1@cloudflare.com", "test2@cloudflare.com"}),
@@ -41,19 +47,12 @@ func TestAccessApplicationPolicyTestNewWithOptionalParams(t *testing.T) {
4147
EmailListUUID: cloudflare.F("597147a1-976b-4ef2-9af0-81d5d007fc34"),
4248
}}),
4349
ApprovalRequired: cloudflare.F(true),
44-
Decision: cloudflare.F(zero_trust.DecisionAllow),
4550
Exclude: cloudflare.F([]zero_trust.AccessRuleUnionParam{zero_trust.GroupRuleParam{
4651
Group: cloudflare.F(zero_trust.GroupRuleGroupParam{
4752
ID: cloudflare.F("aa0a4aab-672b-4bdb-bc33-a59f1130a11f"),
4853
}),
4954
}}),
50-
Include: cloudflare.F([]zero_trust.AccessRuleUnionParam{zero_trust.GroupRuleParam{
51-
Group: cloudflare.F(zero_trust.GroupRuleGroupParam{
52-
ID: cloudflare.F("aa0a4aab-672b-4bdb-bc33-a59f1130a11f"),
53-
}),
54-
}}),
5555
IsolationRequired: cloudflare.F(false),
56-
Name: cloudflare.F("Allow devs"),
5756
PurposeJustificationPrompt: cloudflare.F("Please enter a justification for entering this protected domain."),
5857
PurposeJustificationRequired: cloudflare.F(true),
5958
Require: cloudflare.F([]zero_trust.AccessRuleUnionParam{zero_trust.GroupRuleParam{
@@ -62,7 +61,7 @@ func TestAccessApplicationPolicyTestNewWithOptionalParams(t *testing.T) {
6261
}),
6362
}}),
6463
SessionDuration: cloudflare.F("24h"),
65-
},
64+
}}),
6665
})
6766
if err != nil {
6867
var apierr *cloudflare.Error
@@ -73,7 +72,7 @@ func TestAccessApplicationPolicyTestNewWithOptionalParams(t *testing.T) {
7372
}
7473
}
7574

76-
func TestAccessApplicationPolicyTestGet(t *testing.T) {
75+
func TestAccessApplicationPolicyTestGetWithOptionalParams(t *testing.T) {
7776
baseURL := "http://localhost:4010"
7877
if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
7978
baseURL = envURL
@@ -91,6 +90,7 @@ func TestAccessApplicationPolicyTestGet(t *testing.T) {
9190
"f1a8b3c9d4e5f6789a0b1c2d3e4f5678a9b0c1d2e3f4a5b67890c1d2e3f4b5a6",
9291
zero_trust.AccessApplicationPolicyTestGetParams{
9392
AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
93+
Page: cloudflare.F(int64(0)),
9494
},
9595
)
9696
if err != nil {

‎zero_trust/accessapplicationpolicytestuser.go

+19-3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"github.com/cloudflare/cloudflare-go/v4/internal/param"
1313
"github.com/cloudflare/cloudflare-go/v4/internal/requestconfig"
1414
"github.com/cloudflare/cloudflare-go/v4/option"
15+
"github.com/cloudflare/cloudflare-go/v4/packages/pagination"
1516
)
1617

1718
// AccessApplicationPolicyTestUserService contains methods and other services that
@@ -34,8 +35,10 @@ func NewAccessApplicationPolicyTestUserService(opts ...option.RequestOption) (r
3435
}
3536

3637
// Fetches a single page of user results from an Access policy test.
37-
func (r *AccessApplicationPolicyTestUserService) List(ctx context.Context, policyTestID string, query AccessApplicationPolicyTestUserListParams, opts ...option.RequestOption) (res *[]AccessApplicationPolicyTestUserListResponse, err error) {
38+
func (r *AccessApplicationPolicyTestUserService) List(ctx context.Context, policyTestID string, query AccessApplicationPolicyTestUserListParams, opts ...option.RequestOption) (res *pagination.SinglePage[AccessApplicationPolicyTestUserListResponse], err error) {
39+
var raw *http.Response
3840
opts = append(r.Options[:], opts...)
41+
opts = append([]option.RequestOption{option.WithResponseInto(&raw)}, opts...)
3942
if query.AccountID.Value == "" {
4043
err = errors.New("missing required account_id parameter")
4144
return
@@ -45,8 +48,21 @@ func (r *AccessApplicationPolicyTestUserService) List(ctx context.Context, polic
4548
return
4649
}
4750
path := fmt.Sprintf("accounts/%s/access/policy-tests/%s/users", query.AccountID, policyTestID)
48-
err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...)
49-
return
51+
cfg, err := requestconfig.NewRequestConfig(ctx, http.MethodGet, path, nil, &res, opts...)
52+
if err != nil {
53+
return nil, err
54+
}
55+
err = cfg.Execute()
56+
if err != nil {
57+
return nil, err
58+
}
59+
res.SetPageConfig(cfg, raw)
60+
return res, nil
61+
}
62+
63+
// Fetches a single page of user results from an Access policy test.
64+
func (r *AccessApplicationPolicyTestUserService) ListAutoPaging(ctx context.Context, policyTestID string, query AccessApplicationPolicyTestUserListParams, opts ...option.RequestOption) *pagination.SinglePageAutoPager[AccessApplicationPolicyTestUserListResponse] {
65+
return pagination.NewSinglePageAutoPager(r.List(ctx, policyTestID, query, opts...))
5066
}
5167

5268
type AccessApplicationPolicyTestUserListResponse struct {

‎zero_trust/accessgroup.go

+152-16
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func NewAccessGroupService(opts ...option.RequestOption) (r *AccessGroupService)
3939
}
4040

4141
// Creates a new Access group.
42-
func (r *AccessGroupService) New(ctx context.Context, params AccessGroupNewParams, opts ...option.RequestOption) (res *ZeroTrustGroup, err error) {
42+
func (r *AccessGroupService) New(ctx context.Context, params AccessGroupNewParams, opts ...option.RequestOption) (res *AccessGroupNewResponse, err error) {
4343
var env AccessGroupNewResponseEnvelope
4444
opts = append(r.Options[:], opts...)
4545
var accountOrZone string
@@ -70,7 +70,7 @@ func (r *AccessGroupService) New(ctx context.Context, params AccessGroupNewParam
7070
}
7171

7272
// Updates a configured Access group.
73-
func (r *AccessGroupService) Update(ctx context.Context, groupID string, params AccessGroupUpdateParams, opts ...option.RequestOption) (res *ZeroTrustGroup, err error) {
73+
func (r *AccessGroupService) Update(ctx context.Context, groupID string, params AccessGroupUpdateParams, opts ...option.RequestOption) (res *AccessGroupUpdateResponse, err error) {
7474
var env AccessGroupUpdateResponseEnvelope
7575
opts = append(r.Options[:], opts...)
7676
var accountOrZone string
@@ -105,7 +105,7 @@ func (r *AccessGroupService) Update(ctx context.Context, groupID string, params
105105
}
106106

107107
// Lists all Access groups.
108-
func (r *AccessGroupService) List(ctx context.Context, params AccessGroupListParams, opts ...option.RequestOption) (res *pagination.SinglePage[ZeroTrustGroup], err error) {
108+
func (r *AccessGroupService) List(ctx context.Context, params AccessGroupListParams, opts ...option.RequestOption) (res *pagination.SinglePage[AccessGroupListResponse], err error) {
109109
var raw *http.Response
110110
opts = append(r.Options[:], opts...)
111111
opts = append([]option.RequestOption{option.WithResponseInto(&raw)}, opts...)
@@ -141,7 +141,7 @@ func (r *AccessGroupService) List(ctx context.Context, params AccessGroupListPar
141141
}
142142

143143
// Lists all Access groups.
144-
func (r *AccessGroupService) ListAutoPaging(ctx context.Context, params AccessGroupListParams, opts ...option.RequestOption) *pagination.SinglePageAutoPager[ZeroTrustGroup] {
144+
func (r *AccessGroupService) ListAutoPaging(ctx context.Context, params AccessGroupListParams, opts ...option.RequestOption) *pagination.SinglePageAutoPager[AccessGroupListResponse] {
145145
return pagination.NewSinglePageAutoPager(r.List(ctx, params, opts...))
146146
}
147147

@@ -181,7 +181,7 @@ func (r *AccessGroupService) Delete(ctx context.Context, groupID string, body Ac
181181
}
182182

183183
// Fetches a single Access group.
184-
func (r *AccessGroupService) Get(ctx context.Context, groupID string, query AccessGroupGetParams, opts ...option.RequestOption) (res *ZeroTrustGroup, err error) {
184+
func (r *AccessGroupService) Get(ctx context.Context, groupID string, query AccessGroupGetParams, opts ...option.RequestOption) (res *AccessGroupGetResponse, err error) {
185185
var env AccessGroupGetResponseEnvelope
186186
opts = append(r.Options[:], opts...)
187187
var accountOrZone string
@@ -215,7 +215,7 @@ func (r *AccessGroupService) Get(ctx context.Context, groupID string, query Acce
215215
return
216216
}
217217

218-
type ZeroTrustGroup struct {
218+
type AccessGroupNewResponse struct {
219219
// UUID
220220
ID string `json:"id"`
221221
CreatedAt time.Time `json:"created_at" format:"date-time"`
@@ -232,13 +232,14 @@ type ZeroTrustGroup struct {
232232
Name string `json:"name"`
233233
// Rules evaluated with an AND logical operator. To match a policy, a user must
234234
// meet all of the Require rules.
235-
Require []AccessRule `json:"require"`
236-
UpdatedAt time.Time `json:"updated_at" format:"date-time"`
237-
JSON zeroTrustGroupJSON `json:"-"`
235+
Require []AccessRule `json:"require"`
236+
UpdatedAt time.Time `json:"updated_at" format:"date-time"`
237+
JSON accessGroupNewResponseJSON `json:"-"`
238238
}
239239

240-
// zeroTrustGroupJSON contains the JSON metadata for the struct [ZeroTrustGroup]
241-
type zeroTrustGroupJSON struct {
240+
// accessGroupNewResponseJSON contains the JSON metadata for the struct
241+
// [AccessGroupNewResponse]
242+
type accessGroupNewResponseJSON struct {
242243
ID apijson.Field
243244
CreatedAt apijson.Field
244245
Exclude apijson.Field
@@ -251,11 +252,101 @@ type zeroTrustGroupJSON struct {
251252
ExtraFields map[string]apijson.Field
252253
}
253254

254-
func (r *ZeroTrustGroup) UnmarshalJSON(data []byte) (err error) {
255+
func (r *AccessGroupNewResponse) UnmarshalJSON(data []byte) (err error) {
255256
return apijson.UnmarshalRoot(data, r)
256257
}
257258

258-
func (r zeroTrustGroupJSON) RawJSON() string {
259+
func (r accessGroupNewResponseJSON) RawJSON() string {
260+
return r.raw
261+
}
262+
263+
type AccessGroupUpdateResponse struct {
264+
// UUID
265+
ID string `json:"id"`
266+
CreatedAt time.Time `json:"created_at" format:"date-time"`
267+
// Rules evaluated with a NOT logical operator. To match a policy, a user cannot
268+
// meet any of the Exclude rules.
269+
Exclude []AccessRule `json:"exclude"`
270+
// Rules evaluated with an OR logical operator. A user needs to meet only one of
271+
// the Include rules.
272+
Include []AccessRule `json:"include"`
273+
// Rules evaluated with an AND logical operator. To match a policy, a user must
274+
// meet all of the Require rules.
275+
IsDefault []AccessRule `json:"is_default"`
276+
// The name of the Access group.
277+
Name string `json:"name"`
278+
// Rules evaluated with an AND logical operator. To match a policy, a user must
279+
// meet all of the Require rules.
280+
Require []AccessRule `json:"require"`
281+
UpdatedAt time.Time `json:"updated_at" format:"date-time"`
282+
JSON accessGroupUpdateResponseJSON `json:"-"`
283+
}
284+
285+
// accessGroupUpdateResponseJSON contains the JSON metadata for the struct
286+
// [AccessGroupUpdateResponse]
287+
type accessGroupUpdateResponseJSON struct {
288+
ID apijson.Field
289+
CreatedAt apijson.Field
290+
Exclude apijson.Field
291+
Include apijson.Field
292+
IsDefault apijson.Field
293+
Name apijson.Field
294+
Require apijson.Field
295+
UpdatedAt apijson.Field
296+
raw string
297+
ExtraFields map[string]apijson.Field
298+
}
299+
300+
func (r *AccessGroupUpdateResponse) UnmarshalJSON(data []byte) (err error) {
301+
return apijson.UnmarshalRoot(data, r)
302+
}
303+
304+
func (r accessGroupUpdateResponseJSON) RawJSON() string {
305+
return r.raw
306+
}
307+
308+
type AccessGroupListResponse struct {
309+
// UUID
310+
ID string `json:"id"`
311+
CreatedAt time.Time `json:"created_at" format:"date-time"`
312+
// Rules evaluated with a NOT logical operator. To match a policy, a user cannot
313+
// meet any of the Exclude rules.
314+
Exclude []AccessRule `json:"exclude"`
315+
// Rules evaluated with an OR logical operator. A user needs to meet only one of
316+
// the Include rules.
317+
Include []AccessRule `json:"include"`
318+
// Rules evaluated with an AND logical operator. To match a policy, a user must
319+
// meet all of the Require rules.
320+
IsDefault []AccessRule `json:"is_default"`
321+
// The name of the Access group.
322+
Name string `json:"name"`
323+
// Rules evaluated with an AND logical operator. To match a policy, a user must
324+
// meet all of the Require rules.
325+
Require []AccessRule `json:"require"`
326+
UpdatedAt time.Time `json:"updated_at" format:"date-time"`
327+
JSON accessGroupListResponseJSON `json:"-"`
328+
}
329+
330+
// accessGroupListResponseJSON contains the JSON metadata for the struct
331+
// [AccessGroupListResponse]
332+
type accessGroupListResponseJSON struct {
333+
ID apijson.Field
334+
CreatedAt apijson.Field
335+
Exclude apijson.Field
336+
Include apijson.Field
337+
IsDefault apijson.Field
338+
Name apijson.Field
339+
Require apijson.Field
340+
UpdatedAt apijson.Field
341+
raw string
342+
ExtraFields map[string]apijson.Field
343+
}
344+
345+
func (r *AccessGroupListResponse) UnmarshalJSON(data []byte) (err error) {
346+
return apijson.UnmarshalRoot(data, r)
347+
}
348+
349+
func (r accessGroupListResponseJSON) RawJSON() string {
259350
return r.raw
260351
}
261352

@@ -281,6 +372,51 @@ func (r accessGroupDeleteResponseJSON) RawJSON() string {
281372
return r.raw
282373
}
283374

375+
type AccessGroupGetResponse struct {
376+
// UUID
377+
ID string `json:"id"`
378+
CreatedAt time.Time `json:"created_at" format:"date-time"`
379+
// Rules evaluated with a NOT logical operator. To match a policy, a user cannot
380+
// meet any of the Exclude rules.
381+
Exclude []AccessRule `json:"exclude"`
382+
// Rules evaluated with an OR logical operator. A user needs to meet only one of
383+
// the Include rules.
384+
Include []AccessRule `json:"include"`
385+
// Rules evaluated with an AND logical operator. To match a policy, a user must
386+
// meet all of the Require rules.
387+
IsDefault []AccessRule `json:"is_default"`
388+
// The name of the Access group.
389+
Name string `json:"name"`
390+
// Rules evaluated with an AND logical operator. To match a policy, a user must
391+
// meet all of the Require rules.
392+
Require []AccessRule `json:"require"`
393+
UpdatedAt time.Time `json:"updated_at" format:"date-time"`
394+
JSON accessGroupGetResponseJSON `json:"-"`
395+
}
396+
397+
// accessGroupGetResponseJSON contains the JSON metadata for the struct
398+
// [AccessGroupGetResponse]
399+
type accessGroupGetResponseJSON struct {
400+
ID apijson.Field
401+
CreatedAt apijson.Field
402+
Exclude apijson.Field
403+
Include apijson.Field
404+
IsDefault apijson.Field
405+
Name apijson.Field
406+
Require apijson.Field
407+
UpdatedAt apijson.Field
408+
raw string
409+
ExtraFields map[string]apijson.Field
410+
}
411+
412+
func (r *AccessGroupGetResponse) UnmarshalJSON(data []byte) (err error) {
413+
return apijson.UnmarshalRoot(data, r)
414+
}
415+
416+
func (r accessGroupGetResponseJSON) RawJSON() string {
417+
return r.raw
418+
}
419+
284420
type AccessGroupNewParams struct {
285421
// Rules evaluated with an OR logical operator. A user needs to meet only one of
286422
// the Include rules.
@@ -310,7 +446,7 @@ type AccessGroupNewResponseEnvelope struct {
310446
Messages []shared.ResponseInfo `json:"messages,required"`
311447
// Whether the API call was successful
312448
Success AccessGroupNewResponseEnvelopeSuccess `json:"success,required"`
313-
Result ZeroTrustGroup `json:"result"`
449+
Result AccessGroupNewResponse `json:"result"`
314450
JSON accessGroupNewResponseEnvelopeJSON `json:"-"`
315451
}
316452

@@ -377,7 +513,7 @@ type AccessGroupUpdateResponseEnvelope struct {
377513
Messages []shared.ResponseInfo `json:"messages,required"`
378514
// Whether the API call was successful
379515
Success AccessGroupUpdateResponseEnvelopeSuccess `json:"success,required"`
380-
Result ZeroTrustGroup `json:"result"`
516+
Result AccessGroupUpdateResponse `json:"result"`
381517
JSON accessGroupUpdateResponseEnvelopeJSON `json:"-"`
382518
}
383519

@@ -496,7 +632,7 @@ type AccessGroupGetResponseEnvelope struct {
496632
Messages []shared.ResponseInfo `json:"messages,required"`
497633
// Whether the API call was successful
498634
Success AccessGroupGetResponseEnvelopeSuccess `json:"success,required"`
499-
Result ZeroTrustGroup `json:"result"`
635+
Result AccessGroupGetResponse `json:"result"`
500636
JSON accessGroupGetResponseEnvelopeJSON `json:"-"`
501637
}
502638

‎zero_trust/accessuser.go

+11-10
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func NewAccessUserService(opts ...option.RequestOption) (r *AccessUserService) {
4444
}
4545

4646
// Gets a list of users for an account.
47-
func (r *AccessUserService) List(ctx context.Context, params AccessUserListParams, opts ...option.RequestOption) (res *pagination.SinglePage[AccessUser], err error) {
47+
func (r *AccessUserService) List(ctx context.Context, params AccessUserListParams, opts ...option.RequestOption) (res *pagination.SinglePage[AccessUserListResponse], err error) {
4848
var raw *http.Response
4949
opts = append(r.Options[:], opts...)
5050
opts = append([]option.RequestOption{option.WithResponseInto(&raw)}, opts...)
@@ -66,11 +66,11 @@ func (r *AccessUserService) List(ctx context.Context, params AccessUserListParam
6666
}
6767

6868
// Gets a list of users for an account.
69-
func (r *AccessUserService) ListAutoPaging(ctx context.Context, params AccessUserListParams, opts ...option.RequestOption) *pagination.SinglePageAutoPager[AccessUser] {
69+
func (r *AccessUserService) ListAutoPaging(ctx context.Context, params AccessUserListParams, opts ...option.RequestOption) *pagination.SinglePageAutoPager[AccessUserListResponse] {
7070
return pagination.NewSinglePageAutoPager(r.List(ctx, params, opts...))
7171
}
7272

73-
type AccessUser struct {
73+
type AccessUserListResponse struct {
7474
// UUID
7575
ID string `json:"id"`
7676
// True if the user has authenticated with Cloudflare Access.
@@ -89,13 +89,14 @@ type AccessUser struct {
8989
// The unique API identifier for the Zero Trust seat.
9090
SeatUID string `json:"seat_uid"`
9191
// The unique API identifier for the user.
92-
UID string `json:"uid"`
93-
UpdatedAt time.Time `json:"updated_at" format:"date-time"`
94-
JSON accessUserJSON `json:"-"`
92+
UID string `json:"uid"`
93+
UpdatedAt time.Time `json:"updated_at" format:"date-time"`
94+
JSON accessUserListResponseJSON `json:"-"`
9595
}
9696

97-
// accessUserJSON contains the JSON metadata for the struct [AccessUser]
98-
type accessUserJSON struct {
97+
// accessUserListResponseJSON contains the JSON metadata for the struct
98+
// [AccessUserListResponse]
99+
type accessUserListResponseJSON struct {
99100
ID apijson.Field
100101
AccessSeat apijson.Field
101102
ActiveDeviceCount apijson.Field
@@ -111,11 +112,11 @@ type accessUserJSON struct {
111112
ExtraFields map[string]apijson.Field
112113
}
113114

114-
func (r *AccessUser) UnmarshalJSON(data []byte) (err error) {
115+
func (r *AccessUserListResponse) UnmarshalJSON(data []byte) (err error) {
115116
return apijson.UnmarshalRoot(data, r)
116117
}
117118

118-
func (r accessUserJSON) RawJSON() string {
119+
func (r accessUserListResponseJSON) RawJSON() string {
119120
return r.raw
120121
}
121122

0 commit comments

Comments
 (0)
Please sign in to comment.