# Content Scanning ## Enable Content Scanning `client.ContentScanning.Enable(ctx, body) (*ContentScanningEnableResponse, error)` **post** `/zones/{zone_id}/content-upload-scan/enable` Enable Content Scanning. ### Parameters - `body ContentScanningEnableParams` - `ZoneID param.Field[string]` Defines an identifier. ### Returns - `type ContentScanningEnableResponse interface{…}` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/content_scanning" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.ContentScanning.Enable(context.TODO(), content_scanning.ContentScanningEnableParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response) } ``` #### 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" } } ], "result": {}, "success": true } ``` ## Disable Content Scanning `client.ContentScanning.Disable(ctx, body) (*ContentScanningDisableResponse, error)` **post** `/zones/{zone_id}/content-upload-scan/disable` Disable Content Scanning. ### Parameters - `body ContentScanningDisableParams` - `ZoneID param.Field[string]` Defines an identifier. ### Returns - `type ContentScanningDisableResponse interface{…}` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/content_scanning" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.ContentScanning.Disable(context.TODO(), content_scanning.ContentScanningDisableParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response) } ``` #### 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" } } ], "result": {}, "success": true } ``` ## Update Content Scanning Status `client.ContentScanning.New(ctx, params) (*ContentScanningNewResponse, error)` **put** `/zones/{zone_id}/content-upload-scan/settings` Update the Content Scanning status. ### Parameters - `params ContentScanningNewParams` - `ZoneID param.Field[string]` Path param: Defines an identifier. - `Value param.Field[ContentScanningNewParamsValue]` Body param: The status value for Content Scanning. - `const ContentScanningNewParamsValueEnabled ContentScanningNewParamsValue = "enabled"` - `const ContentScanningNewParamsValueDisabled ContentScanningNewParamsValue = "disabled"` ### Returns - `type ContentScanningNewResponse struct{…}` Defines the status for Content Scanning. - `Modified string` Defines the last modification date (ISO 8601) of the Content Scanning status. - `Value string` Defines the status of Content Scanning. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/content_scanning" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) contentScanning, err := client.ContentScanning.New(context.TODO(), content_scanning.ContentScanningNewParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Value: cloudflare.F(content_scanning.ContentScanningNewParamsValueEnabled), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", contentScanning.Modified) } ``` #### 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" } } ], "result": { "modified": "2024-12-02T09:57:23.150259Z", "value": "enabled" }, "success": true } ``` ## Update Content Scanning Status `client.ContentScanning.Update(ctx, params) (*ContentScanningUpdateResponse, error)` **put** `/zones/{zone_id}/content-upload-scan/settings` Update the Content Scanning status. ### Parameters - `params ContentScanningUpdateParams` - `ZoneID param.Field[string]` Path param: Defines an identifier. - `Value param.Field[ContentScanningUpdateParamsValue]` Body param: The status value for Content Scanning. - `const ContentScanningUpdateParamsValueEnabled ContentScanningUpdateParamsValue = "enabled"` - `const ContentScanningUpdateParamsValueDisabled ContentScanningUpdateParamsValue = "disabled"` ### Returns - `type ContentScanningUpdateResponse struct{…}` Defines the status for Content Scanning. - `Modified string` Defines the last modification date (ISO 8601) of the Content Scanning status. - `Value string` Defines the status of Content Scanning. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/content_scanning" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) contentScanning, err := client.ContentScanning.Update(context.TODO(), content_scanning.ContentScanningUpdateParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Value: cloudflare.F(content_scanning.ContentScanningUpdateParamsValueEnabled), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", contentScanning.Modified) } ``` #### 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" } } ], "result": { "modified": "2024-12-02T09:57:23.150259Z", "value": "enabled" }, "success": true } ``` ## Get Content Scanning Status `client.ContentScanning.Get(ctx, query) (*ContentScanningGetResponse, error)` **get** `/zones/{zone_id}/content-upload-scan/settings` Retrieve the current status of Content Scanning. ### Parameters - `query ContentScanningGetParams` - `ZoneID param.Field[string]` Defines an identifier. ### Returns - `type ContentScanningGetResponse struct{…}` Defines the status for Content Scanning. - `Modified string` Defines the last modification date (ISO 8601) of the Content Scanning status. - `Value string` Defines the status of Content Scanning. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/content_scanning" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) contentScanning, err := client.ContentScanning.Get(context.TODO(), content_scanning.ContentScanningGetParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", contentScanning.Modified) } ``` #### 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" } } ], "result": { "modified": "2024-12-02T09:57:23.150259Z", "value": "enabled" }, "success": true } ``` # Payloads ## List Existing Custom Scan Expressions `client.ContentScanning.Payloads.List(ctx, query) (*SinglePage[PayloadListResponse], error)` **get** `/zones/{zone_id}/content-upload-scan/payloads` Get a list of existing custom scan expressions for Content Scanning. ### Parameters - `query PayloadListParams` - `ZoneID param.Field[string]` Defines an identifier. ### Returns - `type PayloadListResponse struct{…}` Defines a custom scan expression to match Content Scanning on. - `ID string` defines the unique ID for this custom scan expression. - `Payload string` Defines the ruleset expression to use in matching content objects. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/content_scanning" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.ContentScanning.Payloads.List(context.TODO(), content_scanning.PayloadListParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### 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" } } ], "result": [ { "id": "a350a054caa840c9becd89c3b4f0195b", "payload": "lookup_json_string(http.request.body.raw, \"file\")" } ], "success": true } ``` ## Add Custom Scan Expressions `client.ContentScanning.Payloads.New(ctx, params) (*SinglePage[PayloadNewResponse], error)` **post** `/zones/{zone_id}/content-upload-scan/payloads` Add custom scan expressions for Content Scanning. ### Parameters - `params PayloadNewParams` - `ZoneID param.Field[string]` Path param: Defines an identifier. - `Body param.Field[[]PayloadNewParamsBody]` Body param - `Payload string` Defines the ruleset expression to use in matching content objects. ### Returns - `type PayloadNewResponse struct{…}` Defines a custom scan expression to match Content Scanning on. - `ID string` defines the unique ID for this custom scan expression. - `Payload string` Defines the ruleset expression to use in matching content objects. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/content_scanning" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.ContentScanning.Payloads.New(context.TODO(), content_scanning.PayloadNewParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Body: []content_scanning.PayloadNewParamsBody{content_scanning.PayloadNewParamsBody{ Payload: cloudflare.F(`lookup_json_string(http.request.body.raw, "file")`), }}, }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### 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" } } ], "result": [ { "id": "a350a054caa840c9becd89c3b4f0195b", "payload": "lookup_json_string(http.request.body.raw, \"file\")" } ], "success": true } ``` ## Delete a Custom Scan Expression `client.ContentScanning.Payloads.Delete(ctx, expressionID, body) (*SinglePage[PayloadDeleteResponse], error)` **delete** `/zones/{zone_id}/content-upload-scan/payloads/{expression_id}` Delete a Content Scan Custom Expression. ### Parameters - `expressionID string` defines the unique ID for this custom scan expression. - `body PayloadDeleteParams` - `ZoneID param.Field[string]` Defines an identifier. ### Returns - `type PayloadDeleteResponse struct{…}` Defines a custom scan expression to match Content Scanning on. - `ID string` defines the unique ID for this custom scan expression. - `Payload string` Defines the ruleset expression to use in matching content objects. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/content_scanning" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.ContentScanning.Payloads.Delete( context.TODO(), "a350a054caa840c9becd89c3b4f0195b", content_scanning.PayloadDeleteParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### 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" } } ], "result": [ { "id": "a350a054caa840c9becd89c3b4f0195b", "payload": "lookup_json_string(http.request.body.raw, \"file\")" } ], "success": true } ``` # Settings ## Get Content Scanning Status `client.ContentScanning.Settings.Get(ctx, query) (*SettingGetResponse, error)` **get** `/zones/{zone_id}/content-upload-scan/settings` Retrieve the current status of Content Scanning. ### Parameters - `query SettingGetParams` - `ZoneID param.Field[string]` Defines an identifier. ### Returns - `type SettingGetResponse struct{…}` Defines the status for Content Scanning. - `Modified string` Defines the last modification date (ISO 8601) of the Content Scanning status. - `Value string` Defines the status of Content Scanning. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/content_scanning" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) setting, err := client.ContentScanning.Settings.Get(context.TODO(), content_scanning.SettingGetParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", setting.Modified) } ``` #### 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" } } ], "result": { "modified": "2024-12-02T09:57:23.150259Z", "value": "enabled" }, "success": true } ```