diff --git a/.stats.yml b/.stats.yml index 71e1621688b..c4813cf44d2 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1 +1 @@ -configured_endpoints: 1274 +configured_endpoints: 1297 diff --git a/accounts/member.go b/accounts/member.go index dce39cefd15..9c19f962713 100644 --- a/accounts/member.go +++ b/accounts/member.go @@ -114,10 +114,10 @@ type Member struct { // Membership identifier tag. ID string `json:"id,required"` // Roles assigned to this member. - Roles []Role `json:"roles,required"` - Status interface{} `json:"status,required"` - User MemberUser `json:"user,required"` - JSON memberJSON `json:"-"` + Roles []MemberRole `json:"roles,required"` + Status interface{} `json:"status,required"` + User MemberUser `json:"user,required"` + JSON memberJSON `json:"-"` } // memberJSON contains the JSON metadata for the struct [Member] @@ -172,11 +172,49 @@ func (r memberUserJSON) RawJSON() string { return r.raw } +type MemberRole struct { + // Role identifier tag. + ID string `json:"id,required"` + // Description of role's permissions. + Description string `json:"description,required"` + // Role name. + Name string `json:"name,required"` + Permissions user.Permission `json:"permissions,required"` + JSON memberRoleJSON `json:"-"` +} + +// memberRoleJSON contains the JSON metadata for the struct [MemberRole] +type memberRoleJSON struct { + ID apijson.Field + Description apijson.Field + Name apijson.Field + Permissions apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *MemberRole) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r memberRoleJSON) RawJSON() string { + return r.raw +} + +type MemberRoleParam struct { + // Role identifier tag. + ID param.Field[string] `json:"id,required"` +} + +func (r MemberRoleParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + type MemberWithInviteCode struct { // Membership identifier tag. ID string `json:"id,required"` // Roles assigned to this member. - Roles []Role `json:"roles,required"` + Roles []MemberRole `json:"roles,required"` Status interface{} `json:"status,required"` User MemberWithInviteCodeUser `json:"user,required"` // The unique activation code for the account membership. @@ -239,44 +277,6 @@ func (r memberWithInviteCodeUserJSON) RawJSON() string { return r.raw } -type Role struct { - // Role identifier tag. - ID string `json:"id,required"` - // Description of role's permissions. - Description string `json:"description,required"` - // Role name. - Name string `json:"name,required"` - Permissions user.Permission `json:"permissions,required"` - JSON roleJSON `json:"-"` -} - -// roleJSON contains the JSON metadata for the struct [Role] -type roleJSON struct { - ID apijson.Field - Description apijson.Field - Name apijson.Field - Permissions apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *Role) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r roleJSON) RawJSON() string { - return r.raw -} - -type RoleParam struct { - // Role identifier tag. - ID param.Field[string] `json:"id,required"` -} - -func (r RoleParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - type MemberListResponse struct { // Identifier ID string `json:"id,required"` @@ -423,7 +423,7 @@ func (r MemberNewResponseEnvelopeSuccess) IsKnown() bool { type MemberUpdateParams struct { AccountID param.Field[interface{}] `path:"account_id,required"` // Roles assigned to this member. - Roles param.Field[[]RoleParam] `json:"roles,required"` + Roles param.Field[[]MemberRoleParam] `json:"roles,required"` } func (r MemberUpdateParams) MarshalJSON() (data []byte, err error) { diff --git a/accounts/member_test.go b/accounts/member_test.go index 5768798bc2f..8d151466861 100644 --- a/accounts/member_test.go +++ b/accounts/member_test.go @@ -62,7 +62,7 @@ func TestMemberUpdate(t *testing.T) { "4536bcfad5faccb111b47003c79917fa", accounts.MemberUpdateParams{ AccountID: cloudflare.F[any](map[string]interface{}{}), - Roles: cloudflare.F([]accounts.RoleParam{{ + Roles: cloudflare.F([]accounts.MemberRoleParam{{ ID: cloudflare.F("3536bcfad5faccb999b47003c79917fb"), }, { ID: cloudflare.F("3536bcfad5faccb999b47003c79917fb"), diff --git a/accounts/role.go b/accounts/role.go index 9d61010a1ce..ab507a51447 100644 --- a/accounts/role.go +++ b/accounts/role.go @@ -130,15 +130,6 @@ func (r roleJSON) RawJSON() string { return r.raw } -type RoleParam struct { - // Role identifier tag. - ID param.Field[string] `json:"id,required"` -} - -func (r RoleParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - type RoleListParams struct { AccountID param.Field[interface{}] `path:"account_id,required"` } diff --git a/addressing/prefixbgpbinding.go b/addressing/prefixbgpbinding.go index c4c7f559576..98733edd253 100644 --- a/addressing/prefixbgpbinding.go +++ b/addressing/prefixbgpbinding.go @@ -184,6 +184,44 @@ func (r ServiceBindingProvisioningState) IsKnown() bool { return false } +type ServiceBindingParam struct { + // IP Prefix in Classless Inter-Domain Routing format. + CIDR param.Field[string] `json:"cidr"` + // Status of a Service Binding's deployment to the Cloudflare network + Provisioning param.Field[ServiceBindingProvisioningParam] `json:"provisioning"` + // Identifier + ServiceID param.Field[string] `json:"service_id"` + // Name of a service running on the Cloudflare network + ServiceName param.Field[string] `json:"service_name"` +} + +func (r ServiceBindingParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +func (r ServiceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r ServiceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r ServiceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r ServiceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r ServiceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r ServiceBindingParam) implementsWorkersBindingUnionParam() {} + +// Status of a Service Binding's deployment to the Cloudflare network +type ServiceBindingProvisioningParam struct { + // When a binding has been deployed to a majority of Cloudflare datacenters, the + // binding will become active and can be used with its associated service. + State param.Field[ServiceBindingProvisioningState] `json:"state"` +} + +func (r ServiceBindingProvisioningParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + type PrefixBGPBindingNewParams struct { // Identifier AccountID param.Field[string] `path:"account_id,required"` diff --git a/api.md b/api.md index ddac7b6cbb7..50cb6acc505 100644 --- a/api.md +++ b/api.md @@ -38,13 +38,13 @@ Methods: Params Types: -- accounts.RoleParam +- accounts.MemberRoleParam Response Types: - accounts.Member +- accounts.MemberRole - accounts.MemberWithInviteCode -- accounts.Role - accounts.MemberListResponse - accounts.MemberDeleteResponse @@ -61,7 +61,6 @@ Methods: Params Types: - accounts.PermissionGrantParam -- accounts.RoleParam Response Types: @@ -233,12 +232,12 @@ Methods: ### Analytics -#### Events - Response Types: - user.Analytics +#### Events + Methods: - client.User.LoadBalancers.Analytics.Events.List(ctx context.Context, query user.LoadBalancerAnalyticsEventListParams) (pagination.SinglePage[user.Analytics], error) @@ -980,6 +979,16 @@ Methods: - client.Zones.Holds.Delete(ctx context.Context, params zones.HoldDeleteParams) (zones.ZoneHold, error) - client.Zones.Holds.Get(ctx context.Context, query zones.HoldGetParams) (zones.ZoneHold, error) +## Workers + +### Script + +Methods: + +- client.Zones.Workers.Script.Update(ctx context.Context, params zones.WorkerScriptUpdateParams) (shared.UnnamedSchemaRef9444735ca60712dbcf8afd832eb5716aUnion, error) +- client.Zones.Workers.Script.Delete(ctx context.Context, params zones.WorkerScriptDeleteParams) error +- client.Zones.Workers.Script.Get(ctx context.Context, query zones.WorkerScriptGetParams) (http.Response, error) + ## Subscriptions Methods: @@ -1001,7 +1010,7 @@ Params Types: - load_balancers.LoadSheddingParam - load_balancers.LocationStrategyParam - load_balancers.NotificationFilterParam -- load_balancers.OriginItemParam +- load_balancers.OriginParam - load_balancers.OriginSteeringParam - load_balancers.RandomSteeringParam - load_balancers.RulesItemParam @@ -1019,7 +1028,7 @@ Response Types: - load_balancers.LoadShedding - load_balancers.LocationStrategy - load_balancers.NotificationFilter -- load_balancers.OriginItem +- load_balancers.Origin - load_balancers.OriginSteering - load_balancers.RandomSteering - load_balancers.RulesItem @@ -1415,7 +1424,6 @@ Params Types: Response Types: - custom_hostnames.CustomHostname -- custom_hostnames.SSL - custom_hostnames.UnnamedSchemaRef16aca57bde2963201c7e6e895436c1c1 - custom_hostnames.UnnamedSchemaRef78adb375f06c6d462dd92b99e2ecf510 - custom_hostnames.UnnamedSchemaRef9a9935a9a770967bb604ae41a81e42e1 @@ -1611,18 +1619,14 @@ Methods: Params Types: - email_routing.ActionParam -- email_routing.ActionItemParam - email_routing.EmailRuleParam - email_routing.MatcherParam -- email_routing.MatcherItemParam Response Types: - email_routing.Action -- email_routing.ActionItem - email_routing.EmailRule - email_routing.Matcher -- email_routing.MatcherItem Methods: @@ -1636,19 +1640,20 @@ Methods: Params Types: -- email_routing.ActionParam -- email_routing.MatcherParam +- email_routing.CatchAllActionParam +- email_routing.CatchAllMatcherParam Response Types: -- email_routing.Action -- email_routing.CatchAllRule -- email_routing.Matcher +- email_routing.CatchAllAction +- email_routing.CatchAllMatcher +- email_routing.RuleCatchAllUpdateResponse +- email_routing.RuleCatchAllGetResponse Methods: -- client.EmailRouting.Rules.CatchAlls.Update(ctx context.Context, zoneIdentifier string, body email_routing.RuleCatchAllUpdateParams) (email_routing.CatchAllRule, error) -- client.EmailRouting.Rules.CatchAlls.Get(ctx context.Context, zoneIdentifier string) (email_routing.CatchAllRule, error) +- client.EmailRouting.Rules.CatchAlls.Update(ctx context.Context, zoneIdentifier string, body email_routing.RuleCatchAllUpdateParams) (email_routing.RuleCatchAllUpdateResponse, error) +- client.EmailRouting.Rules.CatchAlls.Get(ctx context.Context, zoneIdentifier string) (email_routing.RuleCatchAllGetResponse, error) ## Addresses @@ -1809,7 +1814,6 @@ Params Types: Response Types: -- firewall.AllowedModesAnomalyItem - firewall.Rule - firewall.UnnamedSchemaRef532d8b97684c9032dd36bae8acddebf5 - firewall.WAFPackageRuleEditResponse @@ -1824,13 +1828,13 @@ Methods: Params Types: -- healthchecks.CheckRegionItem +- healthchecks.CheckRegion - healthchecks.HTTPConfigurationParam - healthchecks.TCPConfigurationParam Response Types: -- healthchecks.CheckRegionItem +- healthchecks.CheckRegion - healthchecks.Healthcheck - healthchecks.HTTPConfiguration - healthchecks.TCPConfiguration @@ -2059,15 +2063,14 @@ Methods: Params Types: -- pagerules.ActionItemParam -- pagerules.TargesItemParam +- pagerules.RouteParam +- pagerules.TargesParam Response Types: -- pagerules.ActionItem - pagerules.PageRule - pagerules.Route -- pagerules.TargesItem +- pagerules.Targes - pagerules.PageruleDeleteResponse Methods: @@ -2081,18 +2084,13 @@ Methods: ## Settings -Params Types: - -- pagerules.SettingsParam - Response Types: -- pagerules.Settings - pagerules.SettingListResponse Methods: -- client.Pagerules.Settings.List(ctx context.Context, query pagerules.SettingListParams) (pagerules.Settings, error) +- client.Pagerules.Settings.List(ctx context.Context, query pagerules.SettingListParams) ([]pagerules.SettingListResponse, error) # RateLimits @@ -2267,7 +2265,6 @@ Methods: Response Types: -- waiting_rooms.Event - waiting_rooms.EventDetailGetResponse Methods: @@ -2374,8 +2371,16 @@ Methods: Params Types: +- workers.BindingUnionParam +- workers.D1BindingParam +- workers.DispatchNamespaceBindingParam +- workers.DurableObjectBindingParam +- workers.KVNamespaceBindingParam - workers.MigrationStepParam +- workers.MTLSCERTBindingParam - workers.PlacementConfigurationParam +- workers.R2BindingParam +- workers.ServiceBindingParam - workers.SingleStepMigrationParam - workers.SteppedMigrationParam @@ -2386,9 +2391,13 @@ Response Types: - workers.DispatchNamespaceBinding - workers.DurableObjectBinding - workers.KVNamespaceBinding +- workers.MigrationStep - workers.MTLSCERTBinding +- workers.PlacementConfiguration - workers.R2Binding - workers.ServiceBinding +- workers.SingleStepMigration +- workers.SteppedMigration ## AI @@ -2404,13 +2413,12 @@ Methods: Params Types: -- workers.SettingsItemParam +- workers.ScriptSettingParam Response Types: - workers.Script -- workers.Setting -- workers.SettingsItem +- workers.ScriptSetting Methods: @@ -2419,6 +2427,16 @@ Methods: - client.Workers.Scripts.Delete(ctx context.Context, scriptName string, params workers.ScriptDeleteParams) error - client.Workers.Scripts.Get(ctx context.Context, scriptName string, query workers.ScriptGetParams) (http.Response, error) +### Bindings + +Response Types: + +- workers.ScriptBindingGetResponse + +Methods: + +- client.Workers.Scripts.Bindings.Get(ctx context.Context, query workers.ScriptBindingGetParams) ([]workers.ScriptBindingGetResponse, error) + ### Schedules Response Types: @@ -2450,19 +2468,36 @@ Methods: - client.Workers.Scripts.Tail.Delete(ctx context.Context, scriptName string, id string, params workers.ScriptTailDeleteParams) (shared.UnnamedSchemaRefEc4d85c3d1bcc6b3b7e99c199ae99846Union, error) - client.Workers.Scripts.Tail.Get(ctx context.Context, scriptName string, query workers.ScriptTailGetParams) (workers.ScriptTailGetResponse, error) +### UsageModel + +Response Types: + +- workers.ScriptUsageModelUpdateResponse +- workers.ScriptUsageModelGetResponse + +Methods: + +- client.Workers.Scripts.UsageModel.Update(ctx context.Context, scriptName string, params workers.ScriptUsageModelUpdateParams) (workers.ScriptUsageModelUpdateResponse, error) +- client.Workers.Scripts.UsageModel.Get(ctx context.Context, scriptName string, query workers.ScriptUsageModelGetParams) (workers.ScriptUsageModelGetResponse, error) + ### Content Methods: - client.Workers.Scripts.Content.Update(ctx context.Context, scriptName string, params workers.ScriptContentUpdateParams) (workers.Script, error) -- client.Workers.Scripts.Content.Get(ctx context.Context, scriptName string, query workers.ScriptContentGetParams) (http.Response, error) + +### ContentV2 + +Methods: + +- client.Workers.Scripts.ContentV2.Get(ctx context.Context, scriptName string, query workers.ScriptContentV2GetParams) (http.Response, error) ### Settings Methods: -- client.Workers.Scripts.Settings.Edit(ctx context.Context, scriptName string, params workers.ScriptSettingEditParams) (workers.SettingsItem, error) -- client.Workers.Scripts.Settings.Get(ctx context.Context, scriptName string, query workers.ScriptSettingGetParams) (workers.SettingsItem, error) +- client.Workers.Scripts.Settings.Edit(ctx context.Context, scriptName string, params workers.ScriptSettingEditParams) (workers.ScriptSetting, error) +- client.Workers.Scripts.Settings.Get(ctx context.Context, scriptName string, query workers.ScriptSettingGetParams) (workers.ScriptSetting, error) ### Deployments @@ -2495,6 +2530,54 @@ Methods: - client.Workers.Scripts.Versions.List(ctx context.Context, scriptName string, query workers.ScriptVersionListParams) (workers.ScriptVersionListResponse, error) - client.Workers.Scripts.Versions.Get(ctx context.Context, scriptName string, versionID string, query workers.ScriptVersionGetParams) (workers.ScriptVersionGetResponse, error) +#### Settings + +Params Types: + +- workers.CompatibilityFlagsParam +- workers.SettingsParam +- workers.TagsParam + +Response Types: + +- workers.CompatibilityFlags +- workers.Settings +- workers.Tags + +Methods: + +- client.Workers.Scripts.Versions.Settings.Edit(ctx context.Context, scriptName string, params workers.ScriptVersionSettingEditParams) (workers.Settings, error) +- client.Workers.Scripts.Versions.Settings.Get(ctx context.Context, scriptName string, query workers.ScriptVersionSettingGetParams) (workers.Settings, error) + +## Filters + +Response Types: + +- workers.WorkersFilter +- workers.FilterNewResponse +- workers.FilterDeleteResponse + +Methods: + +- client.Workers.Filters.New(ctx context.Context, params workers.FilterNewParams) (workers.FilterNewResponse, error) +- client.Workers.Filters.Update(ctx context.Context, filterID string, params workers.FilterUpdateParams) (workers.WorkersFilter, error) +- client.Workers.Filters.List(ctx context.Context, query workers.FilterListParams) (pagination.SinglePage[workers.WorkersFilter], error) +- client.Workers.Filters.Delete(ctx context.Context, filterID string, params workers.FilterDeleteParams) (workers.FilterDeleteResponse, error) + +## Routes + +Response Types: + +- workers.WorkersRoute + +Methods: + +- client.Workers.Routes.New(ctx context.Context, params workers.RouteNewParams) (shared.UnnamedSchemaRef8d6a37a1e4190f86652802244d29525fUnion, error) +- client.Workers.Routes.Update(ctx context.Context, routeID string, params workers.RouteUpdateParams) (workers.WorkersRoute, error) +- client.Workers.Routes.List(ctx context.Context, query workers.RouteListParams) (pagination.SinglePage[workers.WorkersRoute], error) +- client.Workers.Routes.Delete(ctx context.Context, routeID string, params workers.RouteDeleteParams) (shared.UnnamedSchemaRef8d6a37a1e4190f86652802244d29525fUnion, error) +- client.Workers.Routes.Get(ctx context.Context, routeID string, query workers.RouteGetParams) (workers.WorkersRoute, error) + ## AccountSettings Response Types: @@ -2507,6 +2590,28 @@ Methods: - client.Workers.AccountSettings.Update(ctx context.Context, params workers.AccountSettingUpdateParams) (workers.AccountSettingUpdateResponse, error) - client.Workers.AccountSettings.Get(ctx context.Context, query workers.AccountSettingGetParams) (workers.AccountSettingGetResponse, error) +## Deployments + +### ByScripts + +Response Types: + +- workers.DeploymentByScriptGetResponse + +Methods: + +- client.Workers.Deployments.ByScripts.Get(ctx context.Context, scriptID string, query workers.DeploymentByScriptGetParams) (workers.DeploymentByScriptGetResponse, error) + +#### Details + +Response Types: + +- workers.DeploymentByScriptDetailGetResponse + +Methods: + +- client.Workers.Deployments.ByScripts.Details.Get(ctx context.Context, scriptID string, deploymentID string, query workers.DeploymentByScriptDetailGetParams) (workers.DeploymentByScriptDetailGetResponse, error) + ## Domains Response Types: @@ -2532,6 +2637,24 @@ Methods: - client.Workers.Subdomains.Update(ctx context.Context, params workers.SubdomainUpdateParams) (workers.SubdomainUpdateResponse, error) - client.Workers.Subdomains.Get(ctx context.Context, query workers.SubdomainGetParams) (workers.SubdomainGetResponse, error) +## Services + +### Environments + +#### Content + +Methods: + +- client.Workers.Services.Environments.Content.Update(ctx context.Context, serviceName string, environmentName string, params workers.ServiceEnvironmentContentUpdateParams) (workers.Script, error) +- client.Workers.Services.Environments.Content.Get(ctx context.Context, serviceName string, environmentName string, query workers.ServiceEnvironmentContentGetParams) (http.Response, error) + +#### Settings + +Methods: + +- client.Workers.Services.Environments.Settings.Edit(ctx context.Context, serviceName string, environmentName string, params workers.ServiceEnvironmentSettingEditParams) (workers.ScriptSetting, error) +- client.Workers.Services.Environments.Settings.Get(ctx context.Context, serviceName string, environmentName string, query workers.ServiceEnvironmentSettingGetParams) (workers.ScriptSetting, error) + # KV ## Namespaces @@ -2653,11 +2776,11 @@ Methods: Params Types: -- managed_headers.RequestListItemParam +- managed_headers.RequestModelParam Response Types: -- managed_headers.RequestListItem +- managed_headers.RequestModel - managed_headers.ManagedHeaderListResponse - managed_headers.ManagedHeaderEditResponse @@ -2972,6 +3095,10 @@ Methods: #### Bindings +Params Types: + +- addressing.ServiceBindingParam + Response Types: - addressing.ServiceBinding @@ -3311,11 +3438,11 @@ Methods: Params Types: -- intel.IssueClassItemParam -- intel.IssueTypeItem -- intel.ProductItemParam -- intel.SeverityQueryParamItem -- intel.SubjectsItemParam +- intel.IssueClassParam +- intel.IssueType +- intel.ProductParam +- intel.SeverityQueryParam +- intel.SubjectParam Response Types: @@ -3403,14 +3530,14 @@ Methods: Params Types: -- magic_transit.ColoNamesItemParam -- magic_transit.ColoRegionsItemParam +- magic_transit.ColoNameParam +- magic_transit.ColoRegionParam - magic_transit.ScopeParam Response Types: -- magic_transit.ColoNamesItem -- magic_transit.ColoRegionsItem +- magic_transit.ColoName +- magic_transit.ColoRegion - magic_transit.Scope - magic_transit.RouteNewResponse - magic_transit.RouteUpdateResponse @@ -3486,18 +3613,18 @@ Params Types: - magic_transit.DHCPRelayParam - magic_transit.DHCPServerParam +- magic_transit.LANStaticAddressingParam - magic_transit.NatParam - magic_transit.RoutedSubnetParam -- magic_transit.StaticAddressingParam Response Types: - magic_transit.DHCPRelay - magic_transit.DHCPServer - magic_transit.LAN +- magic_transit.LANStaticAddressing - magic_transit.Nat - magic_transit.RoutedSubnet -- magic_transit.StaticAddressing - magic_transit.SiteLANNewResponse - magic_transit.SiteLANUpdateResponse - magic_transit.SiteLANListResponse @@ -3516,12 +3643,12 @@ Methods: Params Types: -- magic_transit.StaticAddressingParam +- magic_transit.WANStaticAddressingParam Response Types: -- magic_transit.StaticAddressing - magic_transit.WAN +- magic_transit.WANStaticAddressing - magic_transit.SiteWANNewResponse - magic_transit.SiteWANUpdateResponse - magic_transit.SiteWANListResponse @@ -4074,11 +4201,14 @@ Methods: # D1 +Response Types: + +- d1.D1 + ## Database Response Types: -- d1.D1 - d1.QueryResult - d1.DatabaseNewResponse - d1.DatabaseListResponse @@ -4183,8 +4313,8 @@ Methods: Methods: -- client.WorkersForPlatforms.Dispatch.Namespaces.Scripts.Settings.Edit(ctx context.Context, dispatchNamespace string, scriptName string, params workers_for_platforms.DispatchNamespaceScriptSettingEditParams) (workers.SettingsItem, error) -- client.WorkersForPlatforms.Dispatch.Namespaces.Scripts.Settings.Get(ctx context.Context, dispatchNamespace string, scriptName string, query workers_for_platforms.DispatchNamespaceScriptSettingGetParams) (workers.SettingsItem, error) +- client.WorkersForPlatforms.Dispatch.Namespaces.Scripts.Settings.Edit(ctx context.Context, dispatchNamespace string, scriptName string, params workers_for_platforms.DispatchNamespaceScriptSettingEditParams) (workers.ScriptSetting, error) +- client.WorkersForPlatforms.Dispatch.Namespaces.Scripts.Settings.Get(ctx context.Context, dispatchNamespace string, scriptName string, query workers_for_platforms.DispatchNamespaceScriptSettingGetParams) (workers.ScriptSetting, error) ##### Bindings @@ -4317,7 +4447,6 @@ Methods: Params Types: -- zero_trust.DevicePostureRuleParam - zero_trust.InputUnionParam - zero_trust.MatchItemParam - zero_trust.UnnamedSchemaRef34ef0ad73a63c3f76ed170adca181930 @@ -4362,18 +4491,14 @@ Methods: ### Settings -Params Types: - -- zero_trust.SettingsParam - Response Types: -- zero_trust.Settings +- zero_trust.DeviceSettings Methods: -- client.ZeroTrust.Devices.Settings.Update(ctx context.Context, params zero_trust.DeviceSettingUpdateParams) (zero_trust.Settings, error) -- client.ZeroTrust.Devices.Settings.List(ctx context.Context, query zero_trust.DeviceSettingListParams) (zero_trust.Settings, error) +- client.ZeroTrust.Devices.Settings.Update(ctx context.Context, params zero_trust.DeviceSettingUpdateParams) (zero_trust.DeviceSettings, error) +- client.ZeroTrust.Devices.Settings.List(ctx context.Context, query zero_trust.DeviceSettingListParams) (zero_trust.DeviceSettings, error) ### Unrevoke @@ -4450,12 +4575,13 @@ Methods: Params Types: +- zero_trust.AccessDevicePostureRuleParam +- zero_trust.AccessRuleUnionParam - zero_trust.AnyValidServiceTokenRuleParam - zero_trust.AuthenticationMethodRuleParam - zero_trust.AzureGroupRuleParam - zero_trust.CertificateRuleParam - zero_trust.CountryRuleParam -- zero_trust.DevicePostureRuleParam - zero_trust.DomainRuleParam - zero_trust.EmailListRuleParam - zero_trust.EmailRuleParam @@ -4464,22 +4590,21 @@ Params Types: - zero_trust.GitHubOrganizationRuleParam - zero_trust.GroupRuleParam - zero_trust.GsuiteGroupRuleParam -- zero_trust.IncludeItemUnionParam - zero_trust.IPListRuleParam - zero_trust.IPRuleParam - zero_trust.OktaGroupRuleParam -- zero_trust.RuleUnionParam - zero_trust.SamlGroupRuleParam - zero_trust.ServiceTokenRuleParam Response Types: +- zero_trust.AccessDevicePostureRule +- zero_trust.AccessRule - zero_trust.AnyValidServiceTokenRule - zero_trust.AuthenticationMethodRule - zero_trust.AzureGroupRule - zero_trust.CertificateRule - zero_trust.CountryRule -- zero_trust.DevicePostureRule - zero_trust.DomainRule - zero_trust.EmailListRule - zero_trust.EmailRule @@ -4488,11 +4613,9 @@ Response Types: - zero_trust.GitHubOrganizationRule - zero_trust.GroupRule - zero_trust.GsuiteGroupRule -- zero_trust.IncludeItem - zero_trust.IPListRule - zero_trust.IPRule - zero_trust.OktaGroupRule -- zero_trust.Rule - zero_trust.SamlGroupRule - zero_trust.ServiceTokenRule @@ -4561,17 +4684,13 @@ Methods: Params Types: -- zero_trust.ApprovalGroupItemParam -- zero_trust.ExcludeItemUnionParam +- zero_trust.ApprovalGroupParam - zero_trust.PolicyParam -- zero_trust.RequireItemUnionParam Response Types: -- zero_trust.ApprovalGroupItem -- zero_trust.ExcludeItem +- zero_trust.ApprovalGroup - zero_trust.Policy -- zero_trust.RequireItem - zero_trust.AccessApplicationPolicyDeleteResponse Methods: @@ -4606,28 +4725,21 @@ Methods: Params Types: -- zero_trust.SettingsParam +- zero_trust.CertificateSettingsParam Response Types: -- zero_trust.Settings +- zero_trust.CertificateSettings Methods: -- client.ZeroTrust.Access.Certificates.Settings.Update(ctx context.Context, params zero_trust.AccessCertificateSettingUpdateParams) ([]zero_trust.Settings, error) -- client.ZeroTrust.Access.Certificates.Settings.Get(ctx context.Context, query zero_trust.AccessCertificateSettingGetParams) ([]zero_trust.Settings, error) +- client.ZeroTrust.Access.Certificates.Settings.Update(ctx context.Context, params zero_trust.AccessCertificateSettingUpdateParams) ([]zero_trust.CertificateSettings, error) +- client.ZeroTrust.Access.Certificates.Settings.Get(ctx context.Context, query zero_trust.AccessCertificateSettingGetParams) ([]zero_trust.CertificateSettings, error) ### Groups -Params Types: - -- zero_trust.ExcludeItemUnionParam -- zero_trust.RequireItemUnionParam - Response Types: -- zero_trust.ExcludeItem -- zero_trust.RequireItem - zero_trust.ZeroTrustGroup - zero_trust.AccessGroupDeleteResponse @@ -4797,11 +4909,11 @@ Methods: Response Types: -- zero_trust.Device +- zero_trust.DEXFleetStatusDeviceListResponse Methods: -- client.ZeroTrust.DEX.FleetStatus.Devices.List(ctx context.Context, params zero_trust.DEXFleetStatusDeviceListParams) (pagination.V4PagePaginationArray[zero_trust.Device], error) +- client.ZeroTrust.DEX.FleetStatus.Devices.List(ctx context.Context, params zero_trust.DEXFleetStatusDeviceListParams) (pagination.V4PagePaginationArray[zero_trust.DEXFleetStatusDeviceListResponse], error) ### HTTPTests @@ -4863,14 +4975,14 @@ Methods: Response Types: - zero_trust.NetworkPath -- zero_trust.Percentiles - zero_trust.Traceroute +- zero_trust.DEXTracerouteTestPercentilesResponse Methods: - client.ZeroTrust.DEX.TracerouteTests.Get(ctx context.Context, testID string, params zero_trust.DEXTracerouteTestGetParams) (zero_trust.Traceroute, error) - client.ZeroTrust.DEX.TracerouteTests.NetworkPath(ctx context.Context, testID string, params zero_trust.DEXTracerouteTestNetworkPathParams) (zero_trust.NetworkPath, error) -- client.ZeroTrust.DEX.TracerouteTests.Percentiles(ctx context.Context, testID string, params zero_trust.DEXTracerouteTestPercentilesParams) (zero_trust.Percentiles, error) +- client.ZeroTrust.DEX.TracerouteTests.Percentiles(ctx context.Context, testID string, params zero_trust.DEXTracerouteTestPercentilesParams) (zero_trust.DEXTracerouteTestPercentilesResponse, error) ## Tunnels @@ -5058,18 +5170,14 @@ Methods: ### AuditSSHSettings -Params Types: - -- zero_trust.SettingsParam - Response Types: -- zero_trust.Settings +- zero_trust.GatewaySettings Methods: -- client.ZeroTrust.Gateway.AuditSSHSettings.Update(ctx context.Context, params zero_trust.GatewayAuditSSHSettingUpdateParams) (zero_trust.Settings, error) -- client.ZeroTrust.Gateway.AuditSSHSettings.Get(ctx context.Context, query zero_trust.GatewayAuditSSHSettingGetParams) (zero_trust.Settings, error) +- client.ZeroTrust.Gateway.AuditSSHSettings.Update(ctx context.Context, params zero_trust.GatewayAuditSSHSettingUpdateParams) (zero_trust.GatewaySettings, error) +- client.ZeroTrust.Gateway.AuditSSHSettings.Get(ctx context.Context, query zero_trust.GatewayAuditSSHSettingGetParams) (zero_trust.GatewaySettings, error) ### Categories @@ -5166,13 +5274,12 @@ Methods: Params Types: -- zero_trust.NetworkItemParam +- zero_trust.LocationNetworkParam Response Types: - zero_trust.Location -- zero_trust.Network -- zero_trust.NetworkItem +- zero_trust.LocationNetwork Methods: @@ -5223,7 +5330,7 @@ Params Types: - zero_trust.DNSResolverSettingsV4Param - zero_trust.DNSResolverSettingsV6Param -- zero_trust.FilterItem +- zero_trust.GatewayFilter - zero_trust.RuleParam - zero_trust.RuleSettingParam - zero_trust.ScheduleParam @@ -5232,7 +5339,7 @@ Response Types: - zero_trust.DNSResolverSettingsV4 - zero_trust.DNSResolverSettingsV6 -- zero_trust.FilterItem +- zero_trust.GatewayFilter - zero_trust.Rule - zero_trust.RuleSetting - zero_trust.Schedule @@ -5249,15 +5356,19 @@ Methods: ### Routes +Params Types: + +- zero_trust.RouteParam + Response Types: -- zero_trust.Network - zero_trust.Route +- zero_trust.Teamnet Methods: - client.ZeroTrust.Networks.Routes.New(ctx context.Context, params zero_trust.NetworkRouteNewParams) (zero_trust.Route, error) -- client.ZeroTrust.Networks.Routes.List(ctx context.Context, params zero_trust.NetworkRouteListParams) (pagination.V4PagePaginationArray[zero_trust.Network], error) +- client.ZeroTrust.Networks.Routes.List(ctx context.Context, params zero_trust.NetworkRouteListParams) (pagination.V4PagePaginationArray[zero_trust.Teamnet], error) - client.ZeroTrust.Networks.Routes.Delete(ctx context.Context, routeID string, body zero_trust.NetworkRouteDeleteParams) (zero_trust.Route, error) - client.ZeroTrust.Networks.Routes.Edit(ctx context.Context, routeID string, params zero_trust.NetworkRouteEditParams) (zero_trust.Route, error) @@ -5265,7 +5376,7 @@ Methods: Methods: -- client.ZeroTrust.Networks.Routes.IPs.Get(ctx context.Context, ip string, params zero_trust.NetworkRouteIPGetParams) (zero_trust.Network, error) +- client.ZeroTrust.Networks.Routes.IPs.Get(ctx context.Context, ip string, params zero_trust.NetworkRouteIPGetParams) (zero_trust.Teamnet, error) #### Networks @@ -5279,12 +5390,12 @@ Methods: Response Types: -- zero_trust.Network +- zero_trust.VirtualNetwork Methods: - client.ZeroTrust.Networks.VirtualNetworks.New(ctx context.Context, params zero_trust.NetworkVirtualNetworkNewParams) (shared.UnnamedSchemaRef65e3c8c1a9c4638ec25cdbbaca7165c1Union, error) -- client.ZeroTrust.Networks.VirtualNetworks.List(ctx context.Context, params zero_trust.NetworkVirtualNetworkListParams) (pagination.SinglePage[zero_trust.Network], error) +- client.ZeroTrust.Networks.VirtualNetworks.List(ctx context.Context, params zero_trust.NetworkVirtualNetworkListParams) (pagination.SinglePage[zero_trust.VirtualNetwork], error) - client.ZeroTrust.Networks.VirtualNetworks.Delete(ctx context.Context, virtualNetworkID string, params zero_trust.NetworkVirtualNetworkDeleteParams) (shared.UnnamedSchemaRef65e3c8c1a9c4638ec25cdbbaca7165c1Union, error) - client.ZeroTrust.Networks.VirtualNetworks.Edit(ctx context.Context, virtualNetworkID string, params zero_trust.NetworkVirtualNetworkEditParams) (shared.UnnamedSchemaRef65e3c8c1a9c4638ec25cdbbaca7165c1Union, error) @@ -6356,15 +6467,10 @@ Methods: # Speed -Params Types: - -- speed.ScheduleParam - Response Types: - speed.LabeledRegion - speed.LighthouseReport -- speed.Schedule - speed.Trend - speed.SpeedDeleteResponse @@ -6391,8 +6497,13 @@ Methods: ## Schedule +Params Types: + +- speed.ScheduleParam + Response Types: +- speed.Schedule - speed.ScheduleNewResponse Methods: diff --git a/custom_hostnames/customhostname.go b/custom_hostnames/customhostname.go index f988b0aa703..c7cad13907b 100644 --- a/custom_hostnames/customhostname.go +++ b/custom_hostnames/customhostname.go @@ -119,21 +119,51 @@ func (r *CustomHostnameService) Get(ctx context.Context, customHostnameID string type CustomHostname struct { // Identifier - ID string `json:"id,required"` + ID string `json:"id"` + // This is the time the hostname was created. + CreatedAt time.Time `json:"created_at" format:"date-time"` + // These are per-hostname (customer) settings. + CustomMetadata CustomHostnameCustomMetadata `json:"custom_metadata"` + // a valid hostname that’s been added to your DNS zone as an A, AAAA, or CNAME + // record. + CustomOriginServer string `json:"custom_origin_server"` + // A hostname that will be sent to your custom origin server as SNI for TLS + // handshake. This can be a valid subdomain of the zone or custom origin server + // name or the string ':request_host_header:' which will cause the host header in + // the request to be used as SNI. Not configurable with default/fallback origin + // server. + CustomOriginSni string `json:"custom_origin_sni"` // The custom hostname that will point to your hostname via CNAME. - Hostname string `json:"hostname,required"` + Hostname string `json:"hostname"` + // This is a record which can be placed to activate a hostname. + OwnershipVerification CustomHostnameOwnershipVerification `json:"ownership_verification"` + // This presents the token to be served by the given http url to activate a + // hostname. + OwnershipVerificationHTTP CustomHostnameOwnershipVerificationHTTP `json:"ownership_verification_http"` // SSL properties for the custom hostname. - SSL SSL `json:"ssl,required"` - JSON customHostnameJSON `json:"-"` + SSL CustomHostnameSSL `json:"ssl"` + // Status of the hostname's activation. + Status CustomHostnameStatus `json:"status"` + // These are errors that were encountered while trying to activate a hostname. + VerificationErrors []interface{} `json:"verification_errors"` + JSON customHostnameJSON `json:"-"` } // customHostnameJSON contains the JSON metadata for the struct [CustomHostname] type customHostnameJSON struct { - ID apijson.Field - Hostname apijson.Field - SSL apijson.Field - raw string - ExtraFields map[string]apijson.Field + ID apijson.Field + CreatedAt apijson.Field + CustomMetadata apijson.Field + CustomOriginServer apijson.Field + CustomOriginSni apijson.Field + Hostname apijson.Field + OwnershipVerification apijson.Field + OwnershipVerificationHTTP apijson.Field + SSL apijson.Field + Status apijson.Field + VerificationErrors apijson.Field + raw string + ExtraFields map[string]apijson.Field } func (r *CustomHostname) UnmarshalJSON(data []byte) (err error) { @@ -144,8 +174,103 @@ func (r customHostnameJSON) RawJSON() string { return r.raw } +// These are per-hostname (customer) settings. +type CustomHostnameCustomMetadata struct { + // Unique metadata for this hostname. + Key string `json:"key"` + JSON customHostnameCustomMetadataJSON `json:"-"` +} + +// customHostnameCustomMetadataJSON contains the JSON metadata for the struct +// [CustomHostnameCustomMetadata] +type customHostnameCustomMetadataJSON struct { + Key apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *CustomHostnameCustomMetadata) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r customHostnameCustomMetadataJSON) RawJSON() string { + return r.raw +} + +// This is a record which can be placed to activate a hostname. +type CustomHostnameOwnershipVerification struct { + // DNS Name for record. + Name string `json:"name"` + // DNS Record type. + Type CustomHostnameOwnershipVerificationType `json:"type"` + // Content for the record. + Value string `json:"value"` + JSON customHostnameOwnershipVerificationJSON `json:"-"` +} + +// customHostnameOwnershipVerificationJSON contains the JSON metadata for the +// struct [CustomHostnameOwnershipVerification] +type customHostnameOwnershipVerificationJSON struct { + Name apijson.Field + Type apijson.Field + Value apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *CustomHostnameOwnershipVerification) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r customHostnameOwnershipVerificationJSON) RawJSON() string { + return r.raw +} + +// DNS Record type. +type CustomHostnameOwnershipVerificationType string + +const ( + CustomHostnameOwnershipVerificationTypeTXT CustomHostnameOwnershipVerificationType = "txt" +) + +func (r CustomHostnameOwnershipVerificationType) IsKnown() bool { + switch r { + case CustomHostnameOwnershipVerificationTypeTXT: + return true + } + return false +} + +// This presents the token to be served by the given http url to activate a +// hostname. +type CustomHostnameOwnershipVerificationHTTP struct { + // Token to be served. + HTTPBody string `json:"http_body"` + // The HTTP URL that will be checked during custom hostname verification and where + // the customer should host the token. + HTTPURL string `json:"http_url"` + JSON customHostnameOwnershipVerificationHTTPJSON `json:"-"` +} + +// customHostnameOwnershipVerificationHTTPJSON contains the JSON metadata for the +// struct [CustomHostnameOwnershipVerificationHTTP] +type customHostnameOwnershipVerificationHTTPJSON struct { + HTTPBody apijson.Field + HTTPURL apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *CustomHostnameOwnershipVerificationHTTP) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r customHostnameOwnershipVerificationHTTPJSON) RawJSON() string { + return r.raw +} + // SSL properties for the custom hostname. -type SSL struct { +type CustomHostnameSSL struct { // Custom hostname SSL identifier tag. ID string `json:"id"` // A ubiquitous bundle has the highest probability of being verified everywhere, @@ -154,7 +279,7 @@ type SSL struct { // chain, but does not otherwise modify it. BundleMethod UnnamedSchemaRef16aca57bde2963201c7e6e895436c1c1 `json:"bundle_method"` // The Certificate Authority that will issue the certificate - CertificateAuthority SSLCertificateAuthority `json:"certificate_authority"` + CertificateAuthority CustomHostnameSSLCertificateAuthority `json:"certificate_authority"` // If a custom uploaded certificate is used. CustomCertificate string `json:"custom_certificate"` // The identifier for the Custom CSR that was used. @@ -172,11 +297,11 @@ type SSL struct { // The serial number on a custom uploaded certificate. SerialNumber string `json:"serial_number"` // SSL specific settings. - Settings SSLSettings `json:"settings"` + Settings CustomHostnameSSLSettings `json:"settings"` // The signature on a custom uploaded certificate. Signature string `json:"signature"` // Status of the hostname's SSL certificates. - Status SSLStatus `json:"status"` + Status CustomHostnameSSLStatus `json:"status"` // Level of validation to be used for this hostname. Domain validation (dv) must be // used. Type UnnamedSchemaRef9a9935a9a770967bb604ae41a81e42e1 `json:"type"` @@ -184,15 +309,16 @@ type SSL struct { UploadedOn time.Time `json:"uploaded_on" format:"date-time"` // Domain validation errors that have been received by the certificate authority // (CA). - ValidationErrors []SSLValidationError `json:"validation_errors"` - ValidationRecords []SSLValidationRecord `json:"validation_records"` + ValidationErrors []CustomHostnameSSLValidationError `json:"validation_errors"` + ValidationRecords []CustomHostnameSSLValidationRecord `json:"validation_records"` // Indicates whether the certificate covers a wildcard. - Wildcard bool `json:"wildcard"` - JSON sslJSON `json:"-"` + Wildcard bool `json:"wildcard"` + JSON customHostnameSSLJSON `json:"-"` } -// sslJSON contains the JSON metadata for the struct [SSL] -type sslJSON struct { +// customHostnameSSLJSON contains the JSON metadata for the struct +// [CustomHostnameSSL] +type customHostnameSSLJSON struct { ID apijson.Field BundleMethod apijson.Field CertificateAuthority apijson.Field @@ -216,49 +342,50 @@ type sslJSON struct { ExtraFields map[string]apijson.Field } -func (r *SSL) UnmarshalJSON(data []byte) (err error) { +func (r *CustomHostnameSSL) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r sslJSON) RawJSON() string { +func (r customHostnameSSLJSON) RawJSON() string { return r.raw } // The Certificate Authority that will issue the certificate -type SSLCertificateAuthority string +type CustomHostnameSSLCertificateAuthority string const ( - SSLCertificateAuthorityDigicert SSLCertificateAuthority = "digicert" - SSLCertificateAuthorityGoogle SSLCertificateAuthority = "google" - SSLCertificateAuthorityLetsEncrypt SSLCertificateAuthority = "lets_encrypt" + CustomHostnameSSLCertificateAuthorityDigicert CustomHostnameSSLCertificateAuthority = "digicert" + CustomHostnameSSLCertificateAuthorityGoogle CustomHostnameSSLCertificateAuthority = "google" + CustomHostnameSSLCertificateAuthorityLetsEncrypt CustomHostnameSSLCertificateAuthority = "lets_encrypt" ) -func (r SSLCertificateAuthority) IsKnown() bool { +func (r CustomHostnameSSLCertificateAuthority) IsKnown() bool { switch r { - case SSLCertificateAuthorityDigicert, SSLCertificateAuthorityGoogle, SSLCertificateAuthorityLetsEncrypt: + case CustomHostnameSSLCertificateAuthorityDigicert, CustomHostnameSSLCertificateAuthorityGoogle, CustomHostnameSSLCertificateAuthorityLetsEncrypt: return true } return false } // SSL specific settings. -type SSLSettings struct { +type CustomHostnameSSLSettings struct { // An allowlist of ciphers for TLS termination. These ciphers must be in the // BoringSSL format. Ciphers []string `json:"ciphers"` // Whether or not Early Hints is enabled. - EarlyHints SSLSettingsEarlyHints `json:"early_hints"` + EarlyHints CustomHostnameSSLSettingsEarlyHints `json:"early_hints"` // Whether or not HTTP2 is enabled. - HTTP2 SSLSettingsHTTP2 `json:"http2"` + HTTP2 CustomHostnameSSLSettingsHTTP2 `json:"http2"` // The minimum TLS version supported. - MinTLSVersion SSLSettingsMinTLSVersion `json:"min_tls_version"` + MinTLSVersion CustomHostnameSSLSettingsMinTLSVersion `json:"min_tls_version"` // Whether or not TLS 1.3 is enabled. - TLS1_3 SSLSettingsTLS1_3 `json:"tls_1_3"` - JSON sslSettingsJSON `json:"-"` + TLS1_3 CustomHostnameSSLSettingsTLS1_3 `json:"tls_1_3"` + JSON customHostnameSSLSettingsJSON `json:"-"` } -// sslSettingsJSON contains the JSON metadata for the struct [SSLSettings] -type sslSettingsJSON struct { +// customHostnameSSLSettingsJSON contains the JSON metadata for the struct +// [CustomHostnameSSLSettings] +type customHostnameSSLSettingsJSON struct { Ciphers apijson.Field EarlyHints apijson.Field HTTP2 apijson.Field @@ -268,139 +395,139 @@ type sslSettingsJSON struct { ExtraFields map[string]apijson.Field } -func (r *SSLSettings) UnmarshalJSON(data []byte) (err error) { +func (r *CustomHostnameSSLSettings) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r sslSettingsJSON) RawJSON() string { +func (r customHostnameSSLSettingsJSON) RawJSON() string { return r.raw } // Whether or not Early Hints is enabled. -type SSLSettingsEarlyHints string +type CustomHostnameSSLSettingsEarlyHints string const ( - SSLSettingsEarlyHintsOn SSLSettingsEarlyHints = "on" - SSLSettingsEarlyHintsOff SSLSettingsEarlyHints = "off" + CustomHostnameSSLSettingsEarlyHintsOn CustomHostnameSSLSettingsEarlyHints = "on" + CustomHostnameSSLSettingsEarlyHintsOff CustomHostnameSSLSettingsEarlyHints = "off" ) -func (r SSLSettingsEarlyHints) IsKnown() bool { +func (r CustomHostnameSSLSettingsEarlyHints) IsKnown() bool { switch r { - case SSLSettingsEarlyHintsOn, SSLSettingsEarlyHintsOff: + case CustomHostnameSSLSettingsEarlyHintsOn, CustomHostnameSSLSettingsEarlyHintsOff: return true } return false } // Whether or not HTTP2 is enabled. -type SSLSettingsHTTP2 string +type CustomHostnameSSLSettingsHTTP2 string const ( - SSLSettingsHTTP2On SSLSettingsHTTP2 = "on" - SSLSettingsHTTP2Off SSLSettingsHTTP2 = "off" + CustomHostnameSSLSettingsHTTP2On CustomHostnameSSLSettingsHTTP2 = "on" + CustomHostnameSSLSettingsHTTP2Off CustomHostnameSSLSettingsHTTP2 = "off" ) -func (r SSLSettingsHTTP2) IsKnown() bool { +func (r CustomHostnameSSLSettingsHTTP2) IsKnown() bool { switch r { - case SSLSettingsHTTP2On, SSLSettingsHTTP2Off: + case CustomHostnameSSLSettingsHTTP2On, CustomHostnameSSLSettingsHTTP2Off: return true } return false } // The minimum TLS version supported. -type SSLSettingsMinTLSVersion string +type CustomHostnameSSLSettingsMinTLSVersion string const ( - SSLSettingsMinTLSVersion1_0 SSLSettingsMinTLSVersion = "1.0" - SSLSettingsMinTLSVersion1_1 SSLSettingsMinTLSVersion = "1.1" - SSLSettingsMinTLSVersion1_2 SSLSettingsMinTLSVersion = "1.2" - SSLSettingsMinTLSVersion1_3 SSLSettingsMinTLSVersion = "1.3" + CustomHostnameSSLSettingsMinTLSVersion1_0 CustomHostnameSSLSettingsMinTLSVersion = "1.0" + CustomHostnameSSLSettingsMinTLSVersion1_1 CustomHostnameSSLSettingsMinTLSVersion = "1.1" + CustomHostnameSSLSettingsMinTLSVersion1_2 CustomHostnameSSLSettingsMinTLSVersion = "1.2" + CustomHostnameSSLSettingsMinTLSVersion1_3 CustomHostnameSSLSettingsMinTLSVersion = "1.3" ) -func (r SSLSettingsMinTLSVersion) IsKnown() bool { +func (r CustomHostnameSSLSettingsMinTLSVersion) IsKnown() bool { switch r { - case SSLSettingsMinTLSVersion1_0, SSLSettingsMinTLSVersion1_1, SSLSettingsMinTLSVersion1_2, SSLSettingsMinTLSVersion1_3: + case CustomHostnameSSLSettingsMinTLSVersion1_0, CustomHostnameSSLSettingsMinTLSVersion1_1, CustomHostnameSSLSettingsMinTLSVersion1_2, CustomHostnameSSLSettingsMinTLSVersion1_3: return true } return false } // Whether or not TLS 1.3 is enabled. -type SSLSettingsTLS1_3 string +type CustomHostnameSSLSettingsTLS1_3 string const ( - SSLSettingsTLS1_3On SSLSettingsTLS1_3 = "on" - SSLSettingsTLS1_3Off SSLSettingsTLS1_3 = "off" + CustomHostnameSSLSettingsTLS1_3On CustomHostnameSSLSettingsTLS1_3 = "on" + CustomHostnameSSLSettingsTLS1_3Off CustomHostnameSSLSettingsTLS1_3 = "off" ) -func (r SSLSettingsTLS1_3) IsKnown() bool { +func (r CustomHostnameSSLSettingsTLS1_3) IsKnown() bool { switch r { - case SSLSettingsTLS1_3On, SSLSettingsTLS1_3Off: + case CustomHostnameSSLSettingsTLS1_3On, CustomHostnameSSLSettingsTLS1_3Off: return true } return false } // Status of the hostname's SSL certificates. -type SSLStatus string +type CustomHostnameSSLStatus string const ( - SSLStatusInitializing SSLStatus = "initializing" - SSLStatusPendingValidation SSLStatus = "pending_validation" - SSLStatusDeleted SSLStatus = "deleted" - SSLStatusPendingIssuance SSLStatus = "pending_issuance" - SSLStatusPendingDeployment SSLStatus = "pending_deployment" - SSLStatusPendingDeletion SSLStatus = "pending_deletion" - SSLStatusPendingExpiration SSLStatus = "pending_expiration" - SSLStatusExpired SSLStatus = "expired" - SSLStatusActive SSLStatus = "active" - SSLStatusInitializingTimedOut SSLStatus = "initializing_timed_out" - SSLStatusValidationTimedOut SSLStatus = "validation_timed_out" - SSLStatusIssuanceTimedOut SSLStatus = "issuance_timed_out" - SSLStatusDeploymentTimedOut SSLStatus = "deployment_timed_out" - SSLStatusDeletionTimedOut SSLStatus = "deletion_timed_out" - SSLStatusPendingCleanup SSLStatus = "pending_cleanup" - SSLStatusStagingDeployment SSLStatus = "staging_deployment" - SSLStatusStagingActive SSLStatus = "staging_active" - SSLStatusDeactivating SSLStatus = "deactivating" - SSLStatusInactive SSLStatus = "inactive" - SSLStatusBackupIssued SSLStatus = "backup_issued" - SSLStatusHoldingDeployment SSLStatus = "holding_deployment" + CustomHostnameSSLStatusInitializing CustomHostnameSSLStatus = "initializing" + CustomHostnameSSLStatusPendingValidation CustomHostnameSSLStatus = "pending_validation" + CustomHostnameSSLStatusDeleted CustomHostnameSSLStatus = "deleted" + CustomHostnameSSLStatusPendingIssuance CustomHostnameSSLStatus = "pending_issuance" + CustomHostnameSSLStatusPendingDeployment CustomHostnameSSLStatus = "pending_deployment" + CustomHostnameSSLStatusPendingDeletion CustomHostnameSSLStatus = "pending_deletion" + CustomHostnameSSLStatusPendingExpiration CustomHostnameSSLStatus = "pending_expiration" + CustomHostnameSSLStatusExpired CustomHostnameSSLStatus = "expired" + CustomHostnameSSLStatusActive CustomHostnameSSLStatus = "active" + CustomHostnameSSLStatusInitializingTimedOut CustomHostnameSSLStatus = "initializing_timed_out" + CustomHostnameSSLStatusValidationTimedOut CustomHostnameSSLStatus = "validation_timed_out" + CustomHostnameSSLStatusIssuanceTimedOut CustomHostnameSSLStatus = "issuance_timed_out" + CustomHostnameSSLStatusDeploymentTimedOut CustomHostnameSSLStatus = "deployment_timed_out" + CustomHostnameSSLStatusDeletionTimedOut CustomHostnameSSLStatus = "deletion_timed_out" + CustomHostnameSSLStatusPendingCleanup CustomHostnameSSLStatus = "pending_cleanup" + CustomHostnameSSLStatusStagingDeployment CustomHostnameSSLStatus = "staging_deployment" + CustomHostnameSSLStatusStagingActive CustomHostnameSSLStatus = "staging_active" + CustomHostnameSSLStatusDeactivating CustomHostnameSSLStatus = "deactivating" + CustomHostnameSSLStatusInactive CustomHostnameSSLStatus = "inactive" + CustomHostnameSSLStatusBackupIssued CustomHostnameSSLStatus = "backup_issued" + CustomHostnameSSLStatusHoldingDeployment CustomHostnameSSLStatus = "holding_deployment" ) -func (r SSLStatus) IsKnown() bool { +func (r CustomHostnameSSLStatus) IsKnown() bool { switch r { - case SSLStatusInitializing, SSLStatusPendingValidation, SSLStatusDeleted, SSLStatusPendingIssuance, SSLStatusPendingDeployment, SSLStatusPendingDeletion, SSLStatusPendingExpiration, SSLStatusExpired, SSLStatusActive, SSLStatusInitializingTimedOut, SSLStatusValidationTimedOut, SSLStatusIssuanceTimedOut, SSLStatusDeploymentTimedOut, SSLStatusDeletionTimedOut, SSLStatusPendingCleanup, SSLStatusStagingDeployment, SSLStatusStagingActive, SSLStatusDeactivating, SSLStatusInactive, SSLStatusBackupIssued, SSLStatusHoldingDeployment: + case CustomHostnameSSLStatusInitializing, CustomHostnameSSLStatusPendingValidation, CustomHostnameSSLStatusDeleted, CustomHostnameSSLStatusPendingIssuance, CustomHostnameSSLStatusPendingDeployment, CustomHostnameSSLStatusPendingDeletion, CustomHostnameSSLStatusPendingExpiration, CustomHostnameSSLStatusExpired, CustomHostnameSSLStatusActive, CustomHostnameSSLStatusInitializingTimedOut, CustomHostnameSSLStatusValidationTimedOut, CustomHostnameSSLStatusIssuanceTimedOut, CustomHostnameSSLStatusDeploymentTimedOut, CustomHostnameSSLStatusDeletionTimedOut, CustomHostnameSSLStatusPendingCleanup, CustomHostnameSSLStatusStagingDeployment, CustomHostnameSSLStatusStagingActive, CustomHostnameSSLStatusDeactivating, CustomHostnameSSLStatusInactive, CustomHostnameSSLStatusBackupIssued, CustomHostnameSSLStatusHoldingDeployment: return true } return false } -type SSLValidationError struct { +type CustomHostnameSSLValidationError struct { // A domain validation error. - Message string `json:"message"` - JSON sslValidationErrorJSON `json:"-"` + Message string `json:"message"` + JSON customHostnameSSLValidationErrorJSON `json:"-"` } -// sslValidationErrorJSON contains the JSON metadata for the struct -// [SSLValidationError] -type sslValidationErrorJSON struct { +// customHostnameSSLValidationErrorJSON contains the JSON metadata for the struct +// [CustomHostnameSSLValidationError] +type customHostnameSSLValidationErrorJSON struct { Message apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *SSLValidationError) UnmarshalJSON(data []byte) (err error) { +func (r *CustomHostnameSSLValidationError) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r sslValidationErrorJSON) RawJSON() string { +func (r customHostnameSSLValidationErrorJSON) RawJSON() string { return r.raw } // Certificate's required validation record. -type SSLValidationRecord struct { +type CustomHostnameSSLValidationRecord struct { // The set of email addresses that the certificate authority (CA) will use to // complete domain validation. Emails []interface{} `json:"emails"` @@ -414,13 +541,13 @@ type SSLValidationRecord struct { TXTName string `json:"txt_name"` // The TXT record that the certificate authority (CA) will check during domain // validation. - TXTValue string `json:"txt_value"` - JSON sslValidationRecordJSON `json:"-"` + TXTValue string `json:"txt_value"` + JSON customHostnameSSLValidationRecordJSON `json:"-"` } -// sslValidationRecordJSON contains the JSON metadata for the struct -// [SSLValidationRecord] -type sslValidationRecordJSON struct { +// customHostnameSSLValidationRecordJSON contains the JSON metadata for the struct +// [CustomHostnameSSLValidationRecord] +type customHostnameSSLValidationRecordJSON struct { Emails apijson.Field HTTPBody apijson.Field HTTPURL apijson.Field @@ -430,14 +557,44 @@ type sslValidationRecordJSON struct { ExtraFields map[string]apijson.Field } -func (r *SSLValidationRecord) UnmarshalJSON(data []byte) (err error) { +func (r *CustomHostnameSSLValidationRecord) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r sslValidationRecordJSON) RawJSON() string { +func (r customHostnameSSLValidationRecordJSON) RawJSON() string { return r.raw } +// Status of the hostname's activation. +type CustomHostnameStatus string + +const ( + CustomHostnameStatusActive CustomHostnameStatus = "active" + CustomHostnameStatusPending CustomHostnameStatus = "pending" + CustomHostnameStatusActiveRedeploying CustomHostnameStatus = "active_redeploying" + CustomHostnameStatusMoved CustomHostnameStatus = "moved" + CustomHostnameStatusPendingDeletion CustomHostnameStatus = "pending_deletion" + CustomHostnameStatusDeleted CustomHostnameStatus = "deleted" + CustomHostnameStatusPendingBlocked CustomHostnameStatus = "pending_blocked" + CustomHostnameStatusPendingMigration CustomHostnameStatus = "pending_migration" + CustomHostnameStatusPendingProvisioned CustomHostnameStatus = "pending_provisioned" + CustomHostnameStatusTestPending CustomHostnameStatus = "test_pending" + CustomHostnameStatusTestActive CustomHostnameStatus = "test_active" + CustomHostnameStatusTestActiveApex CustomHostnameStatus = "test_active_apex" + CustomHostnameStatusTestBlocked CustomHostnameStatus = "test_blocked" + CustomHostnameStatusTestFailed CustomHostnameStatus = "test_failed" + CustomHostnameStatusProvisioned CustomHostnameStatus = "provisioned" + CustomHostnameStatusBlocked CustomHostnameStatus = "blocked" +) + +func (r CustomHostnameStatus) IsKnown() bool { + switch r { + case CustomHostnameStatusActive, CustomHostnameStatusPending, CustomHostnameStatusActiveRedeploying, CustomHostnameStatusMoved, CustomHostnameStatusPendingDeletion, CustomHostnameStatusDeleted, CustomHostnameStatusPendingBlocked, CustomHostnameStatusPendingMigration, CustomHostnameStatusPendingProvisioned, CustomHostnameStatusTestPending, CustomHostnameStatusTestActive, CustomHostnameStatusTestActiveApex, CustomHostnameStatusTestBlocked, CustomHostnameStatusTestFailed, CustomHostnameStatusProvisioned, CustomHostnameStatusBlocked: + return true + } + return false +} + // A ubiquitous bundle has the highest probability of being verified everywhere, // even by clients using outdated or unusual trust stores. An optimal bundle uses // the shortest chain and newest intermediates. And the force bundle verifies the diff --git a/d1/d1.go b/d1/d1.go index 276eb33647c..93e165ca50f 100644 --- a/d1/d1.go +++ b/d1/d1.go @@ -3,6 +3,7 @@ package d1 import ( + "github.com/cloudflare/cloudflare-go/v2/internal/apijson" "github.com/cloudflare/cloudflare-go/v2/option" ) @@ -24,3 +25,35 @@ func NewD1Service(opts ...option.RequestOption) (r *D1Service) { r.Database = NewDatabaseService(opts...) return } + +type D1 struct { + // Specifies the timestamp the resource was created as an ISO8601 string. + CreatedAt string `json:"created_at"` + // The D1 database's size, in bytes. + FileSize float64 `json:"file_size"` + Name string `json:"name"` + NumTables float64 `json:"num_tables"` + UUID string `json:"uuid"` + Version string `json:"version"` + JSON d1JSON `json:"-"` +} + +// d1JSON contains the JSON metadata for the struct [D1] +type d1JSON struct { + CreatedAt apijson.Field + FileSize apijson.Field + Name apijson.Field + NumTables apijson.Field + UUID apijson.Field + Version apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *D1) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r d1JSON) RawJSON() string { + return r.raw +} diff --git a/d1/database.go b/d1/database.go index 910b47be4ee..e5cc3725a9a 100644 --- a/d1/database.go +++ b/d1/database.go @@ -109,38 +109,6 @@ func (r *DatabaseService) Query(ctx context.Context, accountIdentifier string, d return } -type D1 struct { - // Specifies the timestamp the resource was created as an ISO8601 string. - CreatedAt string `json:"created_at"` - // The D1 database's size, in bytes. - FileSize float64 `json:"file_size"` - Name string `json:"name"` - NumTables float64 `json:"num_tables"` - UUID string `json:"uuid"` - Version string `json:"version"` - JSON d1JSON `json:"-"` -} - -// d1JSON contains the JSON metadata for the struct [D1] -type d1JSON struct { - CreatedAt apijson.Field - FileSize apijson.Field - Name apijson.Field - NumTables apijson.Field - UUID apijson.Field - Version apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *D1) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r d1JSON) RawJSON() string { - return r.raw -} - type QueryResult struct { Meta QueryResultMeta `json:"meta"` Results []interface{} `json:"results"` diff --git a/email_routing/rule.go b/email_routing/rule.go index baafa96a4ef..4cfa3e122fd 100644 --- a/email_routing/rule.go +++ b/email_routing/rule.go @@ -165,67 +165,15 @@ func (r ActionParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -// Actions pattern. -type ActionItem struct { - // Type of supported action. - Type ActionItemType `json:"type,required"` - Value []string `json:"value,required"` - JSON actionItemJSON `json:"-"` -} - -// actionItemJSON contains the JSON metadata for the struct [ActionItem] -type actionItemJSON struct { - Type apijson.Field - Value apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *ActionItem) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r actionItemJSON) RawJSON() string { - return r.raw -} - -// Type of supported action. -type ActionItemType string - -const ( - ActionItemTypeDrop ActionItemType = "drop" - ActionItemTypeForward ActionItemType = "forward" - ActionItemTypeWorker ActionItemType = "worker" -) - -func (r ActionItemType) IsKnown() bool { - switch r { - case ActionItemTypeDrop, ActionItemTypeForward, ActionItemTypeWorker: - return true - } - return false -} - -// Actions pattern. -type ActionItemParam struct { - // Type of supported action. - Type param.Field[ActionItemType] `json:"type,required"` - Value param.Field[[]string] `json:"value,required"` -} - -func (r ActionItemParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - type EmailRule struct { // Routing rule identifier. ID string `json:"id"` // List actions patterns. - Actions []ActionItem `json:"actions"` + Actions []Action `json:"actions"` // Routing rule status. Enabled EmailRuleEnabled `json:"enabled"` // Matching patterns to forward to your actions. - Matchers []MatcherItem `json:"matchers"` + Matchers []Matcher `json:"matchers"` // Routing rule name. Name string `json:"name"` // Priority of the routing rule. @@ -256,13 +204,7 @@ func (r emailRuleJSON) RawJSON() string { return r.raw } -func (r EmailRule) implementsZeroTrustIncludeItem() {} - -func (r EmailRule) implementsZeroTrustRule() {} - -func (r EmailRule) implementsZeroTrustExcludeItem() {} - -func (r EmailRule) implementsZeroTrustRequireItem() {} +func (r EmailRule) implementsZeroTrustAccessRule() {} // Routing rule status. type EmailRuleEnabled bool @@ -282,11 +224,11 @@ func (r EmailRuleEnabled) IsKnown() bool { type EmailRuleParam struct { // List actions patterns. - Actions param.Field[[]ActionItemParam] `json:"actions"` + Actions param.Field[[]ActionParam] `json:"actions"` // Routing rule status. Enabled param.Field[EmailRuleEnabled] `json:"enabled"` // Matching patterns to forward to your actions. - Matchers param.Field[[]MatcherItemParam] `json:"matchers"` + Matchers param.Field[[]MatcherParam] `json:"matchers"` // Routing rule name. Name param.Field[string] `json:"name"` // Priority of the routing rule. @@ -297,111 +239,101 @@ func (r EmailRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r EmailRuleParam) implementsZeroTrustRuleUnionParam() {} - -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} // Matching pattern to forward your actions. type Matcher struct { @@ -475,83 +407,11 @@ func (r MatcherParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -// Matching pattern to forward your actions. -type MatcherItem struct { - // Field for type matcher. - Field MatcherItemField `json:"field,required"` - // Type of matcher. - Type MatcherItemType `json:"type,required"` - // Value for matcher. - Value string `json:"value,required"` - JSON matcherItemJSON `json:"-"` -} - -// matcherItemJSON contains the JSON metadata for the struct [MatcherItem] -type matcherItemJSON struct { - Field apijson.Field - Type apijson.Field - Value apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *MatcherItem) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r matcherItemJSON) RawJSON() string { - return r.raw -} - -// Field for type matcher. -type MatcherItemField string - -const ( - MatcherItemFieldTo MatcherItemField = "to" -) - -func (r MatcherItemField) IsKnown() bool { - switch r { - case MatcherItemFieldTo: - return true - } - return false -} - -// Type of matcher. -type MatcherItemType string - -const ( - MatcherItemTypeLiteral MatcherItemType = "literal" -) - -func (r MatcherItemType) IsKnown() bool { - switch r { - case MatcherItemTypeLiteral: - return true - } - return false -} - -// Matching pattern to forward your actions. -type MatcherItemParam struct { - // Field for type matcher. - Field param.Field[MatcherItemField] `json:"field,required"` - // Type of matcher. - Type param.Field[MatcherItemType] `json:"type,required"` - // Value for matcher. - Value param.Field[string] `json:"value,required"` -} - -func (r MatcherItemParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - type RuleNewParams struct { // List actions patterns. - Actions param.Field[[]ActionItemParam] `json:"actions,required"` + Actions param.Field[[]ActionParam] `json:"actions,required"` // Matching patterns to forward to your actions. - Matchers param.Field[[]MatcherItemParam] `json:"matchers,required"` + Matchers param.Field[[]MatcherParam] `json:"matchers,required"` // Routing rule status. Enabled param.Field[RuleNewParamsEnabled] `json:"enabled"` // Routing rule name. @@ -625,9 +485,9 @@ func (r RuleNewResponseEnvelopeSuccess) IsKnown() bool { type RuleUpdateParams struct { // List actions patterns. - Actions param.Field[[]ActionItemParam] `json:"actions,required"` + Actions param.Field[[]ActionParam] `json:"actions,required"` // Matching patterns to forward to your actions. - Matchers param.Field[[]MatcherItemParam] `json:"matchers,required"` + Matchers param.Field[[]MatcherParam] `json:"matchers,required"` // Routing rule status. Enabled param.Field[RuleUpdateParamsEnabled] `json:"enabled"` // Routing rule name. diff --git a/email_routing/rule_test.go b/email_routing/rule_test.go index cf3e7705c75..ec41c0dbb95 100644 --- a/email_routing/rule_test.go +++ b/email_routing/rule_test.go @@ -32,27 +32,27 @@ func TestRuleNewWithOptionalParams(t *testing.T) { context.TODO(), "023e105f4ecef8ad9ca31a8372d0c353", email_routing.RuleNewParams{ - Actions: cloudflare.F([]email_routing.ActionItemParam{{ - Type: cloudflare.F(email_routing.ActionItemTypeForward), + Actions: cloudflare.F([]email_routing.ActionParam{{ + Type: cloudflare.F(email_routing.ActionTypeForward), Value: cloudflare.F([]string{"destinationaddress@example.net", "destinationaddress@example.net", "destinationaddress@example.net"}), }, { - Type: cloudflare.F(email_routing.ActionItemTypeForward), + Type: cloudflare.F(email_routing.ActionTypeForward), Value: cloudflare.F([]string{"destinationaddress@example.net", "destinationaddress@example.net", "destinationaddress@example.net"}), }, { - Type: cloudflare.F(email_routing.ActionItemTypeForward), + Type: cloudflare.F(email_routing.ActionTypeForward), Value: cloudflare.F([]string{"destinationaddress@example.net", "destinationaddress@example.net", "destinationaddress@example.net"}), }}), - Matchers: cloudflare.F([]email_routing.MatcherItemParam{{ - Field: cloudflare.F(email_routing.MatcherItemFieldTo), - Type: cloudflare.F(email_routing.MatcherItemTypeLiteral), + Matchers: cloudflare.F([]email_routing.MatcherParam{{ + Field: cloudflare.F(email_routing.MatcherFieldTo), + Type: cloudflare.F(email_routing.MatcherTypeLiteral), Value: cloudflare.F("test@example.com"), }, { - Field: cloudflare.F(email_routing.MatcherItemFieldTo), - Type: cloudflare.F(email_routing.MatcherItemTypeLiteral), + Field: cloudflare.F(email_routing.MatcherFieldTo), + Type: cloudflare.F(email_routing.MatcherTypeLiteral), Value: cloudflare.F("test@example.com"), }, { - Field: cloudflare.F(email_routing.MatcherItemFieldTo), - Type: cloudflare.F(email_routing.MatcherItemTypeLiteral), + Field: cloudflare.F(email_routing.MatcherFieldTo), + Type: cloudflare.F(email_routing.MatcherTypeLiteral), Value: cloudflare.F("test@example.com"), }}), Enabled: cloudflare.F(email_routing.RuleNewParamsEnabledTrue), @@ -88,27 +88,27 @@ func TestRuleUpdateWithOptionalParams(t *testing.T) { "023e105f4ecef8ad9ca31a8372d0c353", "a7e6fb77503c41d8a7f3113c6918f10c", email_routing.RuleUpdateParams{ - Actions: cloudflare.F([]email_routing.ActionItemParam{{ - Type: cloudflare.F(email_routing.ActionItemTypeForward), + Actions: cloudflare.F([]email_routing.ActionParam{{ + Type: cloudflare.F(email_routing.ActionTypeForward), Value: cloudflare.F([]string{"destinationaddress@example.net", "destinationaddress@example.net", "destinationaddress@example.net"}), }, { - Type: cloudflare.F(email_routing.ActionItemTypeForward), + Type: cloudflare.F(email_routing.ActionTypeForward), Value: cloudflare.F([]string{"destinationaddress@example.net", "destinationaddress@example.net", "destinationaddress@example.net"}), }, { - Type: cloudflare.F(email_routing.ActionItemTypeForward), + Type: cloudflare.F(email_routing.ActionTypeForward), Value: cloudflare.F([]string{"destinationaddress@example.net", "destinationaddress@example.net", "destinationaddress@example.net"}), }}), - Matchers: cloudflare.F([]email_routing.MatcherItemParam{{ - Field: cloudflare.F(email_routing.MatcherItemFieldTo), - Type: cloudflare.F(email_routing.MatcherItemTypeLiteral), + Matchers: cloudflare.F([]email_routing.MatcherParam{{ + Field: cloudflare.F(email_routing.MatcherFieldTo), + Type: cloudflare.F(email_routing.MatcherTypeLiteral), Value: cloudflare.F("test@example.com"), }, { - Field: cloudflare.F(email_routing.MatcherItemFieldTo), - Type: cloudflare.F(email_routing.MatcherItemTypeLiteral), + Field: cloudflare.F(email_routing.MatcherFieldTo), + Type: cloudflare.F(email_routing.MatcherTypeLiteral), Value: cloudflare.F("test@example.com"), }, { - Field: cloudflare.F(email_routing.MatcherItemFieldTo), - Type: cloudflare.F(email_routing.MatcherItemTypeLiteral), + Field: cloudflare.F(email_routing.MatcherFieldTo), + Type: cloudflare.F(email_routing.MatcherTypeLiteral), Value: cloudflare.F("test@example.com"), }}), Enabled: cloudflare.F(email_routing.RuleUpdateParamsEnabledTrue), diff --git a/email_routing/rulecatchall.go b/email_routing/rulecatchall.go index e1e40a95578..6e290ec641a 100644 --- a/email_routing/rulecatchall.go +++ b/email_routing/rulecatchall.go @@ -34,7 +34,7 @@ func NewRuleCatchAllService(opts ...option.RequestOption) (r *RuleCatchAllServic // Enable or disable catch-all routing rule, or change action to forward to // specific destination address. -func (r *RuleCatchAllService) Update(ctx context.Context, zoneIdentifier string, body RuleCatchAllUpdateParams, opts ...option.RequestOption) (res *CatchAllRule, err error) { +func (r *RuleCatchAllService) Update(ctx context.Context, zoneIdentifier string, body RuleCatchAllUpdateParams, opts ...option.RequestOption) (res *RuleCatchAllUpdateResponse, err error) { opts = append(r.Options[:], opts...) var env RuleCatchAllUpdateResponseEnvelope path := fmt.Sprintf("zones/%s/email/routing/rules/catch_all", zoneIdentifier) @@ -47,7 +47,7 @@ func (r *RuleCatchAllService) Update(ctx context.Context, zoneIdentifier string, } // Get information on the default catch-all routing rule. -func (r *RuleCatchAllService) Get(ctx context.Context, zoneIdentifier string, opts ...option.RequestOption) (res *CatchAllRule, err error) { +func (r *RuleCatchAllService) Get(ctx context.Context, zoneIdentifier string, opts ...option.RequestOption) (res *RuleCatchAllGetResponse, err error) { opts = append(r.Options[:], opts...) var env RuleCatchAllGetResponseEnvelope path := fmt.Sprintf("zones/%s/email/routing/rules/catch_all", zoneIdentifier) @@ -60,75 +60,123 @@ func (r *RuleCatchAllService) Get(ctx context.Context, zoneIdentifier string, op } // Action for the catch-all routing rule. -type Action struct { +type CatchAllAction struct { // Type of action for catch-all rule. - Type ActionType `json:"type,required"` - Value []string `json:"value"` - JSON actionJSON `json:"-"` + Type CatchAllActionType `json:"type,required"` + Value []string `json:"value"` + JSON catchAllActionJSON `json:"-"` } -// actionJSON contains the JSON metadata for the struct [Action] -type actionJSON struct { +// catchAllActionJSON contains the JSON metadata for the struct [CatchAllAction] +type catchAllActionJSON struct { Type apijson.Field Value apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *Action) UnmarshalJSON(data []byte) (err error) { +func (r *CatchAllAction) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r actionJSON) RawJSON() string { +func (r catchAllActionJSON) RawJSON() string { return r.raw } // Type of action for catch-all rule. -type ActionType string +type CatchAllActionType string const ( - ActionTypeDrop ActionType = "drop" - ActionTypeForward ActionType = "forward" - ActionTypeWorker ActionType = "worker" + CatchAllActionTypeDrop CatchAllActionType = "drop" + CatchAllActionTypeForward CatchAllActionType = "forward" + CatchAllActionTypeWorker CatchAllActionType = "worker" ) -func (r ActionType) IsKnown() bool { +func (r CatchAllActionType) IsKnown() bool { switch r { - case ActionTypeDrop, ActionTypeForward, ActionTypeWorker: + case CatchAllActionTypeDrop, CatchAllActionTypeForward, CatchAllActionTypeWorker: return true } return false } // Action for the catch-all routing rule. -type ActionParam struct { +type CatchAllActionParam struct { // Type of action for catch-all rule. - Type param.Field[ActionType] `json:"type,required"` - Value param.Field[[]string] `json:"value"` + Type param.Field[CatchAllActionType] `json:"type,required"` + Value param.Field[[]string] `json:"value"` } -func (r ActionParam) MarshalJSON() (data []byte, err error) { +func (r CatchAllActionParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -type CatchAllRule struct { +// Matcher for catch-all routing rule. +type CatchAllMatcher struct { + // Type of matcher. Default is 'all'. + Type CatchAllMatcherType `json:"type,required"` + JSON catchAllMatcherJSON `json:"-"` +} + +// catchAllMatcherJSON contains the JSON metadata for the struct [CatchAllMatcher] +type catchAllMatcherJSON struct { + Type apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *CatchAllMatcher) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r catchAllMatcherJSON) RawJSON() string { + return r.raw +} + +// Type of matcher. Default is 'all'. +type CatchAllMatcherType string + +const ( + CatchAllMatcherTypeAll CatchAllMatcherType = "all" +) + +func (r CatchAllMatcherType) IsKnown() bool { + switch r { + case CatchAllMatcherTypeAll: + return true + } + return false +} + +// Matcher for catch-all routing rule. +type CatchAllMatcherParam struct { + // Type of matcher. Default is 'all'. + Type param.Field[CatchAllMatcherType] `json:"type,required"` +} + +func (r CatchAllMatcherParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +type RuleCatchAllUpdateResponse struct { // Routing rule identifier. ID string `json:"id"` // List actions for the catch-all routing rule. - Actions []Action `json:"actions"` + Actions []CatchAllAction `json:"actions"` // Routing rule status. - Enabled CatchAllRuleEnabled `json:"enabled"` + Enabled RuleCatchAllUpdateResponseEnabled `json:"enabled"` // List of matchers for the catch-all routing rule. - Matchers []Matcher `json:"matchers"` + Matchers []CatchAllMatcher `json:"matchers"` // Routing rule name. Name string `json:"name"` // Routing rule tag. (Deprecated, replaced by routing rule identifier) - Tag string `json:"tag"` - JSON catchAllRuleJSON `json:"-"` + Tag string `json:"tag"` + JSON ruleCatchAllUpdateResponseJSON `json:"-"` } -// catchAllRuleJSON contains the JSON metadata for the struct [CatchAllRule] -type catchAllRuleJSON struct { +// ruleCatchAllUpdateResponseJSON contains the JSON metadata for the struct +// [RuleCatchAllUpdateResponse] +type ruleCatchAllUpdateResponseJSON struct { ID apijson.Field Actions apijson.Field Enabled apijson.Field @@ -139,82 +187,88 @@ type catchAllRuleJSON struct { ExtraFields map[string]apijson.Field } -func (r *CatchAllRule) UnmarshalJSON(data []byte) (err error) { +func (r *RuleCatchAllUpdateResponse) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r catchAllRuleJSON) RawJSON() string { +func (r ruleCatchAllUpdateResponseJSON) RawJSON() string { return r.raw } // Routing rule status. -type CatchAllRuleEnabled bool +type RuleCatchAllUpdateResponseEnabled bool const ( - CatchAllRuleEnabledTrue CatchAllRuleEnabled = true - CatchAllRuleEnabledFalse CatchAllRuleEnabled = false + RuleCatchAllUpdateResponseEnabledTrue RuleCatchAllUpdateResponseEnabled = true + RuleCatchAllUpdateResponseEnabledFalse RuleCatchAllUpdateResponseEnabled = false ) -func (r CatchAllRuleEnabled) IsKnown() bool { +func (r RuleCatchAllUpdateResponseEnabled) IsKnown() bool { switch r { - case CatchAllRuleEnabledTrue, CatchAllRuleEnabledFalse: + case RuleCatchAllUpdateResponseEnabledTrue, RuleCatchAllUpdateResponseEnabledFalse: return true } return false } -// Matcher for catch-all routing rule. -type Matcher struct { - // Type of matcher. Default is 'all'. - Type MatcherType `json:"type,required"` - JSON matcherJSON `json:"-"` +type RuleCatchAllGetResponse struct { + // Routing rule identifier. + ID string `json:"id"` + // List actions for the catch-all routing rule. + Actions []CatchAllAction `json:"actions"` + // Routing rule status. + Enabled RuleCatchAllGetResponseEnabled `json:"enabled"` + // List of matchers for the catch-all routing rule. + Matchers []CatchAllMatcher `json:"matchers"` + // Routing rule name. + Name string `json:"name"` + // Routing rule tag. (Deprecated, replaced by routing rule identifier) + Tag string `json:"tag"` + JSON ruleCatchAllGetResponseJSON `json:"-"` } -// matcherJSON contains the JSON metadata for the struct [Matcher] -type matcherJSON struct { - Type apijson.Field +// ruleCatchAllGetResponseJSON contains the JSON metadata for the struct +// [RuleCatchAllGetResponse] +type ruleCatchAllGetResponseJSON struct { + ID apijson.Field + Actions apijson.Field + Enabled apijson.Field + Matchers apijson.Field + Name apijson.Field + Tag apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *Matcher) UnmarshalJSON(data []byte) (err error) { +func (r *RuleCatchAllGetResponse) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r matcherJSON) RawJSON() string { +func (r ruleCatchAllGetResponseJSON) RawJSON() string { return r.raw } -// Type of matcher. Default is 'all'. -type MatcherType string +// Routing rule status. +type RuleCatchAllGetResponseEnabled bool const ( - MatcherTypeAll MatcherType = "all" + RuleCatchAllGetResponseEnabledTrue RuleCatchAllGetResponseEnabled = true + RuleCatchAllGetResponseEnabledFalse RuleCatchAllGetResponseEnabled = false ) -func (r MatcherType) IsKnown() bool { +func (r RuleCatchAllGetResponseEnabled) IsKnown() bool { switch r { - case MatcherTypeAll: + case RuleCatchAllGetResponseEnabledTrue, RuleCatchAllGetResponseEnabledFalse: return true } return false } -// Matcher for catch-all routing rule. -type MatcherParam struct { - // Type of matcher. Default is 'all'. - Type param.Field[MatcherType] `json:"type,required"` -} - -func (r MatcherParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - type RuleCatchAllUpdateParams struct { // List actions for the catch-all routing rule. - Actions param.Field[[]ActionParam] `json:"actions,required"` + Actions param.Field[[]CatchAllActionParam] `json:"actions,required"` // List of matchers for the catch-all routing rule. - Matchers param.Field[[]MatcherParam] `json:"matchers,required"` + Matchers param.Field[[]CatchAllMatcherParam] `json:"matchers,required"` // Routing rule status. Enabled param.Field[RuleCatchAllUpdateParamsEnabled] `json:"enabled"` // Routing rule name. @@ -244,7 +298,7 @@ func (r RuleCatchAllUpdateParamsEnabled) IsKnown() bool { type RuleCatchAllUpdateResponseEnvelope struct { Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` - Result CatchAllRule `json:"result,required"` + Result RuleCatchAllUpdateResponse `json:"result,required"` // Whether the API call was successful Success RuleCatchAllUpdateResponseEnvelopeSuccess `json:"success,required"` JSON ruleCatchAllUpdateResponseEnvelopeJSON `json:"-"` @@ -287,7 +341,7 @@ func (r RuleCatchAllUpdateResponseEnvelopeSuccess) IsKnown() bool { type RuleCatchAllGetResponseEnvelope struct { Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` - Result CatchAllRule `json:"result,required"` + Result RuleCatchAllGetResponse `json:"result,required"` // Whether the API call was successful Success RuleCatchAllGetResponseEnvelopeSuccess `json:"success,required"` JSON ruleCatchAllGetResponseEnvelopeJSON `json:"-"` diff --git a/email_routing/rulecatchall_test.go b/email_routing/rulecatchall_test.go index 6bb360e997b..fc47c1c6205 100644 --- a/email_routing/rulecatchall_test.go +++ b/email_routing/rulecatchall_test.go @@ -32,22 +32,22 @@ func TestRuleCatchAllUpdateWithOptionalParams(t *testing.T) { context.TODO(), "023e105f4ecef8ad9ca31a8372d0c353", email_routing.RuleCatchAllUpdateParams{ - Actions: cloudflare.F([]email_routing.ActionParam{{ - Type: cloudflare.F(email_routing.ActionTypeForward), + Actions: cloudflare.F([]email_routing.CatchAllActionParam{{ + Type: cloudflare.F(email_routing.CatchAllActionTypeForward), Value: cloudflare.F([]string{"destinationaddress@example.net", "destinationaddress@example.net", "destinationaddress@example.net"}), }, { - Type: cloudflare.F(email_routing.ActionTypeForward), + Type: cloudflare.F(email_routing.CatchAllActionTypeForward), Value: cloudflare.F([]string{"destinationaddress@example.net", "destinationaddress@example.net", "destinationaddress@example.net"}), }, { - Type: cloudflare.F(email_routing.ActionTypeForward), + Type: cloudflare.F(email_routing.CatchAllActionTypeForward), Value: cloudflare.F([]string{"destinationaddress@example.net", "destinationaddress@example.net", "destinationaddress@example.net"}), }}), - Matchers: cloudflare.F([]email_routing.MatcherParam{{ - Type: cloudflare.F(email_routing.MatcherTypeAll), + Matchers: cloudflare.F([]email_routing.CatchAllMatcherParam{{ + Type: cloudflare.F(email_routing.CatchAllMatcherTypeAll), }, { - Type: cloudflare.F(email_routing.MatcherTypeAll), + Type: cloudflare.F(email_routing.CatchAllMatcherTypeAll), }, { - Type: cloudflare.F(email_routing.MatcherTypeAll), + Type: cloudflare.F(email_routing.CatchAllMatcherTypeAll), }}), Enabled: cloudflare.F(email_routing.RuleCatchAllUpdateParamsEnabledTrue), Name: cloudflare.F("Send to user@example.net rule."), diff --git a/firewall/wafpackagerule.go b/firewall/wafpackagerule.go index 997958ca41a..ea3a833b80b 100644 --- a/firewall/wafpackagerule.go +++ b/firewall/wafpackagerule.go @@ -98,23 +98,6 @@ func (r *WAFPackageRuleService) Get(ctx context.Context, packageID string, ruleI return } -// When set to `on`, the current WAF rule will be used when evaluating the request. -// Applies to anomaly detection WAF rules. -type AllowedModesAnomalyItem string - -const ( - AllowedModesAnomalyItemOn AllowedModesAnomalyItem = "on" - AllowedModesAnomalyItemOff AllowedModesAnomalyItem = "off" -) - -func (r AllowedModesAnomalyItem) IsKnown() bool { - switch r { - case AllowedModesAnomalyItemOn, AllowedModesAnomalyItemOff: - return true - } - return false -} - // When triggered, anomaly detection WAF rules contribute to an overall threat // score that will determine if a request is considered malicious. You can // configure the total scoring threshold through the 'sensitivity' property of the @@ -209,7 +192,7 @@ type RuleWAFManagedRulesAnomalyRule struct { ID string `json:"id,required"` // Defines the available modes for the current WAF rule. Applies to anomaly // detection WAF rules. - AllowedModes []AllowedModesAnomalyItem `json:"allowed_modes,required"` + AllowedModes []RuleWAFManagedRulesAnomalyRuleAllowedMode `json:"allowed_modes,required"` // The public description of the WAF rule. Description string `json:"description,required"` // The rule group to which the current WAF rule belongs. @@ -248,6 +231,23 @@ func (r ruleWAFManagedRulesAnomalyRuleJSON) RawJSON() string { func (r RuleWAFManagedRulesAnomalyRule) implementsFirewallRule() {} +// When set to `on`, the current WAF rule will be used when evaluating the request. +// Applies to anomaly detection WAF rules. +type RuleWAFManagedRulesAnomalyRuleAllowedMode string + +const ( + RuleWAFManagedRulesAnomalyRuleAllowedModeOn RuleWAFManagedRulesAnomalyRuleAllowedMode = "on" + RuleWAFManagedRulesAnomalyRuleAllowedModeOff RuleWAFManagedRulesAnomalyRuleAllowedMode = "off" +) + +func (r RuleWAFManagedRulesAnomalyRuleAllowedMode) IsKnown() bool { + switch r { + case RuleWAFManagedRulesAnomalyRuleAllowedModeOn, RuleWAFManagedRulesAnomalyRuleAllowedModeOff: + return true + } + return false +} + // When set to `on`, the current WAF rule will be used when evaluating the request. // Applies to anomaly detection WAF rules. type RuleWAFManagedRulesAnomalyRuleMode string @@ -677,7 +677,7 @@ type WAFPackageRuleEditResponseWAFManagedRulesAnomalyRule struct { ID string `json:"id,required"` // Defines the available modes for the current WAF rule. Applies to anomaly // detection WAF rules. - AllowedModes []AllowedModesAnomalyItem `json:"allowed_modes,required"` + AllowedModes []WAFPackageRuleEditResponseWAFManagedRulesAnomalyRuleAllowedMode `json:"allowed_modes,required"` // The public description of the WAF rule. Description string `json:"description,required"` // The rule group to which the current WAF rule belongs. @@ -717,6 +717,23 @@ func (r wafPackageRuleEditResponseWAFManagedRulesAnomalyRuleJSON) RawJSON() stri func (r WAFPackageRuleEditResponseWAFManagedRulesAnomalyRule) implementsFirewallWAFPackageRuleEditResponse() { } +// When set to `on`, the current WAF rule will be used when evaluating the request. +// Applies to anomaly detection WAF rules. +type WAFPackageRuleEditResponseWAFManagedRulesAnomalyRuleAllowedMode string + +const ( + WAFPackageRuleEditResponseWAFManagedRulesAnomalyRuleAllowedModeOn WAFPackageRuleEditResponseWAFManagedRulesAnomalyRuleAllowedMode = "on" + WAFPackageRuleEditResponseWAFManagedRulesAnomalyRuleAllowedModeOff WAFPackageRuleEditResponseWAFManagedRulesAnomalyRuleAllowedMode = "off" +) + +func (r WAFPackageRuleEditResponseWAFManagedRulesAnomalyRuleAllowedMode) IsKnown() bool { + switch r { + case WAFPackageRuleEditResponseWAFManagedRulesAnomalyRuleAllowedModeOn, WAFPackageRuleEditResponseWAFManagedRulesAnomalyRuleAllowedModeOff: + return true + } + return false +} + // When set to `on`, the current WAF rule will be used when evaluating the request. // Applies to anomaly detection WAF rules. type WAFPackageRuleEditResponseWAFManagedRulesAnomalyRuleMode string diff --git a/healthchecks/healthcheck.go b/healthchecks/healthcheck.go index a85397d1b4d..1ab99e7dfad 100644 --- a/healthchecks/healthcheck.go +++ b/healthchecks/healthcheck.go @@ -129,28 +129,28 @@ func (r *HealthcheckService) Get(ctx context.Context, healthcheckID string, quer // OC: Oceania, ME: Middle East, NAF: North Africa, SAF: South Africa, IN: India, // SEAS: South East Asia, NEAS: North East Asia, ALL_REGIONS: all regions (BUSINESS // and ENTERPRISE customers only). -type CheckRegionItem string +type CheckRegion string const ( - CheckRegionItemWnam CheckRegionItem = "WNAM" - CheckRegionItemEnam CheckRegionItem = "ENAM" - CheckRegionItemWeu CheckRegionItem = "WEU" - CheckRegionItemEeu CheckRegionItem = "EEU" - CheckRegionItemNsam CheckRegionItem = "NSAM" - CheckRegionItemSsam CheckRegionItem = "SSAM" - CheckRegionItemOc CheckRegionItem = "OC" - CheckRegionItemMe CheckRegionItem = "ME" - CheckRegionItemNaf CheckRegionItem = "NAF" - CheckRegionItemSaf CheckRegionItem = "SAF" - CheckRegionItemIn CheckRegionItem = "IN" - CheckRegionItemSeas CheckRegionItem = "SEAS" - CheckRegionItemNeas CheckRegionItem = "NEAS" - CheckRegionItemAllRegions CheckRegionItem = "ALL_REGIONS" + CheckRegionWnam CheckRegion = "WNAM" + CheckRegionEnam CheckRegion = "ENAM" + CheckRegionWeu CheckRegion = "WEU" + CheckRegionEeu CheckRegion = "EEU" + CheckRegionNsam CheckRegion = "NSAM" + CheckRegionSsam CheckRegion = "SSAM" + CheckRegionOc CheckRegion = "OC" + CheckRegionMe CheckRegion = "ME" + CheckRegionNaf CheckRegion = "NAF" + CheckRegionSaf CheckRegion = "SAF" + CheckRegionIn CheckRegion = "IN" + CheckRegionSeas CheckRegion = "SEAS" + CheckRegionNeas CheckRegion = "NEAS" + CheckRegionAllRegions CheckRegion = "ALL_REGIONS" ) -func (r CheckRegionItem) IsKnown() bool { +func (r CheckRegion) IsKnown() bool { switch r { - case CheckRegionItemWnam, CheckRegionItemEnam, CheckRegionItemWeu, CheckRegionItemEeu, CheckRegionItemNsam, CheckRegionItemSsam, CheckRegionItemOc, CheckRegionItemMe, CheckRegionItemNaf, CheckRegionItemSaf, CheckRegionItemIn, CheckRegionItemSeas, CheckRegionItemNeas, CheckRegionItemAllRegions: + case CheckRegionWnam, CheckRegionEnam, CheckRegionWeu, CheckRegionEeu, CheckRegionNsam, CheckRegionSsam, CheckRegionOc, CheckRegionMe, CheckRegionNaf, CheckRegionSaf, CheckRegionIn, CheckRegionSeas, CheckRegionNeas, CheckRegionAllRegions: return true } return false @@ -163,7 +163,7 @@ type Healthcheck struct { Address string `json:"address"` // A list of regions from which to run health checks. Null means Cloudflare will // pick a default region. - CheckRegions []CheckRegionItem `json:"check_regions,nullable"` + CheckRegions []CheckRegion `json:"check_regions,nullable"` // The number of consecutive fails required from a health check before changing the // health to unhealthy. ConsecutiveFails int64 `json:"consecutive_fails"` @@ -429,7 +429,7 @@ type HealthcheckNewParams struct { Name param.Field[string] `json:"name,required"` // A list of regions from which to run health checks. Null means Cloudflare will // pick a default region. - CheckRegions param.Field[[]CheckRegionItem] `json:"check_regions"` + CheckRegions param.Field[[]CheckRegion] `json:"check_regions"` // The number of consecutive fails required from a health check before changing the // health to unhealthy. ConsecutiveFails param.Field[int64] `json:"consecutive_fails"` @@ -515,7 +515,7 @@ type HealthcheckUpdateParams struct { Name param.Field[string] `json:"name,required"` // A list of regions from which to run health checks. Null means Cloudflare will // pick a default region. - CheckRegions param.Field[[]CheckRegionItem] `json:"check_regions"` + CheckRegions param.Field[[]CheckRegion] `json:"check_regions"` // The number of consecutive fails required from a health check before changing the // health to unhealthy. ConsecutiveFails param.Field[int64] `json:"consecutive_fails"` @@ -659,7 +659,7 @@ type HealthcheckEditParams struct { Name param.Field[string] `json:"name,required"` // A list of regions from which to run health checks. Null means Cloudflare will // pick a default region. - CheckRegions param.Field[[]CheckRegionItem] `json:"check_regions"` + CheckRegions param.Field[[]CheckRegion] `json:"check_regions"` // The number of consecutive fails required from a health check before changing the // health to unhealthy. ConsecutiveFails param.Field[int64] `json:"consecutive_fails"` diff --git a/healthchecks/healthcheck_test.go b/healthchecks/healthcheck_test.go index 0e773db1303..33dc1897c83 100644 --- a/healthchecks/healthcheck_test.go +++ b/healthchecks/healthcheck_test.go @@ -32,7 +32,7 @@ func TestHealthcheckNewWithOptionalParams(t *testing.T) { ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Address: cloudflare.F("www.example.com"), Name: cloudflare.F("server-1"), - CheckRegions: cloudflare.F([]healthchecks.CheckRegionItem{healthchecks.CheckRegionItemWeu, healthchecks.CheckRegionItemEnam}), + CheckRegions: cloudflare.F([]healthchecks.CheckRegion{healthchecks.CheckRegionWeu, healthchecks.CheckRegionEnam}), ConsecutiveFails: cloudflare.F(int64(0)), ConsecutiveSuccesses: cloudflare.F(int64(0)), Description: cloudflare.F("Health check for www.example.com"), @@ -93,7 +93,7 @@ func TestHealthcheckUpdateWithOptionalParams(t *testing.T) { ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Address: cloudflare.F("www.example.com"), Name: cloudflare.F("server-1"), - CheckRegions: cloudflare.F([]healthchecks.CheckRegionItem{healthchecks.CheckRegionItemWeu, healthchecks.CheckRegionItemEnam}), + CheckRegions: cloudflare.F([]healthchecks.CheckRegion{healthchecks.CheckRegionWeu, healthchecks.CheckRegionEnam}), ConsecutiveFails: cloudflare.F(int64(0)), ConsecutiveSuccesses: cloudflare.F(int64(0)), Description: cloudflare.F("Health check for www.example.com"), @@ -212,7 +212,7 @@ func TestHealthcheckEditWithOptionalParams(t *testing.T) { ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Address: cloudflare.F("www.example.com"), Name: cloudflare.F("server-1"), - CheckRegions: cloudflare.F([]healthchecks.CheckRegionItem{healthchecks.CheckRegionItemWeu, healthchecks.CheckRegionItemEnam}), + CheckRegions: cloudflare.F([]healthchecks.CheckRegion{healthchecks.CheckRegionWeu, healthchecks.CheckRegionEnam}), ConsecutiveFails: cloudflare.F(int64(0)), ConsecutiveSuccesses: cloudflare.F(int64(0)), Description: cloudflare.F("Health check for www.example.com"), diff --git a/healthchecks/preview.go b/healthchecks/preview.go index 2d5aef65a8c..9a0d7b57c84 100644 --- a/healthchecks/preview.go +++ b/healthchecks/preview.go @@ -102,7 +102,7 @@ type PreviewNewParams struct { Name param.Field[string] `json:"name,required"` // A list of regions from which to run health checks. Null means Cloudflare will // pick a default region. - CheckRegions param.Field[[]CheckRegionItem] `json:"check_regions"` + CheckRegions param.Field[[]CheckRegion] `json:"check_regions"` // The number of consecutive fails required from a health check before changing the // health to unhealthy. ConsecutiveFails param.Field[int64] `json:"consecutive_fails"` diff --git a/healthchecks/preview_test.go b/healthchecks/preview_test.go index b7b8584f3c7..ee9abdf6c90 100644 --- a/healthchecks/preview_test.go +++ b/healthchecks/preview_test.go @@ -32,7 +32,7 @@ func TestPreviewNewWithOptionalParams(t *testing.T) { ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Address: cloudflare.F("www.example.com"), Name: cloudflare.F("server-1"), - CheckRegions: cloudflare.F([]healthchecks.CheckRegionItem{healthchecks.CheckRegionItemWeu, healthchecks.CheckRegionItemEnam}), + CheckRegions: cloudflare.F([]healthchecks.CheckRegion{healthchecks.CheckRegionWeu, healthchecks.CheckRegionEnam}), ConsecutiveFails: cloudflare.F(int64(0)), ConsecutiveSuccesses: cloudflare.F(int64(0)), Description: cloudflare.F("Health check for www.example.com"), diff --git a/intel/attacksurfacereportissue.go b/intel/attacksurfacereportissue.go index 2dfd00d6de3..024f0f484db 100644 --- a/intel/attacksurfacereportissue.go +++ b/intel/attacksurfacereportissue.go @@ -111,45 +111,45 @@ func (r *AttackSurfaceReportIssueService) Type(ctx context.Context, params Attac return } -type IssueClassItemParam = string +type IssueClassParam = string -type IssueTypeItem string +type IssueType string const ( - IssueTypeItemComplianceViolation IssueTypeItem = "compliance_violation" - IssueTypeItemEmailSecurity IssueTypeItem = "email_security" - IssueTypeItemExposedInfrastructure IssueTypeItem = "exposed_infrastructure" - IssueTypeItemInsecureConfiguration IssueTypeItem = "insecure_configuration" - IssueTypeItemWeakAuthentication IssueTypeItem = "weak_authentication" + IssueTypeComplianceViolation IssueType = "compliance_violation" + IssueTypeEmailSecurity IssueType = "email_security" + IssueTypeExposedInfrastructure IssueType = "exposed_infrastructure" + IssueTypeInsecureConfiguration IssueType = "insecure_configuration" + IssueTypeWeakAuthentication IssueType = "weak_authentication" ) -func (r IssueTypeItem) IsKnown() bool { +func (r IssueType) IsKnown() bool { switch r { - case IssueTypeItemComplianceViolation, IssueTypeItemEmailSecurity, IssueTypeItemExposedInfrastructure, IssueTypeItemInsecureConfiguration, IssueTypeItemWeakAuthentication: + case IssueTypeComplianceViolation, IssueTypeEmailSecurity, IssueTypeExposedInfrastructure, IssueTypeInsecureConfiguration, IssueTypeWeakAuthentication: return true } return false } -type ProductItemParam = string +type ProductParam = string -type SeverityQueryParamItem string +type SeverityQueryParam string const ( - SeverityQueryParamItemLow SeverityQueryParamItem = "low" - SeverityQueryParamItemModerate SeverityQueryParamItem = "moderate" - SeverityQueryParamItemCritical SeverityQueryParamItem = "critical" + SeverityQueryParamLow SeverityQueryParam = "low" + SeverityQueryParamModerate SeverityQueryParam = "moderate" + SeverityQueryParamCritical SeverityQueryParam = "critical" ) -func (r SeverityQueryParamItem) IsKnown() bool { +func (r SeverityQueryParam) IsKnown() bool { switch r { - case SeverityQueryParamItemLow, SeverityQueryParamItemModerate, SeverityQueryParamItemCritical: + case SeverityQueryParamLow, SeverityQueryParamModerate, SeverityQueryParamCritical: return true } return false } -type SubjectsItemParam = string +type SubjectParam = string type AttackSurfaceReportIssueListResponse struct { Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` @@ -370,22 +370,22 @@ func (r attackSurfaceReportIssueTypeResponseJSON) RawJSON() string { type AttackSurfaceReportIssueListParams struct { // Identifier - AccountID param.Field[string] `path:"account_id,required"` - Dismissed param.Field[bool] `query:"dismissed"` - IssueClass param.Field[[]IssueClassItemParam] `query:"issue_class"` - IssueClassNeq param.Field[[]IssueClassItemParam] `query:"issue_class~neq"` - IssueType param.Field[[]IssueTypeItem] `query:"issue_type"` - IssueTypeNeq param.Field[[]IssueTypeItem] `query:"issue_type~neq"` + AccountID param.Field[string] `path:"account_id,required"` + Dismissed param.Field[bool] `query:"dismissed"` + IssueClass param.Field[[]IssueClassParam] `query:"issue_class"` + IssueClassNeq param.Field[[]IssueClassParam] `query:"issue_class~neq"` + IssueType param.Field[[]IssueType] `query:"issue_type"` + IssueTypeNeq param.Field[[]IssueType] `query:"issue_type~neq"` // Current page within paginated list of results Page param.Field[int64] `query:"page"` // Number of results per page of results - PerPage param.Field[int64] `query:"per_page"` - Product param.Field[[]ProductItemParam] `query:"product"` - ProductNeq param.Field[[]ProductItemParam] `query:"product~neq"` - Severity param.Field[[]SeverityQueryParamItem] `query:"severity"` - SeverityNeq param.Field[[]SeverityQueryParamItem] `query:"severity~neq"` - Subject param.Field[[]SubjectsItemParam] `query:"subject"` - SubjectNeq param.Field[[]SubjectsItemParam] `query:"subject~neq"` + PerPage param.Field[int64] `query:"per_page"` + Product param.Field[[]ProductParam] `query:"product"` + ProductNeq param.Field[[]ProductParam] `query:"product~neq"` + Severity param.Field[[]SeverityQueryParam] `query:"severity"` + SeverityNeq param.Field[[]SeverityQueryParam] `query:"severity~neq"` + Subject param.Field[[]SubjectParam] `query:"subject"` + SubjectNeq param.Field[[]SubjectParam] `query:"subject~neq"` } // URLQuery serializes [AttackSurfaceReportIssueListParams]'s query parameters as @@ -399,18 +399,18 @@ func (r AttackSurfaceReportIssueListParams) URLQuery() (v url.Values) { type AttackSurfaceReportIssueClassParams struct { // Identifier - AccountID param.Field[string] `path:"account_id,required"` - Dismissed param.Field[bool] `query:"dismissed"` - IssueClass param.Field[[]IssueClassItemParam] `query:"issue_class"` - IssueClassNeq param.Field[[]IssueClassItemParam] `query:"issue_class~neq"` - IssueType param.Field[[]IssueTypeItem] `query:"issue_type"` - IssueTypeNeq param.Field[[]IssueTypeItem] `query:"issue_type~neq"` - Product param.Field[[]ProductItemParam] `query:"product"` - ProductNeq param.Field[[]ProductItemParam] `query:"product~neq"` - Severity param.Field[[]SeverityQueryParamItem] `query:"severity"` - SeverityNeq param.Field[[]SeverityQueryParamItem] `query:"severity~neq"` - Subject param.Field[[]SubjectsItemParam] `query:"subject"` - SubjectNeq param.Field[[]SubjectsItemParam] `query:"subject~neq"` + AccountID param.Field[string] `path:"account_id,required"` + Dismissed param.Field[bool] `query:"dismissed"` + IssueClass param.Field[[]IssueClassParam] `query:"issue_class"` + IssueClassNeq param.Field[[]IssueClassParam] `query:"issue_class~neq"` + IssueType param.Field[[]IssueType] `query:"issue_type"` + IssueTypeNeq param.Field[[]IssueType] `query:"issue_type~neq"` + Product param.Field[[]ProductParam] `query:"product"` + ProductNeq param.Field[[]ProductParam] `query:"product~neq"` + Severity param.Field[[]SeverityQueryParam] `query:"severity"` + SeverityNeq param.Field[[]SeverityQueryParam] `query:"severity~neq"` + Subject param.Field[[]SubjectParam] `query:"subject"` + SubjectNeq param.Field[[]SubjectParam] `query:"subject~neq"` } // URLQuery serializes [AttackSurfaceReportIssueClassParams]'s query parameters as @@ -520,18 +520,18 @@ func (r AttackSurfaceReportIssueDismissResponseEnvelopeSuccess) IsKnown() bool { type AttackSurfaceReportIssueSeverityParams struct { // Identifier - AccountID param.Field[string] `path:"account_id,required"` - Dismissed param.Field[bool] `query:"dismissed"` - IssueClass param.Field[[]IssueClassItemParam] `query:"issue_class"` - IssueClassNeq param.Field[[]IssueClassItemParam] `query:"issue_class~neq"` - IssueType param.Field[[]IssueTypeItem] `query:"issue_type"` - IssueTypeNeq param.Field[[]IssueTypeItem] `query:"issue_type~neq"` - Product param.Field[[]ProductItemParam] `query:"product"` - ProductNeq param.Field[[]ProductItemParam] `query:"product~neq"` - Severity param.Field[[]SeverityQueryParamItem] `query:"severity"` - SeverityNeq param.Field[[]SeverityQueryParamItem] `query:"severity~neq"` - Subject param.Field[[]SubjectsItemParam] `query:"subject"` - SubjectNeq param.Field[[]SubjectsItemParam] `query:"subject~neq"` + AccountID param.Field[string] `path:"account_id,required"` + Dismissed param.Field[bool] `query:"dismissed"` + IssueClass param.Field[[]IssueClassParam] `query:"issue_class"` + IssueClassNeq param.Field[[]IssueClassParam] `query:"issue_class~neq"` + IssueType param.Field[[]IssueType] `query:"issue_type"` + IssueTypeNeq param.Field[[]IssueType] `query:"issue_type~neq"` + Product param.Field[[]ProductParam] `query:"product"` + ProductNeq param.Field[[]ProductParam] `query:"product~neq"` + Severity param.Field[[]SeverityQueryParam] `query:"severity"` + SeverityNeq param.Field[[]SeverityQueryParam] `query:"severity~neq"` + Subject param.Field[[]SubjectParam] `query:"subject"` + SubjectNeq param.Field[[]SubjectParam] `query:"subject~neq"` } // URLQuery serializes [AttackSurfaceReportIssueSeverityParams]'s query parameters @@ -588,18 +588,18 @@ func (r AttackSurfaceReportIssueSeverityResponseEnvelopeSuccess) IsKnown() bool type AttackSurfaceReportIssueTypeParams struct { // Identifier - AccountID param.Field[string] `path:"account_id,required"` - Dismissed param.Field[bool] `query:"dismissed"` - IssueClass param.Field[[]IssueClassItemParam] `query:"issue_class"` - IssueClassNeq param.Field[[]IssueClassItemParam] `query:"issue_class~neq"` - IssueType param.Field[[]IssueTypeItem] `query:"issue_type"` - IssueTypeNeq param.Field[[]IssueTypeItem] `query:"issue_type~neq"` - Product param.Field[[]ProductItemParam] `query:"product"` - ProductNeq param.Field[[]ProductItemParam] `query:"product~neq"` - Severity param.Field[[]SeverityQueryParamItem] `query:"severity"` - SeverityNeq param.Field[[]SeverityQueryParamItem] `query:"severity~neq"` - Subject param.Field[[]SubjectsItemParam] `query:"subject"` - SubjectNeq param.Field[[]SubjectsItemParam] `query:"subject~neq"` + AccountID param.Field[string] `path:"account_id,required"` + Dismissed param.Field[bool] `query:"dismissed"` + IssueClass param.Field[[]IssueClassParam] `query:"issue_class"` + IssueClassNeq param.Field[[]IssueClassParam] `query:"issue_class~neq"` + IssueType param.Field[[]IssueType] `query:"issue_type"` + IssueTypeNeq param.Field[[]IssueType] `query:"issue_type~neq"` + Product param.Field[[]ProductParam] `query:"product"` + ProductNeq param.Field[[]ProductParam] `query:"product~neq"` + Severity param.Field[[]SeverityQueryParam] `query:"severity"` + SeverityNeq param.Field[[]SeverityQueryParam] `query:"severity~neq"` + Subject param.Field[[]SubjectParam] `query:"subject"` + SubjectNeq param.Field[[]SubjectParam] `query:"subject~neq"` } // URLQuery serializes [AttackSurfaceReportIssueTypeParams]'s query parameters as diff --git a/intel/attacksurfacereportissue_test.go b/intel/attacksurfacereportissue_test.go index 7463b7e5d0f..5949e2e85fb 100644 --- a/intel/attacksurfacereportissue_test.go +++ b/intel/attacksurfacereportissue_test.go @@ -31,18 +31,18 @@ func TestAttackSurfaceReportIssueListWithOptionalParams(t *testing.T) { _, err := client.Intel.AttackSurfaceReport.Issues.List(context.TODO(), intel.AttackSurfaceReportIssueListParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Dismissed: cloudflare.F(false), - IssueClass: cloudflare.F([]intel.IssueClassItemParam{"a_record_dangling", "always_use_https_not_enabled"}), - IssueClassNeq: cloudflare.F([]intel.IssueClassItemParam{"a_record_dangling", "always_use_https_not_enabled"}), - IssueType: cloudflare.F([]intel.IssueTypeItem{intel.IssueTypeItemComplianceViolation, intel.IssueTypeItemEmailSecurity}), - IssueTypeNeq: cloudflare.F([]intel.IssueTypeItem{intel.IssueTypeItemComplianceViolation, intel.IssueTypeItemEmailSecurity}), + IssueClass: cloudflare.F([]intel.IssueClassParam{"a_record_dangling", "always_use_https_not_enabled"}), + IssueClassNeq: cloudflare.F([]intel.IssueClassParam{"a_record_dangling", "always_use_https_not_enabled"}), + IssueType: cloudflare.F([]intel.IssueType{intel.IssueTypeComplianceViolation, intel.IssueTypeEmailSecurity}), + IssueTypeNeq: cloudflare.F([]intel.IssueType{intel.IssueTypeComplianceViolation, intel.IssueTypeEmailSecurity}), Page: cloudflare.F(int64(1)), PerPage: cloudflare.F(int64(25)), - Product: cloudflare.F([]intel.ProductItemParam{"access", "dns"}), - ProductNeq: cloudflare.F([]intel.ProductItemParam{"access", "dns"}), - Severity: cloudflare.F([]intel.SeverityQueryParamItem{intel.SeverityQueryParamItemLow, intel.SeverityQueryParamItemModerate}), - SeverityNeq: cloudflare.F([]intel.SeverityQueryParamItem{intel.SeverityQueryParamItemLow, intel.SeverityQueryParamItemModerate}), - Subject: cloudflare.F([]intel.SubjectsItemParam{"example.com", "example.com", "example.com"}), - SubjectNeq: cloudflare.F([]intel.SubjectsItemParam{"example.com", "example.com", "example.com"}), + Product: cloudflare.F([]intel.ProductParam{"access", "dns"}), + ProductNeq: cloudflare.F([]intel.ProductParam{"access", "dns"}), + Severity: cloudflare.F([]intel.SeverityQueryParam{intel.SeverityQueryParamLow, intel.SeverityQueryParamModerate}), + SeverityNeq: cloudflare.F([]intel.SeverityQueryParam{intel.SeverityQueryParamLow, intel.SeverityQueryParamModerate}), + Subject: cloudflare.F([]intel.SubjectParam{"example.com", "example.com", "example.com"}), + SubjectNeq: cloudflare.F([]intel.SubjectParam{"example.com", "example.com", "example.com"}), }) if err != nil { var apierr *cloudflare.Error @@ -70,16 +70,16 @@ func TestAttackSurfaceReportIssueClassWithOptionalParams(t *testing.T) { _, err := client.Intel.AttackSurfaceReport.Issues.Class(context.TODO(), intel.AttackSurfaceReportIssueClassParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Dismissed: cloudflare.F(false), - IssueClass: cloudflare.F([]intel.IssueClassItemParam{"a_record_dangling", "always_use_https_not_enabled"}), - IssueClassNeq: cloudflare.F([]intel.IssueClassItemParam{"a_record_dangling", "always_use_https_not_enabled"}), - IssueType: cloudflare.F([]intel.IssueTypeItem{intel.IssueTypeItemComplianceViolation, intel.IssueTypeItemEmailSecurity}), - IssueTypeNeq: cloudflare.F([]intel.IssueTypeItem{intel.IssueTypeItemComplianceViolation, intel.IssueTypeItemEmailSecurity}), - Product: cloudflare.F([]intel.ProductItemParam{"access", "dns"}), - ProductNeq: cloudflare.F([]intel.ProductItemParam{"access", "dns"}), - Severity: cloudflare.F([]intel.SeverityQueryParamItem{intel.SeverityQueryParamItemLow, intel.SeverityQueryParamItemModerate}), - SeverityNeq: cloudflare.F([]intel.SeverityQueryParamItem{intel.SeverityQueryParamItemLow, intel.SeverityQueryParamItemModerate}), - Subject: cloudflare.F([]intel.SubjectsItemParam{"example.com", "example.com", "example.com"}), - SubjectNeq: cloudflare.F([]intel.SubjectsItemParam{"example.com", "example.com", "example.com"}), + IssueClass: cloudflare.F([]intel.IssueClassParam{"a_record_dangling", "always_use_https_not_enabled"}), + IssueClassNeq: cloudflare.F([]intel.IssueClassParam{"a_record_dangling", "always_use_https_not_enabled"}), + IssueType: cloudflare.F([]intel.IssueType{intel.IssueTypeComplianceViolation, intel.IssueTypeEmailSecurity}), + IssueTypeNeq: cloudflare.F([]intel.IssueType{intel.IssueTypeComplianceViolation, intel.IssueTypeEmailSecurity}), + Product: cloudflare.F([]intel.ProductParam{"access", "dns"}), + ProductNeq: cloudflare.F([]intel.ProductParam{"access", "dns"}), + Severity: cloudflare.F([]intel.SeverityQueryParam{intel.SeverityQueryParamLow, intel.SeverityQueryParamModerate}), + SeverityNeq: cloudflare.F([]intel.SeverityQueryParam{intel.SeverityQueryParamLow, intel.SeverityQueryParamModerate}), + Subject: cloudflare.F([]intel.SubjectParam{"example.com", "example.com", "example.com"}), + SubjectNeq: cloudflare.F([]intel.SubjectParam{"example.com", "example.com", "example.com"}), }) if err != nil { var apierr *cloudflare.Error @@ -138,16 +138,16 @@ func TestAttackSurfaceReportIssueSeverityWithOptionalParams(t *testing.T) { _, err := client.Intel.AttackSurfaceReport.Issues.Severity(context.TODO(), intel.AttackSurfaceReportIssueSeverityParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Dismissed: cloudflare.F(false), - IssueClass: cloudflare.F([]intel.IssueClassItemParam{"a_record_dangling", "always_use_https_not_enabled"}), - IssueClassNeq: cloudflare.F([]intel.IssueClassItemParam{"a_record_dangling", "always_use_https_not_enabled"}), - IssueType: cloudflare.F([]intel.IssueTypeItem{intel.IssueTypeItemComplianceViolation, intel.IssueTypeItemEmailSecurity}), - IssueTypeNeq: cloudflare.F([]intel.IssueTypeItem{intel.IssueTypeItemComplianceViolation, intel.IssueTypeItemEmailSecurity}), - Product: cloudflare.F([]intel.ProductItemParam{"access", "dns"}), - ProductNeq: cloudflare.F([]intel.ProductItemParam{"access", "dns"}), - Severity: cloudflare.F([]intel.SeverityQueryParamItem{intel.SeverityQueryParamItemLow, intel.SeverityQueryParamItemModerate}), - SeverityNeq: cloudflare.F([]intel.SeverityQueryParamItem{intel.SeverityQueryParamItemLow, intel.SeverityQueryParamItemModerate}), - Subject: cloudflare.F([]intel.SubjectsItemParam{"example.com", "example.com", "example.com"}), - SubjectNeq: cloudflare.F([]intel.SubjectsItemParam{"example.com", "example.com", "example.com"}), + IssueClass: cloudflare.F([]intel.IssueClassParam{"a_record_dangling", "always_use_https_not_enabled"}), + IssueClassNeq: cloudflare.F([]intel.IssueClassParam{"a_record_dangling", "always_use_https_not_enabled"}), + IssueType: cloudflare.F([]intel.IssueType{intel.IssueTypeComplianceViolation, intel.IssueTypeEmailSecurity}), + IssueTypeNeq: cloudflare.F([]intel.IssueType{intel.IssueTypeComplianceViolation, intel.IssueTypeEmailSecurity}), + Product: cloudflare.F([]intel.ProductParam{"access", "dns"}), + ProductNeq: cloudflare.F([]intel.ProductParam{"access", "dns"}), + Severity: cloudflare.F([]intel.SeverityQueryParam{intel.SeverityQueryParamLow, intel.SeverityQueryParamModerate}), + SeverityNeq: cloudflare.F([]intel.SeverityQueryParam{intel.SeverityQueryParamLow, intel.SeverityQueryParamModerate}), + Subject: cloudflare.F([]intel.SubjectParam{"example.com", "example.com", "example.com"}), + SubjectNeq: cloudflare.F([]intel.SubjectParam{"example.com", "example.com", "example.com"}), }) if err != nil { var apierr *cloudflare.Error @@ -175,16 +175,16 @@ func TestAttackSurfaceReportIssueTypeWithOptionalParams(t *testing.T) { _, err := client.Intel.AttackSurfaceReport.Issues.Type(context.TODO(), intel.AttackSurfaceReportIssueTypeParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Dismissed: cloudflare.F(false), - IssueClass: cloudflare.F([]intel.IssueClassItemParam{"a_record_dangling", "always_use_https_not_enabled"}), - IssueClassNeq: cloudflare.F([]intel.IssueClassItemParam{"a_record_dangling", "always_use_https_not_enabled"}), - IssueType: cloudflare.F([]intel.IssueTypeItem{intel.IssueTypeItemComplianceViolation, intel.IssueTypeItemEmailSecurity}), - IssueTypeNeq: cloudflare.F([]intel.IssueTypeItem{intel.IssueTypeItemComplianceViolation, intel.IssueTypeItemEmailSecurity}), - Product: cloudflare.F([]intel.ProductItemParam{"access", "dns"}), - ProductNeq: cloudflare.F([]intel.ProductItemParam{"access", "dns"}), - Severity: cloudflare.F([]intel.SeverityQueryParamItem{intel.SeverityQueryParamItemLow, intel.SeverityQueryParamItemModerate}), - SeverityNeq: cloudflare.F([]intel.SeverityQueryParamItem{intel.SeverityQueryParamItemLow, intel.SeverityQueryParamItemModerate}), - Subject: cloudflare.F([]intel.SubjectsItemParam{"example.com", "example.com", "example.com"}), - SubjectNeq: cloudflare.F([]intel.SubjectsItemParam{"example.com", "example.com", "example.com"}), + IssueClass: cloudflare.F([]intel.IssueClassParam{"a_record_dangling", "always_use_https_not_enabled"}), + IssueClassNeq: cloudflare.F([]intel.IssueClassParam{"a_record_dangling", "always_use_https_not_enabled"}), + IssueType: cloudflare.F([]intel.IssueType{intel.IssueTypeComplianceViolation, intel.IssueTypeEmailSecurity}), + IssueTypeNeq: cloudflare.F([]intel.IssueType{intel.IssueTypeComplianceViolation, intel.IssueTypeEmailSecurity}), + Product: cloudflare.F([]intel.ProductParam{"access", "dns"}), + ProductNeq: cloudflare.F([]intel.ProductParam{"access", "dns"}), + Severity: cloudflare.F([]intel.SeverityQueryParam{intel.SeverityQueryParamLow, intel.SeverityQueryParamModerate}), + SeverityNeq: cloudflare.F([]intel.SeverityQueryParam{intel.SeverityQueryParamLow, intel.SeverityQueryParamModerate}), + Subject: cloudflare.F([]intel.SubjectParam{"example.com", "example.com", "example.com"}), + SubjectNeq: cloudflare.F([]intel.SubjectParam{"example.com", "example.com", "example.com"}), }) if err != nil { var apierr *cloudflare.Error diff --git a/load_balancers/loadbalancer.go b/load_balancers/loadbalancer.go index fd4738dd8f5..99921c0535e 100644 --- a/load_balancers/loadbalancer.go +++ b/load_balancers/loadbalancer.go @@ -786,7 +786,7 @@ func (r NotificationFilterParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -type OriginItem struct { +type Origin struct { // The IP address (IPv4 or IPv6) of the origin, or its publicly addressable // hostname. Hostnames entered here should resolve directly to the origin, and not // be a hostname proxied by Cloudflare. To set an internal/reserved address, @@ -815,12 +815,12 @@ type OriginItem struct { // origin's outstanding requests. // - `origin_steering.policy="least_connections"`: Use weight to scale the origin's // open connections. - Weight float64 `json:"weight"` - JSON originItemJSON `json:"-"` + Weight float64 `json:"weight"` + JSON originJSON `json:"-"` } -// originItemJSON contains the JSON metadata for the struct [OriginItem] -type originItemJSON struct { +// originJSON contains the JSON metadata for the struct [Origin] +type originJSON struct { Address apijson.Field DisabledAt apijson.Field Enabled apijson.Field @@ -832,15 +832,15 @@ type originItemJSON struct { ExtraFields map[string]apijson.Field } -func (r *OriginItem) UnmarshalJSON(data []byte) (err error) { +func (r *Origin) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r originItemJSON) RawJSON() string { +func (r originJSON) RawJSON() string { return r.raw } -type OriginItemParam struct { +type OriginParam struct { // The IP address (IPv4 or IPv6) of the origin, or its publicly addressable // hostname. Hostnames entered here should resolve directly to the origin, and not // be a hostname proxied by Cloudflare. To set an internal/reserved address, @@ -869,7 +869,7 @@ type OriginItemParam struct { Weight param.Field[float64] `json:"weight"` } -func (r OriginItemParam) MarshalJSON() (data []byte, err error) { +func (r OriginParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } diff --git a/load_balancers/pool.go b/load_balancers/pool.go index 982d9f35e7c..2f81983e9a1 100644 --- a/load_balancers/pool.go +++ b/load_balancers/pool.go @@ -156,7 +156,7 @@ type PoolNewParams struct { Name param.Field[string] `json:"name,required"` // The list of origins within this pool. Traffic directed at this pool is balanced // across all currently healthy origins, provided the pool itself is healthy. - Origins param.Field[[]OriginItemParam] `json:"origins,required"` + Origins param.Field[[]OriginParam] `json:"origins,required"` // A human-readable description of the pool. Description param.Field[string] `json:"description"` // Whether to enable (the default) or disable this pool. Disabled pools will not @@ -247,7 +247,7 @@ type PoolUpdateParams struct { Name param.Field[string] `json:"name,required"` // The list of origins within this pool. Traffic directed at this pool is balanced // across all currently healthy origins, provided the pool itself is healthy. - Origins param.Field[[]OriginItemParam] `json:"origins,required"` + Origins param.Field[[]OriginParam] `json:"origins,required"` // A list of regions from which to run health checks. Null means every Cloudflare // data center. CheckRegions param.Field[[]CheckRegion] `json:"check_regions"` @@ -446,7 +446,7 @@ type PoolEditParams struct { OriginSteering param.Field[OriginSteeringParam] `json:"origin_steering"` // The list of origins within this pool. Traffic directed at this pool is balanced // across all currently healthy origins, provided the pool itself is healthy. - Origins param.Field[[]OriginItemParam] `json:"origins"` + Origins param.Field[[]OriginParam] `json:"origins"` } func (r PoolEditParams) MarshalJSON() (data []byte, err error) { diff --git a/load_balancers/pool_test.go b/load_balancers/pool_test.go index 4f92594a25d..7122bfc34d7 100644 --- a/load_balancers/pool_test.go +++ b/load_balancers/pool_test.go @@ -31,7 +31,7 @@ func TestPoolNewWithOptionalParams(t *testing.T) { _, err := client.LoadBalancers.Pools.New(context.TODO(), load_balancers.PoolNewParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Name: cloudflare.F("primary-dc-1"), - Origins: cloudflare.F([]load_balancers.OriginItemParam{{ + Origins: cloudflare.F([]load_balancers.OriginParam{{ Address: cloudflare.F("0.0.0.0"), Enabled: cloudflare.F(true), Header: cloudflare.F(load_balancers.HeaderParam{ @@ -115,7 +115,7 @@ func TestPoolUpdateWithOptionalParams(t *testing.T) { load_balancers.PoolUpdateParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Name: cloudflare.F("primary-dc-1"), - Origins: cloudflare.F([]load_balancers.OriginItemParam{{ + Origins: cloudflare.F([]load_balancers.OriginParam{{ Address: cloudflare.F("0.0.0.0"), Enabled: cloudflare.F(true), Header: cloudflare.F(load_balancers.HeaderParam{ @@ -286,7 +286,7 @@ func TestPoolEditWithOptionalParams(t *testing.T) { OriginSteering: cloudflare.F(load_balancers.OriginSteeringParam{ Policy: cloudflare.F(load_balancers.OriginSteeringPolicyRandom), }), - Origins: cloudflare.F([]load_balancers.OriginItemParam{{ + Origins: cloudflare.F([]load_balancers.OriginParam{{ Address: cloudflare.F("0.0.0.0"), Enabled: cloudflare.F(true), Header: cloudflare.F(load_balancers.HeaderParam{ diff --git a/magic_transit/route.go b/magic_transit/route.go index 7392a5b986d..ec65b3483d1 100644 --- a/magic_transit/route.go +++ b/magic_transit/route.go @@ -112,21 +112,21 @@ func (r *RouteService) Get(ctx context.Context, routeIdentifier string, query Ro return } -type ColoNamesItem = string +type ColoName = string -type ColoNamesItemParam = string +type ColoNameParam = string -type ColoRegionsItem = string +type ColoRegion = string -type ColoRegionsItemParam = string +type ColoRegionParam = string // Used only for ECMP routes. type Scope struct { // List of colo names for the ECMP scope. - ColoNames []ColoNamesItem `json:"colo_names"` + ColoNames []ColoName `json:"colo_names"` // List of colo regions for the ECMP scope. - ColoRegions []ColoRegionsItem `json:"colo_regions"` - JSON scopeJSON `json:"-"` + ColoRegions []ColoRegion `json:"colo_regions"` + JSON scopeJSON `json:"-"` } // scopeJSON contains the JSON metadata for the struct [Scope] @@ -148,9 +148,9 @@ func (r scopeJSON) RawJSON() string { // Used only for ECMP routes. type ScopeParam struct { // List of colo names for the ECMP scope. - ColoNames param.Field[[]ColoNamesItemParam] `json:"colo_names"` + ColoNames param.Field[[]ColoNameParam] `json:"colo_names"` // List of colo regions for the ECMP scope. - ColoRegions param.Field[[]ColoRegionsItemParam] `json:"colo_regions"` + ColoRegions param.Field[[]ColoRegionParam] `json:"colo_regions"` } func (r ScopeParam) MarshalJSON() (data []byte, err error) { diff --git a/magic_transit/route_test.go b/magic_transit/route_test.go index c31948840aa..a19c82eb004 100644 --- a/magic_transit/route_test.go +++ b/magic_transit/route_test.go @@ -65,8 +65,8 @@ func TestRouteUpdateWithOptionalParams(t *testing.T) { Priority: cloudflare.F(int64(0)), Description: cloudflare.F("New route for new prefix 203.0.113.1"), Scope: cloudflare.F(magic_transit.ScopeParam{ - ColoNames: cloudflare.F([]magic_transit.ColoNamesItemParam{"den01", "den01", "den01"}), - ColoRegions: cloudflare.F([]magic_transit.ColoRegionsItemParam{"APAC", "APAC", "APAC"}), + ColoNames: cloudflare.F([]magic_transit.ColoNameParam{"den01", "den01", "den01"}), + ColoRegions: cloudflare.F([]magic_transit.ColoRegionParam{"APAC", "APAC", "APAC"}), }), Weight: cloudflare.F(int64(0)), }, diff --git a/magic_transit/sitelan.go b/magic_transit/sitelan.go index 741e25ab9f3..987a14eb5a5 100644 --- a/magic_transit/sitelan.go +++ b/magic_transit/sitelan.go @@ -187,7 +187,7 @@ type LAN struct { // If the site is not configured in high availability mode, this configuration is // optional (if omitted, use DHCP). However, if in high availability mode, // static_address is required along with secondary and virtual address. - StaticAddressing StaticAddressing `json:"static_addressing"` + StaticAddressing LANStaticAddressing `json:"static_addressing"` // VLAN port number. VlanTag int64 `json:"vlan_tag"` JSON lanJSON `json:"-"` @@ -216,6 +216,59 @@ func (r lanJSON) RawJSON() string { return r.raw } +// If the site is not configured in high availability mode, this configuration is +// optional (if omitted, use DHCP). However, if in high availability mode, +// static_address is required along with secondary and virtual address. +type LANStaticAddressing struct { + // A valid CIDR notation representing an IP range. + Address string `json:"address,required"` + DHCPRelay DHCPRelay `json:"dhcp_relay"` + DHCPServer DHCPServer `json:"dhcp_server"` + // A valid CIDR notation representing an IP range. + SecondaryAddress string `json:"secondary_address"` + // A valid CIDR notation representing an IP range. + VirtualAddress string `json:"virtual_address"` + JSON lanStaticAddressingJSON `json:"-"` +} + +// lanStaticAddressingJSON contains the JSON metadata for the struct +// [LANStaticAddressing] +type lanStaticAddressingJSON struct { + Address apijson.Field + DHCPRelay apijson.Field + DHCPServer apijson.Field + SecondaryAddress apijson.Field + VirtualAddress apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *LANStaticAddressing) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r lanStaticAddressingJSON) RawJSON() string { + return r.raw +} + +// If the site is not configured in high availability mode, this configuration is +// optional (if omitted, use DHCP). However, if in high availability mode, +// static_address is required along with secondary and virtual address. +type LANStaticAddressingParam struct { + // A valid CIDR notation representing an IP range. + Address param.Field[string] `json:"address,required"` + DHCPRelay param.Field[DHCPRelayParam] `json:"dhcp_relay"` + DHCPServer param.Field[DHCPServerParam] `json:"dhcp_server"` + // A valid CIDR notation representing an IP range. + SecondaryAddress param.Field[string] `json:"secondary_address"` + // A valid CIDR notation representing an IP range. + VirtualAddress param.Field[string] `json:"virtual_address"` +} + +func (r LANStaticAddressingParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + type Nat struct { // A valid CIDR notation representing an IP range. StaticPrefix string `json:"static_prefix"` @@ -284,59 +337,6 @@ func (r RoutedSubnetParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -// If the site is not configured in high availability mode, this configuration is -// optional (if omitted, use DHCP). However, if in high availability mode, -// static_address is required along with secondary and virtual address. -type StaticAddressing struct { - // A valid CIDR notation representing an IP range. - Address string `json:"address,required"` - DHCPRelay DHCPRelay `json:"dhcp_relay"` - DHCPServer DHCPServer `json:"dhcp_server"` - // A valid CIDR notation representing an IP range. - SecondaryAddress string `json:"secondary_address"` - // A valid CIDR notation representing an IP range. - VirtualAddress string `json:"virtual_address"` - JSON staticAddressingJSON `json:"-"` -} - -// staticAddressingJSON contains the JSON metadata for the struct -// [StaticAddressing] -type staticAddressingJSON struct { - Address apijson.Field - DHCPRelay apijson.Field - DHCPServer apijson.Field - SecondaryAddress apijson.Field - VirtualAddress apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *StaticAddressing) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r staticAddressingJSON) RawJSON() string { - return r.raw -} - -// If the site is not configured in high availability mode, this configuration is -// optional (if omitted, use DHCP). However, if in high availability mode, -// static_address is required along with secondary and virtual address. -type StaticAddressingParam struct { - // A valid CIDR notation representing an IP range. - Address param.Field[string] `json:"address,required"` - DHCPRelay param.Field[DHCPRelayParam] `json:"dhcp_relay"` - DHCPServer param.Field[DHCPServerParam] `json:"dhcp_server"` - // A valid CIDR notation representing an IP range. - SecondaryAddress param.Field[string] `json:"secondary_address"` - // A valid CIDR notation representing an IP range. - VirtualAddress param.Field[string] `json:"virtual_address"` -} - -func (r StaticAddressingParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - type SiteLANNewResponse struct { LANs []LAN `json:"lans"` JSON siteLANNewResponseJSON `json:"-"` @@ -467,7 +467,7 @@ type SiteLANNewParamsLAN struct { // If the site is not configured in high availability mode, this configuration is // optional (if omitted, use DHCP). However, if in high availability mode, // static_address is required along with secondary and virtual address. - StaticAddressing param.Field[StaticAddressingParam] `json:"static_addressing"` + StaticAddressing param.Field[LANStaticAddressingParam] `json:"static_addressing"` } func (r SiteLANNewParamsLAN) MarshalJSON() (data []byte, err error) { @@ -535,7 +535,7 @@ type SiteLANUpdateParamsLAN struct { // If the site is not configured in high availability mode, this configuration is // optional (if omitted, use DHCP). However, if in high availability mode, // static_address is required along with secondary and virtual address. - StaticAddressing param.Field[StaticAddressingParam] `json:"static_addressing"` + StaticAddressing param.Field[LANStaticAddressingParam] `json:"static_addressing"` // VLAN port number. VlanTag param.Field[int64] `json:"vlan_tag"` } diff --git a/magic_transit/sitelan_test.go b/magic_transit/sitelan_test.go index c0615c6f4e8..ef35bd8148e 100644 --- a/magic_transit/sitelan_test.go +++ b/magic_transit/sitelan_test.go @@ -59,7 +59,7 @@ func TestSiteLANNewWithOptionalParams(t *testing.T) { NextHop: cloudflare.F("192.0.2.1"), Prefix: cloudflare.F("192.0.2.0/24"), }}), - StaticAddressing: cloudflare.F(magic_transit.StaticAddressingParam{ + StaticAddressing: cloudflare.F(magic_transit.LANStaticAddressingParam{ Address: cloudflare.F("192.0.2.0/24"), DHCPRelay: cloudflare.F(magic_transit.DHCPRelayParam{ ServerAddresses: cloudflare.F([]string{"192.0.2.1", "192.0.2.1", "192.0.2.1"}), @@ -134,7 +134,7 @@ func TestSiteLANUpdateWithOptionalParams(t *testing.T) { NextHop: cloudflare.F("192.0.2.1"), Prefix: cloudflare.F("192.0.2.0/24"), }}), - StaticAddressing: cloudflare.F(magic_transit.StaticAddressingParam{ + StaticAddressing: cloudflare.F(magic_transit.LANStaticAddressingParam{ Address: cloudflare.F("192.0.2.0/24"), DHCPRelay: cloudflare.F(magic_transit.DHCPRelayParam{ ServerAddresses: cloudflare.F([]string{"192.0.2.1", "192.0.2.1", "192.0.2.1"}), diff --git a/magic_transit/sitewan.go b/magic_transit/sitewan.go index b47c5c4ba97..30bc2c6a7e7 100644 --- a/magic_transit/sitewan.go +++ b/magic_transit/sitewan.go @@ -96,51 +96,6 @@ func (r *SiteWANService) Get(ctx context.Context, siteID string, wanID string, q return } -// (optional) if omitted, use DHCP. Submit secondary_address when site is in high -// availability mode. -type StaticAddressing struct { - // A valid CIDR notation representing an IP range. - Address string `json:"address,required"` - // A valid IPv4 address. - GatewayAddress string `json:"gateway_address,required"` - // A valid CIDR notation representing an IP range. - SecondaryAddress string `json:"secondary_address"` - JSON staticAddressingJSON `json:"-"` -} - -// staticAddressingJSON contains the JSON metadata for the struct -// [StaticAddressing] -type staticAddressingJSON struct { - Address apijson.Field - GatewayAddress apijson.Field - SecondaryAddress apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *StaticAddressing) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r staticAddressingJSON) RawJSON() string { - return r.raw -} - -// (optional) if omitted, use DHCP. Submit secondary_address when site is in high -// availability mode. -type StaticAddressingParam struct { - // A valid CIDR notation representing an IP range. - Address param.Field[string] `json:"address,required"` - // A valid IPv4 address. - GatewayAddress param.Field[string] `json:"gateway_address,required"` - // A valid CIDR notation representing an IP range. - SecondaryAddress param.Field[string] `json:"secondary_address"` -} - -func (r StaticAddressingParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - type WAN struct { // Identifier ID string `json:"id"` @@ -152,7 +107,7 @@ type WAN struct { SiteID string `json:"site_id"` // (optional) if omitted, use DHCP. Submit secondary_address when site is in high // availability mode. - StaticAddressing StaticAddressing `json:"static_addressing"` + StaticAddressing WANStaticAddressing `json:"static_addressing"` // VLAN port number. VlanTag int64 `json:"vlan_tag"` JSON wanJSON `json:"-"` @@ -179,6 +134,51 @@ func (r wanJSON) RawJSON() string { return r.raw } +// (optional) if omitted, use DHCP. Submit secondary_address when site is in high +// availability mode. +type WANStaticAddressing struct { + // A valid CIDR notation representing an IP range. + Address string `json:"address,required"` + // A valid IPv4 address. + GatewayAddress string `json:"gateway_address,required"` + // A valid CIDR notation representing an IP range. + SecondaryAddress string `json:"secondary_address"` + JSON wanStaticAddressingJSON `json:"-"` +} + +// wanStaticAddressingJSON contains the JSON metadata for the struct +// [WANStaticAddressing] +type wanStaticAddressingJSON struct { + Address apijson.Field + GatewayAddress apijson.Field + SecondaryAddress apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *WANStaticAddressing) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r wanStaticAddressingJSON) RawJSON() string { + return r.raw +} + +// (optional) if omitted, use DHCP. Submit secondary_address when site is in high +// availability mode. +type WANStaticAddressingParam struct { + // A valid CIDR notation representing an IP range. + Address param.Field[string] `json:"address,required"` + // A valid IPv4 address. + GatewayAddress param.Field[string] `json:"gateway_address,required"` + // A valid CIDR notation representing an IP range. + SecondaryAddress param.Field[string] `json:"secondary_address"` +} + +func (r WANStaticAddressingParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + type SiteWANNewResponse struct { WANs []WAN `json:"wans"` JSON siteWANNewResponseJSON `json:"-"` @@ -304,7 +304,7 @@ type SiteWANNewParamsWAN struct { Priority param.Field[int64] `json:"priority"` // (optional) if omitted, use DHCP. Submit secondary_address when site is in high // availability mode. - StaticAddressing param.Field[StaticAddressingParam] `json:"static_addressing"` + StaticAddressing param.Field[WANStaticAddressingParam] `json:"static_addressing"` } func (r SiteWANNewParamsWAN) MarshalJSON() (data []byte, err error) { @@ -370,7 +370,7 @@ type SiteWANUpdateParamsWAN struct { Priority param.Field[int64] `json:"priority"` // (optional) if omitted, use DHCP. Submit secondary_address when site is in high // availability mode. - StaticAddressing param.Field[StaticAddressingParam] `json:"static_addressing"` + StaticAddressing param.Field[WANStaticAddressingParam] `json:"static_addressing"` // VLAN port number. VlanTag param.Field[int64] `json:"vlan_tag"` } diff --git a/magic_transit/sitewan_test.go b/magic_transit/sitewan_test.go index 9d3c7897cfd..efbc8b9e2fe 100644 --- a/magic_transit/sitewan_test.go +++ b/magic_transit/sitewan_test.go @@ -37,7 +37,7 @@ func TestSiteWANNewWithOptionalParams(t *testing.T) { Description: cloudflare.F("string"), Physport: cloudflare.F(int64(1)), Priority: cloudflare.F(int64(0)), - StaticAddressing: cloudflare.F(magic_transit.StaticAddressingParam{ + StaticAddressing: cloudflare.F(magic_transit.WANStaticAddressingParam{ Address: cloudflare.F("192.0.2.0/24"), GatewayAddress: cloudflare.F("192.0.2.1"), SecondaryAddress: cloudflare.F("192.0.2.0/24"), @@ -79,7 +79,7 @@ func TestSiteWANUpdateWithOptionalParams(t *testing.T) { Description: cloudflare.F("string"), Physport: cloudflare.F(int64(1)), Priority: cloudflare.F(int64(0)), - StaticAddressing: cloudflare.F(magic_transit.StaticAddressingParam{ + StaticAddressing: cloudflare.F(magic_transit.WANStaticAddressingParam{ Address: cloudflare.F("192.0.2.0/24"), GatewayAddress: cloudflare.F("192.0.2.1"), SecondaryAddress: cloudflare.F("192.0.2.0/24"), diff --git a/managed_headers/managedheader.go b/managed_headers/managedheader.go index b56cf247df1..f3c33ab7882 100644 --- a/managed_headers/managedheader.go +++ b/managed_headers/managedheader.go @@ -47,44 +47,44 @@ func (r *ManagedHeaderService) Edit(ctx context.Context, params ManagedHeaderEdi return } -type RequestListItem struct { +type RequestModel struct { // Human-readable identifier of the Managed Transform. ID string `json:"id"` // When true, the Managed Transform is enabled. - Enabled bool `json:"enabled"` - JSON requestListItemJSON `json:"-"` + Enabled bool `json:"enabled"` + JSON requestModelJSON `json:"-"` } -// requestListItemJSON contains the JSON metadata for the struct [RequestListItem] -type requestListItemJSON struct { +// requestModelJSON contains the JSON metadata for the struct [RequestModel] +type requestModelJSON struct { ID apijson.Field Enabled apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *RequestListItem) UnmarshalJSON(data []byte) (err error) { +func (r *RequestModel) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r requestListItemJSON) RawJSON() string { +func (r requestModelJSON) RawJSON() string { return r.raw } -type RequestListItemParam struct { +type RequestModelParam struct { // Human-readable identifier of the Managed Transform. ID param.Field[string] `json:"id"` // When true, the Managed Transform is enabled. Enabled param.Field[bool] `json:"enabled"` } -func (r RequestListItemParam) MarshalJSON() (data []byte, err error) { +func (r RequestModelParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } type ManagedHeaderListResponse struct { - ManagedRequestHeaders []RequestListItem `json:"managed_request_headers"` - ManagedResponseHeaders []RequestListItem `json:"managed_response_headers"` + ManagedRequestHeaders []RequestModel `json:"managed_request_headers"` + ManagedResponseHeaders []RequestModel `json:"managed_response_headers"` JSON managedHeaderListResponseJSON `json:"-"` } @@ -191,9 +191,9 @@ type ManagedHeaderListParams struct { type ManagedHeaderEditParams struct { // Identifier - ZoneID param.Field[string] `path:"zone_id,required"` - ManagedRequestHeaders param.Field[[]RequestListItemParam] `json:"managed_request_headers,required"` - ManagedResponseHeaders param.Field[[]RequestListItemParam] `json:"managed_response_headers,required"` + ZoneID param.Field[string] `path:"zone_id,required"` + ManagedRequestHeaders param.Field[[]RequestModelParam] `json:"managed_request_headers,required"` + ManagedResponseHeaders param.Field[[]RequestModelParam] `json:"managed_response_headers,required"` } func (r ManagedHeaderEditParams) MarshalJSON() (data []byte, err error) { diff --git a/managed_headers/managedheader_test.go b/managed_headers/managedheader_test.go index ba70c1dc971..e0c671db033 100644 --- a/managed_headers/managedheader_test.go +++ b/managed_headers/managedheader_test.go @@ -56,7 +56,7 @@ func TestManagedHeaderEdit(t *testing.T) { ) _, err := client.ManagedHeaders.Edit(context.TODO(), managed_headers.ManagedHeaderEditParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), - ManagedRequestHeaders: cloudflare.F([]managed_headers.RequestListItemParam{{ + ManagedRequestHeaders: cloudflare.F([]managed_headers.RequestModelParam{{ Enabled: cloudflare.F(true), ID: cloudflare.F("add_cf-bot-score_header"), }, { @@ -66,7 +66,7 @@ func TestManagedHeaderEdit(t *testing.T) { Enabled: cloudflare.F(true), ID: cloudflare.F("add_cf-bot-score_header"), }}), - ManagedResponseHeaders: cloudflare.F([]managed_headers.RequestListItemParam{{ + ManagedResponseHeaders: cloudflare.F([]managed_headers.RequestModelParam{{ Enabled: cloudflare.F(true), ID: cloudflare.F("add_cf-bot-score_header"), }, { diff --git a/pagerules/pagerule.go b/pagerules/pagerule.go index f7a809540a9..2cb8f4016c4 100644 --- a/pagerules/pagerule.go +++ b/pagerules/pagerule.go @@ -115,116 +115,12 @@ func (r *PageruleService) Get(ctx context.Context, pageruleID string, query Page return } -type ActionItem struct { - // The timestamp of when the override was last modified. - ModifiedOn time.Time `json:"modified_on" format:"date-time"` - // The type of route. - Name ActionItemName `json:"name"` - Value ActionItemValue `json:"value"` - JSON actionItemJSON `json:"-"` -} - -// actionItemJSON contains the JSON metadata for the struct [ActionItem] -type actionItemJSON struct { - ModifiedOn apijson.Field - Name apijson.Field - Value apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *ActionItem) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r actionItemJSON) RawJSON() string { - return r.raw -} - -// The type of route. -type ActionItemName string - -const ( - ActionItemNameForwardURL ActionItemName = "forward_url" -) - -func (r ActionItemName) IsKnown() bool { - switch r { - case ActionItemNameForwardURL: - return true - } - return false -} - -type ActionItemValue struct { - // The response type for the URL redirect. - Type ActionItemValueType `json:"type"` - // The URL to redirect the request to. Notes: ${num} refers to the position of '\*' - // in the constraint value. - URL string `json:"url"` - JSON actionItemValueJSON `json:"-"` -} - -// actionItemValueJSON contains the JSON metadata for the struct [ActionItemValue] -type actionItemValueJSON struct { - Type apijson.Field - URL apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *ActionItemValue) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r actionItemValueJSON) RawJSON() string { - return r.raw -} - -// The response type for the URL redirect. -type ActionItemValueType string - -const ( - ActionItemValueTypeTemporary ActionItemValueType = "temporary" - ActionItemValueTypePermanent ActionItemValueType = "permanent" -) - -func (r ActionItemValueType) IsKnown() bool { - switch r { - case ActionItemValueTypeTemporary, ActionItemValueTypePermanent: - return true - } - return false -} - -type ActionItemParam struct { - // The type of route. - Name param.Field[ActionItemName] `json:"name"` - Value param.Field[ActionItemValueParam] `json:"value"` -} - -func (r ActionItemParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -type ActionItemValueParam struct { - // The response type for the URL redirect. - Type param.Field[ActionItemValueType] `json:"type"` - // The URL to redirect the request to. Notes: ${num} refers to the position of '\*' - // in the constraint value. - URL param.Field[string] `json:"url"` -} - -func (r ActionItemValueParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - type PageRule struct { // Identifier ID string `json:"id,required"` // The set of actions to perform if the targets of this rule match the request. // Actions can redirect to another URL or override settings, but not both. - Actions []ActionItem `json:"actions,required"` + Actions []Route `json:"actions,required"` // The timestamp of when the Page Rule was created. CreatedOn time.Time `json:"created_on,required" format:"date-time"` // The timestamp of when the Page Rule was last modified. @@ -238,7 +134,7 @@ type PageRule struct { // The status of the Page Rule. Status PageRuleStatus `json:"status,required"` // The rule targets to evaluate on each request. - Targets []TargesItem `json:"targets,required"` + Targets []Targes `json:"targets,required"` JSON pageRuleJSON `json:"-"` } @@ -361,114 +257,136 @@ func (r RouteValueType) IsKnown() bool { return false } +type RouteParam struct { + // The type of route. + Name param.Field[RouteName] `json:"name"` + Value param.Field[RouteValueParam] `json:"value"` +} + +func (r RouteParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +type RouteValueParam struct { + // The response type for the URL redirect. + Type param.Field[RouteValueType] `json:"type"` + // The URL to redirect the request to. Notes: ${num} refers to the position of '\*' + // in the constraint value. + URL param.Field[string] `json:"url"` +} + +func (r RouteValueParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + // A request condition target. -type TargesItem struct { +type Targes struct { // String constraint. - Constraint TargesItemConstraint `json:"constraint,required"` + Constraint TargesConstraint `json:"constraint,required"` // A target based on the URL of the request. - Target TargesItemTarget `json:"target,required"` - JSON targesItemJSON `json:"-"` + Target TargesTarget `json:"target,required"` + JSON targesJSON `json:"-"` } -// targesItemJSON contains the JSON metadata for the struct [TargesItem] -type targesItemJSON struct { +// targesJSON contains the JSON metadata for the struct [Targes] +type targesJSON struct { Constraint apijson.Field Target apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *TargesItem) UnmarshalJSON(data []byte) (err error) { +func (r *Targes) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r targesItemJSON) RawJSON() string { +func (r targesJSON) RawJSON() string { return r.raw } // String constraint. -type TargesItemConstraint struct { +type TargesConstraint struct { // The matches operator can use asterisks and pipes as wildcard and 'or' operators. - Operator TargesItemConstraintOperator `json:"operator,required"` + Operator TargesConstraintOperator `json:"operator,required"` // The URL pattern to match against the current request. The pattern may contain up // to four asterisks ('\*') as placeholders. - Value string `json:"value,required"` - JSON targesItemConstraintJSON `json:"-"` + Value string `json:"value,required"` + JSON targesConstraintJSON `json:"-"` } -// targesItemConstraintJSON contains the JSON metadata for the struct -// [TargesItemConstraint] -type targesItemConstraintJSON struct { +// targesConstraintJSON contains the JSON metadata for the struct +// [TargesConstraint] +type targesConstraintJSON struct { Operator apijson.Field Value apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *TargesItemConstraint) UnmarshalJSON(data []byte) (err error) { +func (r *TargesConstraint) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r targesItemConstraintJSON) RawJSON() string { +func (r targesConstraintJSON) RawJSON() string { return r.raw } // The matches operator can use asterisks and pipes as wildcard and 'or' operators. -type TargesItemConstraintOperator string +type TargesConstraintOperator string const ( - TargesItemConstraintOperatorMatches TargesItemConstraintOperator = "matches" - TargesItemConstraintOperatorContains TargesItemConstraintOperator = "contains" - TargesItemConstraintOperatorEquals TargesItemConstraintOperator = "equals" - TargesItemConstraintOperatorNotEqual TargesItemConstraintOperator = "not_equal" - TargesItemConstraintOperatorNotContain TargesItemConstraintOperator = "not_contain" + TargesConstraintOperatorMatches TargesConstraintOperator = "matches" + TargesConstraintOperatorContains TargesConstraintOperator = "contains" + TargesConstraintOperatorEquals TargesConstraintOperator = "equals" + TargesConstraintOperatorNotEqual TargesConstraintOperator = "not_equal" + TargesConstraintOperatorNotContain TargesConstraintOperator = "not_contain" ) -func (r TargesItemConstraintOperator) IsKnown() bool { +func (r TargesConstraintOperator) IsKnown() bool { switch r { - case TargesItemConstraintOperatorMatches, TargesItemConstraintOperatorContains, TargesItemConstraintOperatorEquals, TargesItemConstraintOperatorNotEqual, TargesItemConstraintOperatorNotContain: + case TargesConstraintOperatorMatches, TargesConstraintOperatorContains, TargesConstraintOperatorEquals, TargesConstraintOperatorNotEqual, TargesConstraintOperatorNotContain: return true } return false } // A target based on the URL of the request. -type TargesItemTarget string +type TargesTarget string const ( - TargesItemTargetURL TargesItemTarget = "url" + TargesTargetURL TargesTarget = "url" ) -func (r TargesItemTarget) IsKnown() bool { +func (r TargesTarget) IsKnown() bool { switch r { - case TargesItemTargetURL: + case TargesTargetURL: return true } return false } // A request condition target. -type TargesItemParam struct { +type TargesParam struct { // String constraint. - Constraint param.Field[TargesItemConstraintParam] `json:"constraint,required"` + Constraint param.Field[TargesConstraintParam] `json:"constraint,required"` // A target based on the URL of the request. - Target param.Field[TargesItemTarget] `json:"target,required"` + Target param.Field[TargesTarget] `json:"target,required"` } -func (r TargesItemParam) MarshalJSON() (data []byte, err error) { +func (r TargesParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } // String constraint. -type TargesItemConstraintParam struct { +type TargesConstraintParam struct { // The matches operator can use asterisks and pipes as wildcard and 'or' operators. - Operator param.Field[TargesItemConstraintOperator] `json:"operator,required"` + Operator param.Field[TargesConstraintOperator] `json:"operator,required"` // The URL pattern to match against the current request. The pattern may contain up // to four asterisks ('\*') as placeholders. Value param.Field[string] `json:"value,required"` } -func (r TargesItemConstraintParam) MarshalJSON() (data []byte, err error) { +func (r TargesConstraintParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } @@ -499,9 +417,9 @@ type PageruleNewParams struct { ZoneID param.Field[string] `path:"zone_id,required"` // The set of actions to perform if the targets of this rule match the request. // Actions can redirect to another URL or override settings, but not both. - Actions param.Field[[]ActionItemParam] `json:"actions,required"` + Actions param.Field[[]RouteParam] `json:"actions,required"` // The rule targets to evaluate on each request. - Targets param.Field[[]TargesItemParam] `json:"targets,required"` + Targets param.Field[[]TargesParam] `json:"targets,required"` // The priority of the rule, used to define which Page Rule is processed over // another. A higher number indicates a higher priority. For example, if you have a // catch-all Page Rule (rule A: `/images/*`) but want a more specific Page Rule to @@ -580,9 +498,9 @@ type PageruleUpdateParams struct { ZoneID param.Field[string] `path:"zone_id,required"` // The set of actions to perform if the targets of this rule match the request. // Actions can redirect to another URL or override settings, but not both. - Actions param.Field[[]ActionItemParam] `json:"actions,required"` + Actions param.Field[[]RouteParam] `json:"actions,required"` // The rule targets to evaluate on each request. - Targets param.Field[[]TargesItemParam] `json:"targets,required"` + Targets param.Field[[]TargesParam] `json:"targets,required"` // The priority of the rule, used to define which Page Rule is processed over // another. A higher number indicates a higher priority. For example, if you have a // catch-all Page Rule (rule A: `/images/*`) but want a more specific Page Rule to @@ -844,7 +762,7 @@ type PageruleEditParams struct { ZoneID param.Field[string] `path:"zone_id,required"` // The set of actions to perform if the targets of this rule match the request. // Actions can redirect to another URL or override settings, but not both. - Actions param.Field[[]ActionItemParam] `json:"actions"` + Actions param.Field[[]RouteParam] `json:"actions"` // The priority of the rule, used to define which Page Rule is processed over // another. A higher number indicates a higher priority. For example, if you have a // catch-all Page Rule (rule A: `/images/*`) but want a more specific Page Rule to @@ -854,7 +772,7 @@ type PageruleEditParams struct { // The status of the Page Rule. Status param.Field[PageruleEditParamsStatus] `json:"status"` // The rule targets to evaluate on each request. - Targets param.Field[[]TargesItemParam] `json:"targets"` + Targets param.Field[[]TargesParam] `json:"targets"` } func (r PageruleEditParams) MarshalJSON() (data []byte, err error) { diff --git a/pagerules/pagerule_test.go b/pagerules/pagerule_test.go index b33aab551df..ee2883d729f 100644 --- a/pagerules/pagerule_test.go +++ b/pagerules/pagerule_test.go @@ -30,19 +30,19 @@ func TestPageruleNewWithOptionalParams(t *testing.T) { ) _, err := client.Pagerules.New(context.TODO(), pagerules.PageruleNewParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), - Actions: cloudflare.F([]pagerules.ActionItemParam{{ - Name: cloudflare.F(pagerules.ActionItemNameForwardURL), - Value: cloudflare.F(pagerules.ActionItemValueParam{ - Type: cloudflare.F(pagerules.ActionItemValueTypeTemporary), + Actions: cloudflare.F([]pagerules.RouteParam{{ + Name: cloudflare.F(pagerules.RouteNameForwardURL), + Value: cloudflare.F(pagerules.RouteValueParam{ + Type: cloudflare.F(pagerules.RouteValueTypeTemporary), URL: cloudflare.F("http://www.example.com/somewhere/$1/astring/$2/anotherstring/$3"), }), }}), - Targets: cloudflare.F([]pagerules.TargesItemParam{{ - Constraint: cloudflare.F(pagerules.TargesItemConstraintParam{ - Operator: cloudflare.F(pagerules.TargesItemConstraintOperatorMatches), + Targets: cloudflare.F([]pagerules.TargesParam{{ + Constraint: cloudflare.F(pagerules.TargesConstraintParam{ + Operator: cloudflare.F(pagerules.TargesConstraintOperatorMatches), Value: cloudflare.F("*example.com/images/*"), }), - Target: cloudflare.F(pagerules.TargesItemTargetURL), + Target: cloudflare.F(pagerules.TargesTargetURL), }}), Priority: cloudflare.F(int64(0)), Status: cloudflare.F(pagerules.PageruleNewParamsStatusActive), @@ -75,19 +75,19 @@ func TestPageruleUpdateWithOptionalParams(t *testing.T) { "023e105f4ecef8ad9ca31a8372d0c353", pagerules.PageruleUpdateParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), - Actions: cloudflare.F([]pagerules.ActionItemParam{{ - Name: cloudflare.F(pagerules.ActionItemNameForwardURL), - Value: cloudflare.F(pagerules.ActionItemValueParam{ - Type: cloudflare.F(pagerules.ActionItemValueTypeTemporary), + Actions: cloudflare.F([]pagerules.RouteParam{{ + Name: cloudflare.F(pagerules.RouteNameForwardURL), + Value: cloudflare.F(pagerules.RouteValueParam{ + Type: cloudflare.F(pagerules.RouteValueTypeTemporary), URL: cloudflare.F("http://www.example.com/somewhere/$1/astring/$2/anotherstring/$3"), }), }}), - Targets: cloudflare.F([]pagerules.TargesItemParam{{ - Constraint: cloudflare.F(pagerules.TargesItemConstraintParam{ - Operator: cloudflare.F(pagerules.TargesItemConstraintOperatorMatches), + Targets: cloudflare.F([]pagerules.TargesParam{{ + Constraint: cloudflare.F(pagerules.TargesConstraintParam{ + Operator: cloudflare.F(pagerules.TargesConstraintOperatorMatches), Value: cloudflare.F("*example.com/images/*"), }), - Target: cloudflare.F(pagerules.TargesItemTargetURL), + Target: cloudflare.F(pagerules.TargesTargetURL), }}), Priority: cloudflare.F(int64(0)), Status: cloudflare.F(pagerules.PageruleUpdateParamsStatusActive), @@ -182,21 +182,21 @@ func TestPageruleEditWithOptionalParams(t *testing.T) { "023e105f4ecef8ad9ca31a8372d0c353", pagerules.PageruleEditParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), - Actions: cloudflare.F([]pagerules.ActionItemParam{{ - Name: cloudflare.F(pagerules.ActionItemNameForwardURL), - Value: cloudflare.F(pagerules.ActionItemValueParam{ - Type: cloudflare.F(pagerules.ActionItemValueTypeTemporary), + Actions: cloudflare.F([]pagerules.RouteParam{{ + Name: cloudflare.F(pagerules.RouteNameForwardURL), + Value: cloudflare.F(pagerules.RouteValueParam{ + Type: cloudflare.F(pagerules.RouteValueTypeTemporary), URL: cloudflare.F("http://www.example.com/somewhere/$1/astring/$2/anotherstring/$3"), }), }}), Priority: cloudflare.F(int64(0)), Status: cloudflare.F(pagerules.PageruleEditParamsStatusActive), - Targets: cloudflare.F([]pagerules.TargesItemParam{{ - Constraint: cloudflare.F(pagerules.TargesItemConstraintParam{ - Operator: cloudflare.F(pagerules.TargesItemConstraintOperatorMatches), + Targets: cloudflare.F([]pagerules.TargesParam{{ + Constraint: cloudflare.F(pagerules.TargesConstraintParam{ + Operator: cloudflare.F(pagerules.TargesConstraintOperatorMatches), Value: cloudflare.F("*example.com/images/*"), }), - Target: cloudflare.F(pagerules.TargesItemTargetURL), + Target: cloudflare.F(pagerules.TargesTargetURL), }}), }, ) diff --git a/pagerules/setting.go b/pagerules/setting.go index 851f4735661..8263f0cdbc6 100644 --- a/pagerules/setting.go +++ b/pagerules/setting.go @@ -33,7 +33,7 @@ func NewSettingService(opts ...option.RequestOption) (r *SettingService) { // Returns a list of settings (and their details) that Page Rules can apply to // matching requests. -func (r *SettingService) List(ctx context.Context, query SettingListParams, opts ...option.RequestOption) (res *Settings, err error) { +func (r *SettingService) List(ctx context.Context, query SettingListParams, opts ...option.RequestOption) (res *[]SettingListResponse, err error) { opts = append(r.Options[:], opts...) var env SettingListResponseEnvelope path := fmt.Sprintf("zones/%s/pagerules/settings", query.ZoneID) @@ -45,10 +45,6 @@ func (r *SettingService) List(ctx context.Context, query SettingListParams, opts return } -type Settings []interface{} - -type SettingsParam []interface{} - type SettingListResponse = interface{} type SettingListParams struct { @@ -60,7 +56,7 @@ type SettingListResponseEnvelope struct { Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` // Settings available for the zone. - Result Settings `json:"result,required"` + Result []SettingListResponse `json:"result,required"` // Whether the API call was successful Success SettingListResponseEnvelopeSuccess `json:"success,required"` JSON settingListResponseEnvelopeJSON `json:"-"` diff --git a/speed/schedule.go b/speed/schedule.go index df2bad30758..70641f20311 100644 --- a/speed/schedule.go +++ b/speed/schedule.go @@ -45,6 +45,99 @@ func (r *ScheduleService) New(ctx context.Context, url string, params ScheduleNe return } +// The test schedule. +type Schedule struct { + // The frequency of the test. + Frequency ScheduleFrequency `json:"frequency"` + // A test region. + Region ScheduleRegion `json:"region"` + // A URL. + URL string `json:"url"` + JSON scheduleJSON `json:"-"` +} + +// scheduleJSON contains the JSON metadata for the struct [Schedule] +type scheduleJSON struct { + Frequency apijson.Field + Region apijson.Field + URL apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *Schedule) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r scheduleJSON) RawJSON() string { + return r.raw +} + +// The frequency of the test. +type ScheduleFrequency string + +const ( + ScheduleFrequencyDaily ScheduleFrequency = "DAILY" + ScheduleFrequencyWeekly ScheduleFrequency = "WEEKLY" +) + +func (r ScheduleFrequency) IsKnown() bool { + switch r { + case ScheduleFrequencyDaily, ScheduleFrequencyWeekly: + return true + } + return false +} + +// A test region. +type ScheduleRegion string + +const ( + ScheduleRegionAsiaEast1 ScheduleRegion = "asia-east1" + ScheduleRegionAsiaNortheast1 ScheduleRegion = "asia-northeast1" + ScheduleRegionAsiaNortheast2 ScheduleRegion = "asia-northeast2" + ScheduleRegionAsiaSouth1 ScheduleRegion = "asia-south1" + ScheduleRegionAsiaSoutheast1 ScheduleRegion = "asia-southeast1" + ScheduleRegionAustraliaSoutheast1 ScheduleRegion = "australia-southeast1" + ScheduleRegionEuropeNorth1 ScheduleRegion = "europe-north1" + ScheduleRegionEuropeSouthwest1 ScheduleRegion = "europe-southwest1" + ScheduleRegionEuropeWest1 ScheduleRegion = "europe-west1" + ScheduleRegionEuropeWest2 ScheduleRegion = "europe-west2" + ScheduleRegionEuropeWest3 ScheduleRegion = "europe-west3" + ScheduleRegionEuropeWest4 ScheduleRegion = "europe-west4" + ScheduleRegionEuropeWest8 ScheduleRegion = "europe-west8" + ScheduleRegionEuropeWest9 ScheduleRegion = "europe-west9" + ScheduleRegionMeWest1 ScheduleRegion = "me-west1" + ScheduleRegionSouthamericaEast1 ScheduleRegion = "southamerica-east1" + ScheduleRegionUsCentral1 ScheduleRegion = "us-central1" + ScheduleRegionUsEast1 ScheduleRegion = "us-east1" + ScheduleRegionUsEast4 ScheduleRegion = "us-east4" + ScheduleRegionUsSouth1 ScheduleRegion = "us-south1" + ScheduleRegionUsWest1 ScheduleRegion = "us-west1" +) + +func (r ScheduleRegion) IsKnown() bool { + switch r { + case ScheduleRegionAsiaEast1, ScheduleRegionAsiaNortheast1, ScheduleRegionAsiaNortheast2, ScheduleRegionAsiaSouth1, ScheduleRegionAsiaSoutheast1, ScheduleRegionAustraliaSoutheast1, ScheduleRegionEuropeNorth1, ScheduleRegionEuropeSouthwest1, ScheduleRegionEuropeWest1, ScheduleRegionEuropeWest2, ScheduleRegionEuropeWest3, ScheduleRegionEuropeWest4, ScheduleRegionEuropeWest8, ScheduleRegionEuropeWest9, ScheduleRegionMeWest1, ScheduleRegionSouthamericaEast1, ScheduleRegionUsCentral1, ScheduleRegionUsEast1, ScheduleRegionUsEast4, ScheduleRegionUsSouth1, ScheduleRegionUsWest1: + return true + } + return false +} + +// The test schedule. +type ScheduleParam struct { + // The frequency of the test. + Frequency param.Field[ScheduleFrequency] `json:"frequency"` + // A test region. + Region param.Field[ScheduleRegion] `json:"region"` + // A URL. + URL param.Field[string] `json:"url"` +} + +func (r ScheduleParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + type ScheduleNewResponse struct { // The test schedule. Schedule Schedule `json:"schedule"` diff --git a/speed/speed.go b/speed/speed.go index 7e52a6a50e3..e35127dbe43 100644 --- a/speed/speed.go +++ b/speed/speed.go @@ -274,99 +274,6 @@ func (r LighthouseReportState) IsKnown() bool { return false } -// The test schedule. -type Schedule struct { - // The frequency of the test. - Frequency ScheduleFrequency `json:"frequency"` - // A test region. - Region ScheduleRegion `json:"region"` - // A URL. - URL string `json:"url"` - JSON scheduleJSON `json:"-"` -} - -// scheduleJSON contains the JSON metadata for the struct [Schedule] -type scheduleJSON struct { - Frequency apijson.Field - Region apijson.Field - URL apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *Schedule) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r scheduleJSON) RawJSON() string { - return r.raw -} - -// The frequency of the test. -type ScheduleFrequency string - -const ( - ScheduleFrequencyDaily ScheduleFrequency = "DAILY" - ScheduleFrequencyWeekly ScheduleFrequency = "WEEKLY" -) - -func (r ScheduleFrequency) IsKnown() bool { - switch r { - case ScheduleFrequencyDaily, ScheduleFrequencyWeekly: - return true - } - return false -} - -// A test region. -type ScheduleRegion string - -const ( - ScheduleRegionAsiaEast1 ScheduleRegion = "asia-east1" - ScheduleRegionAsiaNortheast1 ScheduleRegion = "asia-northeast1" - ScheduleRegionAsiaNortheast2 ScheduleRegion = "asia-northeast2" - ScheduleRegionAsiaSouth1 ScheduleRegion = "asia-south1" - ScheduleRegionAsiaSoutheast1 ScheduleRegion = "asia-southeast1" - ScheduleRegionAustraliaSoutheast1 ScheduleRegion = "australia-southeast1" - ScheduleRegionEuropeNorth1 ScheduleRegion = "europe-north1" - ScheduleRegionEuropeSouthwest1 ScheduleRegion = "europe-southwest1" - ScheduleRegionEuropeWest1 ScheduleRegion = "europe-west1" - ScheduleRegionEuropeWest2 ScheduleRegion = "europe-west2" - ScheduleRegionEuropeWest3 ScheduleRegion = "europe-west3" - ScheduleRegionEuropeWest4 ScheduleRegion = "europe-west4" - ScheduleRegionEuropeWest8 ScheduleRegion = "europe-west8" - ScheduleRegionEuropeWest9 ScheduleRegion = "europe-west9" - ScheduleRegionMeWest1 ScheduleRegion = "me-west1" - ScheduleRegionSouthamericaEast1 ScheduleRegion = "southamerica-east1" - ScheduleRegionUsCentral1 ScheduleRegion = "us-central1" - ScheduleRegionUsEast1 ScheduleRegion = "us-east1" - ScheduleRegionUsEast4 ScheduleRegion = "us-east4" - ScheduleRegionUsSouth1 ScheduleRegion = "us-south1" - ScheduleRegionUsWest1 ScheduleRegion = "us-west1" -) - -func (r ScheduleRegion) IsKnown() bool { - switch r { - case ScheduleRegionAsiaEast1, ScheduleRegionAsiaNortheast1, ScheduleRegionAsiaNortheast2, ScheduleRegionAsiaSouth1, ScheduleRegionAsiaSoutheast1, ScheduleRegionAustraliaSoutheast1, ScheduleRegionEuropeNorth1, ScheduleRegionEuropeSouthwest1, ScheduleRegionEuropeWest1, ScheduleRegionEuropeWest2, ScheduleRegionEuropeWest3, ScheduleRegionEuropeWest4, ScheduleRegionEuropeWest8, ScheduleRegionEuropeWest9, ScheduleRegionMeWest1, ScheduleRegionSouthamericaEast1, ScheduleRegionUsCentral1, ScheduleRegionUsEast1, ScheduleRegionUsEast4, ScheduleRegionUsSouth1, ScheduleRegionUsWest1: - return true - } - return false -} - -// The test schedule. -type ScheduleParam struct { - // The frequency of the test. - Frequency param.Field[ScheduleFrequency] `json:"frequency"` - // A test region. - Region param.Field[ScheduleRegion] `json:"region"` - // A URL. - URL param.Field[string] `json:"url"` -} - -func (r ScheduleParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - type Trend struct { // Cumulative Layout Shift trend. Cls []float64 `json:"cls"` diff --git a/user/loadbalanceranalytics.go b/user/loadbalanceranalytics.go index a0b0d99c64a..d9203df9119 100644 --- a/user/loadbalanceranalytics.go +++ b/user/loadbalanceranalytics.go @@ -3,6 +3,9 @@ package user import ( + "time" + + "github.com/cloudflare/cloudflare-go/v2/internal/apijson" "github.com/cloudflare/cloudflare-go/v2/option" ) @@ -25,3 +28,29 @@ func NewLoadBalancerAnalyticsService(opts ...option.RequestOption) (r *LoadBalan r.Events = NewLoadBalancerAnalyticsEventService(opts...) return } + +type Analytics struct { + ID int64 `json:"id"` + Origins []interface{} `json:"origins"` + Pool interface{} `json:"pool"` + Timestamp time.Time `json:"timestamp" format:"date-time"` + JSON analyticsJSON `json:"-"` +} + +// analyticsJSON contains the JSON metadata for the struct [Analytics] +type analyticsJSON struct { + ID apijson.Field + Origins apijson.Field + Pool apijson.Field + Timestamp apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *Analytics) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r analyticsJSON) RawJSON() string { + return r.raw +} diff --git a/user/loadbalanceranalyticsevent.go b/user/loadbalanceranalyticsevent.go index e0af31b6ff5..82bb56ec155 100644 --- a/user/loadbalanceranalyticsevent.go +++ b/user/loadbalanceranalyticsevent.go @@ -8,7 +8,6 @@ import ( "net/url" "time" - "github.com/cloudflare/cloudflare-go/v2/internal/apijson" "github.com/cloudflare/cloudflare-go/v2/internal/apiquery" "github.com/cloudflare/cloudflare-go/v2/internal/pagination" "github.com/cloudflare/cloudflare-go/v2/internal/param" @@ -57,32 +56,6 @@ func (r *LoadBalancerAnalyticsEventService) ListAutoPaging(ctx context.Context, return pagination.NewSinglePageAutoPager(r.List(ctx, query, opts...)) } -type Analytics struct { - ID int64 `json:"id"` - Origins []interface{} `json:"origins"` - Pool interface{} `json:"pool"` - Timestamp time.Time `json:"timestamp" format:"date-time"` - JSON analyticsJSON `json:"-"` -} - -// analyticsJSON contains the JSON metadata for the struct [Analytics] -type analyticsJSON struct { - ID apijson.Field - Origins apijson.Field - Pool apijson.Field - Timestamp apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *Analytics) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r analyticsJSON) RawJSON() string { - return r.raw -} - type LoadBalancerAnalyticsEventListParams struct { // If true, filter events where the origin status is healthy. If false, filter // events where the origin status is unhealthy. diff --git a/user/loadbalancerpool.go b/user/loadbalancerpool.go index b4ed95647a9..bb408a84495 100644 --- a/user/loadbalancerpool.go +++ b/user/loadbalancerpool.go @@ -215,8 +215,8 @@ type Pool struct { OriginSteering load_balancers.OriginSteering `json:"origin_steering"` // The list of origins within this pool. Traffic directed at this pool is balanced // across all currently healthy origins, provided the pool itself is healthy. - Origins []load_balancers.OriginItem `json:"origins"` - JSON poolJSON `json:"-"` + Origins []load_balancers.Origin `json:"origins"` + JSON poolJSON `json:"-"` } // poolJSON contains the JSON metadata for the struct [Pool] @@ -348,7 +348,7 @@ type LoadBalancerPoolNewParams struct { Name param.Field[string] `json:"name,required"` // The list of origins within this pool. Traffic directed at this pool is balanced // across all currently healthy origins, provided the pool itself is healthy. - Origins param.Field[[]load_balancers.OriginItemParam] `json:"origins,required"` + Origins param.Field[[]load_balancers.OriginParam] `json:"origins,required"` // A list of regions from which to run health checks. Null means every Cloudflare // data center. CheckRegions param.Field[[]load_balancers.CheckRegion] `json:"check_regions"` @@ -440,7 +440,7 @@ type LoadBalancerPoolUpdateParams struct { Name param.Field[string] `json:"name,required"` // The list of origins within this pool. Traffic directed at this pool is balanced // across all currently healthy origins, provided the pool itself is healthy. - Origins param.Field[[]load_balancers.OriginItemParam] `json:"origins,required"` + Origins param.Field[[]load_balancers.OriginParam] `json:"origins,required"` // A list of regions from which to run health checks. Null means every Cloudflare // data center. CheckRegions param.Field[[]load_balancers.CheckRegion] `json:"check_regions"` @@ -634,7 +634,7 @@ type LoadBalancerPoolEditParams struct { OriginSteering param.Field[load_balancers.OriginSteeringParam] `json:"origin_steering"` // The list of origins within this pool. Traffic directed at this pool is balanced // across all currently healthy origins, provided the pool itself is healthy. - Origins param.Field[[]load_balancers.OriginItemParam] `json:"origins"` + Origins param.Field[[]load_balancers.OriginParam] `json:"origins"` } func (r LoadBalancerPoolEditParams) MarshalJSON() (data []byte, err error) { diff --git a/user/loadbalancerpool_test.go b/user/loadbalancerpool_test.go index 957b6cdd400..12be561d06b 100644 --- a/user/loadbalancerpool_test.go +++ b/user/loadbalancerpool_test.go @@ -31,7 +31,7 @@ func TestLoadBalancerPoolNewWithOptionalParams(t *testing.T) { ) _, err := client.User.LoadBalancers.Pools.New(context.TODO(), user.LoadBalancerPoolNewParams{ Name: cloudflare.F("primary-dc-1"), - Origins: cloudflare.F([]load_balancers.OriginItemParam{{ + Origins: cloudflare.F([]load_balancers.OriginParam{{ Address: cloudflare.F("0.0.0.0"), Enabled: cloudflare.F(true), Header: cloudflare.F(load_balancers.HeaderParam{ @@ -115,7 +115,7 @@ func TestLoadBalancerPoolUpdateWithOptionalParams(t *testing.T) { "17b5962d775c646f3f9725cbc7a53df4", user.LoadBalancerPoolUpdateParams{ Name: cloudflare.F("primary-dc-1"), - Origins: cloudflare.F([]load_balancers.OriginItemParam{{ + Origins: cloudflare.F([]load_balancers.OriginParam{{ Address: cloudflare.F("0.0.0.0"), Enabled: cloudflare.F(true), Header: cloudflare.F(load_balancers.HeaderParam{ @@ -283,7 +283,7 @@ func TestLoadBalancerPoolEditWithOptionalParams(t *testing.T) { OriginSteering: cloudflare.F(load_balancers.OriginSteeringParam{ Policy: cloudflare.F(load_balancers.OriginSteeringPolicyRandom), }), - Origins: cloudflare.F([]load_balancers.OriginItemParam{{ + Origins: cloudflare.F([]load_balancers.OriginParam{{ Address: cloudflare.F("0.0.0.0"), Enabled: cloudflare.F(true), Header: cloudflare.F(load_balancers.HeaderParam{ diff --git a/waiting_rooms/eventdetail.go b/waiting_rooms/eventdetail.go index feea843ff61..e7948269f59 100644 --- a/waiting_rooms/eventdetail.go +++ b/waiting_rooms/eventdetail.go @@ -46,82 +46,6 @@ func (r *EventDetailService) Get(ctx context.Context, waitingRoomID string, even return } -type Event struct { - // An ISO 8601 timestamp that marks the end of the event. - EventEndTime string `json:"event_end_time,required"` - // An ISO 8601 timestamp that marks the start of the event. At this time, queued - // users will be processed with the event's configuration. The start time must be - // at least one minute before `event_end_time`. - EventStartTime string `json:"event_start_time,required"` - // A unique name to identify the event. Only alphanumeric characters, hyphens and - // underscores are allowed. - Name string `json:"name,required"` - // If set, the event will override the waiting room's `custom_page_html` property - // while it is active. If null, the event will inherit it. - CustomPageHTML string `json:"custom_page_html,nullable"` - // A note that you can use to add more details about the event. - Description string `json:"description"` - // If set, the event will override the waiting room's `disable_session_renewal` - // property while it is active. If null, the event will inherit it. - DisableSessionRenewal bool `json:"disable_session_renewal,nullable"` - // If set, the event will override the waiting room's `new_users_per_minute` - // property while it is active. If null, the event will inherit it. This can only - // be set if the event's `total_active_users` property is also set. - NewUsersPerMinute int64 `json:"new_users_per_minute,nullable"` - // An ISO 8601 timestamp that marks when to begin queueing all users before the - // event starts. The prequeue must start at least five minutes before - // `event_start_time`. - PrequeueStartTime string `json:"prequeue_start_time,nullable"` - // If set, the event will override the waiting room's `queueing_method` property - // while it is active. If null, the event will inherit it. - QueueingMethod string `json:"queueing_method,nullable"` - // If set, the event will override the waiting room's `session_duration` property - // while it is active. If null, the event will inherit it. - SessionDuration int64 `json:"session_duration,nullable"` - // If enabled, users in the prequeue will be shuffled randomly at the - // `event_start_time`. Requires that `prequeue_start_time` is not null. This is - // useful for situations when many users will join the event prequeue at the same - // time and you want to shuffle them to ensure fairness. Naturally, it makes the - // most sense to enable this feature when the `queueing_method` during the event - // respects ordering such as **fifo**, or else the shuffling may be unnecessary. - ShuffleAtEventStart bool `json:"shuffle_at_event_start"` - // Suspends or allows an event. If set to `true`, the event is ignored and traffic - // will be handled based on the waiting room configuration. - Suspended bool `json:"suspended"` - // If set, the event will override the waiting room's `total_active_users` property - // while it is active. If null, the event will inherit it. This can only be set if - // the event's `new_users_per_minute` property is also set. - TotalActiveUsers int64 `json:"total_active_users,nullable"` - JSON eventJSON `json:"-"` -} - -// eventJSON contains the JSON metadata for the struct [Event] -type eventJSON struct { - EventEndTime apijson.Field - EventStartTime apijson.Field - Name apijson.Field - CustomPageHTML apijson.Field - Description apijson.Field - DisableSessionRenewal apijson.Field - NewUsersPerMinute apijson.Field - PrequeueStartTime apijson.Field - QueueingMethod apijson.Field - SessionDuration apijson.Field - ShuffleAtEventStart apijson.Field - Suspended apijson.Field - TotalActiveUsers apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *Event) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r eventJSON) RawJSON() string { - return r.raw -} - type EventDetailGetResponse struct { ID string `json:"id"` CreatedOn time.Time `json:"created_on" format:"date-time"` diff --git a/workers/deployment.go b/workers/deployment.go new file mode 100644 index 00000000000..ef8bd4fb215 --- /dev/null +++ b/workers/deployment.go @@ -0,0 +1,26 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers + +import ( + "github.com/cloudflare/cloudflare-go/v2/option" +) + +// DeploymentService contains methods and other services that help with interacting +// with the cloudflare API. Note, unlike clients, this service does not read +// variables from the environment automatically. You should not instantiate this +// service directly, and instead use the [NewDeploymentService] method instead. +type DeploymentService struct { + Options []option.RequestOption + ByScripts *DeploymentByScriptService +} + +// NewDeploymentService generates a new service that applies the given options to +// each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewDeploymentService(opts ...option.RequestOption) (r *DeploymentService) { + r = &DeploymentService{} + r.Options = opts + r.ByScripts = NewDeploymentByScriptService(opts...) + return +} diff --git a/workers/deploymentbyscript.go b/workers/deploymentbyscript.go new file mode 100644 index 00000000000..2a72697940e --- /dev/null +++ b/workers/deploymentbyscript.go @@ -0,0 +1,119 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers + +import ( + "context" + "fmt" + "net/http" + + "github.com/cloudflare/cloudflare-go/v2/internal/apijson" + "github.com/cloudflare/cloudflare-go/v2/internal/param" + "github.com/cloudflare/cloudflare-go/v2/internal/requestconfig" + "github.com/cloudflare/cloudflare-go/v2/internal/shared" + "github.com/cloudflare/cloudflare-go/v2/option" +) + +// DeploymentByScriptService contains methods and other services that help with +// interacting with the cloudflare API. Note, unlike clients, this service does not +// read variables from the environment automatically. You should not instantiate +// this service directly, and instead use the [NewDeploymentByScriptService] method +// instead. +type DeploymentByScriptService struct { + Options []option.RequestOption + Details *DeploymentByScriptDetailService +} + +// NewDeploymentByScriptService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewDeploymentByScriptService(opts ...option.RequestOption) (r *DeploymentByScriptService) { + r = &DeploymentByScriptService{} + r.Options = opts + r.Details = NewDeploymentByScriptDetailService(opts...) + return +} + +// List Deployments +func (r *DeploymentByScriptService) Get(ctx context.Context, scriptID string, query DeploymentByScriptGetParams, opts ...option.RequestOption) (res *DeploymentByScriptGetResponse, err error) { + opts = append(r.Options[:], opts...) + var env DeploymentByScriptGetResponseEnvelope + path := fmt.Sprintf("accounts/%s/workers/deployments/by-script/%s", query.AccountID, scriptID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +type DeploymentByScriptGetResponse struct { + Items []interface{} `json:"items"` + Latest interface{} `json:"latest"` + JSON deploymentByScriptGetResponseJSON `json:"-"` +} + +// deploymentByScriptGetResponseJSON contains the JSON metadata for the struct +// [DeploymentByScriptGetResponse] +type deploymentByScriptGetResponseJSON struct { + Items apijson.Field + Latest apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *DeploymentByScriptGetResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r deploymentByScriptGetResponseJSON) RawJSON() string { + return r.raw +} + +type DeploymentByScriptGetParams struct { + // Identifier + AccountID param.Field[string] `path:"account_id,required"` +} + +type DeploymentByScriptGetResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result DeploymentByScriptGetResponse `json:"result,required"` + // Whether the API call was successful + Success DeploymentByScriptGetResponseEnvelopeSuccess `json:"success,required"` + JSON deploymentByScriptGetResponseEnvelopeJSON `json:"-"` +} + +// deploymentByScriptGetResponseEnvelopeJSON contains the JSON metadata for the +// struct [DeploymentByScriptGetResponseEnvelope] +type deploymentByScriptGetResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *DeploymentByScriptGetResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r deploymentByScriptGetResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type DeploymentByScriptGetResponseEnvelopeSuccess bool + +const ( + DeploymentByScriptGetResponseEnvelopeSuccessTrue DeploymentByScriptGetResponseEnvelopeSuccess = true +) + +func (r DeploymentByScriptGetResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case DeploymentByScriptGetResponseEnvelopeSuccessTrue: + return true + } + return false +} diff --git a/workers/deploymentbyscript_test.go b/workers/deploymentbyscript_test.go new file mode 100644 index 00000000000..7615d9f5744 --- /dev/null +++ b/workers/deploymentbyscript_test.go @@ -0,0 +1,45 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/cloudflare/cloudflare-go/v2" + "github.com/cloudflare/cloudflare-go/v2/internal/testutil" + "github.com/cloudflare/cloudflare-go/v2/option" + "github.com/cloudflare/cloudflare-go/v2/workers" +) + +func TestDeploymentByScriptGet(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Deployments.ByScripts.Get( + context.TODO(), + "8ee82b3a2c0f42928b8f14dae4a97121", + workers.DeploymentByScriptGetParams{ + AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + }, + ) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/workers/deploymentbyscriptdetail.go b/workers/deploymentbyscriptdetail.go new file mode 100644 index 00000000000..3fbb277ac6e --- /dev/null +++ b/workers/deploymentbyscriptdetail.go @@ -0,0 +1,121 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers + +import ( + "context" + "fmt" + "net/http" + + "github.com/cloudflare/cloudflare-go/v2/internal/apijson" + "github.com/cloudflare/cloudflare-go/v2/internal/param" + "github.com/cloudflare/cloudflare-go/v2/internal/requestconfig" + "github.com/cloudflare/cloudflare-go/v2/internal/shared" + "github.com/cloudflare/cloudflare-go/v2/option" +) + +// DeploymentByScriptDetailService contains methods and other services that help +// with interacting with the cloudflare API. Note, unlike clients, this service +// does not read variables from the environment automatically. You should not +// instantiate this service directly, and instead use the +// [NewDeploymentByScriptDetailService] method instead. +type DeploymentByScriptDetailService struct { + Options []option.RequestOption +} + +// NewDeploymentByScriptDetailService generates a new service that applies the +// given options to each request. These options are applied after the parent +// client's options (if there is one), and before any request-specific options. +func NewDeploymentByScriptDetailService(opts ...option.RequestOption) (r *DeploymentByScriptDetailService) { + r = &DeploymentByScriptDetailService{} + r.Options = opts + return +} + +// Get Deployment Detail +func (r *DeploymentByScriptDetailService) Get(ctx context.Context, scriptID string, deploymentID string, query DeploymentByScriptDetailGetParams, opts ...option.RequestOption) (res *DeploymentByScriptDetailGetResponse, err error) { + opts = append(r.Options[:], opts...) + var env DeploymentByScriptDetailGetResponseEnvelope + path := fmt.Sprintf("accounts/%s/workers/deployments/by-script/%s/detail/%s", query.AccountID, scriptID, deploymentID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +type DeploymentByScriptDetailGetResponse struct { + ID string `json:"id"` + Metadata interface{} `json:"metadata"` + Number float64 `json:"number"` + Resources interface{} `json:"resources"` + JSON deploymentByScriptDetailGetResponseJSON `json:"-"` +} + +// deploymentByScriptDetailGetResponseJSON contains the JSON metadata for the +// struct [DeploymentByScriptDetailGetResponse] +type deploymentByScriptDetailGetResponseJSON struct { + ID apijson.Field + Metadata apijson.Field + Number apijson.Field + Resources apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *DeploymentByScriptDetailGetResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r deploymentByScriptDetailGetResponseJSON) RawJSON() string { + return r.raw +} + +type DeploymentByScriptDetailGetParams struct { + // Identifier + AccountID param.Field[string] `path:"account_id,required"` +} + +type DeploymentByScriptDetailGetResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result DeploymentByScriptDetailGetResponse `json:"result,required"` + // Whether the API call was successful + Success DeploymentByScriptDetailGetResponseEnvelopeSuccess `json:"success,required"` + JSON deploymentByScriptDetailGetResponseEnvelopeJSON `json:"-"` +} + +// deploymentByScriptDetailGetResponseEnvelopeJSON contains the JSON metadata for +// the struct [DeploymentByScriptDetailGetResponseEnvelope] +type deploymentByScriptDetailGetResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *DeploymentByScriptDetailGetResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r deploymentByScriptDetailGetResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type DeploymentByScriptDetailGetResponseEnvelopeSuccess bool + +const ( + DeploymentByScriptDetailGetResponseEnvelopeSuccessTrue DeploymentByScriptDetailGetResponseEnvelopeSuccess = true +) + +func (r DeploymentByScriptDetailGetResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case DeploymentByScriptDetailGetResponseEnvelopeSuccessTrue: + return true + } + return false +} diff --git a/workers/deploymentbyscriptdetail_test.go b/workers/deploymentbyscriptdetail_test.go new file mode 100644 index 00000000000..412b34c9c6e --- /dev/null +++ b/workers/deploymentbyscriptdetail_test.go @@ -0,0 +1,46 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/cloudflare/cloudflare-go/v2" + "github.com/cloudflare/cloudflare-go/v2/internal/testutil" + "github.com/cloudflare/cloudflare-go/v2/option" + "github.com/cloudflare/cloudflare-go/v2/workers" +) + +func TestDeploymentByScriptDetailGet(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Deployments.ByScripts.Details.Get( + context.TODO(), + "8ee82b3a2c0f42928b8f14dae4a97121", + "bcf48806-b317-4351-9ee7-36e7d557d4de", + workers.DeploymentByScriptDetailGetParams{ + AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + }, + ) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/workers/filter.go b/workers/filter.go new file mode 100644 index 00000000000..0ed5f6d529d --- /dev/null +++ b/workers/filter.go @@ -0,0 +1,330 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers + +import ( + "context" + "fmt" + "net/http" + + "github.com/cloudflare/cloudflare-go/v2/internal/apijson" + "github.com/cloudflare/cloudflare-go/v2/internal/pagination" + "github.com/cloudflare/cloudflare-go/v2/internal/param" + "github.com/cloudflare/cloudflare-go/v2/internal/requestconfig" + "github.com/cloudflare/cloudflare-go/v2/internal/shared" + "github.com/cloudflare/cloudflare-go/v2/option" +) + +// FilterService contains methods and other services that help with interacting +// with the cloudflare API. Note, unlike clients, this service does not read +// variables from the environment automatically. You should not instantiate this +// service directly, and instead use the [NewFilterService] method instead. +type FilterService struct { + Options []option.RequestOption +} + +// NewFilterService generates a new service that applies the given options to each +// request. These options are applied after the parent client's options (if there +// is one), and before any request-specific options. +func NewFilterService(opts ...option.RequestOption) (r *FilterService) { + r = &FilterService{} + r.Options = opts + return +} + +// Create Filter +func (r *FilterService) New(ctx context.Context, params FilterNewParams, opts ...option.RequestOption) (res *FilterNewResponse, err error) { + opts = append(r.Options[:], opts...) + var env FilterNewResponseEnvelope + path := fmt.Sprintf("zones/%s/workers/filters", params.ZoneID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +// Update Filter +func (r *FilterService) Update(ctx context.Context, filterID string, params FilterUpdateParams, opts ...option.RequestOption) (res *WorkersFilter, err error) { + opts = append(r.Options[:], opts...) + var env FilterUpdateResponseEnvelope + path := fmt.Sprintf("zones/%s/workers/filters/%s", params.ZoneID, filterID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPut, path, params, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +// List Filters +func (r *FilterService) List(ctx context.Context, query FilterListParams, opts ...option.RequestOption) (res *pagination.SinglePage[WorkersFilter], err error) { + var raw *http.Response + opts = append(r.Options, opts...) + opts = append([]option.RequestOption{option.WithResponseInto(&raw)}, opts...) + path := fmt.Sprintf("zones/%s/workers/filters", query.ZoneID) + cfg, err := requestconfig.NewRequestConfig(ctx, http.MethodGet, path, query, &res, opts...) + if err != nil { + return nil, err + } + err = cfg.Execute() + if err != nil { + return nil, err + } + res.SetPageConfig(cfg, raw) + return res, nil +} + +// List Filters +func (r *FilterService) ListAutoPaging(ctx context.Context, query FilterListParams, opts ...option.RequestOption) *pagination.SinglePageAutoPager[WorkersFilter] { + return pagination.NewSinglePageAutoPager(r.List(ctx, query, opts...)) +} + +// Delete Filter +func (r *FilterService) Delete(ctx context.Context, filterID string, params FilterDeleteParams, opts ...option.RequestOption) (res *FilterDeleteResponse, err error) { + opts = append(r.Options[:], opts...) + var env FilterDeleteResponseEnvelope + path := fmt.Sprintf("zones/%s/workers/filters/%s", params.ZoneID, filterID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, nil, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +type WorkersFilter struct { + // Identifier + ID string `json:"id,required"` + Enabled bool `json:"enabled,required"` + Pattern string `json:"pattern,required"` + JSON workersFilterJSON `json:"-"` +} + +// workersFilterJSON contains the JSON metadata for the struct [WorkersFilter] +type workersFilterJSON struct { + ID apijson.Field + Enabled apijson.Field + Pattern apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *WorkersFilter) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r workersFilterJSON) RawJSON() string { + return r.raw +} + +type FilterNewResponse struct { + // Identifier + ID string `json:"id,required"` + JSON filterNewResponseJSON `json:"-"` +} + +// filterNewResponseJSON contains the JSON metadata for the struct +// [FilterNewResponse] +type filterNewResponseJSON struct { + ID apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *FilterNewResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r filterNewResponseJSON) RawJSON() string { + return r.raw +} + +type FilterDeleteResponse struct { + // Identifier + ID string `json:"id,required"` + JSON filterDeleteResponseJSON `json:"-"` +} + +// filterDeleteResponseJSON contains the JSON metadata for the struct +// [FilterDeleteResponse] +type filterDeleteResponseJSON struct { + ID apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *FilterDeleteResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r filterDeleteResponseJSON) RawJSON() string { + return r.raw +} + +type FilterNewParams struct { + // Identifier + ZoneID param.Field[string] `path:"zone_id,required"` + Enabled param.Field[bool] `json:"enabled,required"` + Pattern param.Field[string] `json:"pattern,required"` +} + +func (r FilterNewParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +type FilterNewResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result FilterNewResponse `json:"result,required,nullable"` + // Whether the API call was successful + Success FilterNewResponseEnvelopeSuccess `json:"success,required"` + JSON filterNewResponseEnvelopeJSON `json:"-"` +} + +// filterNewResponseEnvelopeJSON contains the JSON metadata for the struct +// [FilterNewResponseEnvelope] +type filterNewResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *FilterNewResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r filterNewResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type FilterNewResponseEnvelopeSuccess bool + +const ( + FilterNewResponseEnvelopeSuccessTrue FilterNewResponseEnvelopeSuccess = true +) + +func (r FilterNewResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case FilterNewResponseEnvelopeSuccessTrue: + return true + } + return false +} + +type FilterUpdateParams struct { + // Identifier + ZoneID param.Field[string] `path:"zone_id,required"` + Enabled param.Field[bool] `json:"enabled,required"` + Pattern param.Field[string] `json:"pattern,required"` +} + +func (r FilterUpdateParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +type FilterUpdateResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result WorkersFilter `json:"result,required"` + // Whether the API call was successful + Success FilterUpdateResponseEnvelopeSuccess `json:"success,required"` + JSON filterUpdateResponseEnvelopeJSON `json:"-"` +} + +// filterUpdateResponseEnvelopeJSON contains the JSON metadata for the struct +// [FilterUpdateResponseEnvelope] +type filterUpdateResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *FilterUpdateResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r filterUpdateResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type FilterUpdateResponseEnvelopeSuccess bool + +const ( + FilterUpdateResponseEnvelopeSuccessTrue FilterUpdateResponseEnvelopeSuccess = true +) + +func (r FilterUpdateResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case FilterUpdateResponseEnvelopeSuccessTrue: + return true + } + return false +} + +type FilterListParams struct { + // Identifier + ZoneID param.Field[string] `path:"zone_id,required"` +} + +type FilterDeleteParams struct { + // Identifier + ZoneID param.Field[string] `path:"zone_id,required"` + Body param.Field[interface{}] `json:"body,required"` +} + +func (r FilterDeleteParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r.Body) +} + +type FilterDeleteResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result FilterDeleteResponse `json:"result,required,nullable"` + // Whether the API call was successful + Success FilterDeleteResponseEnvelopeSuccess `json:"success,required"` + JSON filterDeleteResponseEnvelopeJSON `json:"-"` +} + +// filterDeleteResponseEnvelopeJSON contains the JSON metadata for the struct +// [FilterDeleteResponseEnvelope] +type filterDeleteResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *FilterDeleteResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r filterDeleteResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type FilterDeleteResponseEnvelopeSuccess bool + +const ( + FilterDeleteResponseEnvelopeSuccessTrue FilterDeleteResponseEnvelopeSuccess = true +) + +func (r FilterDeleteResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case FilterDeleteResponseEnvelopeSuccessTrue: + return true + } + return false +} diff --git a/workers/filter_test.go b/workers/filter_test.go new file mode 100644 index 00000000000..f62a0be64f0 --- /dev/null +++ b/workers/filter_test.go @@ -0,0 +1,132 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/cloudflare/cloudflare-go/v2" + "github.com/cloudflare/cloudflare-go/v2/internal/testutil" + "github.com/cloudflare/cloudflare-go/v2/option" + "github.com/cloudflare/cloudflare-go/v2/workers" +) + +func TestFilterNew(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Filters.New(context.TODO(), workers.FilterNewParams{ + ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + Enabled: cloudflare.F(true), + Pattern: cloudflare.F("example.net/*"), + }) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestFilterUpdate(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Filters.Update( + context.TODO(), + "023e105f4ecef8ad9ca31a8372d0c353", + workers.FilterUpdateParams{ + ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + Enabled: cloudflare.F(true), + Pattern: cloudflare.F("example.net/*"), + }, + ) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestFilterList(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Filters.List(context.TODO(), workers.FilterListParams{ + ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + }) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestFilterDelete(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Filters.Delete( + context.TODO(), + "023e105f4ecef8ad9ca31a8372d0c353", + workers.FilterDeleteParams{ + ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + Body: cloudflare.F[any](map[string]interface{}{}), + }, + ) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/workers/route.go b/workers/route.go new file mode 100644 index 00000000000..fafefcf0802 --- /dev/null +++ b/workers/route.go @@ -0,0 +1,350 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers + +import ( + "context" + "fmt" + "net/http" + + "github.com/cloudflare/cloudflare-go/v2/internal/apijson" + "github.com/cloudflare/cloudflare-go/v2/internal/pagination" + "github.com/cloudflare/cloudflare-go/v2/internal/param" + "github.com/cloudflare/cloudflare-go/v2/internal/requestconfig" + "github.com/cloudflare/cloudflare-go/v2/internal/shared" + "github.com/cloudflare/cloudflare-go/v2/option" +) + +// RouteService contains methods and other services that help with interacting with +// the cloudflare API. Note, unlike clients, this service does not read variables +// from the environment automatically. You should not instantiate this service +// directly, and instead use the [NewRouteService] method instead. +type RouteService struct { + Options []option.RequestOption +} + +// NewRouteService generates a new service that applies the given options to each +// request. These options are applied after the parent client's options (if there +// is one), and before any request-specific options. +func NewRouteService(opts ...option.RequestOption) (r *RouteService) { + r = &RouteService{} + r.Options = opts + return +} + +// Creates a route that maps a URL pattern to a Worker. +func (r *RouteService) New(ctx context.Context, params RouteNewParams, opts ...option.RequestOption) (res *shared.UnnamedSchemaRef8d6a37a1e4190f86652802244d29525fUnion, err error) { + opts = append(r.Options[:], opts...) + var env RouteNewResponseEnvelope + path := fmt.Sprintf("zones/%s/workers/routes", params.ZoneID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +// Updates the URL pattern or Worker associated with a route. +func (r *RouteService) Update(ctx context.Context, routeID string, params RouteUpdateParams, opts ...option.RequestOption) (res *WorkersRoute, err error) { + opts = append(r.Options[:], opts...) + var env RouteUpdateResponseEnvelope + path := fmt.Sprintf("zones/%s/workers/routes/%s", params.ZoneID, routeID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPut, path, params, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +// Returns routes for a zone. +func (r *RouteService) List(ctx context.Context, query RouteListParams, opts ...option.RequestOption) (res *pagination.SinglePage[WorkersRoute], err error) { + var raw *http.Response + opts = append(r.Options, opts...) + opts = append([]option.RequestOption{option.WithResponseInto(&raw)}, opts...) + path := fmt.Sprintf("zones/%s/workers/routes", query.ZoneID) + cfg, err := requestconfig.NewRequestConfig(ctx, http.MethodGet, path, query, &res, opts...) + if err != nil { + return nil, err + } + err = cfg.Execute() + if err != nil { + return nil, err + } + res.SetPageConfig(cfg, raw) + return res, nil +} + +// Returns routes for a zone. +func (r *RouteService) ListAutoPaging(ctx context.Context, query RouteListParams, opts ...option.RequestOption) *pagination.SinglePageAutoPager[WorkersRoute] { + return pagination.NewSinglePageAutoPager(r.List(ctx, query, opts...)) +} + +// Deletes a route. +func (r *RouteService) Delete(ctx context.Context, routeID string, params RouteDeleteParams, opts ...option.RequestOption) (res *shared.UnnamedSchemaRef8d6a37a1e4190f86652802244d29525fUnion, err error) { + opts = append(r.Options[:], opts...) + var env RouteDeleteResponseEnvelope + path := fmt.Sprintf("zones/%s/workers/routes/%s", params.ZoneID, routeID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, nil, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +// Returns information about a route, including URL pattern and Worker. +func (r *RouteService) Get(ctx context.Context, routeID string, query RouteGetParams, opts ...option.RequestOption) (res *WorkersRoute, err error) { + opts = append(r.Options[:], opts...) + var env RouteGetResponseEnvelope + path := fmt.Sprintf("zones/%s/workers/routes/%s", query.ZoneID, routeID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +type WorkersRoute struct { + // Identifier + ID string `json:"id,required"` + Pattern string `json:"pattern,required"` + // Name of the script, used in URLs and route configuration. + Script string `json:"script,required"` + JSON workersRouteJSON `json:"-"` +} + +// workersRouteJSON contains the JSON metadata for the struct [WorkersRoute] +type workersRouteJSON struct { + ID apijson.Field + Pattern apijson.Field + Script apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *WorkersRoute) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r workersRouteJSON) RawJSON() string { + return r.raw +} + +type RouteNewParams struct { + // Identifier + ZoneID param.Field[string] `path:"zone_id,required"` + Pattern param.Field[string] `json:"pattern,required"` + // Name of the script, used in URLs and route configuration. + Script param.Field[string] `json:"script"` +} + +func (r RouteNewParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +type RouteNewResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result shared.UnnamedSchemaRef8d6a37a1e4190f86652802244d29525fUnion `json:"result,required"` + // Whether the API call was successful + Success RouteNewResponseEnvelopeSuccess `json:"success,required"` + JSON routeNewResponseEnvelopeJSON `json:"-"` +} + +// routeNewResponseEnvelopeJSON contains the JSON metadata for the struct +// [RouteNewResponseEnvelope] +type routeNewResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *RouteNewResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r routeNewResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type RouteNewResponseEnvelopeSuccess bool + +const ( + RouteNewResponseEnvelopeSuccessTrue RouteNewResponseEnvelopeSuccess = true +) + +func (r RouteNewResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case RouteNewResponseEnvelopeSuccessTrue: + return true + } + return false +} + +type RouteUpdateParams struct { + // Identifier + ZoneID param.Field[string] `path:"zone_id,required"` + Pattern param.Field[string] `json:"pattern,required"` + // Name of the script, used in URLs and route configuration. + Script param.Field[string] `json:"script"` +} + +func (r RouteUpdateParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +type RouteUpdateResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result WorkersRoute `json:"result,required"` + // Whether the API call was successful + Success RouteUpdateResponseEnvelopeSuccess `json:"success,required"` + JSON routeUpdateResponseEnvelopeJSON `json:"-"` +} + +// routeUpdateResponseEnvelopeJSON contains the JSON metadata for the struct +// [RouteUpdateResponseEnvelope] +type routeUpdateResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *RouteUpdateResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r routeUpdateResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type RouteUpdateResponseEnvelopeSuccess bool + +const ( + RouteUpdateResponseEnvelopeSuccessTrue RouteUpdateResponseEnvelopeSuccess = true +) + +func (r RouteUpdateResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case RouteUpdateResponseEnvelopeSuccessTrue: + return true + } + return false +} + +type RouteListParams struct { + // Identifier + ZoneID param.Field[string] `path:"zone_id,required"` +} + +type RouteDeleteParams struct { + // Identifier + ZoneID param.Field[string] `path:"zone_id,required"` + Body param.Field[interface{}] `json:"body,required"` +} + +func (r RouteDeleteParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r.Body) +} + +type RouteDeleteResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result shared.UnnamedSchemaRef8d6a37a1e4190f86652802244d29525fUnion `json:"result,required"` + // Whether the API call was successful + Success RouteDeleteResponseEnvelopeSuccess `json:"success,required"` + JSON routeDeleteResponseEnvelopeJSON `json:"-"` +} + +// routeDeleteResponseEnvelopeJSON contains the JSON metadata for the struct +// [RouteDeleteResponseEnvelope] +type routeDeleteResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *RouteDeleteResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r routeDeleteResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type RouteDeleteResponseEnvelopeSuccess bool + +const ( + RouteDeleteResponseEnvelopeSuccessTrue RouteDeleteResponseEnvelopeSuccess = true +) + +func (r RouteDeleteResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case RouteDeleteResponseEnvelopeSuccessTrue: + return true + } + return false +} + +type RouteGetParams struct { + // Identifier + ZoneID param.Field[string] `path:"zone_id,required"` +} + +type RouteGetResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result WorkersRoute `json:"result,required"` + // Whether the API call was successful + Success RouteGetResponseEnvelopeSuccess `json:"success,required"` + JSON routeGetResponseEnvelopeJSON `json:"-"` +} + +// routeGetResponseEnvelopeJSON contains the JSON metadata for the struct +// [RouteGetResponseEnvelope] +type routeGetResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *RouteGetResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r routeGetResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type RouteGetResponseEnvelopeSuccess bool + +const ( + RouteGetResponseEnvelopeSuccessTrue RouteGetResponseEnvelopeSuccess = true +) + +func (r RouteGetResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case RouteGetResponseEnvelopeSuccessTrue: + return true + } + return false +} diff --git a/workers/route_test.go b/workers/route_test.go new file mode 100644 index 00000000000..21692b3afeb --- /dev/null +++ b/workers/route_test.go @@ -0,0 +1,162 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/cloudflare/cloudflare-go/v2" + "github.com/cloudflare/cloudflare-go/v2/internal/testutil" + "github.com/cloudflare/cloudflare-go/v2/option" + "github.com/cloudflare/cloudflare-go/v2/workers" +) + +func TestRouteNewWithOptionalParams(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Routes.New(context.TODO(), workers.RouteNewParams{ + ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + Pattern: cloudflare.F("example.net/*"), + Script: cloudflare.F("this-is_my_script-01"), + }) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestRouteUpdateWithOptionalParams(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Routes.Update( + context.TODO(), + "023e105f4ecef8ad9ca31a8372d0c353", + workers.RouteUpdateParams{ + ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + Pattern: cloudflare.F("example.net/*"), + Script: cloudflare.F("this-is_my_script-01"), + }, + ) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestRouteList(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Routes.List(context.TODO(), workers.RouteListParams{ + ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + }) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestRouteDelete(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Routes.Delete( + context.TODO(), + "023e105f4ecef8ad9ca31a8372d0c353", + workers.RouteDeleteParams{ + ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + Body: cloudflare.F[any](map[string]interface{}{}), + }, + ) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestRouteGet(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Routes.Get( + context.TODO(), + "023e105f4ecef8ad9ca31a8372d0c353", + workers.RouteGetParams{ + ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + }, + ) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/workers/script.go b/workers/script.go index 25f27563add..4ec4d812afc 100644 --- a/workers/script.go +++ b/workers/script.go @@ -28,9 +28,12 @@ import ( // service directly, and instead use the [NewScriptService] method instead. type ScriptService struct { Options []option.RequestOption + Bindings *ScriptBindingService Schedules *ScriptScheduleService Tail *ScriptTailService + UsageModel *ScriptUsageModelService Content *ScriptContentService + ContentV2 *ScriptContentV2Service Settings *ScriptSettingService Deployments *ScriptDeploymentService Versions *ScriptVersionService @@ -42,9 +45,12 @@ type ScriptService struct { func NewScriptService(opts ...option.RequestOption) (r *ScriptService) { r = &ScriptService{} r.Options = opts + r.Bindings = NewScriptBindingService(opts...) r.Schedules = NewScriptScheduleService(opts...) r.Tail = NewScriptTailService(opts...) + r.UsageModel = NewScriptUsageModelService(opts...) r.Content = NewScriptContentService(opts...) + r.ContentV2 = NewScriptContentV2Service(opts...) r.Settings = NewScriptSettingService(opts...) r.Deployments = NewScriptDeploymentService(opts...) r.Versions = NewScriptVersionService(opts...) @@ -151,80 +157,38 @@ func (r scriptJSON) RawJSON() string { return r.raw } -type Setting struct { - Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` - Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` - Result SettingsItem `json:"result,required"` - // Whether the API call was successful - Success SettingSuccess `json:"success,required"` - JSON settingJSON `json:"-"` -} - -// settingJSON contains the JSON metadata for the struct [Setting] -type settingJSON struct { - Errors apijson.Field - Messages apijson.Field - Result apijson.Field - Success apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *Setting) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r settingJSON) RawJSON() string { - return r.raw -} - -// Whether the API call was successful -type SettingSuccess bool - -const ( - SettingSuccessTrue SettingSuccess = true -) - -func (r SettingSuccess) IsKnown() bool { - switch r { - case SettingSuccessTrue: - return true - } - return false -} - -type SettingsItem struct { +type ScriptSetting struct { // Whether Logpush is turned on for the Worker. Logpush bool `json:"logpush"` // List of Workers that will consume logs from the attached Worker. TailConsumers []ConsumerScriptItem `json:"tail_consumers"` - JSON settingsItemJSON `json:"-"` + JSON scriptSettingJSON `json:"-"` } -// settingsItemJSON contains the JSON metadata for the struct [SettingsItem] -type settingsItemJSON struct { +// scriptSettingJSON contains the JSON metadata for the struct [ScriptSetting] +type scriptSettingJSON struct { Logpush apijson.Field TailConsumers apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *SettingsItem) UnmarshalJSON(data []byte) (err error) { +func (r *ScriptSetting) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r settingsItemJSON) RawJSON() string { +func (r scriptSettingJSON) RawJSON() string { return r.raw } -type SettingsItemParam struct { +type ScriptSettingParam struct { // Whether Logpush is turned on for the Worker. Logpush param.Field[bool] `json:"logpush"` // List of Workers that will consume logs from the attached Worker. TailConsumers param.Field[[]ConsumerScriptItemParam] `json:"tail_consumers"` } -func (r SettingsItemParam) MarshalJSON() (data []byte, err error) { +func (r ScriptSettingParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } diff --git a/workers/scriptbinding.go b/workers/scriptbinding.go new file mode 100644 index 00000000000..5648643b742 --- /dev/null +++ b/workers/scriptbinding.go @@ -0,0 +1,213 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers + +import ( + "context" + "fmt" + "net/http" + "reflect" + + "github.com/cloudflare/cloudflare-go/v2/internal/apijson" + "github.com/cloudflare/cloudflare-go/v2/internal/param" + "github.com/cloudflare/cloudflare-go/v2/internal/requestconfig" + "github.com/cloudflare/cloudflare-go/v2/internal/shared" + "github.com/cloudflare/cloudflare-go/v2/option" + "github.com/tidwall/gjson" +) + +// ScriptBindingService contains methods and other services that help with +// interacting with the cloudflare API. Note, unlike clients, this service does not +// read variables from the environment automatically. You should not instantiate +// this service directly, and instead use the [NewScriptBindingService] method +// instead. +type ScriptBindingService struct { + Options []option.RequestOption +} + +// NewScriptBindingService generates a new service that applies the given options +// to each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewScriptBindingService(opts ...option.RequestOption) (r *ScriptBindingService) { + r = &ScriptBindingService{} + r.Options = opts + return +} + +// List the bindings for a Workers script. +func (r *ScriptBindingService) Get(ctx context.Context, query ScriptBindingGetParams, opts ...option.RequestOption) (res *[]ScriptBindingGetResponse, err error) { + opts = append(r.Options[:], opts...) + var env ScriptBindingGetResponseEnvelope + path := fmt.Sprintf("zones/%s/workers/script/bindings", query.ZoneID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +type ScriptBindingGetResponse struct { + // A JavaScript variable name for the binding. + Name string `json:"name,required"` + // Namespace identifier tag. + NamespaceID string `json:"namespace_id"` + // The class of resource that the binding provides. + Type ScriptBindingGetResponseType `json:"type,required"` + JSON scriptBindingGetResponseJSON `json:"-"` + union ScriptBindingGetResponseUnion +} + +// scriptBindingGetResponseJSON contains the JSON metadata for the struct +// [ScriptBindingGetResponse] +type scriptBindingGetResponseJSON struct { + Name apijson.Field + NamespaceID apijson.Field + Type apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r scriptBindingGetResponseJSON) RawJSON() string { + return r.raw +} + +func (r *ScriptBindingGetResponse) UnmarshalJSON(data []byte) (err error) { + err = apijson.UnmarshalRoot(data, &r.union) + if err != nil { + return err + } + return apijson.Port(r.union, &r) +} + +func (r ScriptBindingGetResponse) AsUnion() ScriptBindingGetResponseUnion { + return r.union +} + +// Union satisfied by [workers.KVNamespaceBinding] or +// [workers.ScriptBindingGetResponseWorkersWasmModuleBinding]. +type ScriptBindingGetResponseUnion interface { + implementsWorkersScriptBindingGetResponse() +} + +func init() { + apijson.RegisterUnion( + reflect.TypeOf((*ScriptBindingGetResponseUnion)(nil)).Elem(), + "", + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(KVNamespaceBinding{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(ScriptBindingGetResponseWorkersWasmModuleBinding{}), + }, + ) +} + +type ScriptBindingGetResponseWorkersWasmModuleBinding struct { + // A JavaScript variable name for the binding. + Name string `json:"name,required"` + // The class of resource that the binding provides. + Type ScriptBindingGetResponseWorkersWasmModuleBindingType `json:"type,required"` + JSON scriptBindingGetResponseWorkersWasmModuleBindingJSON `json:"-"` +} + +// scriptBindingGetResponseWorkersWasmModuleBindingJSON contains the JSON metadata +// for the struct [ScriptBindingGetResponseWorkersWasmModuleBinding] +type scriptBindingGetResponseWorkersWasmModuleBindingJSON struct { + Name apijson.Field + Type apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *ScriptBindingGetResponseWorkersWasmModuleBinding) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r scriptBindingGetResponseWorkersWasmModuleBindingJSON) RawJSON() string { + return r.raw +} + +func (r ScriptBindingGetResponseWorkersWasmModuleBinding) implementsWorkersScriptBindingGetResponse() { +} + +// The class of resource that the binding provides. +type ScriptBindingGetResponseWorkersWasmModuleBindingType string + +const ( + ScriptBindingGetResponseWorkersWasmModuleBindingTypeWasmModule ScriptBindingGetResponseWorkersWasmModuleBindingType = "wasm_module" +) + +func (r ScriptBindingGetResponseWorkersWasmModuleBindingType) IsKnown() bool { + switch r { + case ScriptBindingGetResponseWorkersWasmModuleBindingTypeWasmModule: + return true + } + return false +} + +// The class of resource that the binding provides. +type ScriptBindingGetResponseType string + +const ( + ScriptBindingGetResponseTypeKVNamespace ScriptBindingGetResponseType = "kv_namespace" + ScriptBindingGetResponseTypeWasmModule ScriptBindingGetResponseType = "wasm_module" +) + +func (r ScriptBindingGetResponseType) IsKnown() bool { + switch r { + case ScriptBindingGetResponseTypeKVNamespace, ScriptBindingGetResponseTypeWasmModule: + return true + } + return false +} + +type ScriptBindingGetParams struct { + // Identifier + ZoneID param.Field[string] `path:"zone_id,required"` +} + +type ScriptBindingGetResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result []ScriptBindingGetResponse `json:"result,required"` + // Whether the API call was successful + Success ScriptBindingGetResponseEnvelopeSuccess `json:"success,required"` + JSON scriptBindingGetResponseEnvelopeJSON `json:"-"` +} + +// scriptBindingGetResponseEnvelopeJSON contains the JSON metadata for the struct +// [ScriptBindingGetResponseEnvelope] +type scriptBindingGetResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *ScriptBindingGetResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r scriptBindingGetResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type ScriptBindingGetResponseEnvelopeSuccess bool + +const ( + ScriptBindingGetResponseEnvelopeSuccessTrue ScriptBindingGetResponseEnvelopeSuccess = true +) + +func (r ScriptBindingGetResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case ScriptBindingGetResponseEnvelopeSuccessTrue: + return true + } + return false +} diff --git a/workers/scriptbinding_test.go b/workers/scriptbinding_test.go new file mode 100644 index 00000000000..d8a843ba01a --- /dev/null +++ b/workers/scriptbinding_test.go @@ -0,0 +1,41 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/cloudflare/cloudflare-go/v2" + "github.com/cloudflare/cloudflare-go/v2/internal/testutil" + "github.com/cloudflare/cloudflare-go/v2/option" + "github.com/cloudflare/cloudflare-go/v2/workers" +) + +func TestScriptBindingGet(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Scripts.Bindings.Get(context.TODO(), workers.ScriptBindingGetParams{ + ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + }) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/workers/scriptcontent.go b/workers/scriptcontent.go index 71176c51bf4..b92b479c100 100644 --- a/workers/scriptcontent.go +++ b/workers/scriptcontent.go @@ -49,15 +49,6 @@ func (r *ScriptContentService) Update(ctx context.Context, scriptName string, pa return } -// Fetch script content only -func (r *ScriptContentService) Get(ctx context.Context, scriptName string, query ScriptContentGetParams, opts ...option.RequestOption) (res *http.Response, err error) { - opts = append(r.Options[:], opts...) - opts = append([]option.RequestOption{option.WithHeader("Accept", "string")}, opts...) - path := fmt.Sprintf("accounts/%s/workers/scripts/%s/content/v2", query.AccountID, scriptName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) - return -} - type ScriptContentUpdateParams struct { // Identifier AccountID param.Field[string] `path:"account_id,required"` @@ -130,8 +121,3 @@ func (r ScriptContentUpdateResponseEnvelopeSuccess) IsKnown() bool { } return false } - -type ScriptContentGetParams struct { - // Identifier - AccountID param.Field[string] `path:"account_id,required"` -} diff --git a/workers/scriptcontent_test.go b/workers/scriptcontent_test.go index a223f19c24c..aeb41c7e588 100644 --- a/workers/scriptcontent_test.go +++ b/workers/scriptcontent_test.go @@ -7,8 +7,6 @@ import ( "context" "errors" "io" - "net/http" - "net/http/httptest" "os" "testing" @@ -55,45 +53,3 @@ func TestScriptContentUpdateWithOptionalParams(t *testing.T) { t.Fatalf("err should be nil: %s", err.Error()) } } - -func TestScriptContentGet(t *testing.T) { - t.Skip("skipped: tests are disabled for the time being") - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Write([]byte("abc")) - })) - defer server.Close() - baseURL := server.URL - client := cloudflare.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), - option.WithAPIEmail("user@example.com"), - ) - resp, err := client.Workers.Scripts.Content.Get( - context.TODO(), - "this-is_my_script-01", - workers.ScriptContentGetParams{ - AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), - }, - ) - if err != nil { - var apierr *cloudflare.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - defer resp.Body.Close() - - b, err := io.ReadAll(resp.Body) - if err != nil { - var apierr *cloudflare.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - if !bytes.Equal(b, []byte("abc")) { - t.Fatalf("return value not %s: %s", "abc", b) - } -} diff --git a/workers/scriptcontentv2.go b/workers/scriptcontentv2.go new file mode 100644 index 00000000000..15729bd9291 --- /dev/null +++ b/workers/scriptcontentv2.go @@ -0,0 +1,45 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers + +import ( + "context" + "fmt" + "net/http" + + "github.com/cloudflare/cloudflare-go/v2/internal/param" + "github.com/cloudflare/cloudflare-go/v2/internal/requestconfig" + "github.com/cloudflare/cloudflare-go/v2/option" +) + +// ScriptContentV2Service contains methods and other services that help with +// interacting with the cloudflare API. Note, unlike clients, this service does not +// read variables from the environment automatically. You should not instantiate +// this service directly, and instead use the [NewScriptContentV2Service] method +// instead. +type ScriptContentV2Service struct { + Options []option.RequestOption +} + +// NewScriptContentV2Service generates a new service that applies the given options +// to each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewScriptContentV2Service(opts ...option.RequestOption) (r *ScriptContentV2Service) { + r = &ScriptContentV2Service{} + r.Options = opts + return +} + +// Fetch script content only +func (r *ScriptContentV2Service) Get(ctx context.Context, scriptName string, query ScriptContentV2GetParams, opts ...option.RequestOption) (res *http.Response, err error) { + opts = append(r.Options[:], opts...) + opts = append([]option.RequestOption{option.WithHeader("Accept", "string")}, opts...) + path := fmt.Sprintf("accounts/%s/workers/scripts/%s/content/v2", query.AccountID, scriptName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) + return +} + +type ScriptContentV2GetParams struct { + // Identifier + AccountID param.Field[string] `path:"account_id,required"` +} diff --git a/workers/scriptcontentv2_test.go b/workers/scriptcontentv2_test.go new file mode 100644 index 00000000000..284d164689d --- /dev/null +++ b/workers/scriptcontentv2_test.go @@ -0,0 +1,59 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers_test + +import ( + "bytes" + "context" + "errors" + "io" + "net/http" + "net/http/httptest" + "testing" + + "github.com/cloudflare/cloudflare-go/v2" + "github.com/cloudflare/cloudflare-go/v2/option" + "github.com/cloudflare/cloudflare-go/v2/workers" +) + +func TestScriptContentV2Get(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(200) + w.Write([]byte("abc")) + })) + defer server.Close() + baseURL := server.URL + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + resp, err := client.Workers.Scripts.ContentV2.Get( + context.TODO(), + "this-is_my_script-01", + workers.ScriptContentV2GetParams{ + AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + }, + ) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + defer resp.Body.Close() + + b, err := io.ReadAll(resp.Body) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + if !bytes.Equal(b, []byte("abc")) { + t.Fatalf("return value not %s: %s", "abc", b) + } +} diff --git a/workers/scriptsetting.go b/workers/scriptsetting.go index 8d2d931f126..fa7b57fe189 100644 --- a/workers/scriptsetting.go +++ b/workers/scriptsetting.go @@ -35,9 +35,9 @@ func NewScriptSettingService(opts ...option.RequestOption) (r *ScriptSettingServ // Patch script-level settings when using // [Worker Versions](https://developers.cloudflare.com/api/operations/worker-versions-list-versions). // Includes Logpush and Tail Consumers. -func (r *ScriptSettingService) Edit(ctx context.Context, scriptName string, params ScriptSettingEditParams, opts ...option.RequestOption) (res *SettingsItem, err error) { +func (r *ScriptSettingService) Edit(ctx context.Context, scriptName string, params ScriptSettingEditParams, opts ...option.RequestOption) (res *ScriptSetting, err error) { opts = append(r.Options[:], opts...) - var env Setting + var env ScriptSettingEditResponseEnvelope path := fmt.Sprintf("accounts/%s/workers/scripts/%s/script-settings", params.AccountID, scriptName) err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, params, &env, opts...) if err != nil { @@ -50,9 +50,9 @@ func (r *ScriptSettingService) Edit(ctx context.Context, scriptName string, para // Get script-level settings when using // [Worker Versions](https://developers.cloudflare.com/api/operations/worker-versions-list-versions). // Includes Logpush and Tail Consumers. -func (r *ScriptSettingService) Get(ctx context.Context, scriptName string, query ScriptSettingGetParams, opts ...option.RequestOption) (res *SettingsItem, err error) { +func (r *ScriptSettingService) Get(ctx context.Context, scriptName string, query ScriptSettingGetParams, opts ...option.RequestOption) (res *ScriptSetting, err error) { opts = append(r.Options[:], opts...) - var env Setting + var env ScriptSettingGetResponseEnvelope path := fmt.Sprintf("accounts/%s/workers/scripts/%s/script-settings", query.AccountID, scriptName) err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &env, opts...) if err != nil { @@ -75,17 +75,18 @@ func (r ScriptSettingEditParams) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -type Setting struct { +type ScriptSettingEditResponseEnvelope struct { Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` - Result SettingsItem `json:"result,required"` + Result ScriptSetting `json:"result,required"` // Whether the API call was successful - Success SettingSuccess `json:"success,required"` - JSON settingJSON `json:"-"` + Success ScriptSettingEditResponseEnvelopeSuccess `json:"success,required"` + JSON scriptSettingEditResponseEnvelopeJSON `json:"-"` } -// settingJSON contains the JSON metadata for the struct [Setting] -type settingJSON struct { +// scriptSettingEditResponseEnvelopeJSON contains the JSON metadata for the struct +// [ScriptSettingEditResponseEnvelope] +type scriptSettingEditResponseEnvelopeJSON struct { Errors apijson.Field Messages apijson.Field Result apijson.Field @@ -94,24 +95,24 @@ type settingJSON struct { ExtraFields map[string]apijson.Field } -func (r *Setting) UnmarshalJSON(data []byte) (err error) { +func (r *ScriptSettingEditResponseEnvelope) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r settingJSON) RawJSON() string { +func (r scriptSettingEditResponseEnvelopeJSON) RawJSON() string { return r.raw } // Whether the API call was successful -type SettingSuccess bool +type ScriptSettingEditResponseEnvelopeSuccess bool const ( - SettingSuccessTrue SettingSuccess = true + ScriptSettingEditResponseEnvelopeSuccessTrue ScriptSettingEditResponseEnvelopeSuccess = true ) -func (r SettingSuccess) IsKnown() bool { +func (r ScriptSettingEditResponseEnvelopeSuccess) IsKnown() bool { switch r { - case SettingSuccessTrue: + case ScriptSettingEditResponseEnvelopeSuccessTrue: return true } return false @@ -121,3 +122,46 @@ type ScriptSettingGetParams struct { // Identifier AccountID param.Field[string] `path:"account_id,required"` } + +type ScriptSettingGetResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result ScriptSetting `json:"result,required"` + // Whether the API call was successful + Success ScriptSettingGetResponseEnvelopeSuccess `json:"success,required"` + JSON scriptSettingGetResponseEnvelopeJSON `json:"-"` +} + +// scriptSettingGetResponseEnvelopeJSON contains the JSON metadata for the struct +// [ScriptSettingGetResponseEnvelope] +type scriptSettingGetResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *ScriptSettingGetResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r scriptSettingGetResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type ScriptSettingGetResponseEnvelopeSuccess bool + +const ( + ScriptSettingGetResponseEnvelopeSuccessTrue ScriptSettingGetResponseEnvelopeSuccess = true +) + +func (r ScriptSettingGetResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case ScriptSettingGetResponseEnvelopeSuccessTrue: + return true + } + return false +} diff --git a/workers/scriptusagemodel.go b/workers/scriptusagemodel.go new file mode 100644 index 00000000000..d108b972352 --- /dev/null +++ b/workers/scriptusagemodel.go @@ -0,0 +1,203 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers + +import ( + "context" + "fmt" + "net/http" + + "github.com/cloudflare/cloudflare-go/v2/internal/apijson" + "github.com/cloudflare/cloudflare-go/v2/internal/param" + "github.com/cloudflare/cloudflare-go/v2/internal/requestconfig" + "github.com/cloudflare/cloudflare-go/v2/internal/shared" + "github.com/cloudflare/cloudflare-go/v2/option" +) + +// ScriptUsageModelService contains methods and other services that help with +// interacting with the cloudflare API. Note, unlike clients, this service does not +// read variables from the environment automatically. You should not instantiate +// this service directly, and instead use the [NewScriptUsageModelService] method +// instead. +type ScriptUsageModelService struct { + Options []option.RequestOption +} + +// NewScriptUsageModelService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewScriptUsageModelService(opts ...option.RequestOption) (r *ScriptUsageModelService) { + r = &ScriptUsageModelService{} + r.Options = opts + return +} + +// Updates the Usage Model for a given Worker. Requires a Workers Paid +// subscription. +func (r *ScriptUsageModelService) Update(ctx context.Context, scriptName string, params ScriptUsageModelUpdateParams, opts ...option.RequestOption) (res *ScriptUsageModelUpdateResponse, err error) { + opts = append(r.Options[:], opts...) + var env ScriptUsageModelUpdateResponseEnvelope + path := fmt.Sprintf("accounts/%s/workers/scripts/%s/usage-model", params.AccountID, scriptName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPut, path, params, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +// Fetches the Usage Model for a given Worker. +func (r *ScriptUsageModelService) Get(ctx context.Context, scriptName string, query ScriptUsageModelGetParams, opts ...option.RequestOption) (res *ScriptUsageModelGetResponse, err error) { + opts = append(r.Options[:], opts...) + var env ScriptUsageModelGetResponseEnvelope + path := fmt.Sprintf("accounts/%s/workers/scripts/%s/usage-model", query.AccountID, scriptName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +type ScriptUsageModelUpdateResponse struct { + UsageModel interface{} `json:"usage_model"` + JSON scriptUsageModelUpdateResponseJSON `json:"-"` +} + +// scriptUsageModelUpdateResponseJSON contains the JSON metadata for the struct +// [ScriptUsageModelUpdateResponse] +type scriptUsageModelUpdateResponseJSON struct { + UsageModel apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *ScriptUsageModelUpdateResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r scriptUsageModelUpdateResponseJSON) RawJSON() string { + return r.raw +} + +type ScriptUsageModelGetResponse struct { + UsageModel interface{} `json:"usage_model"` + JSON scriptUsageModelGetResponseJSON `json:"-"` +} + +// scriptUsageModelGetResponseJSON contains the JSON metadata for the struct +// [ScriptUsageModelGetResponse] +type scriptUsageModelGetResponseJSON struct { + UsageModel apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *ScriptUsageModelGetResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r scriptUsageModelGetResponseJSON) RawJSON() string { + return r.raw +} + +type ScriptUsageModelUpdateParams struct { + // Identifier + AccountID param.Field[string] `path:"account_id,required"` + Body param.Field[string] `json:"body,required"` +} + +func (r ScriptUsageModelUpdateParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r.Body) +} + +type ScriptUsageModelUpdateResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result ScriptUsageModelUpdateResponse `json:"result,required"` + // Whether the API call was successful + Success ScriptUsageModelUpdateResponseEnvelopeSuccess `json:"success,required"` + JSON scriptUsageModelUpdateResponseEnvelopeJSON `json:"-"` +} + +// scriptUsageModelUpdateResponseEnvelopeJSON contains the JSON metadata for the +// struct [ScriptUsageModelUpdateResponseEnvelope] +type scriptUsageModelUpdateResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *ScriptUsageModelUpdateResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r scriptUsageModelUpdateResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type ScriptUsageModelUpdateResponseEnvelopeSuccess bool + +const ( + ScriptUsageModelUpdateResponseEnvelopeSuccessTrue ScriptUsageModelUpdateResponseEnvelopeSuccess = true +) + +func (r ScriptUsageModelUpdateResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case ScriptUsageModelUpdateResponseEnvelopeSuccessTrue: + return true + } + return false +} + +type ScriptUsageModelGetParams struct { + // Identifier + AccountID param.Field[string] `path:"account_id,required"` +} + +type ScriptUsageModelGetResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result ScriptUsageModelGetResponse `json:"result,required"` + // Whether the API call was successful + Success ScriptUsageModelGetResponseEnvelopeSuccess `json:"success,required"` + JSON scriptUsageModelGetResponseEnvelopeJSON `json:"-"` +} + +// scriptUsageModelGetResponseEnvelopeJSON contains the JSON metadata for the +// struct [ScriptUsageModelGetResponseEnvelope] +type scriptUsageModelGetResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *ScriptUsageModelGetResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r scriptUsageModelGetResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type ScriptUsageModelGetResponseEnvelopeSuccess bool + +const ( + ScriptUsageModelGetResponseEnvelopeSuccessTrue ScriptUsageModelGetResponseEnvelopeSuccess = true +) + +func (r ScriptUsageModelGetResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case ScriptUsageModelGetResponseEnvelopeSuccessTrue: + return true + } + return false +} diff --git a/workers/scriptusagemodel_test.go b/workers/scriptusagemodel_test.go new file mode 100644 index 00000000000..0546a32685d --- /dev/null +++ b/workers/scriptusagemodel_test.go @@ -0,0 +1,76 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/cloudflare/cloudflare-go/v2" + "github.com/cloudflare/cloudflare-go/v2/internal/testutil" + "github.com/cloudflare/cloudflare-go/v2/option" + "github.com/cloudflare/cloudflare-go/v2/workers" +) + +func TestScriptUsageModelUpdate(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Scripts.UsageModel.Update( + context.TODO(), + "this-is_my_script-01", + workers.ScriptUsageModelUpdateParams{ + AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + Body: cloudflare.F("{'usage_model': 'unbound'}"), + }, + ) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestScriptUsageModelGet(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Scripts.UsageModel.Get( + context.TODO(), + "this-is_my_script-01", + workers.ScriptUsageModelGetParams{ + AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + }, + ) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/workers/scriptversion.go b/workers/scriptversion.go index 9f106aa7ef1..a63d69427cd 100644 --- a/workers/scriptversion.go +++ b/workers/scriptversion.go @@ -24,7 +24,8 @@ import ( // this service directly, and instead use the [NewScriptVersionService] method // instead. type ScriptVersionService struct { - Options []option.RequestOption + Options []option.RequestOption + Settings *ScriptVersionSettingService } // NewScriptVersionService generates a new service that applies the given options @@ -33,6 +34,7 @@ type ScriptVersionService struct { func NewScriptVersionService(opts ...option.RequestOption) (r *ScriptVersionService) { r = &ScriptVersionService{} r.Options = opts + r.Settings = NewScriptVersionSettingService(opts...) return } diff --git a/workers/scriptversionsetting.go b/workers/scriptversionsetting.go new file mode 100644 index 00000000000..171214f563d --- /dev/null +++ b/workers/scriptversionsetting.go @@ -0,0 +1,334 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers + +import ( + "context" + "fmt" + "net/http" + "reflect" + + "github.com/cloudflare/cloudflare-go/v2/internal/apijson" + "github.com/cloudflare/cloudflare-go/v2/internal/param" + "github.com/cloudflare/cloudflare-go/v2/internal/requestconfig" + "github.com/cloudflare/cloudflare-go/v2/internal/shared" + "github.com/cloudflare/cloudflare-go/v2/option" + "github.com/tidwall/gjson" +) + +// ScriptVersionSettingService contains methods and other services that help with +// interacting with the cloudflare API. Note, unlike clients, this service does not +// read variables from the environment automatically. You should not instantiate +// this service directly, and instead use the [NewScriptVersionSettingService] +// method instead. +type ScriptVersionSettingService struct { + Options []option.RequestOption +} + +// NewScriptVersionSettingService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewScriptVersionSettingService(opts ...option.RequestOption) (r *ScriptVersionSettingService) { + r = &ScriptVersionSettingService{} + r.Options = opts + return +} + +// Patch metadata or config, such as bindings or usage model +func (r *ScriptVersionSettingService) Edit(ctx context.Context, scriptName string, params ScriptVersionSettingEditParams, opts ...option.RequestOption) (res *Settings, err error) { + opts = append(r.Options[:], opts...) + var env ScriptVersionSettingEditResponseEnvelope + path := fmt.Sprintf("accounts/%s/workers/scripts/%s/settings", params.AccountID, scriptName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, params, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +// Get metadata and config, such as bindings or usage model +func (r *ScriptVersionSettingService) Get(ctx context.Context, scriptName string, query ScriptVersionSettingGetParams, opts ...option.RequestOption) (res *Settings, err error) { + opts = append(r.Options[:], opts...) + var env ScriptVersionSettingGetResponseEnvelope + path := fmt.Sprintf("accounts/%s/workers/scripts/%s/settings", query.AccountID, scriptName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +type CompatibilityFlags = string + +type CompatibilityFlagsParam = string + +type Settings struct { + // List of bindings attached to this Worker + Bindings []Binding `json:"bindings"` + // Opt your Worker into changes after this date + CompatibilityDate string `json:"compatibility_date"` + // Opt your Worker into specific changes + CompatibilityFlags []CompatibilityFlags `json:"compatibility_flags"` + // Whether Logpush is turned on for the Worker. + Logpush bool `json:"logpush"` + // Migrations to apply for Durable Objects associated with this Worker. + Migrations SettingsMigrations `json:"migrations"` + Placement PlacementConfiguration `json:"placement"` + // Tags to help you manage your Workers + Tags []Tags `json:"tags"` + // List of Workers that will consume logs from the attached Worker. + TailConsumers []ConsumerScriptItem `json:"tail_consumers"` + // Specifies the usage model for the Worker (e.g. 'bundled' or 'unbound'). + UsageModel string `json:"usage_model"` + JSON settingsJSON `json:"-"` +} + +// settingsJSON contains the JSON metadata for the struct [Settings] +type settingsJSON struct { + Bindings apijson.Field + CompatibilityDate apijson.Field + CompatibilityFlags apijson.Field + Logpush apijson.Field + Migrations apijson.Field + Placement apijson.Field + Tags apijson.Field + TailConsumers apijson.Field + UsageModel apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *Settings) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r settingsJSON) RawJSON() string { + return r.raw +} + +// Migrations to apply for Durable Objects associated with this Worker. +type SettingsMigrations struct { + // Tag to set as the latest migration tag. + NewTag string `json:"new_tag"` + // Tag used to verify against the latest migration tag for this Worker. If they + // don't match, the upload is rejected. + OldTag string `json:"old_tag"` + DeletedClasses interface{} `json:"deleted_classes,required"` + NewClasses interface{} `json:"new_classes,required"` + RenamedClasses interface{} `json:"renamed_classes,required"` + TransferredClasses interface{} `json:"transferred_classes,required"` + Steps interface{} `json:"steps,required"` + JSON settingsMigrationsJSON `json:"-"` + union SettingsMigrationsUnion +} + +// settingsMigrationsJSON contains the JSON metadata for the struct +// [SettingsMigrations] +type settingsMigrationsJSON struct { + NewTag apijson.Field + OldTag apijson.Field + DeletedClasses apijson.Field + NewClasses apijson.Field + RenamedClasses apijson.Field + TransferredClasses apijson.Field + Steps apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r settingsMigrationsJSON) RawJSON() string { + return r.raw +} + +func (r *SettingsMigrations) UnmarshalJSON(data []byte) (err error) { + err = apijson.UnmarshalRoot(data, &r.union) + if err != nil { + return err + } + return apijson.Port(r.union, &r) +} + +func (r SettingsMigrations) AsUnion() SettingsMigrationsUnion { + return r.union +} + +// Migrations to apply for Durable Objects associated with this Worker. +// +// Union satisfied by [workers.SingleStepMigration] or [workers.SteppedMigration]. +type SettingsMigrationsUnion interface { + implementsWorkersSettingsMigrations() +} + +func init() { + apijson.RegisterUnion( + reflect.TypeOf((*SettingsMigrationsUnion)(nil)).Elem(), + "", + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(SingleStepMigration{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(SteppedMigration{}), + }, + ) +} + +type SettingsParam struct { + // List of bindings attached to this Worker + Bindings param.Field[[]BindingUnionParam] `json:"bindings"` + // Opt your Worker into changes after this date + CompatibilityDate param.Field[string] `json:"compatibility_date"` + // Opt your Worker into specific changes + CompatibilityFlags param.Field[[]CompatibilityFlagsParam] `json:"compatibility_flags"` + // Whether Logpush is turned on for the Worker. + Logpush param.Field[bool] `json:"logpush"` + // Migrations to apply for Durable Objects associated with this Worker. + Migrations param.Field[SettingsMigrationsUnionParam] `json:"migrations"` + Placement param.Field[PlacementConfigurationParam] `json:"placement"` + // Tags to help you manage your Workers + Tags param.Field[[]TagsParam] `json:"tags"` + // List of Workers that will consume logs from the attached Worker. + TailConsumers param.Field[[]ConsumerScriptItemParam] `json:"tail_consumers"` + // Specifies the usage model for the Worker (e.g. 'bundled' or 'unbound'). + UsageModel param.Field[string] `json:"usage_model"` +} + +func (r SettingsParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Migrations to apply for Durable Objects associated with this Worker. +type SettingsMigrationsParam struct { + // Tag to set as the latest migration tag. + NewTag param.Field[string] `json:"new_tag"` + // Tag used to verify against the latest migration tag for this Worker. If they + // don't match, the upload is rejected. + OldTag param.Field[string] `json:"old_tag"` + DeletedClasses param.Field[interface{}] `json:"deleted_classes,required"` + NewClasses param.Field[interface{}] `json:"new_classes,required"` + RenamedClasses param.Field[interface{}] `json:"renamed_classes,required"` + TransferredClasses param.Field[interface{}] `json:"transferred_classes,required"` + Steps param.Field[interface{}] `json:"steps,required"` +} + +func (r SettingsMigrationsParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +func (r SettingsMigrationsParam) implementsWorkersSettingsMigrationsUnionParam() {} + +// Migrations to apply for Durable Objects associated with this Worker. +// +// Satisfied by [workers.SingleStepMigrationParam], +// [workers.SteppedMigrationParam], [SettingsMigrationsParam]. +type SettingsMigrationsUnionParam interface { + implementsWorkersSettingsMigrationsUnionParam() +} + +type Tags = string + +type TagsParam = string + +type ScriptVersionSettingEditParams struct { + // Identifier + AccountID param.Field[string] `path:"account_id,required"` + Settings param.Field[SettingsParam] `json:"settings"` +} + +func (r ScriptVersionSettingEditParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +type ScriptVersionSettingEditResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result Settings `json:"result,required"` + // Whether the API call was successful + Success ScriptVersionSettingEditResponseEnvelopeSuccess `json:"success,required"` + JSON scriptVersionSettingEditResponseEnvelopeJSON `json:"-"` +} + +// scriptVersionSettingEditResponseEnvelopeJSON contains the JSON metadata for the +// struct [ScriptVersionSettingEditResponseEnvelope] +type scriptVersionSettingEditResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *ScriptVersionSettingEditResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r scriptVersionSettingEditResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type ScriptVersionSettingEditResponseEnvelopeSuccess bool + +const ( + ScriptVersionSettingEditResponseEnvelopeSuccessTrue ScriptVersionSettingEditResponseEnvelopeSuccess = true +) + +func (r ScriptVersionSettingEditResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case ScriptVersionSettingEditResponseEnvelopeSuccessTrue: + return true + } + return false +} + +type ScriptVersionSettingGetParams struct { + // Identifier + AccountID param.Field[string] `path:"account_id,required"` +} + +type ScriptVersionSettingGetResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result Settings `json:"result,required"` + // Whether the API call was successful + Success ScriptVersionSettingGetResponseEnvelopeSuccess `json:"success,required"` + JSON scriptVersionSettingGetResponseEnvelopeJSON `json:"-"` +} + +// scriptVersionSettingGetResponseEnvelopeJSON contains the JSON metadata for the +// struct [ScriptVersionSettingGetResponseEnvelope] +type scriptVersionSettingGetResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *ScriptVersionSettingGetResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r scriptVersionSettingGetResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type ScriptVersionSettingGetResponseEnvelopeSuccess bool + +const ( + ScriptVersionSettingGetResponseEnvelopeSuccessTrue ScriptVersionSettingGetResponseEnvelopeSuccess = true +) + +func (r ScriptVersionSettingGetResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case ScriptVersionSettingGetResponseEnvelopeSuccessTrue: + return true + } + return false +} diff --git a/workers/scriptversionsetting_test.go b/workers/scriptversionsetting_test.go new file mode 100644 index 00000000000..0911cdd6a51 --- /dev/null +++ b/workers/scriptversionsetting_test.go @@ -0,0 +1,134 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/cloudflare/cloudflare-go/v2" + "github.com/cloudflare/cloudflare-go/v2/internal/testutil" + "github.com/cloudflare/cloudflare-go/v2/option" + "github.com/cloudflare/cloudflare-go/v2/workers" +) + +func TestScriptVersionSettingEditWithOptionalParams(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Scripts.Versions.Settings.Edit( + context.TODO(), + "this-is_my_script-01", + workers.ScriptVersionSettingEditParams{ + AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + Settings: cloudflare.F(workers.SettingsParam{ + Bindings: cloudflare.F([]workers.BindingUnionParam{workers.KVNamespaceBindingParam{ + Type: cloudflare.F(workers.KVNamespaceBindingTypeKVNamespace), + }, workers.KVNamespaceBindingParam{ + Type: cloudflare.F(workers.KVNamespaceBindingTypeKVNamespace), + }, workers.KVNamespaceBindingParam{ + Type: cloudflare.F(workers.KVNamespaceBindingTypeKVNamespace), + }}), + CompatibilityDate: cloudflare.F("2022-04-05"), + CompatibilityFlags: cloudflare.F([]workers.CompatibilityFlagsParam{"formdata_parser_supports_files", "formdata_parser_supports_files", "formdata_parser_supports_files"}), + Logpush: cloudflare.F(false), + Migrations: cloudflare.F[workers.SettingsMigrationsUnionParam](workers.SingleStepMigrationParam{ + NewTag: cloudflare.F("v2"), + OldTag: cloudflare.F("v1"), + DeletedClasses: cloudflare.F([]string{"string", "string", "string"}), + NewClasses: cloudflare.F([]string{"string", "string", "string"}), + RenamedClasses: cloudflare.F([]workers.SingleStepMigrationRenamedClassParam{{ + From: cloudflare.F("string"), + To: cloudflare.F("string"), + }, { + From: cloudflare.F("string"), + To: cloudflare.F("string"), + }, { + From: cloudflare.F("string"), + To: cloudflare.F("string"), + }}), + TransferredClasses: cloudflare.F([]workers.SingleStepMigrationTransferredClassParam{{ + From: cloudflare.F("string"), + FromScript: cloudflare.F("string"), + To: cloudflare.F("string"), + }, { + From: cloudflare.F("string"), + FromScript: cloudflare.F("string"), + To: cloudflare.F("string"), + }, { + From: cloudflare.F("string"), + FromScript: cloudflare.F("string"), + To: cloudflare.F("string"), + }}), + }), + Placement: cloudflare.F(workers.PlacementConfigurationParam{ + Mode: cloudflare.F(workers.PlacementConfigurationModeSmart), + }), + Tags: cloudflare.F([]workers.TagsParam{"my-tag", "my-tag", "my-tag"}), + TailConsumers: cloudflare.F([]workers.ConsumerScriptItemParam{{ + Environment: cloudflare.F("production"), + Namespace: cloudflare.F("my-namespace"), + Service: cloudflare.F("my-log-consumer"), + }, { + Environment: cloudflare.F("production"), + Namespace: cloudflare.F("my-namespace"), + Service: cloudflare.F("my-log-consumer"), + }, { + Environment: cloudflare.F("production"), + Namespace: cloudflare.F("my-namespace"), + Service: cloudflare.F("my-log-consumer"), + }}), + UsageModel: cloudflare.F("unbound"), + }), + }, + ) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestScriptVersionSettingGet(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Scripts.Versions.Settings.Get( + context.TODO(), + "this-is_my_script-01", + workers.ScriptVersionSettingGetParams{ + AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + }, + ) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/workers/service.go b/workers/service.go new file mode 100644 index 00000000000..aa3aad35b58 --- /dev/null +++ b/workers/service.go @@ -0,0 +1,26 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers + +import ( + "github.com/cloudflare/cloudflare-go/v2/option" +) + +// ServiceService contains methods and other services that help with interacting +// with the cloudflare API. Note, unlike clients, this service does not read +// variables from the environment automatically. You should not instantiate this +// service directly, and instead use the [NewServiceService] method instead. +type ServiceService struct { + Options []option.RequestOption + Environments *ServiceEnvironmentService +} + +// NewServiceService generates a new service that applies the given options to each +// request. These options are applied after the parent client's options (if there +// is one), and before any request-specific options. +func NewServiceService(opts ...option.RequestOption) (r *ServiceService) { + r = &ServiceService{} + r.Options = opts + r.Environments = NewServiceEnvironmentService(opts...) + return +} diff --git a/workers/serviceenvironment.go b/workers/serviceenvironment.go new file mode 100644 index 00000000000..7dbef3c0421 --- /dev/null +++ b/workers/serviceenvironment.go @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers + +import ( + "github.com/cloudflare/cloudflare-go/v2/option" +) + +// ServiceEnvironmentService contains methods and other services that help with +// interacting with the cloudflare API. Note, unlike clients, this service does not +// read variables from the environment automatically. You should not instantiate +// this service directly, and instead use the [NewServiceEnvironmentService] method +// instead. +type ServiceEnvironmentService struct { + Options []option.RequestOption + Content *ServiceEnvironmentContentService + Settings *ServiceEnvironmentSettingService +} + +// NewServiceEnvironmentService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewServiceEnvironmentService(opts ...option.RequestOption) (r *ServiceEnvironmentService) { + r = &ServiceEnvironmentService{} + r.Options = opts + r.Content = NewServiceEnvironmentContentService(opts...) + r.Settings = NewServiceEnvironmentSettingService(opts...) + return +} diff --git a/workers/serviceenvironmentcontent.go b/workers/serviceenvironmentcontent.go new file mode 100644 index 00000000000..034eb06cec1 --- /dev/null +++ b/workers/serviceenvironmentcontent.go @@ -0,0 +1,137 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers + +import ( + "bytes" + "context" + "fmt" + "io" + "mime/multipart" + "net/http" + + "github.com/cloudflare/cloudflare-go/v2/internal/apiform" + "github.com/cloudflare/cloudflare-go/v2/internal/apijson" + "github.com/cloudflare/cloudflare-go/v2/internal/param" + "github.com/cloudflare/cloudflare-go/v2/internal/requestconfig" + "github.com/cloudflare/cloudflare-go/v2/internal/shared" + "github.com/cloudflare/cloudflare-go/v2/option" +) + +// ServiceEnvironmentContentService contains methods and other services that help +// with interacting with the cloudflare API. Note, unlike clients, this service +// does not read variables from the environment automatically. You should not +// instantiate this service directly, and instead use the +// [NewServiceEnvironmentContentService] method instead. +type ServiceEnvironmentContentService struct { + Options []option.RequestOption +} + +// NewServiceEnvironmentContentService generates a new service that applies the +// given options to each request. These options are applied after the parent +// client's options (if there is one), and before any request-specific options. +func NewServiceEnvironmentContentService(opts ...option.RequestOption) (r *ServiceEnvironmentContentService) { + r = &ServiceEnvironmentContentService{} + r.Options = opts + return +} + +// Put script content from a worker with an environment +func (r *ServiceEnvironmentContentService) Update(ctx context.Context, serviceName string, environmentName string, params ServiceEnvironmentContentUpdateParams, opts ...option.RequestOption) (res *Script, err error) { + opts = append(r.Options[:], opts...) + var env ServiceEnvironmentContentUpdateResponseEnvelope + path := fmt.Sprintf("accounts/%s/workers/services/%s/environments/%s/content", params.AccountID, serviceName, environmentName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPut, path, params, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +// Get script content from a worker with an environment +func (r *ServiceEnvironmentContentService) Get(ctx context.Context, serviceName string, environmentName string, query ServiceEnvironmentContentGetParams, opts ...option.RequestOption) (res *http.Response, err error) { + opts = append(r.Options[:], opts...) + opts = append([]option.RequestOption{option.WithHeader("Accept", "string")}, opts...) + path := fmt.Sprintf("accounts/%s/workers/services/%s/environments/%s/content", query.AccountID, serviceName, environmentName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) + return +} + +type ServiceEnvironmentContentUpdateParams struct { + // Identifier + AccountID param.Field[string] `path:"account_id,required"` + // A module comprising a Worker script, often a javascript file. Multiple modules + // may be provided as separate named parts, but at least one module must be + // present. This should be referenced either in the metadata as `main_module` + // (esm)/`body_part` (service worker) or as a header `CF-WORKER-MAIN-MODULE-PART` + // (esm) /`CF-WORKER-BODY-PART` (service worker) by part name. + AnyPartName param.Field[[]io.Reader] `json:"" format:"binary"` + // JSON encoded metadata about the uploaded parts and Worker configuration. + Metadata param.Field[shared.UnnamedSchemaRefEe1e79edcb234d14c4dd266880f2fd24Param] `json:"metadata"` + CfWorkerBodyPart param.Field[string] `header:"CF-WORKER-BODY-PART"` + CfWorkerMainModulePart param.Field[string] `header:"CF-WORKER-MAIN-MODULE-PART"` +} + +func (r ServiceEnvironmentContentUpdateParams) MarshalMultipart() (data []byte, contentType string, err error) { + buf := bytes.NewBuffer(nil) + writer := multipart.NewWriter(buf) + err = apiform.MarshalRoot(r, writer) + if err != nil { + writer.Close() + return nil, "", err + } + err = writer.Close() + if err != nil { + return nil, "", err + } + return buf.Bytes(), writer.FormDataContentType(), nil +} + +type ServiceEnvironmentContentUpdateResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result Script `json:"result,required"` + // Whether the API call was successful + Success ServiceEnvironmentContentUpdateResponseEnvelopeSuccess `json:"success,required"` + JSON serviceEnvironmentContentUpdateResponseEnvelopeJSON `json:"-"` +} + +// serviceEnvironmentContentUpdateResponseEnvelopeJSON contains the JSON metadata +// for the struct [ServiceEnvironmentContentUpdateResponseEnvelope] +type serviceEnvironmentContentUpdateResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *ServiceEnvironmentContentUpdateResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r serviceEnvironmentContentUpdateResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type ServiceEnvironmentContentUpdateResponseEnvelopeSuccess bool + +const ( + ServiceEnvironmentContentUpdateResponseEnvelopeSuccessTrue ServiceEnvironmentContentUpdateResponseEnvelopeSuccess = true +) + +func (r ServiceEnvironmentContentUpdateResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case ServiceEnvironmentContentUpdateResponseEnvelopeSuccessTrue: + return true + } + return false +} + +type ServiceEnvironmentContentGetParams struct { + // Identifier + AccountID param.Field[string] `path:"account_id,required"` +} diff --git a/workers/serviceenvironmentcontent_test.go b/workers/serviceenvironmentcontent_test.go new file mode 100644 index 00000000000..4c484047fa2 --- /dev/null +++ b/workers/serviceenvironmentcontent_test.go @@ -0,0 +1,101 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers_test + +import ( + "bytes" + "context" + "errors" + "io" + "net/http" + "net/http/httptest" + "os" + "testing" + + "github.com/cloudflare/cloudflare-go/v2" + "github.com/cloudflare/cloudflare-go/v2/internal/shared" + "github.com/cloudflare/cloudflare-go/v2/internal/testutil" + "github.com/cloudflare/cloudflare-go/v2/option" + "github.com/cloudflare/cloudflare-go/v2/workers" +) + +func TestServiceEnvironmentContentUpdateWithOptionalParams(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Services.Environments.Content.Update( + context.TODO(), + "my-worker", + "production", + workers.ServiceEnvironmentContentUpdateParams{ + AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + AnyPartName: cloudflare.F([]io.Reader{io.Reader(bytes.NewBuffer([]byte("some file contents"))), io.Reader(bytes.NewBuffer([]byte("some file contents"))), io.Reader(bytes.NewBuffer([]byte("some file contents")))}), + Metadata: cloudflare.F(shared.UnnamedSchemaRefEe1e79edcb234d14c4dd266880f2fd24Param{ + BodyPart: cloudflare.F("worker.js"), + MainModule: cloudflare.F("worker.js"), + }), + CfWorkerBodyPart: cloudflare.F("string"), + CfWorkerMainModulePart: cloudflare.F("string"), + }, + ) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestServiceEnvironmentContentGet(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(200) + w.Write([]byte("abc")) + })) + defer server.Close() + baseURL := server.URL + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + resp, err := client.Workers.Services.Environments.Content.Get( + context.TODO(), + "my-worker", + "production", + workers.ServiceEnvironmentContentGetParams{ + AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + }, + ) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + defer resp.Body.Close() + + b, err := io.ReadAll(resp.Body) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + if !bytes.Equal(b, []byte("abc")) { + t.Fatalf("return value not %s: %s", "abc", b) + } +} diff --git a/workers/serviceenvironmentsetting.go b/workers/serviceenvironmentsetting.go new file mode 100644 index 00000000000..ca26c265c1a --- /dev/null +++ b/workers/serviceenvironmentsetting.go @@ -0,0 +1,179 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers + +import ( + "context" + "fmt" + "net/http" + + "github.com/cloudflare/cloudflare-go/v2/internal/apijson" + "github.com/cloudflare/cloudflare-go/v2/internal/param" + "github.com/cloudflare/cloudflare-go/v2/internal/requestconfig" + "github.com/cloudflare/cloudflare-go/v2/internal/shared" + "github.com/cloudflare/cloudflare-go/v2/option" +) + +// ServiceEnvironmentSettingService contains methods and other services that help +// with interacting with the cloudflare API. Note, unlike clients, this service +// does not read variables from the environment automatically. You should not +// instantiate this service directly, and instead use the +// [NewServiceEnvironmentSettingService] method instead. +type ServiceEnvironmentSettingService struct { + Options []option.RequestOption +} + +// NewServiceEnvironmentSettingService generates a new service that applies the +// given options to each request. These options are applied after the parent +// client's options (if there is one), and before any request-specific options. +func NewServiceEnvironmentSettingService(opts ...option.RequestOption) (r *ServiceEnvironmentSettingService) { + r = &ServiceEnvironmentSettingService{} + r.Options = opts + return +} + +// Patch script metadata, such as bindings +func (r *ServiceEnvironmentSettingService) Edit(ctx context.Context, serviceName string, environmentName string, params ServiceEnvironmentSettingEditParams, opts ...option.RequestOption) (res *ScriptSetting, err error) { + opts = append(r.Options[:], opts...) + var env ServiceEnvironmentSettingEditResponseEnvelope + path := fmt.Sprintf("accounts/%s/workers/services/%s/environments/%s/settings", params.AccountID, serviceName, environmentName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, params, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +// Get script settings from a worker with an environment +func (r *ServiceEnvironmentSettingService) Get(ctx context.Context, serviceName string, environmentName string, query ServiceEnvironmentSettingGetParams, opts ...option.RequestOption) (res *ScriptSetting, err error) { + opts = append(r.Options[:], opts...) + var env ServiceEnvironmentSettingGetResponseEnvelope + path := fmt.Sprintf("accounts/%s/workers/services/%s/environments/%s/settings", query.AccountID, serviceName, environmentName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +type ServiceEnvironmentSettingEditParams struct { + // Identifier + AccountID param.Field[string] `path:"account_id,required"` + Errors param.Field[[]shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72Param] `json:"errors,required"` + Messages param.Field[[]shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72Param] `json:"messages,required"` + Result param.Field[ScriptSettingParam] `json:"result,required"` + // Whether the API call was successful + Success param.Field[ServiceEnvironmentSettingEditParamsSuccess] `json:"success,required"` +} + +func (r ServiceEnvironmentSettingEditParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Whether the API call was successful +type ServiceEnvironmentSettingEditParamsSuccess bool + +const ( + ServiceEnvironmentSettingEditParamsSuccessTrue ServiceEnvironmentSettingEditParamsSuccess = true +) + +func (r ServiceEnvironmentSettingEditParamsSuccess) IsKnown() bool { + switch r { + case ServiceEnvironmentSettingEditParamsSuccessTrue: + return true + } + return false +} + +type ServiceEnvironmentSettingEditResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result ScriptSetting `json:"result,required"` + // Whether the API call was successful + Success ServiceEnvironmentSettingEditResponseEnvelopeSuccess `json:"success,required"` + JSON serviceEnvironmentSettingEditResponseEnvelopeJSON `json:"-"` +} + +// serviceEnvironmentSettingEditResponseEnvelopeJSON contains the JSON metadata for +// the struct [ServiceEnvironmentSettingEditResponseEnvelope] +type serviceEnvironmentSettingEditResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *ServiceEnvironmentSettingEditResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r serviceEnvironmentSettingEditResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type ServiceEnvironmentSettingEditResponseEnvelopeSuccess bool + +const ( + ServiceEnvironmentSettingEditResponseEnvelopeSuccessTrue ServiceEnvironmentSettingEditResponseEnvelopeSuccess = true +) + +func (r ServiceEnvironmentSettingEditResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case ServiceEnvironmentSettingEditResponseEnvelopeSuccessTrue: + return true + } + return false +} + +type ServiceEnvironmentSettingGetParams struct { + // Identifier + AccountID param.Field[string] `path:"account_id,required"` +} + +type ServiceEnvironmentSettingGetResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result ScriptSetting `json:"result,required"` + // Whether the API call was successful + Success ServiceEnvironmentSettingGetResponseEnvelopeSuccess `json:"success,required"` + JSON serviceEnvironmentSettingGetResponseEnvelopeJSON `json:"-"` +} + +// serviceEnvironmentSettingGetResponseEnvelopeJSON contains the JSON metadata for +// the struct [ServiceEnvironmentSettingGetResponseEnvelope] +type serviceEnvironmentSettingGetResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *ServiceEnvironmentSettingGetResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r serviceEnvironmentSettingGetResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type ServiceEnvironmentSettingGetResponseEnvelopeSuccess bool + +const ( + ServiceEnvironmentSettingGetResponseEnvelopeSuccessTrue ServiceEnvironmentSettingGetResponseEnvelopeSuccess = true +) + +func (r ServiceEnvironmentSettingGetResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case ServiceEnvironmentSettingGetResponseEnvelopeSuccessTrue: + return true + } + return false +} diff --git a/workers/serviceenvironmentsetting_test.go b/workers/serviceenvironmentsetting_test.go new file mode 100644 index 00000000000..09d057d467b --- /dev/null +++ b/workers/serviceenvironmentsetting_test.go @@ -0,0 +1,115 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package workers_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/cloudflare/cloudflare-go/v2" + "github.com/cloudflare/cloudflare-go/v2/internal/shared" + "github.com/cloudflare/cloudflare-go/v2/internal/testutil" + "github.com/cloudflare/cloudflare-go/v2/option" + "github.com/cloudflare/cloudflare-go/v2/workers" +) + +func TestServiceEnvironmentSettingEditWithOptionalParams(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Services.Environments.Settings.Edit( + context.TODO(), + "my-worker", + "production", + workers.ServiceEnvironmentSettingEditParams{ + AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + Errors: cloudflare.F([]shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72Param{{ + Code: cloudflare.F(int64(1000)), + Message: cloudflare.F("string"), + }, { + Code: cloudflare.F(int64(1000)), + Message: cloudflare.F("string"), + }, { + Code: cloudflare.F(int64(1000)), + Message: cloudflare.F("string"), + }}), + Messages: cloudflare.F([]shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72Param{{ + Code: cloudflare.F(int64(1000)), + Message: cloudflare.F("string"), + }, { + Code: cloudflare.F(int64(1000)), + Message: cloudflare.F("string"), + }, { + Code: cloudflare.F(int64(1000)), + Message: cloudflare.F("string"), + }}), + Result: cloudflare.F(workers.ScriptSettingParam{ + Logpush: cloudflare.F(false), + TailConsumers: cloudflare.F([]workers.ConsumerScriptItemParam{{ + Environment: cloudflare.F("production"), + Namespace: cloudflare.F("my-namespace"), + Service: cloudflare.F("my-log-consumer"), + }, { + Environment: cloudflare.F("production"), + Namespace: cloudflare.F("my-namespace"), + Service: cloudflare.F("my-log-consumer"), + }, { + Environment: cloudflare.F("production"), + Namespace: cloudflare.F("my-namespace"), + Service: cloudflare.F("my-log-consumer"), + }}), + }), + Success: cloudflare.F(workers.ServiceEnvironmentSettingEditParamsSuccessTrue), + }, + ) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestServiceEnvironmentSettingGet(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Workers.Services.Environments.Settings.Get( + context.TODO(), + "my-worker", + "production", + workers.ServiceEnvironmentSettingGetParams{ + AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + }, + ) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/workers/worker.go b/workers/worker.go index e6e24950cc8..ed122b6e916 100644 --- a/workers/worker.go +++ b/workers/worker.go @@ -19,9 +19,13 @@ type WorkerService struct { Options []option.RequestOption AI *AIService Scripts *ScriptService + Filters *FilterService + Routes *RouteService AccountSettings *AccountSettingService + Deployments *DeploymentService Domains *DomainService Subdomains *SubdomainService + Services *ServiceService } // NewWorkerService generates a new service that applies the given options to each @@ -32,9 +36,13 @@ func NewWorkerService(opts ...option.RequestOption) (r *WorkerService) { r.Options = opts r.AI = NewAIService(opts...) r.Scripts = NewScriptService(opts...) + r.Filters = NewFilterService(opts...) + r.Routes = NewRouteService(opts...) r.AccountSettings = NewAccountSettingService(opts...) + r.Deployments = NewDeploymentService(opts...) r.Domains = NewDomainService(opts...) r.Subdomains = NewSubdomainService(opts...) + r.Services = NewServiceService(opts...) return } @@ -225,6 +233,62 @@ func (r BindingType) IsKnown() bool { return false } +// A binding to allow the Worker to communicate with resources +type BindingParam struct { + // The class of resource that the binding provides. + Type param.Field[BindingType] `json:"type,required"` + // Optional environment if the Worker utilizes one. + Environment param.Field[string] `json:"environment"` + // Name of Worker to bind to + Service param.Field[string] `json:"service"` + // The exported class name of the Durable Object + ClassName param.Field[string] `json:"class_name"` + // The script where the Durable Object is defined, if it is external to this Worker + ScriptName param.Field[string] `json:"script_name"` + // R2 bucket to bind to + BucketName param.Field[string] `json:"bucket_name"` + // Name of the Queue to bind to + QueueName param.Field[string] `json:"queue_name"` + // ID of the D1 database to bind to + ID param.Field[string] `json:"id"` + // Namespace to bind to + Namespace param.Field[string] `json:"namespace"` + Outbound param.Field[interface{}] `json:"outbound,required"` + // ID of the certificate to bind to + CertificateID param.Field[string] `json:"certificate_id"` + Certificate param.Field[interface{}] `json:"certificate,required"` +} + +func (r BindingParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +func (r BindingParam) implementsWorkersBindingUnionParam() {} + +// A binding to allow the Worker to communicate with resources +// +// Satisfied by [workers.KVNamespaceBindingParam], [workers.ServiceBindingParam], +// [workers.DurableObjectBindingParam], [workers.R2BindingParam], +// [workers.BindingWorkersQueueBindingParam], [workers.D1BindingParam], +// [workers.DispatchNamespaceBindingParam], [workers.MTLSCERTBindingParam], +// [BindingParam]. +type BindingUnionParam interface { + implementsWorkersBindingUnionParam() +} + +type BindingWorkersQueueBindingParam struct { + // Name of the Queue to bind to + QueueName param.Field[string] `json:"queue_name,required"` + // The class of resource that the binding provides. + Type param.Field[BindingWorkersQueueBindingType] `json:"type,required"` +} + +func (r BindingWorkersQueueBindingParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +func (r BindingWorkersQueueBindingParam) implementsWorkersBindingUnionParam() {} + type D1Binding struct { // ID of the D1 database to bind to ID string `json:"id,required"` @@ -272,6 +336,31 @@ func (r D1BindingType) IsKnown() bool { return false } +type D1BindingParam struct { + // ID of the D1 database to bind to + ID param.Field[string] `json:"id,required"` + // The name of the D1 database associated with the 'id' provided. + Name param.Field[string] `json:"name,required"` + // The class of resource that the binding provides. + Type param.Field[D1BindingType] `json:"type,required"` +} + +func (r D1BindingParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +func (r D1BindingParam) implementsWorkersBindingUnionParam() {} + +func (r D1BindingParam) implementsWorkersBindingUnionParam() {} + +func (r D1BindingParam) implementsWorkersBindingUnionParam() {} + +func (r D1BindingParam) implementsWorkersBindingUnionParam() {} + +func (r D1BindingParam) implementsWorkersBindingUnionParam() {} + +func (r D1BindingParam) implementsWorkersBindingUnionParam() {} + type DispatchNamespaceBinding struct { // A JavaScript variable name for the binding. Name string `json:"name,required"` @@ -373,6 +462,56 @@ func (r dispatchNamespaceBindingOutboundWorkerJSON) RawJSON() string { return r.raw } +type DispatchNamespaceBindingParam struct { + // Namespace to bind to + Namespace param.Field[string] `json:"namespace,required"` + // The class of resource that the binding provides. + Type param.Field[DispatchNamespaceBindingType] `json:"type,required"` + // Outbound worker + Outbound param.Field[DispatchNamespaceBindingOutboundParam] `json:"outbound"` +} + +func (r DispatchNamespaceBindingParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +func (r DispatchNamespaceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r DispatchNamespaceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r DispatchNamespaceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r DispatchNamespaceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r DispatchNamespaceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r DispatchNamespaceBindingParam) implementsWorkersBindingUnionParam() {} + +// Outbound worker +type DispatchNamespaceBindingOutboundParam struct { + // Pass information from the Dispatch Worker to the Outbound Worker through the + // parameters + Params param.Field[[]string] `json:"params"` + // Outbound worker + Worker param.Field[DispatchNamespaceBindingOutboundWorkerParam] `json:"worker"` +} + +func (r DispatchNamespaceBindingOutboundParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Outbound worker +type DispatchNamespaceBindingOutboundWorkerParam struct { + // Environment of the outbound worker + Environment param.Field[string] `json:"environment"` + // Name of the outbound worker + Service param.Field[string] `json:"service"` +} + +func (r DispatchNamespaceBindingOutboundWorkerParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + type DurableObjectBinding struct { // The exported class name of the Durable Object ClassName string `json:"class_name,required"` @@ -427,6 +566,33 @@ func (r DurableObjectBindingType) IsKnown() bool { return false } +type DurableObjectBindingParam struct { + // The exported class name of the Durable Object + ClassName param.Field[string] `json:"class_name,required"` + // The class of resource that the binding provides. + Type param.Field[DurableObjectBindingType] `json:"type,required"` + // The environment of the script_name to bind to + Environment param.Field[string] `json:"environment"` + // The script where the Durable Object is defined, if it is external to this Worker + ScriptName param.Field[string] `json:"script_name"` +} + +func (r DurableObjectBindingParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +func (r DurableObjectBindingParam) implementsWorkersBindingUnionParam() {} + +func (r DurableObjectBindingParam) implementsWorkersBindingUnionParam() {} + +func (r DurableObjectBindingParam) implementsWorkersBindingUnionParam() {} + +func (r DurableObjectBindingParam) implementsWorkersBindingUnionParam() {} + +func (r DurableObjectBindingParam) implementsWorkersBindingUnionParam() {} + +func (r DurableObjectBindingParam) implementsWorkersBindingUnionParam() {} + type KVNamespaceBinding struct { // A JavaScript variable name for the binding. Name string `json:"name,required"` @@ -457,6 +623,8 @@ func (r kvNamespaceBindingJSON) RawJSON() string { func (r KVNamespaceBinding) implementsWorkersBinding() {} +func (r KVNamespaceBinding) implementsWorkersScriptBindingGetResponse() {} + // The class of resource that the binding provides. type KVNamespaceBindingType string @@ -472,6 +640,106 @@ func (r KVNamespaceBindingType) IsKnown() bool { return false } +type KVNamespaceBindingParam struct { + // The class of resource that the binding provides. + Type param.Field[KVNamespaceBindingType] `json:"type,required"` +} + +func (r KVNamespaceBindingParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +func (r KVNamespaceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r KVNamespaceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r KVNamespaceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r KVNamespaceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r KVNamespaceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r KVNamespaceBindingParam) implementsWorkersBindingUnionParam() {} + +type MigrationStep struct { + // A list of classes to delete Durable Object namespaces from. + DeletedClasses []string `json:"deleted_classes"` + // A list of classes to create Durable Object namespaces from. + NewClasses []string `json:"new_classes"` + // A list of classes with Durable Object namespaces that were renamed. + RenamedClasses []MigrationStepRenamedClass `json:"renamed_classes"` + // A list of transfers for Durable Object namespaces from a different Worker and + // class to a class defined in this Worker. + TransferredClasses []MigrationStepTransferredClass `json:"transferred_classes"` + JSON migrationStepJSON `json:"-"` +} + +// migrationStepJSON contains the JSON metadata for the struct [MigrationStep] +type migrationStepJSON struct { + DeletedClasses apijson.Field + NewClasses apijson.Field + RenamedClasses apijson.Field + TransferredClasses apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *MigrationStep) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r migrationStepJSON) RawJSON() string { + return r.raw +} + +type MigrationStepRenamedClass struct { + From string `json:"from"` + To string `json:"to"` + JSON migrationStepRenamedClassJSON `json:"-"` +} + +// migrationStepRenamedClassJSON contains the JSON metadata for the struct +// [MigrationStepRenamedClass] +type migrationStepRenamedClassJSON struct { + From apijson.Field + To apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *MigrationStepRenamedClass) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r migrationStepRenamedClassJSON) RawJSON() string { + return r.raw +} + +type MigrationStepTransferredClass struct { + From string `json:"from"` + FromScript string `json:"from_script"` + To string `json:"to"` + JSON migrationStepTransferredClassJSON `json:"-"` +} + +// migrationStepTransferredClassJSON contains the JSON metadata for the struct +// [MigrationStepTransferredClass] +type migrationStepTransferredClassJSON struct { + From apijson.Field + FromScript apijson.Field + To apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *MigrationStepTransferredClass) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r migrationStepTransferredClassJSON) RawJSON() string { + return r.raw +} + type MigrationStepParam struct { // A list of classes to delete Durable Object namespaces from. DeletedClasses param.Field[[]string] `json:"deleted_classes"` @@ -553,15 +821,52 @@ func (r MTLSCERTBindingType) IsKnown() bool { return false } -type PlacementConfigurationParam struct { +type MTLSCERTBindingParam struct { + Certificate param.Field[interface{}] `json:"certificate,required"` + // The class of resource that the binding provides. + Type param.Field[MTLSCERTBindingType] `json:"type,required"` + // ID of the certificate to bind to + CertificateID param.Field[string] `json:"certificate_id"` +} + +func (r MTLSCERTBindingParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +func (r MTLSCERTBindingParam) implementsWorkersBindingUnionParam() {} + +func (r MTLSCERTBindingParam) implementsWorkersBindingUnionParam() {} + +func (r MTLSCERTBindingParam) implementsWorkersBindingUnionParam() {} + +func (r MTLSCERTBindingParam) implementsWorkersBindingUnionParam() {} + +func (r MTLSCERTBindingParam) implementsWorkersBindingUnionParam() {} + +func (r MTLSCERTBindingParam) implementsWorkersBindingUnionParam() {} + +type PlacementConfiguration struct { // Enables // [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). // Only `"smart"` is currently supported - Mode param.Field[PlacementConfigurationMode] `json:"mode"` + Mode PlacementConfigurationMode `json:"mode"` + JSON placementConfigurationJSON `json:"-"` } -func (r PlacementConfigurationParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) +// placementConfigurationJSON contains the JSON metadata for the struct +// [PlacementConfiguration] +type placementConfigurationJSON struct { + Mode apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *PlacementConfiguration) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r placementConfigurationJSON) RawJSON() string { + return r.raw } // Enables @@ -581,6 +886,17 @@ func (r PlacementConfigurationMode) IsKnown() bool { return false } +type PlacementConfigurationParam struct { + // Enables + // [Smart Placement](https://developers.cloudflare.com/workers/configuration/smart-placement). + // Only `"smart"` is currently supported + Mode param.Field[PlacementConfigurationMode] `json:"mode"` +} + +func (r PlacementConfigurationParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + type R2Binding struct { // R2 bucket to bind to BucketName string `json:"bucket_name,required"` @@ -625,6 +941,29 @@ func (r R2BindingType) IsKnown() bool { return false } +type R2BindingParam struct { + // R2 bucket to bind to + BucketName param.Field[string] `json:"bucket_name,required"` + // The class of resource that the binding provides. + Type param.Field[R2BindingType] `json:"type,required"` +} + +func (r R2BindingParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +func (r R2BindingParam) implementsWorkersBindingUnionParam() {} + +func (r R2BindingParam) implementsWorkersBindingUnionParam() {} + +func (r R2BindingParam) implementsWorkersBindingUnionParam() {} + +func (r R2BindingParam) implementsWorkersBindingUnionParam() {} + +func (r R2BindingParam) implementsWorkersBindingUnionParam() {} + +func (r R2BindingParam) implementsWorkersBindingUnionParam() {} + type ServiceBinding struct { // Optional environment if the Worker utilizes one. Environment string `json:"environment,required"` @@ -672,6 +1011,121 @@ func (r ServiceBindingType) IsKnown() bool { return false } +type ServiceBindingParam struct { + // Optional environment if the Worker utilizes one. + Environment param.Field[string] `json:"environment,required"` + // Name of Worker to bind to + Service param.Field[string] `json:"service,required"` + // The class of resource that the binding provides. + Type param.Field[ServiceBindingType] `json:"type,required"` +} + +func (r ServiceBindingParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +func (r ServiceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r ServiceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r ServiceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r ServiceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r ServiceBindingParam) implementsWorkersBindingUnionParam() {} + +func (r ServiceBindingParam) implementsWorkersBindingUnionParam() {} + +// A single set of migrations to apply. +type SingleStepMigration struct { + // A list of classes to delete Durable Object namespaces from. + DeletedClasses []string `json:"deleted_classes"` + // A list of classes to create Durable Object namespaces from. + NewClasses []string `json:"new_classes"` + // Tag to set as the latest migration tag. + NewTag string `json:"new_tag"` + // Tag used to verify against the latest migration tag for this Worker. If they + // don't match, the upload is rejected. + OldTag string `json:"old_tag"` + // A list of classes with Durable Object namespaces that were renamed. + RenamedClasses []SingleStepMigrationRenamedClass `json:"renamed_classes"` + // A list of transfers for Durable Object namespaces from a different Worker and + // class to a class defined in this Worker. + TransferredClasses []SingleStepMigrationTransferredClass `json:"transferred_classes"` + JSON singleStepMigrationJSON `json:"-"` +} + +// singleStepMigrationJSON contains the JSON metadata for the struct +// [SingleStepMigration] +type singleStepMigrationJSON struct { + DeletedClasses apijson.Field + NewClasses apijson.Field + NewTag apijson.Field + OldTag apijson.Field + RenamedClasses apijson.Field + TransferredClasses apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *SingleStepMigration) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r singleStepMigrationJSON) RawJSON() string { + return r.raw +} + +func (r SingleStepMigration) implementsWorkersSettingsMigrations() {} + +type SingleStepMigrationRenamedClass struct { + From string `json:"from"` + To string `json:"to"` + JSON singleStepMigrationRenamedClassJSON `json:"-"` +} + +// singleStepMigrationRenamedClassJSON contains the JSON metadata for the struct +// [SingleStepMigrationRenamedClass] +type singleStepMigrationRenamedClassJSON struct { + From apijson.Field + To apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *SingleStepMigrationRenamedClass) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r singleStepMigrationRenamedClassJSON) RawJSON() string { + return r.raw +} + +type SingleStepMigrationTransferredClass struct { + From string `json:"from"` + FromScript string `json:"from_script"` + To string `json:"to"` + JSON singleStepMigrationTransferredClassJSON `json:"-"` +} + +// singleStepMigrationTransferredClassJSON contains the JSON metadata for the +// struct [SingleStepMigrationTransferredClass] +type singleStepMigrationTransferredClassJSON struct { + From apijson.Field + FromScript apijson.Field + To apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *SingleStepMigrationTransferredClass) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r singleStepMigrationTransferredClassJSON) RawJSON() string { + return r.raw +} + // A single set of migrations to apply. type SingleStepMigrationParam struct { // A list of classes to delete Durable Object namespaces from. @@ -697,6 +1151,14 @@ func (r SingleStepMigrationParam) MarshalJSON() (data []byte, err error) { func (r SingleStepMigrationParam) implementsWorkersScriptUpdateParamsVariant0MetadataMigrationsUnion() { } +func (r SingleStepMigrationParam) implementsWorkersSettingsMigrationsUnionParam() {} + +func (r SingleStepMigrationParam) implementsWorkersSettingsMigrationsUnionParam() {} + +func (r SingleStepMigrationParam) implementsWorkersSettingsMigrationsUnionParam() {} + +func (r SingleStepMigrationParam) implementsWorkersSettingsMigrationsUnionParam() {} + func (r SingleStepMigrationParam) implementsWorkersForPlatformsDispatchNamespaceScriptUpdateParamsVariant0MetadataMigrationsUnion() { } @@ -719,6 +1181,37 @@ func (r SingleStepMigrationTransferredClassParam) MarshalJSON() (data []byte, er return apijson.MarshalRoot(r) } +type SteppedMigration struct { + // Tag to set as the latest migration tag. + NewTag string `json:"new_tag"` + // Tag used to verify against the latest migration tag for this Worker. If they + // don't match, the upload is rejected. + OldTag string `json:"old_tag"` + // Migrations to apply in order. + Steps []MigrationStep `json:"steps"` + JSON steppedMigrationJSON `json:"-"` +} + +// steppedMigrationJSON contains the JSON metadata for the struct +// [SteppedMigration] +type steppedMigrationJSON struct { + NewTag apijson.Field + OldTag apijson.Field + Steps apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *SteppedMigration) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r steppedMigrationJSON) RawJSON() string { + return r.raw +} + +func (r SteppedMigration) implementsWorkersSettingsMigrations() {} + type SteppedMigrationParam struct { // Tag to set as the latest migration tag. NewTag param.Field[string] `json:"new_tag"` @@ -735,5 +1228,13 @@ func (r SteppedMigrationParam) MarshalJSON() (data []byte, err error) { func (r SteppedMigrationParam) implementsWorkersScriptUpdateParamsVariant0MetadataMigrationsUnion() {} +func (r SteppedMigrationParam) implementsWorkersSettingsMigrationsUnionParam() {} + +func (r SteppedMigrationParam) implementsWorkersSettingsMigrationsUnionParam() {} + +func (r SteppedMigrationParam) implementsWorkersSettingsMigrationsUnionParam() {} + +func (r SteppedMigrationParam) implementsWorkersSettingsMigrationsUnionParam() {} + func (r SteppedMigrationParam) implementsWorkersForPlatformsDispatchNamespaceScriptUpdateParamsVariant0MetadataMigrationsUnion() { } diff --git a/workers_for_platforms/dispatchnamespacescriptsetting.go b/workers_for_platforms/dispatchnamespacescriptsetting.go index eaa6f3310b7..ce233cf5632 100644 --- a/workers_for_platforms/dispatchnamespacescriptsetting.go +++ b/workers_for_platforms/dispatchnamespacescriptsetting.go @@ -3,16 +3,16 @@ package workers_for_platforms import ( - "context" - "fmt" - "net/http" - - "github.com/cloudflare/cloudflare-go/v2/internal/apijson" - "github.com/cloudflare/cloudflare-go/v2/internal/param" - "github.com/cloudflare/cloudflare-go/v2/internal/requestconfig" - "github.com/cloudflare/cloudflare-go/v2/internal/shared" - "github.com/cloudflare/cloudflare-go/v2/option" - "github.com/cloudflare/cloudflare-go/v2/workers" + "context" + "fmt" + "net/http" + + "github.com/cloudflare/cloudflare-go/v2/internal/apijson" + "github.com/cloudflare/cloudflare-go/v2/internal/param" + "github.com/cloudflare/cloudflare-go/v2/internal/requestconfig" + "github.com/cloudflare/cloudflare-go/v2/internal/shared" + "github.com/cloudflare/cloudflare-go/v2/option" + "github.com/cloudflare/cloudflare-go/v2/workers" ) // DispatchNamespaceScriptSettingService contains methods and other services that @@ -21,116 +21,160 @@ import ( // not instantiate this service directly, and instead use the // [NewDispatchNamespaceScriptSettingService] method instead. type DispatchNamespaceScriptSettingService struct { -Options []option.RequestOption + Options []option.RequestOption } // NewDispatchNamespaceScriptSettingService generates a new service that applies // the given options to each request. These options are applied after the parent // client's options (if there is one), and before any request-specific options. func NewDispatchNamespaceScriptSettingService(opts ...option.RequestOption) (r *DispatchNamespaceScriptSettingService) { - r = &DispatchNamespaceScriptSettingService{} - r.Options = opts - return + r = &DispatchNamespaceScriptSettingService{} + r.Options = opts + return } // Patch script metadata, such as bindings -func (r *DispatchNamespaceScriptSettingService) Edit(ctx context.Context, dispatchNamespace string, scriptName string, params DispatchNamespaceScriptSettingEditParams, opts ...option.RequestOption) (res *workers.SettingsItem, err error) { - opts = append(r.Options[:], opts...) - var env workers.Setting - path := fmt.Sprintf("accounts/%s/workers/dispatch/namespaces/%s/scripts/%s/settings", params.AccountID, dispatchNamespace, scriptName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, params, &env, opts...) - if err != nil { - return - } - res = &env.Result - return +func (r *DispatchNamespaceScriptSettingService) Edit(ctx context.Context, dispatchNamespace string, scriptName string, params DispatchNamespaceScriptSettingEditParams, opts ...option.RequestOption) (res *workers.ScriptSetting, err error) { + opts = append(r.Options[:], opts...) + var env DispatchNamespaceScriptSettingEditResponseEnvelope + path := fmt.Sprintf("accounts/%s/workers/dispatch/namespaces/%s/scripts/%s/settings", params.AccountID, dispatchNamespace, scriptName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, params, &env, opts...) + if err != nil { + return + } + res = &env.Result + return } // Get script settings from a script uploaded to a Workers for Platforms namespace. -func (r *DispatchNamespaceScriptSettingService) Get(ctx context.Context, dispatchNamespace string, scriptName string, query DispatchNamespaceScriptSettingGetParams, opts ...option.RequestOption) (res *workers.SettingsItem, err error) { - opts = append(r.Options[:], opts...) - var env workers.Setting - path := fmt.Sprintf("accounts/%s/workers/dispatch/namespaces/%s/scripts/%s/settings", query.AccountID, dispatchNamespace, scriptName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &env, opts...) - if err != nil { - return - } - res = &env.Result - return +func (r *DispatchNamespaceScriptSettingService) Get(ctx context.Context, dispatchNamespace string, scriptName string, query DispatchNamespaceScriptSettingGetParams, opts ...option.RequestOption) (res *workers.ScriptSetting, err error) { + opts = append(r.Options[:], opts...) + var env DispatchNamespaceScriptSettingGetResponseEnvelope + path := fmt.Sprintf("accounts/%s/workers/dispatch/namespaces/%s/scripts/%s/settings", query.AccountID, dispatchNamespace, scriptName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &env, opts...) + if err != nil { + return + } + res = &env.Result + return } type DispatchNamespaceScriptSettingEditParams struct { -// Identifier -AccountID param.Field[string] `path:"account_id,required"` -Errors param.Field[[]shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72Param] `json:"errors,required"` -Messages param.Field[[]shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72Param] `json:"messages,required"` -Result param.Field[workers.SettingsItemParam] `json:"result,required"` -// Whether the API call was successful -Success param.Field[DispatchNamespaceScriptSettingEditParamsSuccess] `json:"success,required"` + // Identifier + AccountID param.Field[string] `path:"account_id,required"` + Errors param.Field[[]shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72Param] `json:"errors,required"` + Messages param.Field[[]shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72Param] `json:"messages,required"` + Result param.Field[workers.ScriptSettingParam] `json:"result,required"` + // Whether the API call was successful + Success param.Field[DispatchNamespaceScriptSettingEditParamsSuccess] `json:"success,required"` } func (r DispatchNamespaceScriptSettingEditParams) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) + return apijson.MarshalRoot(r) } // Whether the API call was successful type DispatchNamespaceScriptSettingEditParamsSuccess bool const ( - DispatchNamespaceScriptSettingEditParamsSuccessTrue DispatchNamespaceScriptSettingEditParamsSuccess = true + DispatchNamespaceScriptSettingEditParamsSuccessTrue DispatchNamespaceScriptSettingEditParamsSuccess = true ) -func (r DispatchNamespaceScriptSettingEditParamsSuccess) IsKnown() (bool) { - switch r { - case DispatchNamespaceScriptSettingEditParamsSuccessTrue: - return true - } - return false +func (r DispatchNamespaceScriptSettingEditParamsSuccess) IsKnown() bool { + switch r { + case DispatchNamespaceScriptSettingEditParamsSuccessTrue: + return true + } + return false } -type Setting struct { -Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` -Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` -Result workers.SettingsItem `json:"result,required"` -// Whether the API call was successful -Success workers.SettingSuccess `json:"success,required"` -JSON settingJSON `json:"-"` +type DispatchNamespaceScriptSettingEditResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result workers.ScriptSetting `json:"result,required"` + // Whether the API call was successful + Success DispatchNamespaceScriptSettingEditResponseEnvelopeSuccess `json:"success,required"` + JSON dispatchNamespaceScriptSettingEditResponseEnvelopeJSON `json:"-"` } -// settingJSON contains the JSON metadata for the struct [workers.Setting] -type settingJSON struct { -Errors apijson.Field -Messages apijson.Field -Result apijson.Field -Success apijson.Field -raw string -ExtraFields map[string]apijson.Field +// dispatchNamespaceScriptSettingEditResponseEnvelopeJSON contains the JSON +// metadata for the struct [DispatchNamespaceScriptSettingEditResponseEnvelope] +type dispatchNamespaceScriptSettingEditResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field } -func (r *workers.Setting) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) +func (r *DispatchNamespaceScriptSettingEditResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) } -func (r settingJSON) RawJSON() (string) { - return r.raw +func (r dispatchNamespaceScriptSettingEditResponseEnvelopeJSON) RawJSON() string { + return r.raw } // Whether the API call was successful -type workers.SettingSuccess bool +type DispatchNamespaceScriptSettingEditResponseEnvelopeSuccess bool const ( - workers.SettingSuccessTrue workers.SettingSuccess = true + DispatchNamespaceScriptSettingEditResponseEnvelopeSuccessTrue DispatchNamespaceScriptSettingEditResponseEnvelopeSuccess = true ) -func (r workers.SettingSuccess) IsKnown() (bool) { - switch r { - case workers.SettingSuccessTrue: - return true - } - return false +func (r DispatchNamespaceScriptSettingEditResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case DispatchNamespaceScriptSettingEditResponseEnvelopeSuccessTrue: + return true + } + return false } type DispatchNamespaceScriptSettingGetParams struct { -// Identifier -AccountID param.Field[string] `path:"account_id,required"` + // Identifier + AccountID param.Field[string] `path:"account_id,required"` +} + +type DispatchNamespaceScriptSettingGetResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result workers.ScriptSetting `json:"result,required"` + // Whether the API call was successful + Success DispatchNamespaceScriptSettingGetResponseEnvelopeSuccess `json:"success,required"` + JSON dispatchNamespaceScriptSettingGetResponseEnvelopeJSON `json:"-"` +} + +// dispatchNamespaceScriptSettingGetResponseEnvelopeJSON contains the JSON metadata +// for the struct [DispatchNamespaceScriptSettingGetResponseEnvelope] +type dispatchNamespaceScriptSettingGetResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *DispatchNamespaceScriptSettingGetResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r dispatchNamespaceScriptSettingGetResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type DispatchNamespaceScriptSettingGetResponseEnvelopeSuccess bool + +const ( + DispatchNamespaceScriptSettingGetResponseEnvelopeSuccessTrue DispatchNamespaceScriptSettingGetResponseEnvelopeSuccess = true +) + +func (r DispatchNamespaceScriptSettingGetResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case DispatchNamespaceScriptSettingGetResponseEnvelopeSuccessTrue: + return true + } + return false } diff --git a/workers_for_platforms/dispatchnamespacescriptsetting_test.go b/workers_for_platforms/dispatchnamespacescriptsetting_test.go index 37a7d120af2..57f7761e78f 100644 --- a/workers_for_platforms/dispatchnamespacescriptsetting_test.go +++ b/workers_for_platforms/dispatchnamespacescriptsetting_test.go @@ -56,7 +56,7 @@ func TestDispatchNamespaceScriptSettingEditWithOptionalParams(t *testing.T) { Code: cloudflare.F(int64(1000)), Message: cloudflare.F("string"), }}), - Result: cloudflare.F(workers.SettingsItemParam{ + Result: cloudflare.F(workers.ScriptSettingParam{ Logpush: cloudflare.F(false), TailConsumers: cloudflare.F([]workers.ConsumerScriptItemParam{{ Environment: cloudflare.F("production"), diff --git a/zero_trust/access.go b/zero_trust/access.go index e75f1efc331..53e5b1ad2e4 100644 --- a/zero_trust/access.go +++ b/zero_trust/access.go @@ -48,6 +48,376 @@ func NewAccessService(opts ...option.RequestOption) (r *AccessService) { return } +// Enforces a device posture rule has run successfully +type AccessDevicePostureRule struct { + DevicePosture AccessDevicePostureRuleDevicePosture `json:"device_posture,required"` + JSON accessDevicePostureRuleJSON `json:"-"` +} + +// accessDevicePostureRuleJSON contains the JSON metadata for the struct +// [AccessDevicePostureRule] +type accessDevicePostureRuleJSON struct { + DevicePosture apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *AccessDevicePostureRule) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r accessDevicePostureRuleJSON) RawJSON() string { + return r.raw +} + +func (r AccessDevicePostureRule) implementsZeroTrustAccessRule() {} + +type AccessDevicePostureRuleDevicePosture struct { + // The ID of a device posture integration. + IntegrationUid string `json:"integration_uid,required"` + JSON accessDevicePostureRuleDevicePostureJSON `json:"-"` +} + +// accessDevicePostureRuleDevicePostureJSON contains the JSON metadata for the +// struct [AccessDevicePostureRuleDevicePosture] +type accessDevicePostureRuleDevicePostureJSON struct { + IntegrationUid apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *AccessDevicePostureRuleDevicePosture) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r accessDevicePostureRuleDevicePostureJSON) RawJSON() string { + return r.raw +} + +// Enforces a device posture rule has run successfully +type AccessDevicePostureRuleParam struct { + DevicePosture param.Field[AccessDevicePostureRuleDevicePostureParam] `json:"device_posture,required"` +} + +func (r AccessDevicePostureRuleParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r AccessDevicePostureRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +type AccessDevicePostureRuleDevicePostureParam struct { + // The ID of a device posture integration. + IntegrationUid param.Field[string] `json:"integration_uid,required"` +} + +func (r AccessDevicePostureRuleDevicePostureParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Matches a specific email. +type AccessRule struct { + Email interface{} `json:"email,required"` + EmailList interface{} `json:"email_list,required"` + EmailDomain interface{} `json:"email_domain,required"` + Everyone interface{} `json:"everyone,required"` + IP interface{} `json:"ip,required"` + IPList interface{} `json:"ip_list,required"` + Certificate interface{} `json:"certificate,required"` + Group interface{} `json:"group,required"` + AzureAd interface{} `json:"azureAD,required"` + GitHubOrganization interface{} `json:"github-organization,required"` + Gsuite interface{} `json:"gsuite,required"` + Okta interface{} `json:"okta,required"` + Saml interface{} `json:"saml,required"` + ServiceToken interface{} `json:"service_token,required"` + AnyValidServiceToken interface{} `json:"any_valid_service_token,required"` + ExternalEvaluation interface{} `json:"external_evaluation,required"` + Geo interface{} `json:"geo,required"` + AuthMethod interface{} `json:"auth_method,required"` + DevicePosture interface{} `json:"device_posture,required"` + JSON accessRuleJSON `json:"-"` + union AccessRuleUnion +} + +// accessRuleJSON contains the JSON metadata for the struct [AccessRule] +type accessRuleJSON struct { + Email apijson.Field + EmailList apijson.Field + EmailDomain apijson.Field + Everyone apijson.Field + IP apijson.Field + IPList apijson.Field + Certificate apijson.Field + Group apijson.Field + AzureAd apijson.Field + GitHubOrganization apijson.Field + Gsuite apijson.Field + Okta apijson.Field + Saml apijson.Field + ServiceToken apijson.Field + AnyValidServiceToken apijson.Field + ExternalEvaluation apijson.Field + Geo apijson.Field + AuthMethod apijson.Field + DevicePosture apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r accessRuleJSON) RawJSON() string { + return r.raw +} + +func (r *AccessRule) UnmarshalJSON(data []byte) (err error) { + err = apijson.UnmarshalRoot(data, &r.union) + if err != nil { + return err + } + return apijson.Port(r.union, &r) +} + +func (r AccessRule) AsUnion() AccessRuleUnion { + return r.union +} + +// Matches a specific email. +// +// Union satisfied by [zero_trust.EmailRule], [zero_trust.EmailListRule], +// [zero_trust.DomainRule], [zero_trust.EveryoneRule], [zero_trust.IPRule], +// [zero_trust.IPListRule], [zero_trust.CertificateRule], [zero_trust.GroupRule], +// [zero_trust.AzureGroupRule], [zero_trust.GitHubOrganizationRule], +// [zero_trust.GsuiteGroupRule], [zero_trust.OktaGroupRule], +// [zero_trust.SamlGroupRule], [zero_trust.ServiceTokenRule], +// [zero_trust.AnyValidServiceTokenRule], [zero_trust.ExternalEvaluationRule], +// [zero_trust.CountryRule], [zero_trust.AuthenticationMethodRule] or +// [zero_trust.AccessDevicePostureRule]. +type AccessRuleUnion interface { + implementsZeroTrustAccessRule() +} + +func init() { + apijson.RegisterUnion( + reflect.TypeOf((*AccessRuleUnion)(nil)).Elem(), + "", + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(EmailRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(EmailListRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(DomainRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(EveryoneRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(IPRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(IPListRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(CertificateRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(GroupRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(AzureGroupRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(GitHubOrganizationRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(GsuiteGroupRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(OktaGroupRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(SamlGroupRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(ServiceTokenRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(AnyValidServiceTokenRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(ExternalEvaluationRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(CountryRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(AuthenticationMethodRule{}), + }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(AccessDevicePostureRule{}), + }, + ) +} + +// Matches a specific email. +type AccessRuleParam struct { + Email param.Field[interface{}] `json:"email,required"` + EmailList param.Field[interface{}] `json:"email_list,required"` + EmailDomain param.Field[interface{}] `json:"email_domain,required"` + Everyone param.Field[interface{}] `json:"everyone,required"` + IP param.Field[interface{}] `json:"ip,required"` + IPList param.Field[interface{}] `json:"ip_list,required"` + Certificate param.Field[interface{}] `json:"certificate,required"` + Group param.Field[interface{}] `json:"group,required"` + AzureAd param.Field[interface{}] `json:"azureAD,required"` + GitHubOrganization param.Field[interface{}] `json:"github-organization,required"` + Gsuite param.Field[interface{}] `json:"gsuite,required"` + Okta param.Field[interface{}] `json:"okta,required"` + Saml param.Field[interface{}] `json:"saml,required"` + ServiceToken param.Field[interface{}] `json:"service_token,required"` + AnyValidServiceToken param.Field[interface{}] `json:"any_valid_service_token,required"` + ExternalEvaluation param.Field[interface{}] `json:"external_evaluation,required"` + Geo param.Field[interface{}] `json:"geo,required"` + AuthMethod param.Field[interface{}] `json:"auth_method,required"` + DevicePosture param.Field[interface{}] `json:"device_posture,required"` +} + +func (r AccessRuleParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +func (r AccessRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +// Matches a specific email. +// +// Satisfied by [zero_trust.EmailRuleParam], [zero_trust.EmailListRuleParam], +// [zero_trust.DomainRuleParam], [zero_trust.EveryoneRuleParam], +// [zero_trust.IPRuleParam], [zero_trust.IPListRuleParam], +// [zero_trust.CertificateRuleParam], [zero_trust.GroupRuleParam], +// [zero_trust.AzureGroupRuleParam], [zero_trust.GitHubOrganizationRuleParam], +// [zero_trust.GsuiteGroupRuleParam], [zero_trust.OktaGroupRuleParam], +// [zero_trust.SamlGroupRuleParam], [zero_trust.ServiceTokenRuleParam], +// [zero_trust.AnyValidServiceTokenRuleParam], +// [zero_trust.ExternalEvaluationRuleParam], [zero_trust.CountryRuleParam], +// [zero_trust.AuthenticationMethodRuleParam], +// [zero_trust.AccessDevicePostureRuleParam], [AccessRuleParam]. +type AccessRuleUnionParam interface { + implementsZeroTrustAccessRuleUnionParam() +} + // Matches any valid Access Service Token type AnyValidServiceTokenRule struct { // An empty object which matches on all service tokens. @@ -71,13 +441,7 @@ func (r anyValidServiceTokenRuleJSON) RawJSON() string { return r.raw } -func (r AnyValidServiceTokenRule) implementsZeroTrustIncludeItem() {} - -func (r AnyValidServiceTokenRule) implementsZeroTrustRule() {} - -func (r AnyValidServiceTokenRule) implementsZeroTrustExcludeItem() {} - -func (r AnyValidServiceTokenRule) implementsZeroTrustRequireItem() {} +func (r AnyValidServiceTokenRule) implementsZeroTrustAccessRule() {} // Matches any valid Access Service Token type AnyValidServiceTokenRuleParam struct { @@ -89,111 +453,101 @@ func (r AnyValidServiceTokenRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRuleUnionParam() {} - -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AnyValidServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AnyValidServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} // Enforce different MFA options type AuthenticationMethodRule struct { @@ -217,13 +571,7 @@ func (r authenticationMethodRuleJSON) RawJSON() string { return r.raw } -func (r AuthenticationMethodRule) implementsZeroTrustIncludeItem() {} - -func (r AuthenticationMethodRule) implementsZeroTrustRule() {} - -func (r AuthenticationMethodRule) implementsZeroTrustExcludeItem() {} - -func (r AuthenticationMethodRule) implementsZeroTrustRequireItem() {} +func (r AuthenticationMethodRule) implementsZeroTrustAccessRule() {} type AuthenticationMethodRuleAuthMethod struct { // The type of authentication method https://datatracker.ietf.org/doc/html/rfc8176. @@ -256,111 +604,101 @@ func (r AuthenticationMethodRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r AuthenticationMethodRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r AuthenticationMethodRuleParam) implementsZeroTrustRuleUnionParam() {} - -func (r AuthenticationMethodRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r AuthenticationMethodRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AuthenticationMethodRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r AuthenticationMethodRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AuthenticationMethodRuleParam) implementsZeroTrustAccessRuleUnionParam() {} type AuthenticationMethodRuleAuthMethodParam struct { // The type of authentication method https://datatracker.ietf.org/doc/html/rfc8176. @@ -392,13 +730,7 @@ func (r azureGroupRuleJSON) RawJSON() string { return r.raw } -func (r AzureGroupRule) implementsZeroTrustIncludeItem() {} - -func (r AzureGroupRule) implementsZeroTrustRule() {} - -func (r AzureGroupRule) implementsZeroTrustExcludeItem() {} - -func (r AzureGroupRule) implementsZeroTrustRequireItem() {} +func (r AzureGroupRule) implementsZeroTrustAccessRule() {} type AzureGroupRuleAzureAd struct { // The ID of an Azure group. @@ -434,111 +766,101 @@ func (r AzureGroupRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r AzureGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r AzureGroupRuleParam) implementsZeroTrustRuleUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r AzureGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r AzureGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r AzureGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r AzureGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} type AzureGroupRuleAzureAdParam struct { // The ID of an Azure group. @@ -572,13 +894,7 @@ func (r certificateRuleJSON) RawJSON() string { return r.raw } -func (r CertificateRule) implementsZeroTrustIncludeItem() {} - -func (r CertificateRule) implementsZeroTrustRule() {} - -func (r CertificateRule) implementsZeroTrustExcludeItem() {} - -func (r CertificateRule) implementsZeroTrustRequireItem() {} +func (r CertificateRule) implementsZeroTrustAccessRule() {} // Matches any valid client certificate. type CertificateRuleParam struct { @@ -589,111 +905,101 @@ func (r CertificateRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r CertificateRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRuleUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CertificateRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CertificateRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CertificateRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CertificateRuleParam) implementsZeroTrustAccessRuleUnionParam() {} // Matches a specific country type CountryRule struct { @@ -701,347 +1007,155 @@ type CountryRule struct { JSON countryRuleJSON `json:"-"` } -// countryRuleJSON contains the JSON metadata for the struct [CountryRule] -type countryRuleJSON struct { - Geo apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *CountryRule) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r countryRuleJSON) RawJSON() string { - return r.raw -} - -func (r CountryRule) implementsZeroTrustIncludeItem() {} - -func (r CountryRule) implementsZeroTrustRule() {} - -func (r CountryRule) implementsZeroTrustExcludeItem() {} - -func (r CountryRule) implementsZeroTrustRequireItem() {} - -type CountryRuleGeo struct { - // The country code that should be matched. - CountryCode string `json:"country_code,required"` - JSON countryRuleGeoJSON `json:"-"` -} - -// countryRuleGeoJSON contains the JSON metadata for the struct [CountryRuleGeo] -type countryRuleGeoJSON struct { - CountryCode apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *CountryRuleGeo) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r countryRuleGeoJSON) RawJSON() string { - return r.raw -} - -// Matches a specific country -type CountryRuleParam struct { - Geo param.Field[CountryRuleGeoParam] `json:"geo,required"` -} - -func (r CountryRuleParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -func (r CountryRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRuleUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r CountryRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -type CountryRuleGeoParam struct { - // The country code that should be matched. - CountryCode param.Field[string] `json:"country_code,required"` -} - -func (r CountryRuleGeoParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// Enforces a device posture rule has run successfully -type DevicePostureRule struct { - DevicePosture DevicePostureRuleDevicePosture `json:"device_posture,required"` - JSON devicePostureRuleJSON `json:"-"` -} - -// devicePostureRuleJSON contains the JSON metadata for the struct -// [DevicePostureRule] -type devicePostureRuleJSON struct { - DevicePosture apijson.Field - raw string - ExtraFields map[string]apijson.Field +// countryRuleJSON contains the JSON metadata for the struct [CountryRule] +type countryRuleJSON struct { + Geo apijson.Field + raw string + ExtraFields map[string]apijson.Field } -func (r *DevicePostureRule) UnmarshalJSON(data []byte) (err error) { +func (r *CountryRule) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r devicePostureRuleJSON) RawJSON() string { +func (r countryRuleJSON) RawJSON() string { return r.raw } -func (r DevicePostureRule) implementsZeroTrustIncludeItem() {} - -func (r DevicePostureRule) implementsZeroTrustRule() {} - -func (r DevicePostureRule) implementsZeroTrustExcludeItem() {} +func (r CountryRule) implementsZeroTrustAccessRule() {} -func (r DevicePostureRule) implementsZeroTrustRequireItem() {} - -type DevicePostureRuleDevicePosture struct { - // The ID of a device posture integration. - IntegrationUid string `json:"integration_uid,required"` - JSON devicePostureRuleDevicePostureJSON `json:"-"` +type CountryRuleGeo struct { + // The country code that should be matched. + CountryCode string `json:"country_code,required"` + JSON countryRuleGeoJSON `json:"-"` } -// devicePostureRuleDevicePostureJSON contains the JSON metadata for the struct -// [DevicePostureRuleDevicePosture] -type devicePostureRuleDevicePostureJSON struct { - IntegrationUid apijson.Field - raw string - ExtraFields map[string]apijson.Field +// countryRuleGeoJSON contains the JSON metadata for the struct [CountryRuleGeo] +type countryRuleGeoJSON struct { + CountryCode apijson.Field + raw string + ExtraFields map[string]apijson.Field } -func (r *DevicePostureRuleDevicePosture) UnmarshalJSON(data []byte) (err error) { +func (r *CountryRuleGeo) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r devicePostureRuleDevicePostureJSON) RawJSON() string { +func (r countryRuleGeoJSON) RawJSON() string { return r.raw } -// Enforces a device posture rule has run successfully -type DevicePostureRuleParam struct { - DevicePosture param.Field[DevicePostureRuleDevicePostureParam] `json:"device_posture,required"` +// Matches a specific country +type CountryRuleParam struct { + Geo param.Field[CountryRuleGeoParam] `json:"geo,required"` } -func (r DevicePostureRuleParam) MarshalJSON() (data []byte, err error) { +func (r CountryRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRuleUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r CountryRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -type DevicePostureRuleDevicePostureParam struct { - // The ID of a device posture integration. - IntegrationUid param.Field[string] `json:"integration_uid,required"` +type CountryRuleGeoParam struct { + // The country code that should be matched. + CountryCode param.Field[string] `json:"country_code,required"` } -func (r DevicePostureRuleDevicePostureParam) MarshalJSON() (data []byte, err error) { +func (r CountryRuleGeoParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } @@ -1066,13 +1180,7 @@ func (r domainRuleJSON) RawJSON() string { return r.raw } -func (r DomainRule) implementsZeroTrustIncludeItem() {} - -func (r DomainRule) implementsZeroTrustRule() {} - -func (r DomainRule) implementsZeroTrustExcludeItem() {} - -func (r DomainRule) implementsZeroTrustRequireItem() {} +func (r DomainRule) implementsZeroTrustAccessRule() {} type DomainRuleEmailDomain struct { // The email domain to match. @@ -1105,111 +1213,101 @@ func (r DomainRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r DomainRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DomainRuleParam) implementsZeroTrustRuleUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DomainRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DomainRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DomainRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r DomainRuleParam) implementsZeroTrustAccessRuleUnionParam() {} type DomainRuleEmailDomainParam struct { // The email domain to match. @@ -1241,13 +1339,7 @@ func (r emailListRuleJSON) RawJSON() string { return r.raw } -func (r EmailListRule) implementsZeroTrustIncludeItem() {} - -func (r EmailListRule) implementsZeroTrustRule() {} - -func (r EmailListRule) implementsZeroTrustExcludeItem() {} - -func (r EmailListRule) implementsZeroTrustRequireItem() {} +func (r EmailListRule) implementsZeroTrustAccessRule() {} type EmailListRuleEmailList struct { // The ID of a previously created email list. @@ -1280,111 +1372,101 @@ func (r EmailListRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r EmailListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r EmailListRuleParam) implementsZeroTrustRuleUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r EmailListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r EmailListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r EmailListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} type EmailListRuleEmailListParam struct { // The ID of a previously created email list. @@ -1416,13 +1498,7 @@ func (r emailRuleJSON) RawJSON() string { return r.raw } -func (r EmailRule) implementsZeroTrustIncludeItem() {} - -func (r EmailRule) implementsZeroTrustRule() {} - -func (r EmailRule) implementsZeroTrustExcludeItem() {} - -func (r EmailRule) implementsZeroTrustRequireItem() {} +func (r EmailRule) implementsZeroTrustAccessRule() {} type EmailRuleEmail struct { // The email of the user. @@ -1454,111 +1530,101 @@ func (r EmailRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r EmailRuleParam) implementsZeroTrustRuleUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r EmailRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r EmailRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r EmailRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EmailRuleParam) implementsZeroTrustAccessRuleUnionParam() {} type EmailRuleEmailParam struct { // The email of the user. @@ -1591,13 +1657,7 @@ func (r everyoneRuleJSON) RawJSON() string { return r.raw } -func (r EveryoneRule) implementsZeroTrustIncludeItem() {} - -func (r EveryoneRule) implementsZeroTrustRule() {} - -func (r EveryoneRule) implementsZeroTrustExcludeItem() {} - -func (r EveryoneRule) implementsZeroTrustRequireItem() {} +func (r EveryoneRule) implementsZeroTrustAccessRule() {} // Matches everyone. type EveryoneRuleParam struct { @@ -1609,111 +1669,101 @@ func (r EveryoneRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r EveryoneRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r EveryoneRuleParam) implementsZeroTrustRuleUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r EveryoneRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r EveryoneRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r EveryoneRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r EveryoneRuleParam) implementsZeroTrustAccessRuleUnionParam() {} // Create Allow or Block policies which evaluate the user based on custom criteria. type ExternalEvaluationRule struct { @@ -1737,13 +1787,7 @@ func (r externalEvaluationRuleJSON) RawJSON() string { return r.raw } -func (r ExternalEvaluationRule) implementsZeroTrustIncludeItem() {} - -func (r ExternalEvaluationRule) implementsZeroTrustRule() {} - -func (r ExternalEvaluationRule) implementsZeroTrustExcludeItem() {} - -func (r ExternalEvaluationRule) implementsZeroTrustRequireItem() {} +func (r ExternalEvaluationRule) implementsZeroTrustAccessRule() {} type ExternalEvaluationRuleExternalEvaluation struct { // The API endpoint containing your business logic. @@ -1780,111 +1824,101 @@ func (r ExternalEvaluationRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r ExternalEvaluationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r ExternalEvaluationRuleParam) implementsZeroTrustRuleUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r ExternalEvaluationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r ExternalEvaluationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r ExternalEvaluationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ExternalEvaluationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} type ExternalEvaluationRuleExternalEvaluationParam struct { // The API endpoint containing your business logic. @@ -1920,13 +1954,7 @@ func (r githubOrganizationRuleJSON) RawJSON() string { return r.raw } -func (r GitHubOrganizationRule) implementsZeroTrustIncludeItem() {} - -func (r GitHubOrganizationRule) implementsZeroTrustRule() {} - -func (r GitHubOrganizationRule) implementsZeroTrustExcludeItem() {} - -func (r GitHubOrganizationRule) implementsZeroTrustRequireItem() {} +func (r GitHubOrganizationRule) implementsZeroTrustAccessRule() {} type GitHubOrganizationRuleGitHubOrganization struct { // The ID of your Github identity provider. @@ -1962,111 +1990,101 @@ func (r GitHubOrganizationRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r GitHubOrganizationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r GitHubOrganizationRuleParam) implementsZeroTrustRuleUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r GitHubOrganizationRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r GitHubOrganizationRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r GitHubOrganizationRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GitHubOrganizationRuleParam) implementsZeroTrustAccessRuleUnionParam() {} type GitHubOrganizationRuleGitHubOrganizationParam struct { // The ID of your Github identity provider. @@ -2100,13 +2118,7 @@ func (r groupRuleJSON) RawJSON() string { return r.raw } -func (r GroupRule) implementsZeroTrustIncludeItem() {} - -func (r GroupRule) implementsZeroTrustRule() {} - -func (r GroupRule) implementsZeroTrustExcludeItem() {} - -func (r GroupRule) implementsZeroTrustRequireItem() {} +func (r GroupRule) implementsZeroTrustAccessRule() {} type GroupRuleGroup struct { // The ID of a previously created Access group. @@ -2138,111 +2150,101 @@ func (r GroupRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r GroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r GroupRuleParam) implementsZeroTrustRuleUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r GroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r GroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r GroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} type GroupRuleGroupParam struct { // The ID of a previously created Access group. @@ -2275,13 +2277,7 @@ func (r gsuiteGroupRuleJSON) RawJSON() string { return r.raw } -func (r GsuiteGroupRule) implementsZeroTrustIncludeItem() {} - -func (r GsuiteGroupRule) implementsZeroTrustRule() {} - -func (r GsuiteGroupRule) implementsZeroTrustExcludeItem() {} - -func (r GsuiteGroupRule) implementsZeroTrustRequireItem() {} +func (r GsuiteGroupRule) implementsZeroTrustAccessRule() {} type GsuiteGroupRuleGsuite struct { // The ID of your Google Workspace identity provider. @@ -2318,331 +2314,111 @@ func (r GsuiteGroupRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r GsuiteGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustRuleUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r GsuiteGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -type GsuiteGroupRuleGsuiteParam struct { - // The ID of your Google Workspace identity provider. - ConnectionID param.Field[string] `json:"connection_id,required"` - // The email of the Google Workspace group. - Email param.Field[string] `json:"email,required"` -} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r GsuiteGroupRuleGsuiteParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -// Matches a specific email. -type IncludeItem struct { - Email interface{} `json:"email,required"` - EmailList interface{} `json:"email_list,required"` - EmailDomain interface{} `json:"email_domain,required"` - Everyone interface{} `json:"everyone,required"` - IP interface{} `json:"ip,required"` - IPList interface{} `json:"ip_list,required"` - Certificate interface{} `json:"certificate,required"` - Group interface{} `json:"group,required"` - AzureAd interface{} `json:"azureAD,required"` - GitHubOrganization interface{} `json:"github-organization,required"` - Gsuite interface{} `json:"gsuite,required"` - Okta interface{} `json:"okta,required"` - Saml interface{} `json:"saml,required"` - ServiceToken interface{} `json:"service_token,required"` - AnyValidServiceToken interface{} `json:"any_valid_service_token,required"` - ExternalEvaluation interface{} `json:"external_evaluation,required"` - Geo interface{} `json:"geo,required"` - AuthMethod interface{} `json:"auth_method,required"` - DevicePosture interface{} `json:"device_posture,required"` - JSON includeItemJSON `json:"-"` - union IncludeItemUnion -} - -// includeItemJSON contains the JSON metadata for the struct [IncludeItem] -type includeItemJSON struct { - Email apijson.Field - EmailList apijson.Field - EmailDomain apijson.Field - Everyone apijson.Field - IP apijson.Field - IPList apijson.Field - Certificate apijson.Field - Group apijson.Field - AzureAd apijson.Field - GitHubOrganization apijson.Field - Gsuite apijson.Field - Okta apijson.Field - Saml apijson.Field - ServiceToken apijson.Field - AnyValidServiceToken apijson.Field - ExternalEvaluation apijson.Field - Geo apijson.Field - AuthMethod apijson.Field - DevicePosture apijson.Field - raw string - ExtraFields map[string]apijson.Field -} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r includeItemJSON) RawJSON() string { - return r.raw -} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r *IncludeItem) UnmarshalJSON(data []byte) (err error) { - err = apijson.UnmarshalRoot(data, &r.union) - if err != nil { - return err - } - return apijson.Port(r.union, &r) -} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IncludeItem) AsUnion() IncludeItemUnion { - return r.union -} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -// Matches a specific email. -// -// Union satisfied by [zero_trust.EmailRule], [zero_trust.EmailListRule], -// [zero_trust.DomainRule], [zero_trust.EveryoneRule], [zero_trust.IPRule], -// [zero_trust.IPListRule], [zero_trust.CertificateRule], [zero_trust.GroupRule], -// [zero_trust.AzureGroupRule], [zero_trust.GitHubOrganizationRule], -// [zero_trust.GsuiteGroupRule], [zero_trust.OktaGroupRule], -// [zero_trust.SamlGroupRule], [zero_trust.ServiceTokenRule], -// [zero_trust.AnyValidServiceTokenRule], [zero_trust.ExternalEvaluationRule], -// [zero_trust.CountryRule], [zero_trust.AuthenticationMethodRule] or -// [zero_trust.DevicePostureRule]. -type IncludeItemUnion interface { - implementsZeroTrustIncludeItem() -} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func init() { - apijson.RegisterUnion( - reflect.TypeOf((*IncludeItemUnion)(nil)).Elem(), - "", - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EmailRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EmailListRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(DomainRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EveryoneRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(IPRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(IPListRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(CertificateRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AzureGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GitHubOrganizationRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GsuiteGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(OktaGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(SamlGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ServiceTokenRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AnyValidServiceTokenRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ExternalEvaluationRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(CountryRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AuthenticationMethodRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(DevicePostureRule{}), - }, - ) -} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -// Matches a specific email. -type IncludeItemParam struct { - Email param.Field[interface{}] `json:"email,required"` - EmailList param.Field[interface{}] `json:"email_list,required"` - EmailDomain param.Field[interface{}] `json:"email_domain,required"` - Everyone param.Field[interface{}] `json:"everyone,required"` - IP param.Field[interface{}] `json:"ip,required"` - IPList param.Field[interface{}] `json:"ip_list,required"` - Certificate param.Field[interface{}] `json:"certificate,required"` - Group param.Field[interface{}] `json:"group,required"` - AzureAd param.Field[interface{}] `json:"azureAD,required"` - GitHubOrganization param.Field[interface{}] `json:"github-organization,required"` - Gsuite param.Field[interface{}] `json:"gsuite,required"` - Okta param.Field[interface{}] `json:"okta,required"` - Saml param.Field[interface{}] `json:"saml,required"` - ServiceToken param.Field[interface{}] `json:"service_token,required"` - AnyValidServiceToken param.Field[interface{}] `json:"any_valid_service_token,required"` - ExternalEvaluation param.Field[interface{}] `json:"external_evaluation,required"` - Geo param.Field[interface{}] `json:"geo,required"` - AuthMethod param.Field[interface{}] `json:"auth_method,required"` - DevicePosture param.Field[interface{}] `json:"device_posture,required"` -} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IncludeItemParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IncludeItemParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -// Matches a specific email. -// -// Satisfied by [zero_trust.EmailRuleParam], [zero_trust.EmailListRuleParam], -// [zero_trust.DomainRuleParam], [zero_trust.EveryoneRuleParam], -// [zero_trust.IPRuleParam], [zero_trust.IPListRuleParam], -// [zero_trust.CertificateRuleParam], [zero_trust.GroupRuleParam], -// [zero_trust.AzureGroupRuleParam], [zero_trust.GitHubOrganizationRuleParam], -// [zero_trust.GsuiteGroupRuleParam], [zero_trust.OktaGroupRuleParam], -// [zero_trust.SamlGroupRuleParam], [zero_trust.ServiceTokenRuleParam], -// [zero_trust.AnyValidServiceTokenRuleParam], -// [zero_trust.ExternalEvaluationRuleParam], [zero_trust.CountryRuleParam], -// [zero_trust.AuthenticationMethodRuleParam], [zero_trust.DevicePostureRuleParam], -// [IncludeItemParam]. -type IncludeItemUnionParam interface { - implementsZeroTrustIncludeItemUnionParam() +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +func (r GsuiteGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} + +type GsuiteGroupRuleGsuiteParam struct { + // The ID of your Google Workspace identity provider. + ConnectionID param.Field[string] `json:"connection_id,required"` + // The email of the Google Workspace group. + Email param.Field[string] `json:"email,required"` +} + +func (r GsuiteGroupRuleGsuiteParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) } // Matches an IP address from a list. @@ -2666,13 +2442,7 @@ func (r ipListRuleJSON) RawJSON() string { return r.raw } -func (r IPListRule) implementsZeroTrustIncludeItem() {} - -func (r IPListRule) implementsZeroTrustRule() {} - -func (r IPListRule) implementsZeroTrustExcludeItem() {} - -func (r IPListRule) implementsZeroTrustRequireItem() {} +func (r IPListRule) implementsZeroTrustAccessRule() {} type IPListRuleIPList struct { // The ID of a previously created IP list. @@ -2705,111 +2475,101 @@ func (r IPListRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r IPListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r IPListRuleParam) implementsZeroTrustRuleUnionParam() {} - -func (r IPListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPListRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r IPListRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r IPListRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPListRuleParam) implementsZeroTrustAccessRuleUnionParam() {} type IPListRuleIPListParam struct { // The ID of a previously created IP list. @@ -2841,13 +2601,7 @@ func (r ipRuleJSON) RawJSON() string { return r.raw } -func (r IPRule) implementsZeroTrustIncludeItem() {} - -func (r IPRule) implementsZeroTrustRule() {} - -func (r IPRule) implementsZeroTrustExcludeItem() {} - -func (r IPRule) implementsZeroTrustRequireItem() {} +func (r IPRule) implementsZeroTrustAccessRule() {} type IPRuleIP struct { // An IPv4 or IPv6 CIDR block. @@ -2879,111 +2633,101 @@ func (r IPRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r IPRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r IPRuleParam) implementsZeroTrustRuleUnionParam() {} - -func (r IPRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r IPRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r IPRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r IPRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r IPRuleParam) implementsZeroTrustAccessRuleUnionParam() {} type IPRuleIPParam struct { // An IPv4 or IPv6 CIDR block. @@ -3015,13 +2759,7 @@ func (r oktaGroupRuleJSON) RawJSON() string { return r.raw } -func (r OktaGroupRule) implementsZeroTrustIncludeItem() {} - -func (r OktaGroupRule) implementsZeroTrustRule() {} - -func (r OktaGroupRule) implementsZeroTrustExcludeItem() {} - -func (r OktaGroupRule) implementsZeroTrustRequireItem() {} +func (r OktaGroupRule) implementsZeroTrustAccessRule() {} type OktaGroupRuleOkta struct { // The ID of your Okta identity provider. @@ -3057,111 +2795,101 @@ func (r OktaGroupRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r OktaGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r OktaGroupRuleParam) implementsZeroTrustRuleUnionParam() {} - -func (r OktaGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r OktaGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r OktaGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r OktaGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r OktaGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} type OktaGroupRuleOktaParam struct { // The ID of your Okta identity provider. @@ -3174,216 +2902,6 @@ func (r OktaGroupRuleOktaParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -// Matches a specific email. -type Rule struct { - Email interface{} `json:"email,required"` - EmailList interface{} `json:"email_list,required"` - EmailDomain interface{} `json:"email_domain,required"` - Everyone interface{} `json:"everyone,required"` - IP interface{} `json:"ip,required"` - IPList interface{} `json:"ip_list,required"` - Certificate interface{} `json:"certificate,required"` - Group interface{} `json:"group,required"` - AzureAd interface{} `json:"azureAD,required"` - GitHubOrganization interface{} `json:"github-organization,required"` - Gsuite interface{} `json:"gsuite,required"` - Okta interface{} `json:"okta,required"` - Saml interface{} `json:"saml,required"` - ServiceToken interface{} `json:"service_token,required"` - AnyValidServiceToken interface{} `json:"any_valid_service_token,required"` - ExternalEvaluation interface{} `json:"external_evaluation,required"` - Geo interface{} `json:"geo,required"` - AuthMethod interface{} `json:"auth_method,required"` - DevicePosture interface{} `json:"device_posture,required"` - JSON ruleJSON `json:"-"` - union RuleUnion -} - -// ruleJSON contains the JSON metadata for the struct [Rule] -type ruleJSON struct { - Email apijson.Field - EmailList apijson.Field - EmailDomain apijson.Field - Everyone apijson.Field - IP apijson.Field - IPList apijson.Field - Certificate apijson.Field - Group apijson.Field - AzureAd apijson.Field - GitHubOrganization apijson.Field - Gsuite apijson.Field - Okta apijson.Field - Saml apijson.Field - ServiceToken apijson.Field - AnyValidServiceToken apijson.Field - ExternalEvaluation apijson.Field - Geo apijson.Field - AuthMethod apijson.Field - DevicePosture apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r ruleJSON) RawJSON() string { - return r.raw -} - -func (r *Rule) UnmarshalJSON(data []byte) (err error) { - err = apijson.UnmarshalRoot(data, &r.union) - if err != nil { - return err - } - return apijson.Port(r.union, &r) -} - -func (r Rule) AsUnion() RuleUnion { - return r.union -} - -// Matches a specific email. -// -// Union satisfied by [zero_trust.EmailRule], [zero_trust.EmailListRule], -// [zero_trust.DomainRule], [zero_trust.EveryoneRule], [zero_trust.IPRule], -// [zero_trust.IPListRule], [zero_trust.CertificateRule], [zero_trust.GroupRule], -// [zero_trust.AzureGroupRule], [zero_trust.GitHubOrganizationRule], -// [zero_trust.GsuiteGroupRule], [zero_trust.OktaGroupRule], -// [zero_trust.SamlGroupRule], [zero_trust.ServiceTokenRule], -// [zero_trust.AnyValidServiceTokenRule], [zero_trust.ExternalEvaluationRule], -// [zero_trust.CountryRule], [zero_trust.AuthenticationMethodRule] or -// [zero_trust.DevicePostureRule]. -type RuleUnion interface { - implementsZeroTrustRule() -} - -func init() { - apijson.RegisterUnion( - reflect.TypeOf((*RuleUnion)(nil)).Elem(), - "", - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EmailRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EmailListRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(DomainRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EveryoneRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(IPRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(IPListRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(CertificateRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AzureGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GitHubOrganizationRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GsuiteGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(OktaGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(SamlGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ServiceTokenRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AnyValidServiceTokenRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ExternalEvaluationRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(CountryRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AuthenticationMethodRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(DevicePostureRule{}), - }, - ) -} - -// Matches a specific email. -type RuleParam struct { - Email param.Field[interface{}] `json:"email,required"` - EmailList param.Field[interface{}] `json:"email_list,required"` - EmailDomain param.Field[interface{}] `json:"email_domain,required"` - Everyone param.Field[interface{}] `json:"everyone,required"` - IP param.Field[interface{}] `json:"ip,required"` - IPList param.Field[interface{}] `json:"ip_list,required"` - Certificate param.Field[interface{}] `json:"certificate,required"` - Group param.Field[interface{}] `json:"group,required"` - AzureAd param.Field[interface{}] `json:"azureAD,required"` - GitHubOrganization param.Field[interface{}] `json:"github-organization,required"` - Gsuite param.Field[interface{}] `json:"gsuite,required"` - Okta param.Field[interface{}] `json:"okta,required"` - Saml param.Field[interface{}] `json:"saml,required"` - ServiceToken param.Field[interface{}] `json:"service_token,required"` - AnyValidServiceToken param.Field[interface{}] `json:"any_valid_service_token,required"` - ExternalEvaluation param.Field[interface{}] `json:"external_evaluation,required"` - Geo param.Field[interface{}] `json:"geo,required"` - AuthMethod param.Field[interface{}] `json:"auth_method,required"` - DevicePosture param.Field[interface{}] `json:"device_posture,required"` -} - -func (r RuleParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -func (r RuleParam) implementsZeroTrustRuleUnionParam() {} - -// Matches a specific email. -// -// Satisfied by [zero_trust.EmailRuleParam], [zero_trust.EmailListRuleParam], -// [zero_trust.DomainRuleParam], [zero_trust.EveryoneRuleParam], -// [zero_trust.IPRuleParam], [zero_trust.IPListRuleParam], -// [zero_trust.CertificateRuleParam], [zero_trust.GroupRuleParam], -// [zero_trust.AzureGroupRuleParam], [zero_trust.GitHubOrganizationRuleParam], -// [zero_trust.GsuiteGroupRuleParam], [zero_trust.OktaGroupRuleParam], -// [zero_trust.SamlGroupRuleParam], [zero_trust.ServiceTokenRuleParam], -// [zero_trust.AnyValidServiceTokenRuleParam], -// [zero_trust.ExternalEvaluationRuleParam], [zero_trust.CountryRuleParam], -// [zero_trust.AuthenticationMethodRuleParam], [zero_trust.DevicePostureRuleParam], -// [RuleParam]. -type RuleUnionParam interface { - implementsZeroTrustRuleUnionParam() -} - // Matches a SAML group. Requires a SAML identity provider. type SamlGroupRule struct { Saml SamlGroupRuleSaml `json:"saml,required"` @@ -3405,13 +2923,7 @@ func (r samlGroupRuleJSON) RawJSON() string { return r.raw } -func (r SamlGroupRule) implementsZeroTrustIncludeItem() {} - -func (r SamlGroupRule) implementsZeroTrustRule() {} - -func (r SamlGroupRule) implementsZeroTrustExcludeItem() {} - -func (r SamlGroupRule) implementsZeroTrustRequireItem() {} +func (r SamlGroupRule) implementsZeroTrustAccessRule() {} type SamlGroupRuleSaml struct { // The name of the SAML attribute. @@ -3447,111 +2959,101 @@ func (r SamlGroupRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r SamlGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r SamlGroupRuleParam) implementsZeroTrustRuleUnionParam() {} - -func (r SamlGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r SamlGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r SamlGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r SamlGroupRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r SamlGroupRuleParam) implementsZeroTrustAccessRuleUnionParam() {} type SamlGroupRuleSamlParam struct { // The name of the SAML attribute. @@ -3586,13 +3088,7 @@ func (r serviceTokenRuleJSON) RawJSON() string { return r.raw } -func (r ServiceTokenRule) implementsZeroTrustIncludeItem() {} - -func (r ServiceTokenRule) implementsZeroTrustRule() {} - -func (r ServiceTokenRule) implementsZeroTrustExcludeItem() {} - -func (r ServiceTokenRule) implementsZeroTrustRequireItem() {} +func (r ServiceTokenRule) implementsZeroTrustAccessRule() {} type ServiceTokenRuleServiceToken struct { // The ID of a Service Token. @@ -3625,111 +3121,101 @@ func (r ServiceTokenRuleParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -func (r ServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r ServiceTokenRuleParam) implementsZeroTrustRuleUnionParam() {} - -func (r ServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r ServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r ServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustExcludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustIncludeItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} -func (r ServiceTokenRuleParam) implementsZeroTrustRequireItemUnionParam() {} +func (r ServiceTokenRuleParam) implementsZeroTrustAccessRuleUnionParam() {} type ServiceTokenRuleServiceTokenParam struct { // The ID of a Service Token. diff --git a/zero_trust/accessapplicationpolicy.go b/zero_trust/accessapplicationpolicy.go index 18094a1c247..10f3add4216 100644 --- a/zero_trust/accessapplicationpolicy.go +++ b/zero_trust/accessapplicationpolicy.go @@ -6,7 +6,6 @@ import ( "context" "fmt" "net/http" - "reflect" "time" "github.com/cloudflare/cloudflare-go/v2/internal/apijson" @@ -15,7 +14,6 @@ import ( "github.com/cloudflare/cloudflare-go/v2/internal/requestconfig" "github.com/cloudflare/cloudflare-go/v2/internal/shared" "github.com/cloudflare/cloudflare-go/v2/option" - "github.com/tidwall/gjson" ) // AccessApplicationPolicyService contains methods and other services that help @@ -157,19 +155,18 @@ func (r *AccessApplicationPolicyService) Get(ctx context.Context, uuid1 string, } // A group of email addresses that can approve a temporary authentication request. -type ApprovalGroupItem struct { +type ApprovalGroup struct { // The number of approvals needed to obtain access. ApprovalsNeeded float64 `json:"approvals_needed,required"` // A list of emails that can approve the access request. EmailAddresses []string `json:"email_addresses"` // The UUID of an re-usable email list. - EmailListUUID string `json:"email_list_uuid"` - JSON approvalGroupItemJSON `json:"-"` + EmailListUUID string `json:"email_list_uuid"` + JSON approvalGroupJSON `json:"-"` } -// approvalGroupItemJSON contains the JSON metadata for the struct -// [ApprovalGroupItem] -type approvalGroupItemJSON struct { +// approvalGroupJSON contains the JSON metadata for the struct [ApprovalGroup] +type approvalGroupJSON struct { ApprovalsNeeded apijson.Field EmailAddresses apijson.Field EmailListUUID apijson.Field @@ -177,16 +174,16 @@ type approvalGroupItemJSON struct { ExtraFields map[string]apijson.Field } -func (r *ApprovalGroupItem) UnmarshalJSON(data []byte) (err error) { +func (r *ApprovalGroup) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r approvalGroupItemJSON) RawJSON() string { +func (r approvalGroupJSON) RawJSON() string { return r.raw } // A group of email addresses that can approve a temporary authentication request. -type ApprovalGroupItemParam struct { +type ApprovalGroupParam struct { // The number of approvals needed to obtain access. ApprovalsNeeded param.Field[float64] `json:"approvals_needed,required"` // A list of emails that can approve the access request. @@ -195,225 +192,15 @@ type ApprovalGroupItemParam struct { EmailListUUID param.Field[string] `json:"email_list_uuid"` } -func (r ApprovalGroupItemParam) MarshalJSON() (data []byte, err error) { +func (r ApprovalGroupParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -// Matches a specific email. -type ExcludeItem struct { - Email interface{} `json:"email,required"` - EmailList interface{} `json:"email_list,required"` - EmailDomain interface{} `json:"email_domain,required"` - Everyone interface{} `json:"everyone,required"` - IP interface{} `json:"ip,required"` - IPList interface{} `json:"ip_list,required"` - Certificate interface{} `json:"certificate,required"` - Group interface{} `json:"group,required"` - AzureAd interface{} `json:"azureAD,required"` - GitHubOrganization interface{} `json:"github-organization,required"` - Gsuite interface{} `json:"gsuite,required"` - Okta interface{} `json:"okta,required"` - Saml interface{} `json:"saml,required"` - ServiceToken interface{} `json:"service_token,required"` - AnyValidServiceToken interface{} `json:"any_valid_service_token,required"` - ExternalEvaluation interface{} `json:"external_evaluation,required"` - Geo interface{} `json:"geo,required"` - AuthMethod interface{} `json:"auth_method,required"` - DevicePosture interface{} `json:"device_posture,required"` - JSON excludeItemJSON `json:"-"` - union ExcludeItemUnion -} - -// excludeItemJSON contains the JSON metadata for the struct [ExcludeItem] -type excludeItemJSON struct { - Email apijson.Field - EmailList apijson.Field - EmailDomain apijson.Field - Everyone apijson.Field - IP apijson.Field - IPList apijson.Field - Certificate apijson.Field - Group apijson.Field - AzureAd apijson.Field - GitHubOrganization apijson.Field - Gsuite apijson.Field - Okta apijson.Field - Saml apijson.Field - ServiceToken apijson.Field - AnyValidServiceToken apijson.Field - ExternalEvaluation apijson.Field - Geo apijson.Field - AuthMethod apijson.Field - DevicePosture apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r excludeItemJSON) RawJSON() string { - return r.raw -} - -func (r *ExcludeItem) UnmarshalJSON(data []byte) (err error) { - err = apijson.UnmarshalRoot(data, &r.union) - if err != nil { - return err - } - return apijson.Port(r.union, &r) -} - -func (r ExcludeItem) AsUnion() ExcludeItemUnion { - return r.union -} - -// Matches a specific email. -// -// Union satisfied by [zero_trust.EmailRule], [zero_trust.EmailListRule], -// [zero_trust.DomainRule], [zero_trust.EveryoneRule], [zero_trust.IPRule], -// [zero_trust.IPListRule], [zero_trust.CertificateRule], [zero_trust.GroupRule], -// [zero_trust.AzureGroupRule], [zero_trust.GitHubOrganizationRule], -// [zero_trust.GsuiteGroupRule], [zero_trust.OktaGroupRule], -// [zero_trust.SamlGroupRule], [zero_trust.ServiceTokenRule], -// [zero_trust.AnyValidServiceTokenRule], [zero_trust.ExternalEvaluationRule], -// [zero_trust.CountryRule], [zero_trust.AuthenticationMethodRule] or -// [zero_trust.DevicePostureRule]. -type ExcludeItemUnion interface { - implementsZeroTrustExcludeItem() -} - -func init() { - apijson.RegisterUnion( - reflect.TypeOf((*ExcludeItemUnion)(nil)).Elem(), - "", - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EmailRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EmailListRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(DomainRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EveryoneRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(IPRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(IPListRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(CertificateRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AzureGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GitHubOrganizationRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GsuiteGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(OktaGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(SamlGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ServiceTokenRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AnyValidServiceTokenRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ExternalEvaluationRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(CountryRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AuthenticationMethodRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(DevicePostureRule{}), - }, - ) -} - -// Matches a specific email. -type ExcludeItemParam struct { - Email param.Field[interface{}] `json:"email,required"` - EmailList param.Field[interface{}] `json:"email_list,required"` - EmailDomain param.Field[interface{}] `json:"email_domain,required"` - Everyone param.Field[interface{}] `json:"everyone,required"` - IP param.Field[interface{}] `json:"ip,required"` - IPList param.Field[interface{}] `json:"ip_list,required"` - Certificate param.Field[interface{}] `json:"certificate,required"` - Group param.Field[interface{}] `json:"group,required"` - AzureAd param.Field[interface{}] `json:"azureAD,required"` - GitHubOrganization param.Field[interface{}] `json:"github-organization,required"` - Gsuite param.Field[interface{}] `json:"gsuite,required"` - Okta param.Field[interface{}] `json:"okta,required"` - Saml param.Field[interface{}] `json:"saml,required"` - ServiceToken param.Field[interface{}] `json:"service_token,required"` - AnyValidServiceToken param.Field[interface{}] `json:"any_valid_service_token,required"` - ExternalEvaluation param.Field[interface{}] `json:"external_evaluation,required"` - Geo param.Field[interface{}] `json:"geo,required"` - AuthMethod param.Field[interface{}] `json:"auth_method,required"` - DevicePosture param.Field[interface{}] `json:"device_posture,required"` -} - -func (r ExcludeItemParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -func (r ExcludeItemParam) implementsZeroTrustExcludeItemUnionParam() {} - -// Matches a specific email. -// -// Satisfied by [zero_trust.EmailRuleParam], [zero_trust.EmailListRuleParam], -// [zero_trust.DomainRuleParam], [zero_trust.EveryoneRuleParam], -// [zero_trust.IPRuleParam], [zero_trust.IPListRuleParam], -// [zero_trust.CertificateRuleParam], [zero_trust.GroupRuleParam], -// [zero_trust.AzureGroupRuleParam], [zero_trust.GitHubOrganizationRuleParam], -// [zero_trust.GsuiteGroupRuleParam], [zero_trust.OktaGroupRuleParam], -// [zero_trust.SamlGroupRuleParam], [zero_trust.ServiceTokenRuleParam], -// [zero_trust.AnyValidServiceTokenRuleParam], -// [zero_trust.ExternalEvaluationRuleParam], [zero_trust.CountryRuleParam], -// [zero_trust.AuthenticationMethodRuleParam], [zero_trust.DevicePostureRuleParam], -// [ExcludeItemParam]. -type ExcludeItemUnionParam interface { - implementsZeroTrustExcludeItemUnionParam() -} - type Policy struct { // UUID ID string `json:"id"` // Administrators who can approve a temporary authentication request. - ApprovalGroups []ApprovalGroupItem `json:"approval_groups"` + ApprovalGroups []ApprovalGroup `json:"approval_groups"` // Requires the user to request access from an administrator at the start of each // session. ApprovalRequired bool `json:"approval_required"` @@ -422,10 +209,10 @@ type Policy struct { Decision PolicyDecision `json:"decision"` // Rules evaluated with a NOT logical operator. To match the policy, a user cannot // meet any of the Exclude rules. - Exclude []ExcludeItem `json:"exclude"` + Exclude []AccessRule `json:"exclude"` // Rules evaluated with an OR logical operator. A user needs to meet only one of // the Include rules. - Include []IncludeItem `json:"include"` + Include []AccessRule `json:"include"` // Require this application to be served in an isolated browser for users matching // this policy. 'Client Web Isolation' must be on for the account in order to use // this feature. @@ -440,7 +227,7 @@ type Policy struct { PurposeJustificationRequired bool `json:"purpose_justification_required"` // Rules evaluated with an AND logical operator. To match the policy, a user must // meet all of the Require rules. - Require []RequireItem `json:"require"` + Require []AccessRule `json:"require"` // The amount of time that tokens issued for the application will be valid. Must be // in the format `300ms` or `2h45m`. Valid time units are: ns, us (or µs), ms, s, // m, h. @@ -498,7 +285,7 @@ func (r PolicyDecision) IsKnown() bool { type PolicyParam struct { // Administrators who can approve a temporary authentication request. - ApprovalGroups param.Field[[]ApprovalGroupItemParam] `json:"approval_groups"` + ApprovalGroups param.Field[[]ApprovalGroupParam] `json:"approval_groups"` // Requires the user to request access from an administrator at the start of each // session. ApprovalRequired param.Field[bool] `json:"approval_required"` @@ -506,10 +293,10 @@ type PolicyParam struct { Decision param.Field[PolicyDecision] `json:"decision"` // Rules evaluated with a NOT logical operator. To match the policy, a user cannot // meet any of the Exclude rules. - Exclude param.Field[[]ExcludeItemUnionParam] `json:"exclude"` + Exclude param.Field[[]AccessRuleUnionParam] `json:"exclude"` // Rules evaluated with an OR logical operator. A user needs to meet only one of // the Include rules. - Include param.Field[[]IncludeItemUnionParam] `json:"include"` + Include param.Field[[]AccessRuleUnionParam] `json:"include"` // Require this application to be served in an isolated browser for users matching // this policy. 'Client Web Isolation' must be on for the account in order to use // this feature. @@ -524,7 +311,7 @@ type PolicyParam struct { PurposeJustificationRequired param.Field[bool] `json:"purpose_justification_required"` // Rules evaluated with an AND logical operator. To match the policy, a user must // meet all of the Require rules. - Require param.Field[[]RequireItemUnionParam] `json:"require"` + Require param.Field[[]AccessRuleUnionParam] `json:"require"` // The amount of time that tokens issued for the application will be valid. Must be // in the format `300ms` or `2h45m`. Valid time units are: ns, us (or µs), ms, s, // m, h. @@ -535,216 +322,6 @@ func (r PolicyParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } -// Matches a specific email. -type RequireItem struct { - Email interface{} `json:"email,required"` - EmailList interface{} `json:"email_list,required"` - EmailDomain interface{} `json:"email_domain,required"` - Everyone interface{} `json:"everyone,required"` - IP interface{} `json:"ip,required"` - IPList interface{} `json:"ip_list,required"` - Certificate interface{} `json:"certificate,required"` - Group interface{} `json:"group,required"` - AzureAd interface{} `json:"azureAD,required"` - GitHubOrganization interface{} `json:"github-organization,required"` - Gsuite interface{} `json:"gsuite,required"` - Okta interface{} `json:"okta,required"` - Saml interface{} `json:"saml,required"` - ServiceToken interface{} `json:"service_token,required"` - AnyValidServiceToken interface{} `json:"any_valid_service_token,required"` - ExternalEvaluation interface{} `json:"external_evaluation,required"` - Geo interface{} `json:"geo,required"` - AuthMethod interface{} `json:"auth_method,required"` - DevicePosture interface{} `json:"device_posture,required"` - JSON requireItemJSON `json:"-"` - union RequireItemUnion -} - -// requireItemJSON contains the JSON metadata for the struct [RequireItem] -type requireItemJSON struct { - Email apijson.Field - EmailList apijson.Field - EmailDomain apijson.Field - Everyone apijson.Field - IP apijson.Field - IPList apijson.Field - Certificate apijson.Field - Group apijson.Field - AzureAd apijson.Field - GitHubOrganization apijson.Field - Gsuite apijson.Field - Okta apijson.Field - Saml apijson.Field - ServiceToken apijson.Field - AnyValidServiceToken apijson.Field - ExternalEvaluation apijson.Field - Geo apijson.Field - AuthMethod apijson.Field - DevicePosture apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r requireItemJSON) RawJSON() string { - return r.raw -} - -func (r *RequireItem) UnmarshalJSON(data []byte) (err error) { - err = apijson.UnmarshalRoot(data, &r.union) - if err != nil { - return err - } - return apijson.Port(r.union, &r) -} - -func (r RequireItem) AsUnion() RequireItemUnion { - return r.union -} - -// Matches a specific email. -// -// Union satisfied by [zero_trust.EmailRule], [zero_trust.EmailListRule], -// [zero_trust.DomainRule], [zero_trust.EveryoneRule], [zero_trust.IPRule], -// [zero_trust.IPListRule], [zero_trust.CertificateRule], [zero_trust.GroupRule], -// [zero_trust.AzureGroupRule], [zero_trust.GitHubOrganizationRule], -// [zero_trust.GsuiteGroupRule], [zero_trust.OktaGroupRule], -// [zero_trust.SamlGroupRule], [zero_trust.ServiceTokenRule], -// [zero_trust.AnyValidServiceTokenRule], [zero_trust.ExternalEvaluationRule], -// [zero_trust.CountryRule], [zero_trust.AuthenticationMethodRule] or -// [zero_trust.DevicePostureRule]. -type RequireItemUnion interface { - implementsZeroTrustRequireItem() -} - -func init() { - apijson.RegisterUnion( - reflect.TypeOf((*RequireItemUnion)(nil)).Elem(), - "", - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EmailRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EmailListRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(DomainRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EveryoneRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(IPRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(IPListRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(CertificateRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AzureGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GitHubOrganizationRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GsuiteGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(OktaGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(SamlGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ServiceTokenRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AnyValidServiceTokenRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ExternalEvaluationRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(CountryRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AuthenticationMethodRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(DevicePostureRule{}), - }, - ) -} - -// Matches a specific email. -type RequireItemParam struct { - Email param.Field[interface{}] `json:"email,required"` - EmailList param.Field[interface{}] `json:"email_list,required"` - EmailDomain param.Field[interface{}] `json:"email_domain,required"` - Everyone param.Field[interface{}] `json:"everyone,required"` - IP param.Field[interface{}] `json:"ip,required"` - IPList param.Field[interface{}] `json:"ip_list,required"` - Certificate param.Field[interface{}] `json:"certificate,required"` - Group param.Field[interface{}] `json:"group,required"` - AzureAd param.Field[interface{}] `json:"azureAD,required"` - GitHubOrganization param.Field[interface{}] `json:"github-organization,required"` - Gsuite param.Field[interface{}] `json:"gsuite,required"` - Okta param.Field[interface{}] `json:"okta,required"` - Saml param.Field[interface{}] `json:"saml,required"` - ServiceToken param.Field[interface{}] `json:"service_token,required"` - AnyValidServiceToken param.Field[interface{}] `json:"any_valid_service_token,required"` - ExternalEvaluation param.Field[interface{}] `json:"external_evaluation,required"` - Geo param.Field[interface{}] `json:"geo,required"` - AuthMethod param.Field[interface{}] `json:"auth_method,required"` - DevicePosture param.Field[interface{}] `json:"device_posture,required"` -} - -func (r RequireItemParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -func (r RequireItemParam) implementsZeroTrustRequireItemUnionParam() {} - -// Matches a specific email. -// -// Satisfied by [zero_trust.EmailRuleParam], [zero_trust.EmailListRuleParam], -// [zero_trust.DomainRuleParam], [zero_trust.EveryoneRuleParam], -// [zero_trust.IPRuleParam], [zero_trust.IPListRuleParam], -// [zero_trust.CertificateRuleParam], [zero_trust.GroupRuleParam], -// [zero_trust.AzureGroupRuleParam], [zero_trust.GitHubOrganizationRuleParam], -// [zero_trust.GsuiteGroupRuleParam], [zero_trust.OktaGroupRuleParam], -// [zero_trust.SamlGroupRuleParam], [zero_trust.ServiceTokenRuleParam], -// [zero_trust.AnyValidServiceTokenRuleParam], -// [zero_trust.ExternalEvaluationRuleParam], [zero_trust.CountryRuleParam], -// [zero_trust.AuthenticationMethodRuleParam], [zero_trust.DevicePostureRuleParam], -// [RequireItemParam]. -type RequireItemUnionParam interface { - implementsZeroTrustRequireItemUnionParam() -} - type AccessApplicationPolicyDeleteResponse struct { // UUID ID string `json:"id"` @@ -772,7 +349,7 @@ type AccessApplicationPolicyNewParams struct { Decision param.Field[AccessApplicationPolicyNewParamsDecision] `json:"decision,required"` // Rules evaluated with an OR logical operator. A user needs to meet only one of // the Include rules. - Include param.Field[[]IncludeItemUnionParam] `json:"include,required"` + Include param.Field[[]AccessRuleUnionParam] `json:"include,required"` // The name of the Access policy. Name param.Field[string] `json:"name,required"` // The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. @@ -780,13 +357,13 @@ type AccessApplicationPolicyNewParams struct { // The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. ZoneID param.Field[string] `path:"zone_id"` // Administrators who can approve a temporary authentication request. - ApprovalGroups param.Field[[]ApprovalGroupItemParam] `json:"approval_groups"` + ApprovalGroups param.Field[[]ApprovalGroupParam] `json:"approval_groups"` // Requires the user to request access from an administrator at the start of each // session. ApprovalRequired param.Field[bool] `json:"approval_required"` // Rules evaluated with a NOT logical operator. To match the policy, a user cannot // meet any of the Exclude rules. - Exclude param.Field[[]ExcludeItemUnionParam] `json:"exclude"` + Exclude param.Field[[]AccessRuleUnionParam] `json:"exclude"` // Require this application to be served in an isolated browser for users matching // this policy. 'Client Web Isolation' must be on for the account in order to use // this feature. @@ -799,7 +376,7 @@ type AccessApplicationPolicyNewParams struct { PurposeJustificationRequired param.Field[bool] `json:"purpose_justification_required"` // Rules evaluated with an AND logical operator. To match the policy, a user must // meet all of the Require rules. - Require param.Field[[]RequireItemUnionParam] `json:"require"` + Require param.Field[[]AccessRuleUnionParam] `json:"require"` // The amount of time that tokens issued for the application will be valid. Must be // in the format `300ms` or `2h45m`. Valid time units are: ns, us (or µs), ms, s, // m, h. @@ -876,7 +453,7 @@ type AccessApplicationPolicyUpdateParams struct { Decision param.Field[AccessApplicationPolicyUpdateParamsDecision] `json:"decision,required"` // Rules evaluated with an OR logical operator. A user needs to meet only one of // the Include rules. - Include param.Field[[]IncludeItemUnionParam] `json:"include,required"` + Include param.Field[[]AccessRuleUnionParam] `json:"include,required"` // The name of the Access policy. Name param.Field[string] `json:"name,required"` // The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. @@ -884,13 +461,13 @@ type AccessApplicationPolicyUpdateParams struct { // The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. ZoneID param.Field[string] `path:"zone_id"` // Administrators who can approve a temporary authentication request. - ApprovalGroups param.Field[[]ApprovalGroupItemParam] `json:"approval_groups"` + ApprovalGroups param.Field[[]ApprovalGroupParam] `json:"approval_groups"` // Requires the user to request access from an administrator at the start of each // session. ApprovalRequired param.Field[bool] `json:"approval_required"` // Rules evaluated with a NOT logical operator. To match the policy, a user cannot // meet any of the Exclude rules. - Exclude param.Field[[]ExcludeItemUnionParam] `json:"exclude"` + Exclude param.Field[[]AccessRuleUnionParam] `json:"exclude"` // Require this application to be served in an isolated browser for users matching // this policy. 'Client Web Isolation' must be on for the account in order to use // this feature. @@ -903,7 +480,7 @@ type AccessApplicationPolicyUpdateParams struct { PurposeJustificationRequired param.Field[bool] `json:"purpose_justification_required"` // Rules evaluated with an AND logical operator. To match the policy, a user must // meet all of the Require rules. - Require param.Field[[]RequireItemUnionParam] `json:"require"` + Require param.Field[[]AccessRuleUnionParam] `json:"require"` // The amount of time that tokens issued for the application will be valid. Must be // in the format `300ms` or `2h45m`. Valid time units are: ns, us (or µs), ms, s, // m, h. diff --git a/zero_trust/accessapplicationpolicy_test.go b/zero_trust/accessapplicationpolicy_test.go index ed312bddaae..cae43abecca 100644 --- a/zero_trust/accessapplicationpolicy_test.go +++ b/zero_trust/accessapplicationpolicy_test.go @@ -33,7 +33,7 @@ func TestAccessApplicationPolicyNewWithOptionalParams(t *testing.T) { "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", zero_trust.AccessApplicationPolicyNewParams{ Decision: cloudflare.F(zero_trust.AccessApplicationPolicyNewParamsDecisionAllow), - Include: cloudflare.F([]zero_trust.IncludeItemUnionParam{zero_trust.EmailRuleParam{ + Include: cloudflare.F([]zero_trust.AccessRuleUnionParam{zero_trust.EmailRuleParam{ Email: cloudflare.F(zero_trust.EmailRuleEmailParam{ Email: cloudflare.F("test@example.com"), }), @@ -49,7 +49,7 @@ func TestAccessApplicationPolicyNewWithOptionalParams(t *testing.T) { Name: cloudflare.F("Allow devs"), AccountID: cloudflare.F("string"), ZoneID: cloudflare.F("string"), - ApprovalGroups: cloudflare.F([]zero_trust.ApprovalGroupItemParam{{ + ApprovalGroups: cloudflare.F([]zero_trust.ApprovalGroupParam{{ ApprovalsNeeded: cloudflare.F(1.000000), EmailAddresses: cloudflare.F([]string{"test1@cloudflare.com", "test2@cloudflare.com"}), EmailListUUID: cloudflare.F("string"), @@ -59,7 +59,7 @@ func TestAccessApplicationPolicyNewWithOptionalParams(t *testing.T) { EmailListUUID: cloudflare.F("597147a1-976b-4ef2-9af0-81d5d007fc34"), }}), ApprovalRequired: cloudflare.F(true), - Exclude: cloudflare.F([]zero_trust.ExcludeItemUnionParam{zero_trust.EmailRuleParam{ + Exclude: cloudflare.F([]zero_trust.AccessRuleUnionParam{zero_trust.EmailRuleParam{ Email: cloudflare.F(zero_trust.EmailRuleEmailParam{ Email: cloudflare.F("test@example.com"), }), @@ -76,7 +76,7 @@ func TestAccessApplicationPolicyNewWithOptionalParams(t *testing.T) { Precedence: cloudflare.F(int64(0)), PurposeJustificationPrompt: cloudflare.F("Please enter a justification for entering this protected domain."), PurposeJustificationRequired: cloudflare.F(true), - Require: cloudflare.F([]zero_trust.RequireItemUnionParam{zero_trust.EmailRuleParam{ + Require: cloudflare.F([]zero_trust.AccessRuleUnionParam{zero_trust.EmailRuleParam{ Email: cloudflare.F(zero_trust.EmailRuleEmailParam{ Email: cloudflare.F("test@example.com"), }), @@ -121,7 +121,7 @@ func TestAccessApplicationPolicyUpdateWithOptionalParams(t *testing.T) { "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", zero_trust.AccessApplicationPolicyUpdateParams{ Decision: cloudflare.F(zero_trust.AccessApplicationPolicyUpdateParamsDecisionAllow), - Include: cloudflare.F([]zero_trust.IncludeItemUnionParam{zero_trust.EmailRuleParam{ + Include: cloudflare.F([]zero_trust.AccessRuleUnionParam{zero_trust.EmailRuleParam{ Email: cloudflare.F(zero_trust.EmailRuleEmailParam{ Email: cloudflare.F("test@example.com"), }), @@ -137,7 +137,7 @@ func TestAccessApplicationPolicyUpdateWithOptionalParams(t *testing.T) { Name: cloudflare.F("Allow devs"), AccountID: cloudflare.F("string"), ZoneID: cloudflare.F("string"), - ApprovalGroups: cloudflare.F([]zero_trust.ApprovalGroupItemParam{{ + ApprovalGroups: cloudflare.F([]zero_trust.ApprovalGroupParam{{ ApprovalsNeeded: cloudflare.F(1.000000), EmailAddresses: cloudflare.F([]string{"test1@cloudflare.com", "test2@cloudflare.com"}), EmailListUUID: cloudflare.F("string"), @@ -147,7 +147,7 @@ func TestAccessApplicationPolicyUpdateWithOptionalParams(t *testing.T) { EmailListUUID: cloudflare.F("597147a1-976b-4ef2-9af0-81d5d007fc34"), }}), ApprovalRequired: cloudflare.F(true), - Exclude: cloudflare.F([]zero_trust.ExcludeItemUnionParam{zero_trust.EmailRuleParam{ + Exclude: cloudflare.F([]zero_trust.AccessRuleUnionParam{zero_trust.EmailRuleParam{ Email: cloudflare.F(zero_trust.EmailRuleEmailParam{ Email: cloudflare.F("test@example.com"), }), @@ -164,7 +164,7 @@ func TestAccessApplicationPolicyUpdateWithOptionalParams(t *testing.T) { Precedence: cloudflare.F(int64(0)), PurposeJustificationPrompt: cloudflare.F("Please enter a justification for entering this protected domain."), PurposeJustificationRequired: cloudflare.F(true), - Require: cloudflare.F([]zero_trust.RequireItemUnionParam{zero_trust.EmailRuleParam{ + Require: cloudflare.F([]zero_trust.AccessRuleUnionParam{zero_trust.EmailRuleParam{ Email: cloudflare.F(zero_trust.EmailRuleEmailParam{ Email: cloudflare.F("test@example.com"), }), diff --git a/zero_trust/accesscertificatesetting.go b/zero_trust/accesscertificatesetting.go index 5c154090334..33a5362f50e 100644 --- a/zero_trust/accesscertificatesetting.go +++ b/zero_trust/accesscertificatesetting.go @@ -33,7 +33,7 @@ func NewAccessCertificateSettingService(opts ...option.RequestOption) (r *Access } // Updates an mTLS certificate's hostname settings. -func (r *AccessCertificateSettingService) Update(ctx context.Context, params AccessCertificateSettingUpdateParams, opts ...option.RequestOption) (res *[]Settings, err error) { +func (r *AccessCertificateSettingService) Update(ctx context.Context, params AccessCertificateSettingUpdateParams, opts ...option.RequestOption) (res *[]CertificateSettings, err error) { opts = append(r.Options[:], opts...) var env AccessCertificateSettingUpdateResponseEnvelope var accountOrZone string @@ -55,7 +55,7 @@ func (r *AccessCertificateSettingService) Update(ctx context.Context, params Acc } // List all mTLS hostname settings for this account or zone. -func (r *AccessCertificateSettingService) Get(ctx context.Context, query AccessCertificateSettingGetParams, opts ...option.RequestOption) (res *[]Settings, err error) { +func (r *AccessCertificateSettingService) Get(ctx context.Context, query AccessCertificateSettingGetParams, opts ...option.RequestOption) (res *[]CertificateSettings, err error) { opts = append(r.Options[:], opts...) var env AccessCertificateSettingGetResponseEnvelope var accountOrZone string @@ -76,7 +76,7 @@ func (r *AccessCertificateSettingService) Get(ctx context.Context, query AccessC return } -type Settings struct { +type CertificateSettings struct { // Request client certificates for this hostname in China. Can only be set to true // if this zone is china network enabled. ChinaNetwork bool `json:"china_network,required"` @@ -85,12 +85,13 @@ type Settings struct { // allow logging on the origin. ClientCertificateForwarding bool `json:"client_certificate_forwarding,required"` // The hostname that these settings apply to. - Hostname string `json:"hostname,required"` - JSON settingsJSON `json:"-"` + Hostname string `json:"hostname,required"` + JSON certificateSettingsJSON `json:"-"` } -// settingsJSON contains the JSON metadata for the struct [Settings] -type settingsJSON struct { +// certificateSettingsJSON contains the JSON metadata for the struct +// [CertificateSettings] +type certificateSettingsJSON struct { ChinaNetwork apijson.Field ClientCertificateForwarding apijson.Field Hostname apijson.Field @@ -98,15 +99,15 @@ type settingsJSON struct { ExtraFields map[string]apijson.Field } -func (r *Settings) UnmarshalJSON(data []byte) (err error) { +func (r *CertificateSettings) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r settingsJSON) RawJSON() string { +func (r certificateSettingsJSON) RawJSON() string { return r.raw } -type SettingsParam struct { +type CertificateSettingsParam struct { // Request client certificates for this hostname in China. Can only be set to true // if this zone is china network enabled. ChinaNetwork param.Field[bool] `json:"china_network,required"` @@ -118,12 +119,12 @@ type SettingsParam struct { Hostname param.Field[string] `json:"hostname,required"` } -func (r SettingsParam) MarshalJSON() (data []byte, err error) { +func (r CertificateSettingsParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } type AccessCertificateSettingUpdateParams struct { - Settings param.Field[[]SettingsParam] `json:"settings,required"` + Settings param.Field[[]CertificateSettingsParam] `json:"settings,required"` // The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. AccountID param.Field[string] `path:"account_id"` // The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. @@ -137,7 +138,7 @@ func (r AccessCertificateSettingUpdateParams) MarshalJSON() (data []byte, err er type AccessCertificateSettingUpdateResponseEnvelope struct { Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` - Result []Settings `json:"result,required,nullable"` + Result []CertificateSettings `json:"result,required,nullable"` // Whether the API call was successful Success AccessCertificateSettingUpdateResponseEnvelopeSuccess `json:"success,required"` ResultInfo AccessCertificateSettingUpdateResponseEnvelopeResultInfo `json:"result_info"` @@ -221,7 +222,7 @@ type AccessCertificateSettingGetParams struct { type AccessCertificateSettingGetResponseEnvelope struct { Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` - Result []Settings `json:"result,required,nullable"` + Result []CertificateSettings `json:"result,required,nullable"` // Whether the API call was successful Success AccessCertificateSettingGetResponseEnvelopeSuccess `json:"success,required"` ResultInfo AccessCertificateSettingGetResponseEnvelopeResultInfo `json:"result_info"` diff --git a/zero_trust/accesscertificatesetting_test.go b/zero_trust/accesscertificatesetting_test.go index 9d190e5fda5..3d5510ccf27 100644 --- a/zero_trust/accesscertificatesetting_test.go +++ b/zero_trust/accesscertificatesetting_test.go @@ -29,7 +29,7 @@ func TestAccessCertificateSettingUpdateWithOptionalParams(t *testing.T) { option.WithAPIEmail("user@example.com"), ) _, err := client.ZeroTrust.Access.Certificates.Settings.Update(context.TODO(), zero_trust.AccessCertificateSettingUpdateParams{ - Settings: cloudflare.F([]zero_trust.SettingsParam{{ + Settings: cloudflare.F([]zero_trust.CertificateSettingsParam{{ ChinaNetwork: cloudflare.F(false), ClientCertificateForwarding: cloudflare.F(true), Hostname: cloudflare.F("admin.example.com"), diff --git a/zero_trust/accessgroup.go b/zero_trust/accessgroup.go index 2d0264b0c1a..b341717c1ce 100644 --- a/zero_trust/accessgroup.go +++ b/zero_trust/accessgroup.go @@ -6,7 +6,6 @@ import ( "context" "fmt" "net/http" - "reflect" "time" "github.com/cloudflare/cloudflare-go/v2/internal/apijson" @@ -15,7 +14,6 @@ import ( "github.com/cloudflare/cloudflare-go/v2/internal/requestconfig" "github.com/cloudflare/cloudflare-go/v2/internal/shared" "github.com/cloudflare/cloudflare-go/v2/option" - "github.com/tidwall/gjson" ) // AccessGroupService contains methods and other services that help with @@ -156,444 +154,24 @@ func (r *AccessGroupService) Get(ctx context.Context, uuid string, query AccessG return } -// Matches a specific email. -type ExcludeItem struct { - Email interface{} `json:"email,required"` - EmailList interface{} `json:"email_list,required"` - EmailDomain interface{} `json:"email_domain,required"` - Everyone interface{} `json:"everyone,required"` - IP interface{} `json:"ip,required"` - IPList interface{} `json:"ip_list,required"` - Certificate interface{} `json:"certificate,required"` - Group interface{} `json:"group,required"` - AzureAd interface{} `json:"azureAD,required"` - GitHubOrganization interface{} `json:"github-organization,required"` - Gsuite interface{} `json:"gsuite,required"` - Okta interface{} `json:"okta,required"` - Saml interface{} `json:"saml,required"` - ServiceToken interface{} `json:"service_token,required"` - AnyValidServiceToken interface{} `json:"any_valid_service_token,required"` - ExternalEvaluation interface{} `json:"external_evaluation,required"` - Geo interface{} `json:"geo,required"` - AuthMethod interface{} `json:"auth_method,required"` - DevicePosture interface{} `json:"device_posture,required"` - JSON excludeItemJSON `json:"-"` - union ExcludeItemUnion -} - -// excludeItemJSON contains the JSON metadata for the struct [ExcludeItem] -type excludeItemJSON struct { - Email apijson.Field - EmailList apijson.Field - EmailDomain apijson.Field - Everyone apijson.Field - IP apijson.Field - IPList apijson.Field - Certificate apijson.Field - Group apijson.Field - AzureAd apijson.Field - GitHubOrganization apijson.Field - Gsuite apijson.Field - Okta apijson.Field - Saml apijson.Field - ServiceToken apijson.Field - AnyValidServiceToken apijson.Field - ExternalEvaluation apijson.Field - Geo apijson.Field - AuthMethod apijson.Field - DevicePosture apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r excludeItemJSON) RawJSON() string { - return r.raw -} - -func (r *ExcludeItem) UnmarshalJSON(data []byte) (err error) { - err = apijson.UnmarshalRoot(data, &r.union) - if err != nil { - return err - } - return apijson.Port(r.union, &r) -} - -func (r ExcludeItem) AsUnion() ExcludeItemUnion { - return r.union -} - -// Matches a specific email. -// -// Union satisfied by [zero_trust.EmailRule], [zero_trust.EmailListRule], -// [zero_trust.DomainRule], [zero_trust.EveryoneRule], [zero_trust.IPRule], -// [zero_trust.IPListRule], [zero_trust.CertificateRule], [zero_trust.GroupRule], -// [zero_trust.AzureGroupRule], [zero_trust.GitHubOrganizationRule], -// [zero_trust.GsuiteGroupRule], [zero_trust.OktaGroupRule], -// [zero_trust.SamlGroupRule], [zero_trust.ServiceTokenRule], -// [zero_trust.AnyValidServiceTokenRule], [zero_trust.ExternalEvaluationRule], -// [zero_trust.CountryRule], [zero_trust.AuthenticationMethodRule] or -// [zero_trust.DevicePostureRule]. -type ExcludeItemUnion interface { - implementsZeroTrustExcludeItem() -} - -func init() { - apijson.RegisterUnion( - reflect.TypeOf((*ExcludeItemUnion)(nil)).Elem(), - "", - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EmailRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EmailListRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(DomainRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EveryoneRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(IPRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(IPListRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(CertificateRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AzureGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GitHubOrganizationRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GsuiteGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(OktaGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(SamlGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ServiceTokenRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AnyValidServiceTokenRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ExternalEvaluationRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(CountryRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AuthenticationMethodRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(DevicePostureRule{}), - }, - ) -} - -// Matches a specific email. -type ExcludeItemParam struct { - Email param.Field[interface{}] `json:"email,required"` - EmailList param.Field[interface{}] `json:"email_list,required"` - EmailDomain param.Field[interface{}] `json:"email_domain,required"` - Everyone param.Field[interface{}] `json:"everyone,required"` - IP param.Field[interface{}] `json:"ip,required"` - IPList param.Field[interface{}] `json:"ip_list,required"` - Certificate param.Field[interface{}] `json:"certificate,required"` - Group param.Field[interface{}] `json:"group,required"` - AzureAd param.Field[interface{}] `json:"azureAD,required"` - GitHubOrganization param.Field[interface{}] `json:"github-organization,required"` - Gsuite param.Field[interface{}] `json:"gsuite,required"` - Okta param.Field[interface{}] `json:"okta,required"` - Saml param.Field[interface{}] `json:"saml,required"` - ServiceToken param.Field[interface{}] `json:"service_token,required"` - AnyValidServiceToken param.Field[interface{}] `json:"any_valid_service_token,required"` - ExternalEvaluation param.Field[interface{}] `json:"external_evaluation,required"` - Geo param.Field[interface{}] `json:"geo,required"` - AuthMethod param.Field[interface{}] `json:"auth_method,required"` - DevicePosture param.Field[interface{}] `json:"device_posture,required"` -} - -func (r ExcludeItemParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -func (r ExcludeItemParam) implementsZeroTrustExcludeItemUnionParam() {} - -// Matches a specific email. -// -// Satisfied by [zero_trust.EmailRuleParam], [zero_trust.EmailListRuleParam], -// [zero_trust.DomainRuleParam], [zero_trust.EveryoneRuleParam], -// [zero_trust.IPRuleParam], [zero_trust.IPListRuleParam], -// [zero_trust.CertificateRuleParam], [zero_trust.GroupRuleParam], -// [zero_trust.AzureGroupRuleParam], [zero_trust.GitHubOrganizationRuleParam], -// [zero_trust.GsuiteGroupRuleParam], [zero_trust.OktaGroupRuleParam], -// [zero_trust.SamlGroupRuleParam], [zero_trust.ServiceTokenRuleParam], -// [zero_trust.AnyValidServiceTokenRuleParam], -// [zero_trust.ExternalEvaluationRuleParam], [zero_trust.CountryRuleParam], -// [zero_trust.AuthenticationMethodRuleParam], [zero_trust.DevicePostureRuleParam], -// [ExcludeItemParam]. -type ExcludeItemUnionParam interface { - implementsZeroTrustExcludeItemUnionParam() -} - -// Matches a specific email. -type RequireItem struct { - Email interface{} `json:"email,required"` - EmailList interface{} `json:"email_list,required"` - EmailDomain interface{} `json:"email_domain,required"` - Everyone interface{} `json:"everyone,required"` - IP interface{} `json:"ip,required"` - IPList interface{} `json:"ip_list,required"` - Certificate interface{} `json:"certificate,required"` - Group interface{} `json:"group,required"` - AzureAd interface{} `json:"azureAD,required"` - GitHubOrganization interface{} `json:"github-organization,required"` - Gsuite interface{} `json:"gsuite,required"` - Okta interface{} `json:"okta,required"` - Saml interface{} `json:"saml,required"` - ServiceToken interface{} `json:"service_token,required"` - AnyValidServiceToken interface{} `json:"any_valid_service_token,required"` - ExternalEvaluation interface{} `json:"external_evaluation,required"` - Geo interface{} `json:"geo,required"` - AuthMethod interface{} `json:"auth_method,required"` - DevicePosture interface{} `json:"device_posture,required"` - JSON requireItemJSON `json:"-"` - union RequireItemUnion -} - -// requireItemJSON contains the JSON metadata for the struct [RequireItem] -type requireItemJSON struct { - Email apijson.Field - EmailList apijson.Field - EmailDomain apijson.Field - Everyone apijson.Field - IP apijson.Field - IPList apijson.Field - Certificate apijson.Field - Group apijson.Field - AzureAd apijson.Field - GitHubOrganization apijson.Field - Gsuite apijson.Field - Okta apijson.Field - Saml apijson.Field - ServiceToken apijson.Field - AnyValidServiceToken apijson.Field - ExternalEvaluation apijson.Field - Geo apijson.Field - AuthMethod apijson.Field - DevicePosture apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r requireItemJSON) RawJSON() string { - return r.raw -} - -func (r *RequireItem) UnmarshalJSON(data []byte) (err error) { - err = apijson.UnmarshalRoot(data, &r.union) - if err != nil { - return err - } - return apijson.Port(r.union, &r) -} - -func (r RequireItem) AsUnion() RequireItemUnion { - return r.union -} - -// Matches a specific email. -// -// Union satisfied by [zero_trust.EmailRule], [zero_trust.EmailListRule], -// [zero_trust.DomainRule], [zero_trust.EveryoneRule], [zero_trust.IPRule], -// [zero_trust.IPListRule], [zero_trust.CertificateRule], [zero_trust.GroupRule], -// [zero_trust.AzureGroupRule], [zero_trust.GitHubOrganizationRule], -// [zero_trust.GsuiteGroupRule], [zero_trust.OktaGroupRule], -// [zero_trust.SamlGroupRule], [zero_trust.ServiceTokenRule], -// [zero_trust.AnyValidServiceTokenRule], [zero_trust.ExternalEvaluationRule], -// [zero_trust.CountryRule], [zero_trust.AuthenticationMethodRule] or -// [zero_trust.DevicePostureRule]. -type RequireItemUnion interface { - implementsZeroTrustRequireItem() -} - -func init() { - apijson.RegisterUnion( - reflect.TypeOf((*RequireItemUnion)(nil)).Elem(), - "", - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EmailRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EmailListRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(DomainRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(EveryoneRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(IPRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(IPListRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(CertificateRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AzureGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GitHubOrganizationRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(GsuiteGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(OktaGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(SamlGroupRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ServiceTokenRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AnyValidServiceTokenRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ExternalEvaluationRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(CountryRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AuthenticationMethodRule{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(DevicePostureRule{}), - }, - ) -} - -// Matches a specific email. -type RequireItemParam struct { - Email param.Field[interface{}] `json:"email,required"` - EmailList param.Field[interface{}] `json:"email_list,required"` - EmailDomain param.Field[interface{}] `json:"email_domain,required"` - Everyone param.Field[interface{}] `json:"everyone,required"` - IP param.Field[interface{}] `json:"ip,required"` - IPList param.Field[interface{}] `json:"ip_list,required"` - Certificate param.Field[interface{}] `json:"certificate,required"` - Group param.Field[interface{}] `json:"group,required"` - AzureAd param.Field[interface{}] `json:"azureAD,required"` - GitHubOrganization param.Field[interface{}] `json:"github-organization,required"` - Gsuite param.Field[interface{}] `json:"gsuite,required"` - Okta param.Field[interface{}] `json:"okta,required"` - Saml param.Field[interface{}] `json:"saml,required"` - ServiceToken param.Field[interface{}] `json:"service_token,required"` - AnyValidServiceToken param.Field[interface{}] `json:"any_valid_service_token,required"` - ExternalEvaluation param.Field[interface{}] `json:"external_evaluation,required"` - Geo param.Field[interface{}] `json:"geo,required"` - AuthMethod param.Field[interface{}] `json:"auth_method,required"` - DevicePosture param.Field[interface{}] `json:"device_posture,required"` -} - -func (r RequireItemParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -func (r RequireItemParam) implementsZeroTrustRequireItemUnionParam() {} - -// Matches a specific email. -// -// Satisfied by [zero_trust.EmailRuleParam], [zero_trust.EmailListRuleParam], -// [zero_trust.DomainRuleParam], [zero_trust.EveryoneRuleParam], -// [zero_trust.IPRuleParam], [zero_trust.IPListRuleParam], -// [zero_trust.CertificateRuleParam], [zero_trust.GroupRuleParam], -// [zero_trust.AzureGroupRuleParam], [zero_trust.GitHubOrganizationRuleParam], -// [zero_trust.GsuiteGroupRuleParam], [zero_trust.OktaGroupRuleParam], -// [zero_trust.SamlGroupRuleParam], [zero_trust.ServiceTokenRuleParam], -// [zero_trust.AnyValidServiceTokenRuleParam], -// [zero_trust.ExternalEvaluationRuleParam], [zero_trust.CountryRuleParam], -// [zero_trust.AuthenticationMethodRuleParam], [zero_trust.DevicePostureRuleParam], -// [RequireItemParam]. -type RequireItemUnionParam interface { - implementsZeroTrustRequireItemUnionParam() -} - type ZeroTrustGroup struct { // UUID ID string `json:"id"` CreatedAt time.Time `json:"created_at" format:"date-time"` // Rules evaluated with a NOT logical operator. To match a policy, a user cannot // meet any of the Exclude rules. - Exclude []ExcludeItem `json:"exclude"` + Exclude []AccessRule `json:"exclude"` // Rules evaluated with an OR logical operator. A user needs to meet only one of // the Include rules. - Include []IncludeItem `json:"include"` + Include []AccessRule `json:"include"` // Rules evaluated with an AND logical operator. To match a policy, a user must // meet all of the Require rules. - IsDefault []RequireItem `json:"is_default"` + IsDefault []AccessRule `json:"is_default"` // The name of the Access group. Name string `json:"name"` // Rules evaluated with an AND logical operator. To match a policy, a user must // meet all of the Require rules. - Require []RequireItem `json:"require"` + Require []AccessRule `json:"require"` UpdatedAt time.Time `json:"updated_at" format:"date-time"` JSON zeroTrustGroupJSON `json:"-"` } @@ -645,7 +223,7 @@ func (r accessGroupDeleteResponseJSON) RawJSON() string { type AccessGroupNewParams struct { // Rules evaluated with an OR logical operator. A user needs to meet only one of // the Include rules. - Include param.Field[[]IncludeItemUnionParam] `json:"include,required"` + Include param.Field[[]AccessRuleUnionParam] `json:"include,required"` // The name of the Access group. Name param.Field[string] `json:"name,required"` // The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. @@ -654,12 +232,12 @@ type AccessGroupNewParams struct { ZoneID param.Field[string] `path:"zone_id"` // Rules evaluated with a NOT logical operator. To match a policy, a user cannot // meet any of the Exclude rules. - Exclude param.Field[[]ExcludeItemUnionParam] `json:"exclude"` + Exclude param.Field[[]AccessRuleUnionParam] `json:"exclude"` // Whether this is the default group IsDefault param.Field[bool] `json:"is_default"` // Rules evaluated with an AND logical operator. To match a policy, a user must // meet all of the Require rules. - Require param.Field[[]RequireItemUnionParam] `json:"require"` + Require param.Field[[]AccessRuleUnionParam] `json:"require"` } func (r AccessGroupNewParams) MarshalJSON() (data []byte, err error) { @@ -712,7 +290,7 @@ func (r AccessGroupNewResponseEnvelopeSuccess) IsKnown() bool { type AccessGroupUpdateParams struct { // Rules evaluated with an OR logical operator. A user needs to meet only one of // the Include rules. - Include param.Field[[]IncludeItemUnionParam] `json:"include,required"` + Include param.Field[[]AccessRuleUnionParam] `json:"include,required"` // The name of the Access group. Name param.Field[string] `json:"name,required"` // The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. @@ -721,12 +299,12 @@ type AccessGroupUpdateParams struct { ZoneID param.Field[string] `path:"zone_id"` // Rules evaluated with a NOT logical operator. To match a policy, a user cannot // meet any of the Exclude rules. - Exclude param.Field[[]ExcludeItemUnionParam] `json:"exclude"` + Exclude param.Field[[]AccessRuleUnionParam] `json:"exclude"` // Whether this is the default group IsDefault param.Field[bool] `json:"is_default"` // Rules evaluated with an AND logical operator. To match a policy, a user must // meet all of the Require rules. - Require param.Field[[]RequireItemUnionParam] `json:"require"` + Require param.Field[[]AccessRuleUnionParam] `json:"require"` } func (r AccessGroupUpdateParams) MarshalJSON() (data []byte, err error) { diff --git a/zero_trust/accessgroup_test.go b/zero_trust/accessgroup_test.go index 7f19ea520b3..82ae5698f67 100644 --- a/zero_trust/accessgroup_test.go +++ b/zero_trust/accessgroup_test.go @@ -29,7 +29,7 @@ func TestAccessGroupNewWithOptionalParams(t *testing.T) { option.WithAPIEmail("user@example.com"), ) _, err := client.ZeroTrust.Access.Groups.New(context.TODO(), zero_trust.AccessGroupNewParams{ - Include: cloudflare.F([]zero_trust.IncludeItemUnionParam{zero_trust.EmailRuleParam{ + Include: cloudflare.F([]zero_trust.AccessRuleUnionParam{zero_trust.EmailRuleParam{ Email: cloudflare.F(zero_trust.EmailRuleEmailParam{ Email: cloudflare.F("test@example.com"), }), @@ -45,7 +45,7 @@ func TestAccessGroupNewWithOptionalParams(t *testing.T) { Name: cloudflare.F("Allow devs"), AccountID: cloudflare.F("string"), ZoneID: cloudflare.F("string"), - Exclude: cloudflare.F([]zero_trust.ExcludeItemUnionParam{zero_trust.EmailRuleParam{ + Exclude: cloudflare.F([]zero_trust.AccessRuleUnionParam{zero_trust.EmailRuleParam{ Email: cloudflare.F(zero_trust.EmailRuleEmailParam{ Email: cloudflare.F("test@example.com"), }), @@ -59,7 +59,7 @@ func TestAccessGroupNewWithOptionalParams(t *testing.T) { }), }}), IsDefault: cloudflare.F(true), - Require: cloudflare.F([]zero_trust.RequireItemUnionParam{zero_trust.EmailRuleParam{ + Require: cloudflare.F([]zero_trust.AccessRuleUnionParam{zero_trust.EmailRuleParam{ Email: cloudflare.F(zero_trust.EmailRuleEmailParam{ Email: cloudflare.F("test@example.com"), }), @@ -100,7 +100,7 @@ func TestAccessGroupUpdateWithOptionalParams(t *testing.T) { context.TODO(), "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", zero_trust.AccessGroupUpdateParams{ - Include: cloudflare.F([]zero_trust.IncludeItemUnionParam{zero_trust.EmailRuleParam{ + Include: cloudflare.F([]zero_trust.AccessRuleUnionParam{zero_trust.EmailRuleParam{ Email: cloudflare.F(zero_trust.EmailRuleEmailParam{ Email: cloudflare.F("test@example.com"), }), @@ -116,7 +116,7 @@ func TestAccessGroupUpdateWithOptionalParams(t *testing.T) { Name: cloudflare.F("Allow devs"), AccountID: cloudflare.F("string"), ZoneID: cloudflare.F("string"), - Exclude: cloudflare.F([]zero_trust.ExcludeItemUnionParam{zero_trust.EmailRuleParam{ + Exclude: cloudflare.F([]zero_trust.AccessRuleUnionParam{zero_trust.EmailRuleParam{ Email: cloudflare.F(zero_trust.EmailRuleEmailParam{ Email: cloudflare.F("test@example.com"), }), @@ -130,7 +130,7 @@ func TestAccessGroupUpdateWithOptionalParams(t *testing.T) { }), }}), IsDefault: cloudflare.F(true), - Require: cloudflare.F([]zero_trust.RequireItemUnionParam{zero_trust.EmailRuleParam{ + Require: cloudflare.F([]zero_trust.AccessRuleUnionParam{zero_trust.EmailRuleParam{ Email: cloudflare.F(zero_trust.EmailRuleEmailParam{ Email: cloudflare.F("test@example.com"), }), diff --git a/zero_trust/deviceposture.go b/zero_trust/deviceposture.go index 759cae2da92..90f57cdab2f 100644 --- a/zero_trust/deviceposture.go +++ b/zero_trust/deviceposture.go @@ -157,14 +157,6 @@ func (r devicePostureRuleJSON) RawJSON() string { return r.raw } -func (r DevicePostureRule) implementsZeroTrustIncludeItem() {} - -func (r DevicePostureRule) implementsZeroTrustRule() {} - -func (r DevicePostureRule) implementsZeroTrustExcludeItem() {} - -func (r DevicePostureRule) implementsZeroTrustRequireItem() {} - // The type of device posture rule. type DevicePostureRuleType string @@ -198,137 +190,6 @@ func (r DevicePostureRuleType) IsKnown() bool { return false } -type DevicePostureRuleParam struct { - // API UUID. - ID param.Field[string] `json:"id"` - // The description of the device posture rule. - Description param.Field[string] `json:"description"` - // Sets the expiration time for a posture check result. If empty, the result - // remains valid until it is overwritten by new data from the WARP client. - Expiration param.Field[string] `json:"expiration"` - // The value to be checked against. - Input param.Field[InputUnionParam] `json:"input"` - // The conditions that the client must match to run the rule. - Match param.Field[[]MatchItemParam] `json:"match"` - // The name of the device posture rule. - Name param.Field[string] `json:"name"` - // Polling frequency for the WARP client posture check. Default: `5m` (poll every - // five minutes). Minimum: `1m`. - Schedule param.Field[string] `json:"schedule"` - // The type of device posture rule. - Type param.Field[DevicePostureRuleType] `json:"type"` -} - -func (r DevicePostureRuleParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRuleUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustExcludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustIncludeItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - -func (r DevicePostureRuleParam) implementsZeroTrustRequireItemUnionParam() {} - // The value to be checked against. type Input struct { // Whether or not file exists diff --git a/zero_trust/devicesetting.go b/zero_trust/devicesetting.go index 3653dc08bb9..7943c920517 100644 --- a/zero_trust/devicesetting.go +++ b/zero_trust/devicesetting.go @@ -33,7 +33,7 @@ func NewDeviceSettingService(opts ...option.RequestOption) (r *DeviceSettingServ } // Updates the current device settings for a Zero Trust account. -func (r *DeviceSettingService) Update(ctx context.Context, params DeviceSettingUpdateParams, opts ...option.RequestOption) (res *Settings, err error) { +func (r *DeviceSettingService) Update(ctx context.Context, params DeviceSettingUpdateParams, opts ...option.RequestOption) (res *DeviceSettings, err error) { opts = append(r.Options[:], opts...) var env DeviceSettingUpdateResponseEnvelope path := fmt.Sprintf("accounts/%s/devices/settings", params.AccountID) @@ -46,7 +46,7 @@ func (r *DeviceSettingService) Update(ctx context.Context, params DeviceSettingU } // Describes the current device settings for a Zero Trust account. -func (r *DeviceSettingService) List(ctx context.Context, query DeviceSettingListParams, opts ...option.RequestOption) (res *Settings, err error) { +func (r *DeviceSettingService) List(ctx context.Context, query DeviceSettingListParams, opts ...option.RequestOption) (res *DeviceSettings, err error) { opts = append(r.Options[:], opts...) var env DeviceSettingListResponseEnvelope path := fmt.Sprintf("accounts/%s/devices/settings", query.AccountID) @@ -58,7 +58,7 @@ func (r *DeviceSettingService) List(ctx context.Context, query DeviceSettingList return } -type Settings struct { +type DeviceSettings struct { // Enable gateway proxy filtering on TCP. GatewayProxyEnabled bool `json:"gateway_proxy_enabled"` // Enable gateway proxy filtering on UDP. @@ -66,12 +66,12 @@ type Settings struct { // Enable installation of cloudflare managed root certificate. RootCertificateInstallationEnabled bool `json:"root_certificate_installation_enabled"` // Enable using CGNAT virtual IPv4. - UseZtVirtualIP bool `json:"use_zt_virtual_ip"` - JSON settingsJSON `json:"-"` + UseZtVirtualIP bool `json:"use_zt_virtual_ip"` + JSON deviceSettingsJSON `json:"-"` } -// settingsJSON contains the JSON metadata for the struct [Settings] -type settingsJSON struct { +// deviceSettingsJSON contains the JSON metadata for the struct [DeviceSettings] +type deviceSettingsJSON struct { GatewayProxyEnabled apijson.Field GatewayUdpProxyEnabled apijson.Field RootCertificateInstallationEnabled apijson.Field @@ -80,29 +80,14 @@ type settingsJSON struct { ExtraFields map[string]apijson.Field } -func (r *Settings) UnmarshalJSON(data []byte) (err error) { +func (r *DeviceSettings) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r settingsJSON) RawJSON() string { +func (r deviceSettingsJSON) RawJSON() string { return r.raw } -type SettingsParam struct { - // Enable gateway proxy filtering on TCP. - GatewayProxyEnabled param.Field[bool] `json:"gateway_proxy_enabled"` - // Enable gateway proxy filtering on UDP. - GatewayUdpProxyEnabled param.Field[bool] `json:"gateway_udp_proxy_enabled"` - // Enable installation of cloudflare managed root certificate. - RootCertificateInstallationEnabled param.Field[bool] `json:"root_certificate_installation_enabled"` - // Enable using CGNAT virtual IPv4. - UseZtVirtualIP param.Field[bool] `json:"use_zt_virtual_ip"` -} - -func (r SettingsParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - type DeviceSettingUpdateParams struct { AccountID param.Field[string] `path:"account_id,required"` // Enable gateway proxy filtering on TCP. @@ -122,7 +107,7 @@ func (r DeviceSettingUpdateParams) MarshalJSON() (data []byte, err error) { type DeviceSettingUpdateResponseEnvelope struct { Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` - Result Settings `json:"result,required,nullable"` + Result DeviceSettings `json:"result,required,nullable"` // Whether the API call was successful. Success DeviceSettingUpdateResponseEnvelopeSuccess `json:"success,required"` JSON deviceSettingUpdateResponseEnvelopeJSON `json:"-"` @@ -169,7 +154,7 @@ type DeviceSettingListParams struct { type DeviceSettingListResponseEnvelope struct { Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` - Result Settings `json:"result,required,nullable"` + Result DeviceSettings `json:"result,required,nullable"` // Whether the API call was successful. Success DeviceSettingListResponseEnvelopeSuccess `json:"success,required"` JSON deviceSettingListResponseEnvelopeJSON `json:"-"` diff --git a/zero_trust/dexfleetstatusdevice.go b/zero_trust/dexfleetstatusdevice.go index ffb2ec32e78..062f0a97f30 100644 --- a/zero_trust/dexfleetstatusdevice.go +++ b/zero_trust/dexfleetstatusdevice.go @@ -35,7 +35,7 @@ func NewDEXFleetStatusDeviceService(opts ...option.RequestOption) (r *DEXFleetSt } // List details for devices using WARP -func (r *DEXFleetStatusDeviceService) List(ctx context.Context, params DEXFleetStatusDeviceListParams, opts ...option.RequestOption) (res *pagination.V4PagePaginationArray[Device], err error) { +func (r *DEXFleetStatusDeviceService) List(ctx context.Context, params DEXFleetStatusDeviceListParams, opts ...option.RequestOption) (res *pagination.V4PagePaginationArray[DEXFleetStatusDeviceListResponse], err error) { var raw *http.Response opts = append(r.Options, opts...) opts = append([]option.RequestOption{option.WithResponseInto(&raw)}, opts...) @@ -53,11 +53,11 @@ func (r *DEXFleetStatusDeviceService) List(ctx context.Context, params DEXFleetS } // List details for devices using WARP -func (r *DEXFleetStatusDeviceService) ListAutoPaging(ctx context.Context, params DEXFleetStatusDeviceListParams, opts ...option.RequestOption) *pagination.V4PagePaginationArrayAutoPager[Device] { +func (r *DEXFleetStatusDeviceService) ListAutoPaging(ctx context.Context, params DEXFleetStatusDeviceListParams, opts ...option.RequestOption) *pagination.V4PagePaginationArrayAutoPager[DEXFleetStatusDeviceListResponse] { return pagination.NewV4PagePaginationArrayAutoPager(r.List(ctx, params, opts...)) } -type Device struct { +type DEXFleetStatusDeviceListResponse struct { // Cloudflare colo Colo string `json:"colo,required"` // Device identifier (UUID v4) @@ -73,12 +73,13 @@ type Device struct { // Device identifier (human readable) DeviceName string `json:"deviceName"` // User contact email address - PersonEmail string `json:"personEmail"` - JSON deviceJSON `json:"-"` + PersonEmail string `json:"personEmail"` + JSON dexFleetStatusDeviceListResponseJSON `json:"-"` } -// deviceJSON contains the JSON metadata for the struct [Device] -type deviceJSON struct { +// dexFleetStatusDeviceListResponseJSON contains the JSON metadata for the struct +// [DEXFleetStatusDeviceListResponse] +type dexFleetStatusDeviceListResponseJSON struct { Colo apijson.Field DeviceID apijson.Field Mode apijson.Field @@ -92,11 +93,11 @@ type deviceJSON struct { ExtraFields map[string]apijson.Field } -func (r *Device) UnmarshalJSON(data []byte) (err error) { +func (r *DEXFleetStatusDeviceListResponse) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r deviceJSON) RawJSON() string { +func (r dexFleetStatusDeviceListResponseJSON) RawJSON() string { return r.raw } diff --git a/zero_trust/dextraceroutetest.go b/zero_trust/dextraceroutetest.go index 9ad45eeda16..55eb315982a 100644 --- a/zero_trust/dextraceroutetest.go +++ b/zero_trust/dextraceroutetest.go @@ -63,7 +63,7 @@ func (r *DEXTracerouteTestService) NetworkPath(ctx context.Context, testID strin // Get percentiles for a traceroute test for a given time period between 1 hour and // 7 days. -func (r *DEXTracerouteTestService) Percentiles(ctx context.Context, testID string, params DEXTracerouteTestPercentilesParams, opts ...option.RequestOption) (res *Percentiles, err error) { +func (r *DEXTracerouteTestService) Percentiles(ctx context.Context, testID string, params DEXTracerouteTestPercentilesParams, opts ...option.RequestOption) (res *DEXTracerouteTestPercentilesResponse, err error) { opts = append(r.Options[:], opts...) var env DEXTracerouteTestPercentilesResponseEnvelope path := fmt.Sprintf("accounts/%s/dex/traceroute-tests/%s/percentiles", params.AccountID, testID) @@ -226,30 +226,6 @@ func (r NetworkPathNetworkPathSamplingUnit) IsKnown() bool { return false } -type Percentiles struct { - HopsCount Percentiles `json:"hopsCount"` - PacketLossPct Percentiles `json:"packetLossPct"` - RoundTripTimeMs Percentiles `json:"roundTripTimeMs"` - JSON percentilesJSON `json:"-"` -} - -// percentilesJSON contains the JSON metadata for the struct [Percentiles] -type percentilesJSON struct { - HopsCount apijson.Field - PacketLossPct apijson.Field - RoundTripTimeMs apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *Percentiles) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r percentilesJSON) RawJSON() string { - return r.raw -} - type Traceroute struct { // The host of the Traceroute synthetic application test Host string `json:"host,required"` @@ -575,6 +551,31 @@ func (r tracerouteTracerouteStatsByColoPacketLossPctSlotJSON) RawJSON() string { return r.raw } +type DEXTracerouteTestPercentilesResponse struct { + HopsCount Percentiles `json:"hopsCount"` + PacketLossPct Percentiles `json:"packetLossPct"` + RoundTripTimeMs Percentiles `json:"roundTripTimeMs"` + JSON dexTracerouteTestPercentilesResponseJSON `json:"-"` +} + +// dexTracerouteTestPercentilesResponseJSON contains the JSON metadata for the +// struct [DEXTracerouteTestPercentilesResponse] +type dexTracerouteTestPercentilesResponseJSON struct { + HopsCount apijson.Field + PacketLossPct apijson.Field + RoundTripTimeMs apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *DEXTracerouteTestPercentilesResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r dexTracerouteTestPercentilesResponseJSON) RawJSON() string { + return r.raw +} + type DEXTracerouteTestGetParams struct { AccountID param.Field[string] `path:"account_id,required"` // Time interval for aggregate time slots. @@ -765,7 +766,7 @@ func (r DEXTracerouteTestPercentilesParams) URLQuery() (v url.Values) { type DEXTracerouteTestPercentilesResponseEnvelope struct { Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` - Result Percentiles `json:"result,required"` + Result DEXTracerouteTestPercentilesResponse `json:"result,required"` // Whether the API call was successful Success DEXTracerouteTestPercentilesResponseEnvelopeSuccess `json:"success,required"` JSON dexTracerouteTestPercentilesResponseEnvelopeJSON `json:"-"` diff --git a/zero_trust/gatewayauditsshsetting.go b/zero_trust/gatewayauditsshsetting.go index 72ee262b9ad..c0febf262a9 100644 --- a/zero_trust/gatewayauditsshsetting.go +++ b/zero_trust/gatewayauditsshsetting.go @@ -34,7 +34,7 @@ func NewGatewayAuditSSHSettingService(opts ...option.RequestOption) (r *GatewayA } // Updates Zero Trust Audit SSH settings. -func (r *GatewayAuditSSHSettingService) Update(ctx context.Context, params GatewayAuditSSHSettingUpdateParams, opts ...option.RequestOption) (res *Settings, err error) { +func (r *GatewayAuditSSHSettingService) Update(ctx context.Context, params GatewayAuditSSHSettingUpdateParams, opts ...option.RequestOption) (res *GatewaySettings, err error) { opts = append(r.Options[:], opts...) var env GatewayAuditSSHSettingUpdateResponseEnvelope path := fmt.Sprintf("accounts/%s/gateway/audit_ssh_settings", params.AccountID) @@ -47,7 +47,7 @@ func (r *GatewayAuditSSHSettingService) Update(ctx context.Context, params Gatew } // Get all Zero Trust Audit SSH settings for an account. -func (r *GatewayAuditSSHSettingService) Get(ctx context.Context, query GatewayAuditSSHSettingGetParams, opts ...option.RequestOption) (res *Settings, err error) { +func (r *GatewayAuditSSHSettingService) Get(ctx context.Context, query GatewayAuditSSHSettingGetParams, opts ...option.RequestOption) (res *GatewaySettings, err error) { opts = append(r.Options[:], opts...) var env GatewayAuditSSHSettingGetResponseEnvelope path := fmt.Sprintf("accounts/%s/gateway/audit_ssh_settings", query.AccountID) @@ -59,18 +59,18 @@ func (r *GatewayAuditSSHSettingService) Get(ctx context.Context, query GatewayAu return } -type Settings struct { +type GatewaySettings struct { CreatedAt time.Time `json:"created_at" format:"date-time"` // SSH encryption public key PublicKey string `json:"public_key"` // Seed ID - SeedID string `json:"seed_id"` - UpdatedAt time.Time `json:"updated_at" format:"date-time"` - JSON settingsJSON `json:"-"` + SeedID string `json:"seed_id"` + UpdatedAt time.Time `json:"updated_at" format:"date-time"` + JSON gatewaySettingsJSON `json:"-"` } -// settingsJSON contains the JSON metadata for the struct [Settings] -type settingsJSON struct { +// gatewaySettingsJSON contains the JSON metadata for the struct [GatewaySettings] +type gatewaySettingsJSON struct { CreatedAt apijson.Field PublicKey apijson.Field SeedID apijson.Field @@ -79,25 +79,14 @@ type settingsJSON struct { ExtraFields map[string]apijson.Field } -func (r *Settings) UnmarshalJSON(data []byte) (err error) { +func (r *GatewaySettings) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r settingsJSON) RawJSON() string { +func (r gatewaySettingsJSON) RawJSON() string { return r.raw } -type SettingsParam struct { - // SSH encryption public key - PublicKey param.Field[string] `json:"public_key"` - // Seed ID - SeedID param.Field[string] `json:"seed_id"` -} - -func (r SettingsParam) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - type GatewayAuditSSHSettingUpdateParams struct { AccountID param.Field[string] `path:"account_id,required"` // SSH encryption public key @@ -113,7 +102,7 @@ func (r GatewayAuditSSHSettingUpdateParams) MarshalJSON() (data []byte, err erro type GatewayAuditSSHSettingUpdateResponseEnvelope struct { Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` - Result Settings `json:"result,required"` + Result GatewaySettings `json:"result,required"` // Whether the API call was successful Success GatewayAuditSSHSettingUpdateResponseEnvelopeSuccess `json:"success,required"` JSON gatewayAuditSSHSettingUpdateResponseEnvelopeJSON `json:"-"` @@ -160,7 +149,7 @@ type GatewayAuditSSHSettingGetParams struct { type GatewayAuditSSHSettingGetResponseEnvelope struct { Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` - Result Settings `json:"result,required"` + Result GatewaySettings `json:"result,required"` // Whether the API call was successful Success GatewayAuditSSHSettingGetResponseEnvelopeSuccess `json:"success,required"` JSON gatewayAuditSSHSettingGetResponseEnvelopeJSON `json:"-"` diff --git a/zero_trust/gatewaylocation.go b/zero_trust/gatewaylocation.go index 558c770649e..7c28263ccb8 100644 --- a/zero_trust/gatewaylocation.go +++ b/zero_trust/gatewaylocation.go @@ -126,9 +126,9 @@ type Location struct { // The name of the location. Name string `json:"name"` // A list of network ranges that requests from this location would originate from. - Networks []NetworkItem `json:"networks"` - UpdatedAt time.Time `json:"updated_at" format:"date-time"` - JSON locationJSON `json:"-"` + Networks []LocationNetwork `json:"networks"` + UpdatedAt time.Time `json:"updated_at" format:"date-time"` + JSON locationJSON `json:"-"` } // locationJSON contains the JSON metadata for the struct [Location] @@ -154,54 +154,33 @@ func (r locationJSON) RawJSON() string { return r.raw } -type Network struct { +type LocationNetwork struct { // The IPv4 address or IPv4 CIDR. IPv4 CIDRs are limited to a maximum of /24. - Network string `json:"network,required"` - JSON networkJSON `json:"-"` + Network string `json:"network,required"` + JSON locationNetworkJSON `json:"-"` } -// networkJSON contains the JSON metadata for the struct [Network] -type networkJSON struct { +// locationNetworkJSON contains the JSON metadata for the struct [LocationNetwork] +type locationNetworkJSON struct { Network apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *Network) UnmarshalJSON(data []byte) (err error) { +func (r *LocationNetwork) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r networkJSON) RawJSON() string { +func (r locationNetworkJSON) RawJSON() string { return r.raw } -type NetworkItem struct { - // The IPv4 address or IPv4 CIDR. IPv4 CIDRs are limited to a maximum of /24. - Network string `json:"network,required"` - JSON networkItemJSON `json:"-"` -} - -// networkItemJSON contains the JSON metadata for the struct [NetworkItem] -type networkItemJSON struct { - Network apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *NetworkItem) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r networkItemJSON) RawJSON() string { - return r.raw -} - -type NetworkItemParam struct { +type LocationNetworkParam struct { // The IPv4 address or IPv4 CIDR. IPv4 CIDRs are limited to a maximum of /24. Network param.Field[string] `json:"network,required"` } -func (r NetworkItemParam) MarshalJSON() (data []byte, err error) { +func (r LocationNetworkParam) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } @@ -214,7 +193,7 @@ type GatewayLocationNewParams struct { // True if the location needs to resolve EDNS queries. EcsSupport param.Field[bool] `json:"ecs_support"` // A list of network ranges that requests from this location would originate from. - Networks param.Field[[]NetworkItemParam] `json:"networks"` + Networks param.Field[[]LocationNetworkParam] `json:"networks"` } func (r GatewayLocationNewParams) MarshalJSON() (data []byte, err error) { @@ -273,7 +252,7 @@ type GatewayLocationUpdateParams struct { // True if the location needs to resolve EDNS queries. EcsSupport param.Field[bool] `json:"ecs_support"` // A list of network ranges that requests from this location would originate from. - Networks param.Field[[]NetworkItemParam] `json:"networks"` + Networks param.Field[[]LocationNetworkParam] `json:"networks"` } func (r GatewayLocationUpdateParams) MarshalJSON() (data []byte, err error) { diff --git a/zero_trust/gatewaylocation_test.go b/zero_trust/gatewaylocation_test.go index 37cbb000922..d2f172935b2 100644 --- a/zero_trust/gatewaylocation_test.go +++ b/zero_trust/gatewaylocation_test.go @@ -33,7 +33,7 @@ func TestGatewayLocationNewWithOptionalParams(t *testing.T) { Name: cloudflare.F("Austin Office Location"), ClientDefault: cloudflare.F(false), EcsSupport: cloudflare.F(false), - Networks: cloudflare.F([]zero_trust.NetworkItemParam{{ + Networks: cloudflare.F([]zero_trust.LocationNetworkParam{{ Network: cloudflare.F("192.0.2.1/32"), }, { Network: cloudflare.F("192.0.2.1/32"), @@ -72,7 +72,7 @@ func TestGatewayLocationUpdateWithOptionalParams(t *testing.T) { Name: cloudflare.F("Austin Office Location"), ClientDefault: cloudflare.F(false), EcsSupport: cloudflare.F(false), - Networks: cloudflare.F([]zero_trust.NetworkItemParam{{ + Networks: cloudflare.F([]zero_trust.LocationNetworkParam{{ Network: cloudflare.F("192.0.2.1/32"), }, { Network: cloudflare.F("192.0.2.1/32"), diff --git a/zero_trust/gatewayrule.go b/zero_trust/gatewayrule.go index 4d9bae7d1c7..e5e4b957a50 100644 --- a/zero_trust/gatewayrule.go +++ b/zero_trust/gatewayrule.go @@ -210,18 +210,18 @@ func (r DNSResolverSettingsV6Param) MarshalJSON() (data []byte, err error) { } // The protocol or layer to use. -type FilterItem string +type GatewayFilter string const ( - FilterItemHTTP FilterItem = "http" - FilterItemDNS FilterItem = "dns" - FilterItemL4 FilterItem = "l4" - FilterItemEgress FilterItem = "egress" + GatewayFilterHTTP GatewayFilter = "http" + GatewayFilterDNS GatewayFilter = "dns" + GatewayFilterL4 GatewayFilter = "l4" + GatewayFilterEgress GatewayFilter = "egress" ) -func (r FilterItem) IsKnown() bool { +func (r GatewayFilter) IsKnown() bool { switch r { - case FilterItemHTTP, FilterItemDNS, FilterItemL4, FilterItemEgress: + case GatewayFilterHTTP, GatewayFilterDNS, GatewayFilterL4, GatewayFilterEgress: return true } return false @@ -244,7 +244,7 @@ type Rule struct { Enabled bool `json:"enabled"` // The protocol or layer to evaluate the traffic, identity, and device posture // expressions. - Filters []FilterItem `json:"filters"` + Filters []GatewayFilter `json:"filters"` // The wirefilter expression used for identity matching. Identity string `json:"identity"` // The name of the rule. @@ -337,7 +337,7 @@ type RuleParam struct { Enabled param.Field[bool] `json:"enabled"` // The protocol or layer to evaluate the traffic, identity, and device posture // expressions. - Filters param.Field[[]FilterItem] `json:"filters"` + Filters param.Field[[]GatewayFilter] `json:"filters"` // The wirefilter expression used for identity matching. Identity param.Field[string] `json:"identity"` // The name of the rule. @@ -1020,7 +1020,7 @@ type GatewayRuleNewParams struct { Enabled param.Field[bool] `json:"enabled"` // The protocol or layer to evaluate the traffic, identity, and device posture // expressions. - Filters param.Field[[]FilterItem] `json:"filters"` + Filters param.Field[[]GatewayFilter] `json:"filters"` // The wirefilter expression used for identity matching. Identity param.Field[string] `json:"identity"` // Precedence sets the order of your rules. Lower values indicate higher @@ -1128,7 +1128,7 @@ type GatewayRuleUpdateParams struct { Enabled param.Field[bool] `json:"enabled"` // The protocol or layer to evaluate the traffic, identity, and device posture // expressions. - Filters param.Field[[]FilterItem] `json:"filters"` + Filters param.Field[[]GatewayFilter] `json:"filters"` // The wirefilter expression used for identity matching. Identity param.Field[string] `json:"identity"` // Precedence sets the order of your rules. Lower values indicate higher diff --git a/zero_trust/gatewayrule_test.go b/zero_trust/gatewayrule_test.go index 9a5f0973cc2..c553cb0f149 100644 --- a/zero_trust/gatewayrule_test.go +++ b/zero_trust/gatewayrule_test.go @@ -35,7 +35,7 @@ func TestGatewayRuleNewWithOptionalParams(t *testing.T) { Description: cloudflare.F("Block bad websites based on their host name."), DevicePosture: cloudflare.F("any(device_posture.checks.passed[*] in {\"1308749e-fcfb-4ebc-b051-fe022b632644\"})"), Enabled: cloudflare.F(true), - Filters: cloudflare.F([]zero_trust.FilterItem{zero_trust.FilterItemHTTP}), + Filters: cloudflare.F([]zero_trust.GatewayFilter{zero_trust.GatewayFilterHTTP}), Identity: cloudflare.F("any(identity.groups.name[*] in {\"finance\"})"), Precedence: cloudflare.F(int64(0)), RuleSettings: cloudflare.F(zero_trust.RuleSettingParam{ @@ -172,7 +172,7 @@ func TestGatewayRuleUpdateWithOptionalParams(t *testing.T) { Description: cloudflare.F("Block bad websites based on their host name."), DevicePosture: cloudflare.F("any(device_posture.checks.passed[*] in {\"1308749e-fcfb-4ebc-b051-fe022b632644\"})"), Enabled: cloudflare.F(true), - Filters: cloudflare.F([]zero_trust.FilterItem{zero_trust.FilterItemHTTP}), + Filters: cloudflare.F([]zero_trust.GatewayFilter{zero_trust.GatewayFilterHTTP}), Identity: cloudflare.F("any(identity.groups.name[*] in {\"finance\"})"), Precedence: cloudflare.F(int64(0)), RuleSettings: cloudflare.F(zero_trust.RuleSettingParam{ diff --git a/zero_trust/networkroute.go b/zero_trust/networkroute.go index 6cef5c02b6f..9c8ad80a055 100644 --- a/zero_trust/networkroute.go +++ b/zero_trust/networkroute.go @@ -54,7 +54,7 @@ func (r *NetworkRouteService) New(ctx context.Context, params NetworkRouteNewPar } // Lists and filters private network routes in an account. -func (r *NetworkRouteService) List(ctx context.Context, params NetworkRouteListParams, opts ...option.RequestOption) (res *pagination.V4PagePaginationArray[Network], err error) { +func (r *NetworkRouteService) List(ctx context.Context, params NetworkRouteListParams, opts ...option.RequestOption) (res *pagination.V4PagePaginationArray[Teamnet], err error) { var raw *http.Response opts = append(r.Options, opts...) opts = append([]option.RequestOption{option.WithResponseInto(&raw)}, opts...) @@ -72,7 +72,7 @@ func (r *NetworkRouteService) List(ctx context.Context, params NetworkRouteListP } // Lists and filters private network routes in an account. -func (r *NetworkRouteService) ListAutoPaging(ctx context.Context, params NetworkRouteListParams, opts ...option.RequestOption) *pagination.V4PagePaginationArrayAutoPager[Network] { +func (r *NetworkRouteService) ListAutoPaging(ctx context.Context, params NetworkRouteListParams, opts ...option.RequestOption) *pagination.V4PagePaginationArrayAutoPager[Teamnet] { return pagination.NewV4PagePaginationArrayAutoPager(r.List(ctx, params, opts...)) } @@ -103,7 +103,7 @@ func (r *NetworkRouteService) Edit(ctx context.Context, routeID string, params N return } -type Network struct { +type Route struct { // UUID of the route. ID string `json:"id"` // Optional remark describing the route. @@ -115,65 +115,56 @@ type Network struct { DeletedAt time.Time `json:"deleted_at,nullable" format:"date-time"` // The private IPv4 or IPv6 range connected by the route, in CIDR notation. Network string `json:"network"` - // The type of tunnel. - TunType NetworkTunType `json:"tun_type"` // UUID of the Cloudflare Tunnel serving the route. TunnelID interface{} `json:"tunnel_id"` - // The user-friendly name of the Cloudflare Tunnel serving the route. - TunnelName interface{} `json:"tunnel_name"` // UUID of the Tunnel Virtual Network this route belongs to. If no virtual networks // are configured, the route is assigned to the default virtual network of the // account. VirtualNetworkID interface{} `json:"virtual_network_id"` - // A user-friendly name for the virtual network. - VirtualNetworkName string `json:"virtual_network_name"` - JSON networkJSON `json:"-"` + JSON routeJSON `json:"-"` } -// networkJSON contains the JSON metadata for the struct [Network] -type networkJSON struct { - ID apijson.Field - Comment apijson.Field - CreatedAt apijson.Field - DeletedAt apijson.Field - Network apijson.Field - TunType apijson.Field - TunnelID apijson.Field - TunnelName apijson.Field - VirtualNetworkID apijson.Field - VirtualNetworkName apijson.Field - raw string - ExtraFields map[string]apijson.Field +// routeJSON contains the JSON metadata for the struct [Route] +type routeJSON struct { + ID apijson.Field + Comment apijson.Field + CreatedAt apijson.Field + DeletedAt apijson.Field + Network apijson.Field + TunnelID apijson.Field + VirtualNetworkID apijson.Field + raw string + ExtraFields map[string]apijson.Field } -func (r *Network) UnmarshalJSON(data []byte) (err error) { +func (r *Route) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r networkJSON) RawJSON() string { +func (r routeJSON) RawJSON() string { return r.raw } -// The type of tunnel. -type NetworkTunType string - -const ( - NetworkTunTypeCfdTunnel NetworkTunType = "cfd_tunnel" - NetworkTunTypeWARPConnector NetworkTunType = "warp_connector" - NetworkTunTypeIPSec NetworkTunType = "ip_sec" - NetworkTunTypeGRE NetworkTunType = "gre" - NetworkTunTypeCni NetworkTunType = "cni" -) +type RouteParam struct { + // Optional remark describing the route. + Comment param.Field[string] `json:"comment"` + // Timestamp of when the route was created. + CreatedAt param.Field[interface{}] `json:"created_at"` + // The private IPv4 or IPv6 range connected by the route, in CIDR notation. + Network param.Field[string] `json:"network"` + // UUID of the Cloudflare Tunnel serving the route. + TunnelID param.Field[interface{}] `json:"tunnel_id"` + // UUID of the Tunnel Virtual Network this route belongs to. If no virtual networks + // are configured, the route is assigned to the default virtual network of the + // account. + VirtualNetworkID param.Field[interface{}] `json:"virtual_network_id"` +} -func (r NetworkTunType) IsKnown() bool { - switch r { - case NetworkTunTypeCfdTunnel, NetworkTunTypeWARPConnector, NetworkTunTypeIPSec, NetworkTunTypeGRE, NetworkTunTypeCni: - return true - } - return false +func (r RouteParam) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) } -type Route struct { +type Teamnet struct { // UUID of the route. ID string `json:"id"` // Optional remark describing the route. @@ -185,36 +176,64 @@ type Route struct { DeletedAt time.Time `json:"deleted_at,nullable" format:"date-time"` // The private IPv4 or IPv6 range connected by the route, in CIDR notation. Network string `json:"network"` + // The type of tunnel. + TunType TeamnetTunType `json:"tun_type"` // UUID of the Cloudflare Tunnel serving the route. TunnelID interface{} `json:"tunnel_id"` + // The user-friendly name of the Cloudflare Tunnel serving the route. + TunnelName interface{} `json:"tunnel_name"` // UUID of the Tunnel Virtual Network this route belongs to. If no virtual networks // are configured, the route is assigned to the default virtual network of the // account. VirtualNetworkID interface{} `json:"virtual_network_id"` - JSON routeJSON `json:"-"` + // A user-friendly name for the virtual network. + VirtualNetworkName string `json:"virtual_network_name"` + JSON teamnetJSON `json:"-"` } -// routeJSON contains the JSON metadata for the struct [Route] -type routeJSON struct { - ID apijson.Field - Comment apijson.Field - CreatedAt apijson.Field - DeletedAt apijson.Field - Network apijson.Field - TunnelID apijson.Field - VirtualNetworkID apijson.Field - raw string - ExtraFields map[string]apijson.Field +// teamnetJSON contains the JSON metadata for the struct [Teamnet] +type teamnetJSON struct { + ID apijson.Field + Comment apijson.Field + CreatedAt apijson.Field + DeletedAt apijson.Field + Network apijson.Field + TunType apijson.Field + TunnelID apijson.Field + TunnelName apijson.Field + VirtualNetworkID apijson.Field + VirtualNetworkName apijson.Field + raw string + ExtraFields map[string]apijson.Field } -func (r *Route) UnmarshalJSON(data []byte) (err error) { +func (r *Teamnet) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r routeJSON) RawJSON() string { +func (r teamnetJSON) RawJSON() string { return r.raw } +// The type of tunnel. +type TeamnetTunType string + +const ( + TeamnetTunTypeCfdTunnel TeamnetTunType = "cfd_tunnel" + TeamnetTunTypeWARPConnector TeamnetTunType = "warp_connector" + TeamnetTunTypeIPSec TeamnetTunType = "ip_sec" + TeamnetTunTypeGRE TeamnetTunType = "gre" + TeamnetTunTypeCni TeamnetTunType = "cni" +) + +func (r TeamnetTunType) IsKnown() bool { + switch r { + case TeamnetTunTypeCfdTunnel, TeamnetTunTypeWARPConnector, TeamnetTunTypeIPSec, TeamnetTunTypeGRE, TeamnetTunTypeCni: + return true + } + return false +} + type NetworkRouteNewParams struct { // Cloudflare account ID AccountID param.Field[string] `path:"account_id,required"` diff --git a/zero_trust/networkrouteip.go b/zero_trust/networkrouteip.go index 1818d36c985..bc1e9b746ee 100644 --- a/zero_trust/networkrouteip.go +++ b/zero_trust/networkrouteip.go @@ -35,7 +35,7 @@ func NewNetworkRouteIPService(opts ...option.RequestOption) (r *NetworkRouteIPSe } // Fetches routes that contain the given IP address. -func (r *NetworkRouteIPService) Get(ctx context.Context, ip string, params NetworkRouteIPGetParams, opts ...option.RequestOption) (res *Network, err error) { +func (r *NetworkRouteIPService) Get(ctx context.Context, ip string, params NetworkRouteIPGetParams, opts ...option.RequestOption) (res *Teamnet, err error) { opts = append(r.Options[:], opts...) var env NetworkRouteIPGetResponseEnvelope path := fmt.Sprintf("accounts/%s/teamnet/routes/ip/%s", params.AccountID, ip) @@ -68,7 +68,7 @@ func (r NetworkRouteIPGetParams) URLQuery() (v url.Values) { type NetworkRouteIPGetResponseEnvelope struct { Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` - Result Network `json:"result,required"` + Result Teamnet `json:"result,required"` // Whether the API call was successful Success NetworkRouteIPGetResponseEnvelopeSuccess `json:"success,required"` JSON networkRouteIPGetResponseEnvelopeJSON `json:"-"` diff --git a/zero_trust/networkvirtualnetwork.go b/zero_trust/networkvirtualnetwork.go index f344aa3ba5a..8bc29b7c57f 100644 --- a/zero_trust/networkvirtualnetwork.go +++ b/zero_trust/networkvirtualnetwork.go @@ -49,7 +49,7 @@ func (r *NetworkVirtualNetworkService) New(ctx context.Context, params NetworkVi } // Lists and filters virtual networks in an account. -func (r *NetworkVirtualNetworkService) List(ctx context.Context, params NetworkVirtualNetworkListParams, opts ...option.RequestOption) (res *pagination.SinglePage[Network], err error) { +func (r *NetworkVirtualNetworkService) List(ctx context.Context, params NetworkVirtualNetworkListParams, opts ...option.RequestOption) (res *pagination.SinglePage[VirtualNetwork], err error) { var raw *http.Response opts = append(r.Options, opts...) opts = append([]option.RequestOption{option.WithResponseInto(&raw)}, opts...) @@ -67,7 +67,7 @@ func (r *NetworkVirtualNetworkService) List(ctx context.Context, params NetworkV } // Lists and filters virtual networks in an account. -func (r *NetworkVirtualNetworkService) ListAutoPaging(ctx context.Context, params NetworkVirtualNetworkListParams, opts ...option.RequestOption) *pagination.SinglePageAutoPager[Network] { +func (r *NetworkVirtualNetworkService) ListAutoPaging(ctx context.Context, params NetworkVirtualNetworkListParams, opts ...option.RequestOption) *pagination.SinglePageAutoPager[VirtualNetwork] { return pagination.NewSinglePageAutoPager(r.List(ctx, params, opts...)) } @@ -97,7 +97,7 @@ func (r *NetworkVirtualNetworkService) Edit(ctx context.Context, virtualNetworkI return } -type Network struct { +type VirtualNetwork struct { // UUID of the virtual network. ID string `json:"id,required"` // Optional remark describing the virtual network. @@ -110,12 +110,12 @@ type Network struct { Name string `json:"name,required"` // Timestamp of when the virtual network was deleted. If `null`, the virtual // network has not been deleted. - DeletedAt interface{} `json:"deleted_at"` - JSON networkJSON `json:"-"` + DeletedAt interface{} `json:"deleted_at"` + JSON virtualNetworkJSON `json:"-"` } -// networkJSON contains the JSON metadata for the struct [Network] -type networkJSON struct { +// virtualNetworkJSON contains the JSON metadata for the struct [VirtualNetwork] +type virtualNetworkJSON struct { ID apijson.Field Comment apijson.Field CreatedAt apijson.Field @@ -126,11 +126,11 @@ type networkJSON struct { ExtraFields map[string]apijson.Field } -func (r *Network) UnmarshalJSON(data []byte) (err error) { +func (r *VirtualNetwork) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r networkJSON) RawJSON() string { +func (r virtualNetworkJSON) RawJSON() string { return r.raw } diff --git a/zones/worker.go b/zones/worker.go new file mode 100644 index 00000000000..8f7997c8492 --- /dev/null +++ b/zones/worker.go @@ -0,0 +1,26 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package zones + +import ( + "github.com/cloudflare/cloudflare-go/v2/option" +) + +// WorkerService contains methods and other services that help with interacting +// with the cloudflare API. Note, unlike clients, this service does not read +// variables from the environment automatically. You should not instantiate this +// service directly, and instead use the [NewWorkerService] method instead. +type WorkerService struct { + Options []option.RequestOption + Script *WorkerScriptService +} + +// NewWorkerService generates a new service that applies the given options to each +// request. These options are applied after the parent client's options (if there +// is one), and before any request-specific options. +func NewWorkerService(opts ...option.RequestOption) (r *WorkerService) { + r = &WorkerService{} + r.Options = opts + r.Script = NewWorkerScriptService(opts...) + return +} diff --git a/zones/workerscript.go b/zones/workerscript.go new file mode 100644 index 00000000000..c8d3e06f742 --- /dev/null +++ b/zones/workerscript.go @@ -0,0 +1,133 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package zones + +import ( + "context" + "fmt" + "net/http" + + "github.com/cloudflare/cloudflare-go/v2/internal/apijson" + "github.com/cloudflare/cloudflare-go/v2/internal/param" + "github.com/cloudflare/cloudflare-go/v2/internal/requestconfig" + "github.com/cloudflare/cloudflare-go/v2/internal/shared" + "github.com/cloudflare/cloudflare-go/v2/option" +) + +// WorkerScriptService contains methods and other services that help with +// interacting with the cloudflare API. Note, unlike clients, this service does not +// read variables from the environment automatically. You should not instantiate +// this service directly, and instead use the [NewWorkerScriptService] method +// instead. +type WorkerScriptService struct { + Options []option.RequestOption +} + +// NewWorkerScriptService generates a new service that applies the given options to +// each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewWorkerScriptService(opts ...option.RequestOption) (r *WorkerScriptService) { + r = &WorkerScriptService{} + r.Options = opts + return +} + +// Upload a worker, or a new version of a worker. +func (r *WorkerScriptService) Update(ctx context.Context, params WorkerScriptUpdateParams, opts ...option.RequestOption) (res *shared.UnnamedSchemaRef9444735ca60712dbcf8afd832eb5716aUnion, err error) { + opts = append(r.Options[:], opts...) + var env WorkerScriptUpdateResponseEnvelope + path := fmt.Sprintf("zones/%s/workers/script", params.ZoneID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPut, path, params, &env, opts...) + if err != nil { + return + } + res = &env.Result + return +} + +// Delete your Worker. This call has no response body on a successful delete. +func (r *WorkerScriptService) Delete(ctx context.Context, params WorkerScriptDeleteParams, opts ...option.RequestOption) (err error) { + opts = append(r.Options[:], opts...) + opts = append([]option.RequestOption{option.WithHeader("Accept", "")}, opts...) + path := fmt.Sprintf("zones/%s/workers/script", params.ZoneID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, nil, nil, opts...) + return +} + +// Fetch raw script content for your worker. Note this is the original script +// content, not JSON encoded. +func (r *WorkerScriptService) Get(ctx context.Context, query WorkerScriptGetParams, opts ...option.RequestOption) (res *http.Response, err error) { + opts = append(r.Options[:], opts...) + opts = append([]option.RequestOption{option.WithHeader("Accept", "undefined")}, opts...) + path := fmt.Sprintf("zones/%s/workers/script", query.ZoneID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) + return +} + +type WorkerScriptUpdateParams struct { + // Identifier + ZoneID param.Field[string] `path:"zone_id,required"` + Body param.Field[interface{}] `json:"body,required"` +} + +func (r WorkerScriptUpdateParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r.Body) +} + +type WorkerScriptUpdateResponseEnvelope struct { + Errors []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"errors,required"` + Messages []shared.UnnamedSchemaRef3248f24329456e19dfa042fff9986f72 `json:"messages,required"` + Result shared.UnnamedSchemaRef9444735ca60712dbcf8afd832eb5716aUnion `json:"result,required"` + // Whether the API call was successful + Success WorkerScriptUpdateResponseEnvelopeSuccess `json:"success,required"` + JSON workerScriptUpdateResponseEnvelopeJSON `json:"-"` +} + +// workerScriptUpdateResponseEnvelopeJSON contains the JSON metadata for the struct +// [WorkerScriptUpdateResponseEnvelope] +type workerScriptUpdateResponseEnvelopeJSON struct { + Errors apijson.Field + Messages apijson.Field + Result apijson.Field + Success apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *WorkerScriptUpdateResponseEnvelope) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r workerScriptUpdateResponseEnvelopeJSON) RawJSON() string { + return r.raw +} + +// Whether the API call was successful +type WorkerScriptUpdateResponseEnvelopeSuccess bool + +const ( + WorkerScriptUpdateResponseEnvelopeSuccessTrue WorkerScriptUpdateResponseEnvelopeSuccess = true +) + +func (r WorkerScriptUpdateResponseEnvelopeSuccess) IsKnown() bool { + switch r { + case WorkerScriptUpdateResponseEnvelopeSuccessTrue: + return true + } + return false +} + +type WorkerScriptDeleteParams struct { + // Identifier + ZoneID param.Field[string] `path:"zone_id,required"` + Body param.Field[interface{}] `json:"body,required"` +} + +func (r WorkerScriptDeleteParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r.Body) +} + +type WorkerScriptGetParams struct { + // Identifier + ZoneID param.Field[string] `path:"zone_id,required"` +} diff --git a/zones/workerscript_test.go b/zones/workerscript_test.go new file mode 100644 index 00000000000..fa0d8974d5b --- /dev/null +++ b/zones/workerscript_test.go @@ -0,0 +1,111 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package zones_test + +import ( + "bytes" + "context" + "errors" + "io" + "net/http" + "net/http/httptest" + "os" + "testing" + + "github.com/cloudflare/cloudflare-go/v2" + "github.com/cloudflare/cloudflare-go/v2/internal/testutil" + "github.com/cloudflare/cloudflare-go/v2/option" + "github.com/cloudflare/cloudflare-go/v2/zones" +) + +func TestWorkerScriptUpdate(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + _, err := client.Zones.Workers.Script.Update(context.TODO(), zones.WorkerScriptUpdateParams{ + ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + Body: cloudflare.F[any](map[string]interface{}{}), + }) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestWorkerScriptDelete(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + err := client.Zones.Workers.Script.Delete(context.TODO(), zones.WorkerScriptDeleteParams{ + ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + Body: cloudflare.F[any](map[string]interface{}{}), + }) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestWorkerScriptGet(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(200) + w.Write([]byte("abc")) + })) + defer server.Close() + baseURL := server.URL + client := cloudflare.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), + option.WithAPIEmail("user@example.com"), + ) + resp, err := client.Zones.Workers.Script.Get(context.TODO(), zones.WorkerScriptGetParams{ + ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + }) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + defer resp.Body.Close() + + b, err := io.ReadAll(resp.Body) + if err != nil { + var apierr *cloudflare.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + if !bytes.Equal(b, []byte("abc")) { + t.Fatalf("return value not %s: %s", "abc", b) + } +} diff --git a/zones/zone.go b/zones/zone.go index 7989f1f5561..4c47bfdc039 100644 --- a/zones/zone.go +++ b/zones/zone.go @@ -29,6 +29,7 @@ type ZoneService struct { Settings *SettingService CustomNameservers *CustomNameserverService Holds *HoldService + Workers *WorkerService Subscriptions *SubscriptionService } @@ -43,6 +44,7 @@ func NewZoneService(opts ...option.RequestOption) (r *ZoneService) { r.Settings = NewSettingService(opts...) r.CustomNameservers = NewCustomNameserverService(opts...) r.Holds = NewHoldService(opts...) + r.Workers = NewWorkerService(opts...) r.Subscriptions = NewSubscriptionService(opts...) return }