# 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 } ```