## Request review on mitigations `client.AbuseReports.Mitigations.Review(ctx, reportID, params) (*SinglePage[MitigationReviewResponse], error)` **post** `/accounts/{account_id}/abuse-reports/{report_id}/mitigations/appeal` Request a review for mitigations on an account. ### Parameters - `reportID string` - `params MitigationReviewParams` - `AccountID param.Field[string]` Path param: Cloudflare Account ID - `Appeals param.Field[[]MitigationReviewParamsAppeal]` Body param: List of mitigations to appeal. - `ID string` ID of the mitigation to appeal. - `Reason MitigationReviewParamsAppealsReason` Reason why the customer is appealing. - `const MitigationReviewParamsAppealsReasonRemoved MitigationReviewParamsAppealsReason = "removed"` - `const MitigationReviewParamsAppealsReasonMisclassified MitigationReviewParamsAppealsReason = "misclassified"` ### Returns - `type MitigationReviewResponse struct{…}` - `ID string` ID of remediation. - `EffectiveDate string` Date when the mitigation will become active. Time in RFC 3339 format (https://www.rfc-editor.org/rfc/rfc3339.html) - `EntityID string` - `EntityType MitigationReviewResponseEntityType` - `const MitigationReviewResponseEntityTypeURLPattern MitigationReviewResponseEntityType = "url_pattern"` - `const MitigationReviewResponseEntityTypeAccount MitigationReviewResponseEntityType = "account"` - `const MitigationReviewResponseEntityTypeZone MitigationReviewResponseEntityType = "zone"` - `Status MitigationReviewResponseStatus` The status of a mitigation - `const MitigationReviewResponseStatusPending MitigationReviewResponseStatus = "pending"` - `const MitigationReviewResponseStatusActive MitigationReviewResponseStatus = "active"` - `const MitigationReviewResponseStatusInReview MitigationReviewResponseStatus = "in_review"` - `const MitigationReviewResponseStatusCancelled MitigationReviewResponseStatus = "cancelled"` - `const MitigationReviewResponseStatusRemoved MitigationReviewResponseStatus = "removed"` - `Type MitigationReviewResponseType` The type of mitigation - `const MitigationReviewResponseTypeLegalBlock MitigationReviewResponseType = "legal_block"` - `const MitigationReviewResponseTypeMisleadingInterstitial MitigationReviewResponseType = "misleading_interstitial"` - `const MitigationReviewResponseTypePhishingInterstitial MitigationReviewResponseType = "phishing_interstitial"` - `const MitigationReviewResponseTypeNetworkBlock MitigationReviewResponseType = "network_block"` - `const MitigationReviewResponseTypeRateLimitCache MitigationReviewResponseType = "rate_limit_cache"` - `const MitigationReviewResponseTypeAccountSuspend MitigationReviewResponseType = "account_suspend"` - `const MitigationReviewResponseTypeRedirectVideoStream MitigationReviewResponseType = "redirect_video_stream"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/abuse_reports" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.AbuseReports.Mitigations.Review( context.TODO(), "report_id", abuse_reports.MitigationReviewParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Appeals: cloudflare.F([]abuse_reports.MitigationReviewParamsAppeal{abuse_reports.MitigationReviewParamsAppeal{ ID: cloudflare.F("id"), Reason: cloudflare.F(abuse_reports.MitigationReviewParamsAppealsReasonMisclassified), }}), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "result_info": { "count": 0, "page": 0, "per_page": 0, "total_count": 0, "total_pages": 0 }, "success": true, "errors": [ { "message": "message" } ], "messages": [ { "message": "message" } ], "result": [ { "id": "id", "effective_date": "2009-11-10T23:00:00Z", "entity_id": "entity_id", "entity_type": "url_pattern", "status": "pending", "type": "legal_block" } ] } ```