# Detections ## List Leaked Credential Checks Custom Detections `client.LeakedCredentialChecks.Detections.List(ctx, query) (*SinglePage[DetectionListResponse], error)` **get** `/zones/{zone_id}/leaked-credential-checks/detections` List user-defined detection patterns for Leaked Credential Checks. ### Parameters - `query DetectionListParams` - `ZoneID param.Field[string]` Defines an identifier. ### Returns - `type DetectionListResponse struct{…}` Defines a custom set of username/password expressions to match Leaked Credential Checks on. - `ID string` Defines the unique ID for this custom detection. - `Password string` Defines ehe ruleset expression to use in matching the password in a request. - `Username string` Defines the ruleset expression to use in matching the username in a request. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/leaked_credential_checks" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.LeakedCredentialChecks.Detections.List(context.TODO(), leaked_credential_checks.DetectionListParams{ 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": "18a14bafaa8eb1df04ce683ec18c765e", "password": "lookup_json_string(http.request.body.raw, \"secret\")", "username": "lookup_json_string(http.request.body.raw, \"user\")" } ], "success": true } ``` ## Create Leaked Credential Checks Custom Detection `client.LeakedCredentialChecks.Detections.New(ctx, params) (*DetectionNewResponse, error)` **post** `/zones/{zone_id}/leaked-credential-checks/detections` Create user-defined detection pattern for Leaked Credential Checks. ### Parameters - `params DetectionNewParams` - `ZoneID param.Field[string]` Path param: Defines an identifier. - `Password param.Field[string]` Body param: Defines ehe ruleset expression to use in matching the password in a request. - `Username param.Field[string]` Body param: Defines the ruleset expression to use in matching the username in a request. ### Returns - `type DetectionNewResponse struct{…}` Defines a custom set of username/password expressions to match Leaked Credential Checks on. - `ID string` Defines the unique ID for this custom detection. - `Password string` Defines ehe ruleset expression to use in matching the password in a request. - `Username string` Defines the ruleset expression to use in matching the username in a request. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/leaked_credential_checks" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) detection, err := client.LeakedCredentialChecks.Detections.New(context.TODO(), leaked_credential_checks.DetectionNewParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", detection.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" } } ], "result": { "id": "18a14bafaa8eb1df04ce683ec18c765e", "password": "lookup_json_string(http.request.body.raw, \"secret\")", "username": "lookup_json_string(http.request.body.raw, \"user\")" }, "success": true } ``` ## Get Leaked Credential Checks Custom Detection `client.LeakedCredentialChecks.Detections.Get(ctx, detectionID, query) (*DetectionGetResponse, error)` **get** `/zones/{zone_id}/leaked-credential-checks/detections/{detection_id}` Get user-defined detection pattern for Leaked Credential Checks. ### Parameters - `detectionID string` Defines the unique ID for this custom detection. - `query DetectionGetParams` - `ZoneID param.Field[string]` Defines an identifier. ### Returns - `type DetectionGetResponse struct{…}` Defines a custom set of username/password expressions to match Leaked Credential Checks on. - `ID string` Defines the unique ID for this custom detection. - `Password string` Defines ehe ruleset expression to use in matching the password in a request. - `Username string` Defines the ruleset expression to use in matching the username in a request. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/leaked_credential_checks" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) detection, err := client.LeakedCredentialChecks.Detections.Get( context.TODO(), "18a14bafaa8eb1df04ce683ec18c765e", leaked_credential_checks.DetectionGetParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", detection.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" } } ], "result": { "id": "18a14bafaa8eb1df04ce683ec18c765e", "password": "lookup_json_string(http.request.body.raw, \"secret\")", "username": "lookup_json_string(http.request.body.raw, \"user\")" }, "success": true } ``` ## Update Leaked Credential Checks Custom Detection `client.LeakedCredentialChecks.Detections.Update(ctx, detectionID, params) (*DetectionUpdateResponse, error)` **put** `/zones/{zone_id}/leaked-credential-checks/detections/{detection_id}` Update user-defined detection pattern for Leaked Credential Checks. ### Parameters - `detectionID string` Defines the unique ID for this custom detection. - `params DetectionUpdateParams` - `ZoneID param.Field[string]` Path param: Defines an identifier. - `Password param.Field[string]` Body param: Defines ehe ruleset expression to use in matching the password in a request. - `Username param.Field[string]` Body param: Defines the ruleset expression to use in matching the username in a request. ### Returns - `type DetectionUpdateResponse struct{…}` Defines a custom set of username/password expressions to match Leaked Credential Checks on. - `ID string` Defines the unique ID for this custom detection. - `Password string` Defines ehe ruleset expression to use in matching the password in a request. - `Username string` Defines the ruleset expression to use in matching the username in a request. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/leaked_credential_checks" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) detection, err := client.LeakedCredentialChecks.Detections.Update( context.TODO(), "18a14bafaa8eb1df04ce683ec18c765e", leaked_credential_checks.DetectionUpdateParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", detection.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" } } ], "result": { "id": "18a14bafaa8eb1df04ce683ec18c765e", "password": "lookup_json_string(http.request.body.raw, \"secret\")", "username": "lookup_json_string(http.request.body.raw, \"user\")" }, "success": true } ``` ## Delete Leaked Credential Checks Custom Detection `client.LeakedCredentialChecks.Detections.Delete(ctx, detectionID, body) (*DetectionDeleteResponse, error)` **delete** `/zones/{zone_id}/leaked-credential-checks/detections/{detection_id}` Remove user-defined detection pattern for Leaked Credential Checks. ### Parameters - `detectionID string` Defines the unique ID for this custom detection. - `body DetectionDeleteParams` - `ZoneID param.Field[string]` Defines an identifier. ### Returns - `type DetectionDeleteResponse interface{…}` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/leaked_credential_checks" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) detection, err := client.LeakedCredentialChecks.Detections.Delete( context.TODO(), "18a14bafaa8eb1df04ce683ec18c765e", leaked_credential_checks.DetectionDeleteParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", detection) } ``` #### 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 } ```