From 5b1f3e767ac5f6937be94e2926257b88515eabf3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 06:22:16 +0000 Subject: [PATCH] feat(api): api update (#3674) --- .stats.yml | 4 +- api.md | 6 - email_security/investigatepreview.go | 6 +- email_security/investigatepreview_test.go | 2 +- email_security/settingallowpolicy.go | 16 +- email_security/settingallowpolicy_test.go | 25 +- email_security/settingdomain.go | 137 ++++++++- email_security/settingdomain_test.go | 15 +- email_security/settingtrusteddomain.go | 302 +++----------------- email_security/settingtrusteddomain_test.go | 92 ------ 10 files changed, 213 insertions(+), 392 deletions(-) diff --git a/.stats.yml b/.stats.yml index 23c3024b33a..eba8f42b0c8 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ -configured_endpoints: 1451 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-3151e81bdc8e6e6f3dc90b21f78c472b90c934926fef1dad65df1f1e13f21b6d.yml +configured_endpoints: 1448 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-96e28d4d04ac2f1a00dda1130ef53e8bd9f2f1590e5d7ba8bed38cad29f8b2de.yml diff --git a/api.md b/api.md index 04c0add437f..13afc60f0a2 100644 --- a/api.md +++ b/api.md @@ -1300,17 +1300,11 @@ Response Types: - email_security.SettingTrustedDomainNewResponseUnion - email_security.SettingTrustedDomainListResponse -- email_security.SettingTrustedDomainDeleteResponse -- email_security.SettingTrustedDomainEditResponse -- email_security.SettingTrustedDomainGetResponse Methods: - client.EmailSecurity.Settings.TrustedDomains.New(ctx context.Context, params email_security.SettingTrustedDomainNewParams) (email_security.SettingTrustedDomainNewResponseUnion, error) - client.EmailSecurity.Settings.TrustedDomains.List(ctx context.Context, params email_security.SettingTrustedDomainListParams) (pagination.V4PagePaginationArray[email_security.SettingTrustedDomainListResponse], error) -- client.EmailSecurity.Settings.TrustedDomains.Delete(ctx context.Context, patternID int64, body email_security.SettingTrustedDomainDeleteParams) (email_security.SettingTrustedDomainDeleteResponse, error) -- client.EmailSecurity.Settings.TrustedDomains.Edit(ctx context.Context, patternID int64, params email_security.SettingTrustedDomainEditParams) (email_security.SettingTrustedDomainEditResponse, error) -- client.EmailSecurity.Settings.TrustedDomains.Get(ctx context.Context, patternID int64, query email_security.SettingTrustedDomainGetParams) (email_security.SettingTrustedDomainGetResponse, error) ## Submissions diff --git a/email_security/investigatepreview.go b/email_security/investigatepreview.go index f5de1761cf5..36f07455778 100644 --- a/email_security/investigatepreview.go +++ b/email_security/investigatepreview.go @@ -121,12 +121,12 @@ func (r investigatePreviewGetResponseJSON) RawJSON() string { type InvestigatePreviewNewParams struct { // Account Identifier AccountID param.Field[string] `path:"account_id,required"` - // A list of messages identfied by their `postfix_id`s that should be released. - Body []string `json:"body,required"` + // The identifier of the message. + PostfixID param.Field[string] `json:"postfix_id,required"` } func (r InvestigatePreviewNewParams) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r.Body) + return apijson.MarshalRoot(r) } type InvestigatePreviewNewResponseEnvelope struct { diff --git a/email_security/investigatepreview_test.go b/email_security/investigatepreview_test.go index aa8565bccad..4f6568ffa94 100644 --- a/email_security/investigatepreview_test.go +++ b/email_security/investigatepreview_test.go @@ -29,7 +29,7 @@ func TestInvestigatePreviewNew(t *testing.T) { ) _, err := client.EmailSecurity.Investigate.Preview.New(context.TODO(), email_security.InvestigatePreviewNewParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), - Body: []string{"4Njp3P0STMz2c02Q"}, + PostfixID: cloudflare.F("4Njp3P0STMz2c02Q"), }) if err != nil { var apierr *cloudflare.Error diff --git a/email_security/settingallowpolicy.go b/email_security/settingallowpolicy.go index d550581f80b..80f8a199e80 100644 --- a/email_security/settingallowpolicy.go +++ b/email_security/settingallowpolicy.go @@ -134,6 +134,7 @@ func (r *SettingAllowPolicyService) Get(ctx context.Context, policyID int64, que } type SettingAllowPolicyNewResponse struct { + // The unique identifier for the allow policy. ID int64 `json:"id,required"` CreatedAt time.Time `json:"created_at,required" format:"date-time"` // Messages from this sender will be exempted from Spam, Spoof and Bulk @@ -205,6 +206,7 @@ func (r SettingAllowPolicyNewResponsePatternType) IsKnown() bool { } type SettingAllowPolicyListResponse struct { + // The unique identifier for the allow policy. ID int64 `json:"id,required"` CreatedAt time.Time `json:"created_at,required" format:"date-time"` // Messages from this sender will be exempted from Spam, Spoof and Bulk @@ -276,6 +278,7 @@ func (r SettingAllowPolicyListResponsePatternType) IsKnown() bool { } type SettingAllowPolicyDeleteResponse struct { + // The unique identifier for the allow policy. ID int64 `json:"id,required"` JSON settingAllowPolicyDeleteResponseJSON `json:"-"` } @@ -297,6 +300,7 @@ func (r settingAllowPolicyDeleteResponseJSON) RawJSON() string { } type SettingAllowPolicyEditResponse struct { + // The unique identifier for the allow policy. ID int64 `json:"id,required"` CreatedAt time.Time `json:"created_at,required" format:"date-time"` // Messages from this sender will be exempted from Spam, Spoof and Bulk @@ -368,6 +372,7 @@ func (r SettingAllowPolicyEditResponsePatternType) IsKnown() bool { } type SettingAllowPolicyGetResponse struct { + // The unique identifier for the allow policy. ID int64 `json:"id,required"` CreatedAt time.Time `json:"created_at,required" format:"date-time"` // Messages from this sender will be exempted from Spam, Spoof and Bulk @@ -513,10 +518,13 @@ type SettingAllowPolicyListParams struct { // Account Identifier AccountID param.Field[string] `path:"account_id,required"` // The sorting direction. - Direction param.Field[SettingAllowPolicyListParamsDirection] `query:"direction"` - IsRecipient param.Field[bool] `query:"is_recipient"` - IsSender param.Field[bool] `query:"is_sender"` - IsSpoof param.Field[bool] `query:"is_spoof"` + Direction param.Field[SettingAllowPolicyListParamsDirection] `query:"direction"` + IsAcceptableSender param.Field[bool] `query:"is_acceptable_sender"` + IsExemptRecipient param.Field[bool] `query:"is_exempt_recipient"` + IsRecipient param.Field[bool] `query:"is_recipient"` + IsSender param.Field[bool] `query:"is_sender"` + IsSpoof param.Field[bool] `query:"is_spoof"` + IsTrustedSender param.Field[bool] `query:"is_trusted_sender"` // The field to sort by. Order param.Field[SettingAllowPolicyListParamsOrder] `query:"order"` // The page number of paginated results. diff --git a/email_security/settingallowpolicy_test.go b/email_security/settingallowpolicy_test.go index cd4d985719b..cc76209ac69 100644 --- a/email_security/settingallowpolicy_test.go +++ b/email_security/settingallowpolicy_test.go @@ -64,17 +64,20 @@ func TestSettingAllowPolicyListWithOptionalParams(t *testing.T) { option.WithAPIEmail("user@example.com"), ) _, err := client.EmailSecurity.Settings.AllowPolicies.List(context.TODO(), email_security.SettingAllowPolicyListParams{ - AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), - Direction: cloudflare.F(email_security.SettingAllowPolicyListParamsDirectionAsc), - IsRecipient: cloudflare.F(true), - IsSender: cloudflare.F(true), - IsSpoof: cloudflare.F(true), - Order: cloudflare.F(email_security.SettingAllowPolicyListParamsOrderPattern), - Page: cloudflare.F(int64(1)), - PatternType: cloudflare.F(email_security.SettingAllowPolicyListParamsPatternTypeEmail), - PerPage: cloudflare.F(int64(1)), - Search: cloudflare.F("search"), - VerifySender: cloudflare.F(true), + AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + Direction: cloudflare.F(email_security.SettingAllowPolicyListParamsDirectionAsc), + IsAcceptableSender: cloudflare.F(true), + IsExemptRecipient: cloudflare.F(true), + IsRecipient: cloudflare.F(true), + IsSender: cloudflare.F(true), + IsSpoof: cloudflare.F(true), + IsTrustedSender: cloudflare.F(true), + Order: cloudflare.F(email_security.SettingAllowPolicyListParamsOrderPattern), + Page: cloudflare.F(int64(1)), + PatternType: cloudflare.F(email_security.SettingAllowPolicyListParamsPatternTypeEmail), + PerPage: cloudflare.F(int64(1)), + Search: cloudflare.F("search"), + VerifySender: cloudflare.F(true), }) if err != nil { var apierr *cloudflare.Error diff --git a/email_security/settingdomain.go b/email_security/settingdomain.go index a1ab7ac2ba6..71f60f6092b 100644 --- a/email_security/settingdomain.go +++ b/email_security/settingdomain.go @@ -139,12 +139,17 @@ type SettingDomainListResponse struct { AllowedDeliveryModes []SettingDomainListResponseAllowedDeliveryMode `json:"allowed_delivery_modes,required"` CreatedAt time.Time `json:"created_at,required" format:"date-time"` Domain string `json:"domain,required"` + DropDispositions []SettingDomainListResponseDropDisposition `json:"drop_dispositions,required"` + IPRestrictions []string `json:"ip_restrictions,required"` LastModified time.Time `json:"last_modified,required" format:"date-time"` LookbackHops int64 `json:"lookback_hops,required"` + Transport string `json:"transport,required"` Folder SettingDomainListResponseFolder `json:"folder,nullable"` InboxProvider SettingDomainListResponseInboxProvider `json:"inbox_provider,nullable"` IntegrationID string `json:"integration_id,nullable" format:"uuid"` O365TenantID string `json:"o365_tenant_id,nullable"` + RequireTLSInbound bool `json:"require_tls_inbound,nullable"` + RequireTLSOutbound bool `json:"require_tls_outbound,nullable"` JSON settingDomainListResponseJSON `json:"-"` } @@ -155,12 +160,17 @@ type settingDomainListResponseJSON struct { AllowedDeliveryModes apijson.Field CreatedAt apijson.Field Domain apijson.Field + DropDispositions apijson.Field + IPRestrictions apijson.Field LastModified apijson.Field LookbackHops apijson.Field + Transport apijson.Field Folder apijson.Field InboxProvider apijson.Field IntegrationID apijson.Field O365TenantID apijson.Field + RequireTLSInbound apijson.Field + RequireTLSOutbound apijson.Field raw string ExtraFields map[string]apijson.Field } @@ -191,6 +201,29 @@ func (r SettingDomainListResponseAllowedDeliveryMode) IsKnown() bool { return false } +type SettingDomainListResponseDropDisposition string + +const ( + SettingDomainListResponseDropDispositionMalicious SettingDomainListResponseDropDisposition = "MALICIOUS" + SettingDomainListResponseDropDispositionMaliciousBec SettingDomainListResponseDropDisposition = "MALICIOUS-BEC" + SettingDomainListResponseDropDispositionSuspicious SettingDomainListResponseDropDisposition = "SUSPICIOUS" + SettingDomainListResponseDropDispositionSpoof SettingDomainListResponseDropDisposition = "SPOOF" + SettingDomainListResponseDropDispositionSpam SettingDomainListResponseDropDisposition = "SPAM" + SettingDomainListResponseDropDispositionBulk SettingDomainListResponseDropDisposition = "BULK" + SettingDomainListResponseDropDispositionEncrypted SettingDomainListResponseDropDisposition = "ENCRYPTED" + SettingDomainListResponseDropDispositionExternal SettingDomainListResponseDropDisposition = "EXTERNAL" + SettingDomainListResponseDropDispositionUnknown SettingDomainListResponseDropDisposition = "UNKNOWN" + SettingDomainListResponseDropDispositionNone SettingDomainListResponseDropDisposition = "NONE" +) + +func (r SettingDomainListResponseDropDisposition) IsKnown() bool { + switch r { + case SettingDomainListResponseDropDispositionMalicious, SettingDomainListResponseDropDispositionMaliciousBec, SettingDomainListResponseDropDispositionSuspicious, SettingDomainListResponseDropDispositionSpoof, SettingDomainListResponseDropDispositionSpam, SettingDomainListResponseDropDispositionBulk, SettingDomainListResponseDropDispositionEncrypted, SettingDomainListResponseDropDispositionExternal, SettingDomainListResponseDropDispositionUnknown, SettingDomainListResponseDropDispositionNone: + return true + } + return false +} + type SettingDomainListResponseFolder string const ( @@ -271,12 +304,17 @@ type SettingDomainEditResponse struct { AllowedDeliveryModes []SettingDomainEditResponseAllowedDeliveryMode `json:"allowed_delivery_modes,required"` CreatedAt time.Time `json:"created_at,required" format:"date-time"` Domain string `json:"domain,required"` + DropDispositions []SettingDomainEditResponseDropDisposition `json:"drop_dispositions,required"` + IPRestrictions []string `json:"ip_restrictions,required"` LastModified time.Time `json:"last_modified,required" format:"date-time"` LookbackHops int64 `json:"lookback_hops,required"` + Transport string `json:"transport,required"` Folder SettingDomainEditResponseFolder `json:"folder,nullable"` InboxProvider SettingDomainEditResponseInboxProvider `json:"inbox_provider,nullable"` IntegrationID string `json:"integration_id,nullable" format:"uuid"` O365TenantID string `json:"o365_tenant_id,nullable"` + RequireTLSInbound bool `json:"require_tls_inbound,nullable"` + RequireTLSOutbound bool `json:"require_tls_outbound,nullable"` JSON settingDomainEditResponseJSON `json:"-"` } @@ -287,12 +325,17 @@ type settingDomainEditResponseJSON struct { AllowedDeliveryModes apijson.Field CreatedAt apijson.Field Domain apijson.Field + DropDispositions apijson.Field + IPRestrictions apijson.Field LastModified apijson.Field LookbackHops apijson.Field + Transport apijson.Field Folder apijson.Field InboxProvider apijson.Field IntegrationID apijson.Field O365TenantID apijson.Field + RequireTLSInbound apijson.Field + RequireTLSOutbound apijson.Field raw string ExtraFields map[string]apijson.Field } @@ -323,6 +366,29 @@ func (r SettingDomainEditResponseAllowedDeliveryMode) IsKnown() bool { return false } +type SettingDomainEditResponseDropDisposition string + +const ( + SettingDomainEditResponseDropDispositionMalicious SettingDomainEditResponseDropDisposition = "MALICIOUS" + SettingDomainEditResponseDropDispositionMaliciousBec SettingDomainEditResponseDropDisposition = "MALICIOUS-BEC" + SettingDomainEditResponseDropDispositionSuspicious SettingDomainEditResponseDropDisposition = "SUSPICIOUS" + SettingDomainEditResponseDropDispositionSpoof SettingDomainEditResponseDropDisposition = "SPOOF" + SettingDomainEditResponseDropDispositionSpam SettingDomainEditResponseDropDisposition = "SPAM" + SettingDomainEditResponseDropDispositionBulk SettingDomainEditResponseDropDisposition = "BULK" + SettingDomainEditResponseDropDispositionEncrypted SettingDomainEditResponseDropDisposition = "ENCRYPTED" + SettingDomainEditResponseDropDispositionExternal SettingDomainEditResponseDropDisposition = "EXTERNAL" + SettingDomainEditResponseDropDispositionUnknown SettingDomainEditResponseDropDisposition = "UNKNOWN" + SettingDomainEditResponseDropDispositionNone SettingDomainEditResponseDropDisposition = "NONE" +) + +func (r SettingDomainEditResponseDropDisposition) IsKnown() bool { + switch r { + case SettingDomainEditResponseDropDispositionMalicious, SettingDomainEditResponseDropDispositionMaliciousBec, SettingDomainEditResponseDropDispositionSuspicious, SettingDomainEditResponseDropDispositionSpoof, SettingDomainEditResponseDropDispositionSpam, SettingDomainEditResponseDropDispositionBulk, SettingDomainEditResponseDropDispositionEncrypted, SettingDomainEditResponseDropDispositionExternal, SettingDomainEditResponseDropDispositionUnknown, SettingDomainEditResponseDropDispositionNone: + return true + } + return false +} + type SettingDomainEditResponseFolder string const ( @@ -359,12 +425,17 @@ type SettingDomainGetResponse struct { AllowedDeliveryModes []SettingDomainGetResponseAllowedDeliveryMode `json:"allowed_delivery_modes,required"` CreatedAt time.Time `json:"created_at,required" format:"date-time"` Domain string `json:"domain,required"` + DropDispositions []SettingDomainGetResponseDropDisposition `json:"drop_dispositions,required"` + IPRestrictions []string `json:"ip_restrictions,required"` LastModified time.Time `json:"last_modified,required" format:"date-time"` LookbackHops int64 `json:"lookback_hops,required"` + Transport string `json:"transport,required"` Folder SettingDomainGetResponseFolder `json:"folder,nullable"` InboxProvider SettingDomainGetResponseInboxProvider `json:"inbox_provider,nullable"` IntegrationID string `json:"integration_id,nullable" format:"uuid"` O365TenantID string `json:"o365_tenant_id,nullable"` + RequireTLSInbound bool `json:"require_tls_inbound,nullable"` + RequireTLSOutbound bool `json:"require_tls_outbound,nullable"` JSON settingDomainGetResponseJSON `json:"-"` } @@ -375,12 +446,17 @@ type settingDomainGetResponseJSON struct { AllowedDeliveryModes apijson.Field CreatedAt apijson.Field Domain apijson.Field + DropDispositions apijson.Field + IPRestrictions apijson.Field LastModified apijson.Field LookbackHops apijson.Field + Transport apijson.Field Folder apijson.Field InboxProvider apijson.Field IntegrationID apijson.Field O365TenantID apijson.Field + RequireTLSInbound apijson.Field + RequireTLSOutbound apijson.Field raw string ExtraFields map[string]apijson.Field } @@ -411,6 +487,29 @@ func (r SettingDomainGetResponseAllowedDeliveryMode) IsKnown() bool { return false } +type SettingDomainGetResponseDropDisposition string + +const ( + SettingDomainGetResponseDropDispositionMalicious SettingDomainGetResponseDropDisposition = "MALICIOUS" + SettingDomainGetResponseDropDispositionMaliciousBec SettingDomainGetResponseDropDisposition = "MALICIOUS-BEC" + SettingDomainGetResponseDropDispositionSuspicious SettingDomainGetResponseDropDisposition = "SUSPICIOUS" + SettingDomainGetResponseDropDispositionSpoof SettingDomainGetResponseDropDisposition = "SPOOF" + SettingDomainGetResponseDropDispositionSpam SettingDomainGetResponseDropDisposition = "SPAM" + SettingDomainGetResponseDropDispositionBulk SettingDomainGetResponseDropDisposition = "BULK" + SettingDomainGetResponseDropDispositionEncrypted SettingDomainGetResponseDropDisposition = "ENCRYPTED" + SettingDomainGetResponseDropDispositionExternal SettingDomainGetResponseDropDisposition = "EXTERNAL" + SettingDomainGetResponseDropDispositionUnknown SettingDomainGetResponseDropDisposition = "UNKNOWN" + SettingDomainGetResponseDropDispositionNone SettingDomainGetResponseDropDisposition = "NONE" +) + +func (r SettingDomainGetResponseDropDisposition) IsKnown() bool { + switch r { + case SettingDomainGetResponseDropDispositionMalicious, SettingDomainGetResponseDropDispositionMaliciousBec, SettingDomainGetResponseDropDispositionSuspicious, SettingDomainGetResponseDropDispositionSpoof, SettingDomainGetResponseDropDispositionSpam, SettingDomainGetResponseDropDispositionBulk, SettingDomainGetResponseDropDispositionEncrypted, SettingDomainGetResponseDropDispositionExternal, SettingDomainGetResponseDropDispositionUnknown, SettingDomainGetResponseDropDispositionNone: + return true + } + return false +} + type SettingDomainGetResponseFolder string const ( @@ -588,17 +687,45 @@ func (r settingDomainBulkDeleteResponseEnvelopeJSON) RawJSON() string { type SettingDomainEditParams struct { // Account Identifier - AccountID param.Field[string] `path:"account_id,required"` - Domain param.Field[string] `json:"domain"` - Folder param.Field[SettingDomainEditParamsFolder] `json:"folder"` - IntegrationID param.Field[string] `json:"integration_id" format:"uuid"` - LookbackHops param.Field[int64] `json:"lookback_hops"` + AccountID param.Field[string] `path:"account_id,required"` + IPRestrictions param.Field[[]string] `json:"ip_restrictions,required"` + Domain param.Field[string] `json:"domain"` + DropDispositions param.Field[[]SettingDomainEditParamsDropDisposition] `json:"drop_dispositions"` + Folder param.Field[SettingDomainEditParamsFolder] `json:"folder"` + IntegrationID param.Field[string] `json:"integration_id" format:"uuid"` + LookbackHops param.Field[int64] `json:"lookback_hops"` + RequireTLSInbound param.Field[bool] `json:"require_tls_inbound"` + RequireTLSOutbound param.Field[bool] `json:"require_tls_outbound"` + Transport param.Field[string] `json:"transport"` } func (r SettingDomainEditParams) MarshalJSON() (data []byte, err error) { return apijson.MarshalRoot(r) } +type SettingDomainEditParamsDropDisposition string + +const ( + SettingDomainEditParamsDropDispositionMalicious SettingDomainEditParamsDropDisposition = "MALICIOUS" + SettingDomainEditParamsDropDispositionMaliciousBec SettingDomainEditParamsDropDisposition = "MALICIOUS-BEC" + SettingDomainEditParamsDropDispositionSuspicious SettingDomainEditParamsDropDisposition = "SUSPICIOUS" + SettingDomainEditParamsDropDispositionSpoof SettingDomainEditParamsDropDisposition = "SPOOF" + SettingDomainEditParamsDropDispositionSpam SettingDomainEditParamsDropDisposition = "SPAM" + SettingDomainEditParamsDropDispositionBulk SettingDomainEditParamsDropDisposition = "BULK" + SettingDomainEditParamsDropDispositionEncrypted SettingDomainEditParamsDropDisposition = "ENCRYPTED" + SettingDomainEditParamsDropDispositionExternal SettingDomainEditParamsDropDisposition = "EXTERNAL" + SettingDomainEditParamsDropDispositionUnknown SettingDomainEditParamsDropDisposition = "UNKNOWN" + SettingDomainEditParamsDropDispositionNone SettingDomainEditParamsDropDisposition = "NONE" +) + +func (r SettingDomainEditParamsDropDisposition) IsKnown() bool { + switch r { + case SettingDomainEditParamsDropDispositionMalicious, SettingDomainEditParamsDropDispositionMaliciousBec, SettingDomainEditParamsDropDispositionSuspicious, SettingDomainEditParamsDropDispositionSpoof, SettingDomainEditParamsDropDispositionSpam, SettingDomainEditParamsDropDispositionBulk, SettingDomainEditParamsDropDispositionEncrypted, SettingDomainEditParamsDropDispositionExternal, SettingDomainEditParamsDropDispositionUnknown, SettingDomainEditParamsDropDispositionNone: + return true + } + return false +} + type SettingDomainEditParamsFolder string const ( diff --git a/email_security/settingdomain_test.go b/email_security/settingdomain_test.go index 44458126f6d..e46630fe0b4 100644 --- a/email_security/settingdomain_test.go +++ b/email_security/settingdomain_test.go @@ -117,11 +117,16 @@ func TestSettingDomainEditWithOptionalParams(t *testing.T) { context.TODO(), int64(2400), email_security.SettingDomainEditParams{ - AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), - Domain: cloudflare.F("domain"), - Folder: cloudflare.F(email_security.SettingDomainEditParamsFolderAllItems), - IntegrationID: cloudflare.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"), - LookbackHops: cloudflare.F(int64(1)), + AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), + IPRestrictions: cloudflare.F([]string{"192.0.2.0/24", "2001:db8::/32"}), + Domain: cloudflare.F("domain"), + DropDispositions: cloudflare.F([]email_security.SettingDomainEditParamsDropDisposition{email_security.SettingDomainEditParamsDropDispositionMalicious}), + Folder: cloudflare.F(email_security.SettingDomainEditParamsFolderAllItems), + IntegrationID: cloudflare.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"), + LookbackHops: cloudflare.F(int64(1)), + RequireTLSInbound: cloudflare.F(true), + RequireTLSOutbound: cloudflare.F(true), + Transport: cloudflare.F("transport"), }, ) if err != nil { diff --git a/email_security/settingtrusteddomain.go b/email_security/settingtrusteddomain.go index bf78fa38147..9f32bfb4fe4 100644 --- a/email_security/settingtrusteddomain.go +++ b/email_security/settingtrusteddomain.go @@ -84,57 +84,6 @@ func (r *SettingTrustedDomainService) ListAutoPaging(ctx context.Context, params return pagination.NewV4PagePaginationArrayAutoPager(r.List(ctx, params, opts...)) } -// Delete a trusted email domain -func (r *SettingTrustedDomainService) Delete(ctx context.Context, patternID int64, body SettingTrustedDomainDeleteParams, opts ...option.RequestOption) (res *SettingTrustedDomainDeleteResponse, err error) { - var env SettingTrustedDomainDeleteResponseEnvelope - opts = append(r.Options[:], opts...) - if body.AccountID.Value == "" { - err = errors.New("missing required account_id parameter") - return - } - path := fmt.Sprintf("accounts/%s/email-security/settings/trusted_domains/%v", body.AccountID, patternID) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, nil, &env, opts...) - if err != nil { - return - } - res = &env.Result - return -} - -// Update a trusted email domain -func (r *SettingTrustedDomainService) Edit(ctx context.Context, patternID int64, params SettingTrustedDomainEditParams, opts ...option.RequestOption) (res *SettingTrustedDomainEditResponse, err error) { - var env SettingTrustedDomainEditResponseEnvelope - opts = append(r.Options[:], opts...) - if params.AccountID.Value == "" { - err = errors.New("missing required account_id parameter") - return - } - path := fmt.Sprintf("accounts/%s/email-security/settings/trusted_domains/%v", params.AccountID, patternID) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, params, &env, opts...) - if err != nil { - return - } - res = &env.Result - return -} - -// Get a trusted email domain -func (r *SettingTrustedDomainService) Get(ctx context.Context, patternID int64, query SettingTrustedDomainGetParams, opts ...option.RequestOption) (res *SettingTrustedDomainGetResponse, err error) { - var env SettingTrustedDomainGetResponseEnvelope - opts = append(r.Options[:], opts...) - if query.AccountID.Value == "" { - err = errors.New("missing required account_id parameter") - return - } - path := fmt.Sprintf("accounts/%s/email-security/settings/trusted_domains/%v", query.AccountID, patternID) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &env, opts...) - if err != nil { - return - } - res = &env.Result - return -} - // Union satisfied by // [email_security.SettingTrustedDomainNewResponseEmailSecurityTrustedDomain] or // [email_security.SettingTrustedDomainNewResponseArray]. @@ -158,10 +107,15 @@ func init() { } type SettingTrustedDomainNewResponseEmailSecurityTrustedDomain struct { - ID int64 `json:"id,required"` - CreatedAt time.Time `json:"created_at,required" format:"date-time"` - IsRecent bool `json:"is_recent,required"` - IsRegex bool `json:"is_regex,required"` + // The unique identifier for the trusted domain. + ID int64 `json:"id,required"` + CreatedAt time.Time `json:"created_at,required" format:"date-time"` + // Select to prevent recently registered domains from triggering a Suspicious or + // Malicious disposition. + IsRecent bool `json:"is_recent,required"` + IsRegex bool `json:"is_regex,required"` + // Select for partner or other approved domains that have similar spelling to your + // connected domains. Prevents listed domains from triggering a Spoof disposition. IsSimilarity bool `json:"is_similarity,required"` LastModified time.Time `json:"last_modified,required" format:"date-time"` Pattern string `json:"pattern,required"` @@ -202,10 +156,15 @@ func (r SettingTrustedDomainNewResponseArray) implementsEmailSecuritySettingTrus } type SettingTrustedDomainNewResponseArrayItem struct { - ID int64 `json:"id,required"` - CreatedAt time.Time `json:"created_at,required" format:"date-time"` - IsRecent bool `json:"is_recent,required"` - IsRegex bool `json:"is_regex,required"` + // The unique identifier for the trusted domain. + ID int64 `json:"id,required"` + CreatedAt time.Time `json:"created_at,required" format:"date-time"` + // Select to prevent recently registered domains from triggering a Suspicious or + // Malicious disposition. + IsRecent bool `json:"is_recent,required"` + IsRegex bool `json:"is_regex,required"` + // Select for partner or other approved domains that have similar spelling to your + // connected domains. Prevents listed domains from triggering a Spoof disposition. IsSimilarity bool `json:"is_similarity,required"` LastModified time.Time `json:"last_modified,required" format:"date-time"` Pattern string `json:"pattern,required"` @@ -237,10 +196,15 @@ func (r settingTrustedDomainNewResponseArrayItemJSON) RawJSON() string { } type SettingTrustedDomainListResponse struct { - ID int64 `json:"id,required"` - CreatedAt time.Time `json:"created_at,required" format:"date-time"` - IsRecent bool `json:"is_recent,required"` - IsRegex bool `json:"is_regex,required"` + // The unique identifier for the trusted domain. + ID int64 `json:"id,required"` + CreatedAt time.Time `json:"created_at,required" format:"date-time"` + // Select to prevent recently registered domains from triggering a Suspicious or + // Malicious disposition. + IsRecent bool `json:"is_recent,required"` + IsRegex bool `json:"is_regex,required"` + // Select for partner or other approved domains that have similar spelling to your + // connected domains. Prevents listed domains from triggering a Spoof disposition. IsSimilarity bool `json:"is_similarity,required"` LastModified time.Time `json:"last_modified,required" format:"date-time"` Pattern string `json:"pattern,required"` @@ -271,97 +235,6 @@ func (r settingTrustedDomainListResponseJSON) RawJSON() string { return r.raw } -type SettingTrustedDomainDeleteResponse struct { - ID int64 `json:"id,required"` - JSON settingTrustedDomainDeleteResponseJSON `json:"-"` -} - -// settingTrustedDomainDeleteResponseJSON contains the JSON metadata for the struct -// [SettingTrustedDomainDeleteResponse] -type settingTrustedDomainDeleteResponseJSON struct { - ID apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *SettingTrustedDomainDeleteResponse) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r settingTrustedDomainDeleteResponseJSON) RawJSON() string { - return r.raw -} - -type SettingTrustedDomainEditResponse struct { - ID int64 `json:"id,required"` - CreatedAt time.Time `json:"created_at,required" format:"date-time"` - IsRecent bool `json:"is_recent,required"` - IsRegex bool `json:"is_regex,required"` - IsSimilarity bool `json:"is_similarity,required"` - LastModified time.Time `json:"last_modified,required" format:"date-time"` - Pattern string `json:"pattern,required"` - Comments string `json:"comments,nullable"` - JSON settingTrustedDomainEditResponseJSON `json:"-"` -} - -// settingTrustedDomainEditResponseJSON contains the JSON metadata for the struct -// [SettingTrustedDomainEditResponse] -type settingTrustedDomainEditResponseJSON struct { - ID apijson.Field - CreatedAt apijson.Field - IsRecent apijson.Field - IsRegex apijson.Field - IsSimilarity apijson.Field - LastModified apijson.Field - Pattern apijson.Field - Comments apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *SettingTrustedDomainEditResponse) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r settingTrustedDomainEditResponseJSON) RawJSON() string { - return r.raw -} - -type SettingTrustedDomainGetResponse struct { - ID int64 `json:"id,required"` - CreatedAt time.Time `json:"created_at,required" format:"date-time"` - IsRecent bool `json:"is_recent,required"` - IsRegex bool `json:"is_regex,required"` - IsSimilarity bool `json:"is_similarity,required"` - LastModified time.Time `json:"last_modified,required" format:"date-time"` - Pattern string `json:"pattern,required"` - Comments string `json:"comments,nullable"` - JSON settingTrustedDomainGetResponseJSON `json:"-"` -} - -// settingTrustedDomainGetResponseJSON contains the JSON metadata for the struct -// [SettingTrustedDomainGetResponse] -type settingTrustedDomainGetResponseJSON struct { - ID apijson.Field - CreatedAt apijson.Field - IsRecent apijson.Field - IsRegex apijson.Field - IsSimilarity apijson.Field - LastModified apijson.Field - Pattern apijson.Field - Comments apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *SettingTrustedDomainGetResponse) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r settingTrustedDomainGetResponseJSON) RawJSON() string { - return r.raw -} - type SettingTrustedDomainNewParams struct { // Account Identifier AccountID param.Field[string] `path:"account_id,required"` @@ -380,8 +253,12 @@ type SettingTrustedDomainNewParamsBodyUnion interface { } type SettingTrustedDomainNewParamsBodyEmailSecurityCreateTrustedDomain struct { - IsRecent param.Field[bool] `json:"is_recent,required"` - IsRegex param.Field[bool] `json:"is_regex,required"` + // Select to prevent recently registered domains from triggering a Suspicious or + // Malicious disposition. + IsRecent param.Field[bool] `json:"is_recent,required"` + IsRegex param.Field[bool] `json:"is_regex,required"` + // Select for partner or other approved domains that have similar spelling to your + // connected domains. Prevents listed domains from triggering a Spoof disposition. IsSimilarity param.Field[bool] `json:"is_similarity,required"` Pattern param.Field[string] `json:"pattern,required"` Comments param.Field[string] `json:"comments"` @@ -400,8 +277,12 @@ func (r SettingTrustedDomainNewParamsBodyArray) implementsEmailSecuritySettingTr } type SettingTrustedDomainNewParamsBodyArrayItem struct { - IsRecent param.Field[bool] `json:"is_recent,required"` - IsRegex param.Field[bool] `json:"is_regex,required"` + // Select to prevent recently registered domains from triggering a Suspicious or + // Malicious disposition. + IsRecent param.Field[bool] `json:"is_recent,required"` + IsRegex param.Field[bool] `json:"is_regex,required"` + // Select for partner or other approved domains that have similar spelling to your + // connected domains. Prevents listed domains from triggering a Spoof disposition. IsSimilarity param.Field[bool] `json:"is_similarity,required"` Pattern param.Field[string] `json:"pattern,required"` Comments param.Field[string] `json:"comments"` @@ -497,108 +378,3 @@ func (r SettingTrustedDomainListParamsOrder) IsKnown() bool { } return false } - -type SettingTrustedDomainDeleteParams struct { - // Account Identifier - AccountID param.Field[string] `path:"account_id,required"` -} - -type SettingTrustedDomainDeleteResponseEnvelope struct { - Errors []shared.ResponseInfo `json:"errors,required"` - Messages []shared.ResponseInfo `json:"messages,required"` - Result SettingTrustedDomainDeleteResponse `json:"result,required"` - Success bool `json:"success,required"` - JSON settingTrustedDomainDeleteResponseEnvelopeJSON `json:"-"` -} - -// settingTrustedDomainDeleteResponseEnvelopeJSON contains the JSON metadata for -// the struct [SettingTrustedDomainDeleteResponseEnvelope] -type settingTrustedDomainDeleteResponseEnvelopeJSON struct { - Errors apijson.Field - Messages apijson.Field - Result apijson.Field - Success apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *SettingTrustedDomainDeleteResponseEnvelope) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r settingTrustedDomainDeleteResponseEnvelopeJSON) RawJSON() string { - return r.raw -} - -type SettingTrustedDomainEditParams struct { - // Account Identifier - AccountID param.Field[string] `path:"account_id,required"` - Comments param.Field[string] `json:"comments"` - IsRecent param.Field[bool] `json:"is_recent"` - IsRegex param.Field[bool] `json:"is_regex"` - IsSimilarity param.Field[bool] `json:"is_similarity"` - Pattern param.Field[string] `json:"pattern"` -} - -func (r SettingTrustedDomainEditParams) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -type SettingTrustedDomainEditResponseEnvelope struct { - Errors []shared.ResponseInfo `json:"errors,required"` - Messages []shared.ResponseInfo `json:"messages,required"` - Result SettingTrustedDomainEditResponse `json:"result,required"` - Success bool `json:"success,required"` - JSON settingTrustedDomainEditResponseEnvelopeJSON `json:"-"` -} - -// settingTrustedDomainEditResponseEnvelopeJSON contains the JSON metadata for the -// struct [SettingTrustedDomainEditResponseEnvelope] -type settingTrustedDomainEditResponseEnvelopeJSON struct { - Errors apijson.Field - Messages apijson.Field - Result apijson.Field - Success apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *SettingTrustedDomainEditResponseEnvelope) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r settingTrustedDomainEditResponseEnvelopeJSON) RawJSON() string { - return r.raw -} - -type SettingTrustedDomainGetParams struct { - // Account Identifier - AccountID param.Field[string] `path:"account_id,required"` -} - -type SettingTrustedDomainGetResponseEnvelope struct { - Errors []shared.ResponseInfo `json:"errors,required"` - Messages []shared.ResponseInfo `json:"messages,required"` - Result SettingTrustedDomainGetResponse `json:"result,required"` - Success bool `json:"success,required"` - JSON settingTrustedDomainGetResponseEnvelopeJSON `json:"-"` -} - -// settingTrustedDomainGetResponseEnvelopeJSON contains the JSON metadata for the -// struct [SettingTrustedDomainGetResponseEnvelope] -type settingTrustedDomainGetResponseEnvelopeJSON struct { - Errors apijson.Field - Messages apijson.Field - Result apijson.Field - Success apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *SettingTrustedDomainGetResponseEnvelope) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r settingTrustedDomainGetResponseEnvelopeJSON) RawJSON() string { - return r.raw -} diff --git a/email_security/settingtrusteddomain_test.go b/email_security/settingtrusteddomain_test.go index add588a84cc..6264c00088a 100644 --- a/email_security/settingtrusteddomain_test.go +++ b/email_security/settingtrusteddomain_test.go @@ -77,95 +77,3 @@ func TestSettingTrustedDomainListWithOptionalParams(t *testing.T) { t.Fatalf("err should be nil: %s", err.Error()) } } - -func TestSettingTrustedDomainDelete(t *testing.T) { - 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.EmailSecurity.Settings.TrustedDomains.Delete( - context.TODO(), - int64(2401), - email_security.SettingTrustedDomainDeleteParams{ - 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()) - } -} - -func TestSettingTrustedDomainEditWithOptionalParams(t *testing.T) { - 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.EmailSecurity.Settings.TrustedDomains.Edit( - context.TODO(), - int64(2401), - email_security.SettingTrustedDomainEditParams{ - AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), - Comments: cloudflare.F("comments"), - IsRecent: cloudflare.F(true), - IsRegex: cloudflare.F(true), - IsSimilarity: cloudflare.F(true), - Pattern: cloudflare.F("x"), - }, - ) - 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 TestSettingTrustedDomainGet(t *testing.T) { - 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.EmailSecurity.Settings.TrustedDomains.Get( - context.TODO(), - int64(2401), - email_security.SettingTrustedDomainGetParams{ - 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()) - } -}