# Rules ## List rules in Web Analytics ruleset `client.RUM.Rules.List(ctx, rulesetID, query) (*RuleListResponse, error)` **get** `/accounts/{account_id}/rum/v2/{ruleset_id}/rules` Lists all the rules in a Web Analytics ruleset. ### Parameters - `rulesetID string` The Web Analytics ruleset identifier. - `query RuleListParams` - `AccountID param.Field[string]` Identifier. ### Returns - `type RuleListResponse struct{…}` - `Rules []RUMRule` A list of rules. - `ID string` The Web Analytics rule identifier. - `Created Time` - `Host string` The hostname the rule will be applied to. - `Inclusive bool` Whether the rule includes or excludes traffic from being measured. - `IsPaused bool` Whether the rule is paused or not. - `Paths []string` The paths the rule will be applied to. - `Priority float64` - `Ruleset RuleListResponseRuleset` - `ID string` The Web Analytics ruleset identifier. - `Enabled bool` Whether the ruleset is enabled. - `ZoneName string` - `ZoneTag string` The zone identifier. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/rum" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) rules, err := client.RUM.Rules.List( context.TODO(), "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", rum.RuleListParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", rules.Rules) } ``` #### 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" } } ], "success": true, "result": { "rules": [ { "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", "created": "2014-01-01T05:20:00.12345Z", "host": "example.com", "inclusive": true, "is_paused": false, "paths": [ "*" ], "priority": 1000 } ], "ruleset": { "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", "enabled": true, "zone_name": "example.com", "zone_tag": "023e105f4ecef8ad9ca31a8372d0c353" } } } ``` ## Create a Web Analytics rule `client.RUM.Rules.New(ctx, rulesetID, params) (*RUMRule, error)` **post** `/accounts/{account_id}/rum/v2/{ruleset_id}/rule` Creates a new rule in a Web Analytics ruleset. ### Parameters - `rulesetID string` The Web Analytics ruleset identifier. - `params RuleNewParams` - `AccountID param.Field[string]` Path param: Identifier. - `Host param.Field[string]` Body param - `Inclusive param.Field[bool]` Body param: Whether the rule includes or excludes traffic from being measured. - `IsPaused param.Field[bool]` Body param: Whether the rule is paused or not. - `Paths param.Field[[]string]` Body param ### Returns - `type RUMRule struct{…}` - `ID string` The Web Analytics rule identifier. - `Created Time` - `Host string` The hostname the rule will be applied to. - `Inclusive bool` Whether the rule includes or excludes traffic from being measured. - `IsPaused bool` Whether the rule is paused or not. - `Paths []string` The paths the rule will be applied to. - `Priority float64` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/rum" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) rumRule, err := client.RUM.Rules.New( context.TODO(), "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", rum.RuleNewParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", rumRule.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" } } ], "success": true, "result": { "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", "created": "2014-01-01T05:20:00.12345Z", "host": "example.com", "inclusive": true, "is_paused": false, "paths": [ "*" ], "priority": 1000 } } ``` ## Update a Web Analytics rule `client.RUM.Rules.Update(ctx, rulesetID, ruleID, params) (*RUMRule, error)` **put** `/accounts/{account_id}/rum/v2/{ruleset_id}/rule/{rule_id}` Updates a rule in a Web Analytics ruleset. ### Parameters - `rulesetID string` The Web Analytics ruleset identifier. - `ruleID string` The Web Analytics rule identifier. - `params RuleUpdateParams` - `AccountID param.Field[string]` Path param: Identifier. - `Host param.Field[string]` Body param - `Inclusive param.Field[bool]` Body param: Whether the rule includes or excludes traffic from being measured. - `IsPaused param.Field[bool]` Body param: Whether the rule is paused or not. - `Paths param.Field[[]string]` Body param ### Returns - `type RUMRule struct{…}` - `ID string` The Web Analytics rule identifier. - `Created Time` - `Host string` The hostname the rule will be applied to. - `Inclusive bool` Whether the rule includes or excludes traffic from being measured. - `IsPaused bool` Whether the rule is paused or not. - `Paths []string` The paths the rule will be applied to. - `Priority float64` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/rum" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) rumRule, err := client.RUM.Rules.Update( context.TODO(), "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", rum.RuleUpdateParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", rumRule.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" } } ], "success": true, "result": { "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", "created": "2014-01-01T05:20:00.12345Z", "host": "example.com", "inclusive": true, "is_paused": false, "paths": [ "*" ], "priority": 1000 } } ``` ## Delete a Web Analytics rule `client.RUM.Rules.Delete(ctx, rulesetID, ruleID, body) (*RuleDeleteResponse, error)` **delete** `/accounts/{account_id}/rum/v2/{ruleset_id}/rule/{rule_id}` Deletes an existing rule from a Web Analytics ruleset. ### Parameters - `rulesetID string` The Web Analytics ruleset identifier. - `ruleID string` The Web Analytics rule identifier. - `body RuleDeleteParams` - `AccountID param.Field[string]` Identifier. ### Returns - `type RuleDeleteResponse struct{…}` - `ID string` The Web Analytics rule identifier. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/rum" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) rule, err := client.RUM.Rules.Delete( context.TODO(), "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", rum.RuleDeleteParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", rule.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" } } ], "success": true, "result": { "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415" } } ``` ## Update Web Analytics rules `client.RUM.Rules.BulkNew(ctx, rulesetID, params) (*RuleBulkNewResponse, error)` **post** `/accounts/{account_id}/rum/v2/{ruleset_id}/rules` Modifies one or more rules in a Web Analytics ruleset with a single request. ### Parameters - `rulesetID string` The Web Analytics ruleset identifier. - `params RuleBulkNewParams` - `AccountID param.Field[string]` Path param: Identifier. - `DeleteRules param.Field[[]string]` Body param: A list of rule identifiers to delete. - `Rules param.Field[[]RuleBulkNewParamsRule]` Body param: A list of rules to create or update. - `ID string` The Web Analytics rule identifier. - `Host string` - `Inclusive bool` - `IsPaused bool` - `Paths []string` ### Returns - `type RuleBulkNewResponse struct{…}` - `Rules []RUMRule` A list of rules. - `ID string` The Web Analytics rule identifier. - `Created Time` - `Host string` The hostname the rule will be applied to. - `Inclusive bool` Whether the rule includes or excludes traffic from being measured. - `IsPaused bool` Whether the rule is paused or not. - `Paths []string` The paths the rule will be applied to. - `Priority float64` - `Ruleset RuleBulkNewResponseRuleset` - `ID string` The Web Analytics ruleset identifier. - `Enabled bool` Whether the ruleset is enabled. - `ZoneName string` - `ZoneTag string` The zone identifier. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/rum" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.RUM.Rules.BulkNew( context.TODO(), "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", rum.RuleBulkNewParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Rules) } ``` #### 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" } } ], "success": true, "result": { "rules": [ { "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", "created": "2014-01-01T05:20:00.12345Z", "host": "example.com", "inclusive": true, "is_paused": false, "paths": [ "*" ], "priority": 1000 } ], "ruleset": { "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", "enabled": true, "zone_name": "example.com", "zone_tag": "023e105f4ecef8ad9ca31a8372d0c353" } } } ``` ## Domain Types ### RUM Rule - `type RUMRule struct{…}` - `ID string` The Web Analytics rule identifier. - `Created Time` - `Host string` The hostname the rule will be applied to. - `Inclusive bool` Whether the rule includes or excludes traffic from being measured. - `IsPaused bool` Whether the rule is paused or not. - `Paths []string` The paths the rule will be applied to. - `Priority float64`