## Create a Page Shield policy `client.PageShield.Policies.New(ctx, params) (*PolicyNewResponse, error)` **post** `/zones/{zone_id}/page_shield/policies` Create a Page Shield policy. ### Parameters - `params PolicyNewParams` - `ZoneID param.Field[string]` Path param: Identifier - `Policy param.Field[Policy]` Body param ### Returns - `type PolicyNewResponse struct{…}` - `ID string` Identifier - `Action PolicyNewResponseAction` The action to take if the expression matches - `const PolicyNewResponseActionAllow PolicyNewResponseAction = "allow"` - `const PolicyNewResponseActionLog PolicyNewResponseAction = "log"` - `const PolicyNewResponseActionAddReportingDirectives PolicyNewResponseAction = "add_reporting_directives"` - `Description string` A description for the policy - `Enabled bool` Whether the policy is enabled - `Expression string` The expression which must match for the policy to be applied, using the Cloudflare Firewall rule expression syntax - `Value string` The policy which will be applied ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/page_shield" ) func main() { client := cloudflare.NewClient( option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), option.WithAPIEmail("user@example.com"), ) policy, err := client.PageShield.Policies.New(context.TODO(), page_shield.PolicyNewParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Policy: page_shield.PolicyParam{ Action: cloudflare.F(page_shield.PolicyActionAllow), Description: cloudflare.F("Checkout page CSP policy"), Enabled: cloudflare.F(true), Expression: cloudflare.F(`ends_with(http.request.uri.path, "/checkout")`), Value: cloudflare.F("script-src 'none';"), }, }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", policy.ID) } ``` #### Response ```json { "result": { "id": "023e105f4ecef8ad9ca31a8372d0c353", "action": "allow", "description": "Checkout page CSP policy", "enabled": true, "expression": "ends_with(http.request.uri.path, \"/checkout\")", "value": "script-src 'none';" }, "success": true, "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ] } ```