## Update CSAM Scanner setting `client.CsamScanner.Edit(ctx, params) (*CsamScannerEditResponse, error)` **patch** `/zones/{zone_id}/settings/csam_scanner_third_party` Update the CSAM Scanner configuration for a zone. Allows enabling or disabling CSAM scanning, updating the notification email, and configuring scanning sources. When a new email is provided, email verification is triggered automatically. The `enabled` field is a toggle; the server may adjust it based on whether the notification email is verified. Returns 403 if the zone or account is locked by Trust & Safety. ### Parameters - `params CsamScannerEditParams` - `ZoneID param.Field[string]` Path param: Identifier for the zone. - `ID param.Field[CsamScannerEditParamsID]` Body param: The feature identifier. - `const CsamScannerEditParamsIDCsamScanner CsamScannerEditParamsID = "csam_scanner"` - `Value param.Field[CsamScannerEditParamsValue]` Body param: Writable CSAM Scanner feature configuration values. - `Email string` Notification email address for CSAM scan results. When changed, email verification is triggered automatically. - `Enabled bool` Whether CSAM scanning is enabled for this zone. - `ResendEmail bool` Set to true to trigger re-sending the email verification. Write-only; never appears in responses (omitted when false). - `Sources map[string, bool]` Map of scanning sources and their enabled state. ### Returns - `type CsamScannerEditResponse struct{…}` CSAM Scanner configuration for a zone. - `ID CsamScannerEditResponseID` The feature identifier. - `const CsamScannerEditResponseIDCsamScanner CsamScannerEditResponseID = "csam_scanner"` - `Editable bool` Whether the feature state can be changed. When false, the zone or account may be locked by Trust & Safety. - `ModifiedOn Time` When the setting was last modified. Currently always null as the server does not populate this field. - `Value CsamScannerEditResponseValue` The CSAM Scanner feature configuration values. Contains the notification email and scanning enablement settings. - `Email string` Notification email address for CSAM scan results. Masked in responses unless explicitly unmasked via admin endpoint. - `EmailState CsamScannerEditResponseValueEmailState` Current verification state of the notification email. - `const CsamScannerEditResponseValueEmailStateValid CsamScannerEditResponseValueEmailState = "valid"` - `const CsamScannerEditResponseValueEmailStatePending CsamScannerEditResponseValueEmailState = "pending"` - `const CsamScannerEditResponseValueEmailStateUnverified CsamScannerEditResponseValueEmailState = "unverified"` - `Enabled bool` Whether CSAM scanning is enabled for this zone. - `Sources map[string, bool]` Map of scanning sources and their enabled state. - `ZonePlan string` The zone's plan level. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/csam_scanner" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.CsamScanner.Edit(context.TODO(), csam_scanner.CsamScannerEditParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.ID) } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "csam_scanner", "editable": true, "modified_on": "2019-12-27T18:11:19.117Z", "value": { "email": "**********", "email_state": "valid", "enabled": true, "sources": { "source1": true }, "zone_plan": "ent" } } } ```