// Code generated by azure-service-operator-codegen. DO NOT EDIT.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
package arm

type WebApplicationFirewallPolicy_STATUS struct {
	// Etag: Gets a unique read-only string that changes whenever the resource is updated.
	Etag *string `json:"etag,omitempty"`

	// Id: Resource ID.
	Id *string `json:"id,omitempty"`

	// Location: Resource location.
	Location *string `json:"location,omitempty"`

	// Name: Resource name.
	Name *string `json:"name,omitempty"`

	// Properties: Properties of the web application firewall policy.
	Properties *WebApplicationFirewallPolicyProperties_STATUS `json:"properties,omitempty"`

	// Sku: The pricing tier of web application firewall policy. Defaults to Classic_AzureFrontDoor if not specified.
	Sku *Sku_STATUS `json:"sku,omitempty"`

	// Tags: Resource tags.
	Tags map[string]string `json:"tags,omitempty"`

	// Type: Resource type.
	Type *string `json:"type,omitempty"`
}

// The pricing tier of the web application firewall policy.
type Sku_STATUS struct {
	// Name: Name of the pricing tier.
	Name *Sku_Name_STATUS `json:"name,omitempty"`
}

// Defines web application firewall policy properties.
type WebApplicationFirewallPolicyProperties_STATUS struct {
	// CustomRules: Describes custom rules inside the policy.
	CustomRules *CustomRuleList_STATUS `json:"customRules,omitempty"`

	// FrontendEndpointLinks: Describes Frontend Endpoints associated with this Web Application Firewall policy.
	FrontendEndpointLinks []FrontendEndpointLink_STATUS `json:"frontendEndpointLinks,omitempty"`

	// ManagedRules: Describes managed rules inside the policy.
	ManagedRules *ManagedRuleSetList_STATUS `json:"managedRules,omitempty"`

	// PolicySettings: Describes settings for the policy.
	PolicySettings *PolicySettings_STATUS `json:"policySettings,omitempty"`

	// ProvisioningState: Provisioning state of the policy.
	ProvisioningState *string                                                      `json:"provisioningState,omitempty"`
	ResourceState     *WebApplicationFirewallPolicyProperties_ResourceState_STATUS `json:"resourceState,omitempty"`

	// RoutingRuleLinks: Describes Routing Rules associated with this Web Application Firewall policy.
	RoutingRuleLinks []RoutingRuleLink_STATUS `json:"routingRuleLinks,omitempty"`

	// SecurityPolicyLinks: Describes Security Policy associated with this Web Application Firewall policy.
	SecurityPolicyLinks []SecurityPolicyLink_STATUS `json:"securityPolicyLinks,omitempty"`
}

// Defines contents of custom rules
type CustomRuleList_STATUS struct {
	// Rules: List of rules
	Rules []CustomRule_STATUS `json:"rules,omitempty"`
}

// Defines the Resource ID for a Frontend Endpoint.
type FrontendEndpointLink_STATUS struct {
	// Id: Resource ID.
	Id *string `json:"id,omitempty"`
}

// Defines the list of managed rule sets for the policy.
type ManagedRuleSetList_STATUS struct {
	// ManagedRuleSets: List of rule sets.
	ManagedRuleSets []ManagedRuleSet_STATUS `json:"managedRuleSets,omitempty"`
}

// Defines top-level WebApplicationFirewallPolicy configuration settings.
type PolicySettings_STATUS struct {
	// CustomBlockResponseBody: If the action type is block, customer can override the response body. The body must be
	// specified in base64 encoding.
	CustomBlockResponseBody *string `json:"customBlockResponseBody,omitempty"`

	// CustomBlockResponseStatusCode: If the action type is block, customer can override the response status code.
	CustomBlockResponseStatusCode *int `json:"customBlockResponseStatusCode,omitempty"`

	// EnabledState: Describes if the policy is in enabled or disabled state. Defaults to Enabled if not specified.
	EnabledState *PolicySettings_EnabledState_STATUS `json:"enabledState,omitempty"`

	// Mode: Describes if it is in detection mode or prevention mode at policy level.
	Mode *PolicySettings_Mode_STATUS `json:"mode,omitempty"`

	// RedirectUrl: If action type is redirect, this field represents redirect URL for the client.
	RedirectUrl *string `json:"redirectUrl,omitempty"`

	// RequestBodyCheck: Describes if policy managed rules will inspect the request body content.
	RequestBodyCheck *PolicySettings_RequestBodyCheck_STATUS `json:"requestBodyCheck,omitempty"`
}

// Defines the Resource ID for a Routing Rule.
type RoutingRuleLink_STATUS struct {
	// Id: Resource ID.
	Id *string `json:"id,omitempty"`
}

// Defines the Resource ID for a Security Policy.
type SecurityPolicyLink_STATUS struct {
	// Id: Resource ID.
	Id *string `json:"id,omitempty"`
}

type Sku_Name_STATUS string

const (
	Sku_Name_STATUS_Classic_AzureFrontDoor  = Sku_Name_STATUS("Classic_AzureFrontDoor")
	Sku_Name_STATUS_Premium_AzureFrontDoor  = Sku_Name_STATUS("Premium_AzureFrontDoor")
	Sku_Name_STATUS_Standard_AzureFrontDoor = Sku_Name_STATUS("Standard_AzureFrontDoor")
)

// Mapping from string to Sku_Name_STATUS
var sku_Name_STATUS_Values = map[string]Sku_Name_STATUS{
	"classic_azurefrontdoor":  Sku_Name_STATUS_Classic_AzureFrontDoor,
	"premium_azurefrontdoor":  Sku_Name_STATUS_Premium_AzureFrontDoor,
	"standard_azurefrontdoor": Sku_Name_STATUS_Standard_AzureFrontDoor,
}

type WebApplicationFirewallPolicyProperties_ResourceState_STATUS string

const (
	WebApplicationFirewallPolicyProperties_ResourceState_STATUS_Creating  = WebApplicationFirewallPolicyProperties_ResourceState_STATUS("Creating")
	WebApplicationFirewallPolicyProperties_ResourceState_STATUS_Deleting  = WebApplicationFirewallPolicyProperties_ResourceState_STATUS("Deleting")
	WebApplicationFirewallPolicyProperties_ResourceState_STATUS_Disabled  = WebApplicationFirewallPolicyProperties_ResourceState_STATUS("Disabled")
	WebApplicationFirewallPolicyProperties_ResourceState_STATUS_Disabling = WebApplicationFirewallPolicyProperties_ResourceState_STATUS("Disabling")
	WebApplicationFirewallPolicyProperties_ResourceState_STATUS_Enabled   = WebApplicationFirewallPolicyProperties_ResourceState_STATUS("Enabled")
	WebApplicationFirewallPolicyProperties_ResourceState_STATUS_Enabling  = WebApplicationFirewallPolicyProperties_ResourceState_STATUS("Enabling")
)

// Mapping from string to WebApplicationFirewallPolicyProperties_ResourceState_STATUS
var webApplicationFirewallPolicyProperties_ResourceState_STATUS_Values = map[string]WebApplicationFirewallPolicyProperties_ResourceState_STATUS{
	"creating":  WebApplicationFirewallPolicyProperties_ResourceState_STATUS_Creating,
	"deleting":  WebApplicationFirewallPolicyProperties_ResourceState_STATUS_Deleting,
	"disabled":  WebApplicationFirewallPolicyProperties_ResourceState_STATUS_Disabled,
	"disabling": WebApplicationFirewallPolicyProperties_ResourceState_STATUS_Disabling,
	"enabled":   WebApplicationFirewallPolicyProperties_ResourceState_STATUS_Enabled,
	"enabling":  WebApplicationFirewallPolicyProperties_ResourceState_STATUS_Enabling,
}

// Defines contents of a web application rule
type CustomRule_STATUS struct {
	// Action: Describes what action to be applied when rule matches.
	Action *ActionType_STATUS `json:"action,omitempty"`

	// EnabledState: Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified.
	EnabledState *CustomRule_EnabledState_STATUS `json:"enabledState,omitempty"`

	// MatchConditions: List of match conditions.
	MatchConditions []MatchCondition_STATUS `json:"matchConditions,omitempty"`

	// Name: Describes the name of the rule.
	Name *string `json:"name,omitempty"`

	// Priority: Describes priority of the rule. Rules with a lower value will be evaluated before rules with a higher value.
	Priority *int `json:"priority,omitempty"`

	// RateLimitDurationInMinutes: Time window for resetting the rate limit count. Default is 1 minute.
	RateLimitDurationInMinutes *int `json:"rateLimitDurationInMinutes,omitempty"`

	// RateLimitThreshold: Number of allowed requests per client within the time window.
	RateLimitThreshold *int `json:"rateLimitThreshold,omitempty"`

	// RuleType: Describes type of rule.
	RuleType *CustomRule_RuleType_STATUS `json:"ruleType,omitempty"`
}

// Defines a managed rule set.
type ManagedRuleSet_STATUS struct {
	// Exclusions: Describes the exclusions that are applied to all rules in the set.
	Exclusions []ManagedRuleExclusion_STATUS `json:"exclusions,omitempty"`

	// RuleGroupOverrides: Defines the rule group overrides to apply to the rule set.
	RuleGroupOverrides []ManagedRuleGroupOverride_STATUS `json:"ruleGroupOverrides,omitempty"`

	// RuleSetAction: Defines the rule set action.
	RuleSetAction *ManagedRuleSetActionType_STATUS `json:"ruleSetAction,omitempty"`

	// RuleSetType: Defines the rule set type to use.
	RuleSetType *string `json:"ruleSetType,omitempty"`

	// RuleSetVersion: Defines the version of the rule set to use.
	RuleSetVersion *string `json:"ruleSetVersion,omitempty"`
}

type PolicySettings_EnabledState_STATUS string

const (
	PolicySettings_EnabledState_STATUS_Disabled = PolicySettings_EnabledState_STATUS("Disabled")
	PolicySettings_EnabledState_STATUS_Enabled  = PolicySettings_EnabledState_STATUS("Enabled")
)

// Mapping from string to PolicySettings_EnabledState_STATUS
var policySettings_EnabledState_STATUS_Values = map[string]PolicySettings_EnabledState_STATUS{
	"disabled": PolicySettings_EnabledState_STATUS_Disabled,
	"enabled":  PolicySettings_EnabledState_STATUS_Enabled,
}

type PolicySettings_Mode_STATUS string

const (
	PolicySettings_Mode_STATUS_Detection  = PolicySettings_Mode_STATUS("Detection")
	PolicySettings_Mode_STATUS_Prevention = PolicySettings_Mode_STATUS("Prevention")
)

// Mapping from string to PolicySettings_Mode_STATUS
var policySettings_Mode_STATUS_Values = map[string]PolicySettings_Mode_STATUS{
	"detection":  PolicySettings_Mode_STATUS_Detection,
	"prevention": PolicySettings_Mode_STATUS_Prevention,
}

type PolicySettings_RequestBodyCheck_STATUS string

const (
	PolicySettings_RequestBodyCheck_STATUS_Disabled = PolicySettings_RequestBodyCheck_STATUS("Disabled")
	PolicySettings_RequestBodyCheck_STATUS_Enabled  = PolicySettings_RequestBodyCheck_STATUS("Enabled")
)

// Mapping from string to PolicySettings_RequestBodyCheck_STATUS
var policySettings_RequestBodyCheck_STATUS_Values = map[string]PolicySettings_RequestBodyCheck_STATUS{
	"disabled": PolicySettings_RequestBodyCheck_STATUS_Disabled,
	"enabled":  PolicySettings_RequestBodyCheck_STATUS_Enabled,
}

// Defines the action to take on rule match.
type ActionType_STATUS string

const (
	ActionType_STATUS_Allow          = ActionType_STATUS("Allow")
	ActionType_STATUS_AnomalyScoring = ActionType_STATUS("AnomalyScoring")
	ActionType_STATUS_Block          = ActionType_STATUS("Block")
	ActionType_STATUS_Log            = ActionType_STATUS("Log")
	ActionType_STATUS_Redirect       = ActionType_STATUS("Redirect")
)

// Mapping from string to ActionType_STATUS
var actionType_STATUS_Values = map[string]ActionType_STATUS{
	"allow":          ActionType_STATUS_Allow,
	"anomalyscoring": ActionType_STATUS_AnomalyScoring,
	"block":          ActionType_STATUS_Block,
	"log":            ActionType_STATUS_Log,
	"redirect":       ActionType_STATUS_Redirect,
}

type CustomRule_EnabledState_STATUS string

const (
	CustomRule_EnabledState_STATUS_Disabled = CustomRule_EnabledState_STATUS("Disabled")
	CustomRule_EnabledState_STATUS_Enabled  = CustomRule_EnabledState_STATUS("Enabled")
)

// Mapping from string to CustomRule_EnabledState_STATUS
var customRule_EnabledState_STATUS_Values = map[string]CustomRule_EnabledState_STATUS{
	"disabled": CustomRule_EnabledState_STATUS_Disabled,
	"enabled":  CustomRule_EnabledState_STATUS_Enabled,
}

type CustomRule_RuleType_STATUS string

const (
	CustomRule_RuleType_STATUS_MatchRule     = CustomRule_RuleType_STATUS("MatchRule")
	CustomRule_RuleType_STATUS_RateLimitRule = CustomRule_RuleType_STATUS("RateLimitRule")
)

// Mapping from string to CustomRule_RuleType_STATUS
var customRule_RuleType_STATUS_Values = map[string]CustomRule_RuleType_STATUS{
	"matchrule":     CustomRule_RuleType_STATUS_MatchRule,
	"ratelimitrule": CustomRule_RuleType_STATUS_RateLimitRule,
}

// Exclude variables from managed rule evaluation.
type ManagedRuleExclusion_STATUS struct {
	// MatchVariable: The variable type to be excluded.
	MatchVariable *ManagedRuleExclusion_MatchVariable_STATUS `json:"matchVariable,omitempty"`

	// Selector: Selector value for which elements in the collection this exclusion applies to.
	Selector *string `json:"selector,omitempty"`

	// SelectorMatchOperator: Comparison operator to apply to the selector when specifying which elements in the collection
	// this exclusion applies to.
	SelectorMatchOperator *ManagedRuleExclusion_SelectorMatchOperator_STATUS `json:"selectorMatchOperator,omitempty"`
}

// Defines a managed rule group override setting.
type ManagedRuleGroupOverride_STATUS struct {
	// Exclusions: Describes the exclusions that are applied to all rules in the group.
	Exclusions []ManagedRuleExclusion_STATUS `json:"exclusions,omitempty"`

	// RuleGroupName: Describes the managed rule group to override.
	RuleGroupName *string `json:"ruleGroupName,omitempty"`

	// Rules: List of rules that will be disabled. If none specified, all rules in the group will be disabled.
	Rules []ManagedRuleOverride_STATUS `json:"rules,omitempty"`
}

// Defines the action to take when a managed rule set score threshold is met.
type ManagedRuleSetActionType_STATUS string

const (
	ManagedRuleSetActionType_STATUS_Block    = ManagedRuleSetActionType_STATUS("Block")
	ManagedRuleSetActionType_STATUS_Log      = ManagedRuleSetActionType_STATUS("Log")
	ManagedRuleSetActionType_STATUS_Redirect = ManagedRuleSetActionType_STATUS("Redirect")
)

// Mapping from string to ManagedRuleSetActionType_STATUS
var managedRuleSetActionType_STATUS_Values = map[string]ManagedRuleSetActionType_STATUS{
	"block":    ManagedRuleSetActionType_STATUS_Block,
	"log":      ManagedRuleSetActionType_STATUS_Log,
	"redirect": ManagedRuleSetActionType_STATUS_Redirect,
}

// Define a match condition.
type MatchCondition_STATUS struct {
	// MatchValue: List of possible match values.
	MatchValue []string `json:"matchValue,omitempty"`

	// MatchVariable: Request variable to compare with.
	MatchVariable *MatchCondition_MatchVariable_STATUS `json:"matchVariable,omitempty"`

	// NegateCondition: Describes if the result of this condition should be negated.
	NegateCondition *bool `json:"negateCondition,omitempty"`

	// Operator: Comparison type to use for matching with the variable value.
	Operator *MatchCondition_Operator_STATUS `json:"operator,omitempty"`

	// Selector: Match against a specific key from the QueryString, PostArgs, RequestHeader or Cookies variables. Default is
	// null.
	Selector *string `json:"selector,omitempty"`

	// Transforms: List of transforms.
	Transforms []TransformType_STATUS `json:"transforms,omitempty"`
}

type ManagedRuleExclusion_MatchVariable_STATUS string

const (
	ManagedRuleExclusion_MatchVariable_STATUS_QueryStringArgNames     = ManagedRuleExclusion_MatchVariable_STATUS("QueryStringArgNames")
	ManagedRuleExclusion_MatchVariable_STATUS_RequestBodyJsonArgNames = ManagedRuleExclusion_MatchVariable_STATUS("RequestBodyJsonArgNames")
	ManagedRuleExclusion_MatchVariable_STATUS_RequestBodyPostArgNames = ManagedRuleExclusion_MatchVariable_STATUS("RequestBodyPostArgNames")
	ManagedRuleExclusion_MatchVariable_STATUS_RequestCookieNames      = ManagedRuleExclusion_MatchVariable_STATUS("RequestCookieNames")
	ManagedRuleExclusion_MatchVariable_STATUS_RequestHeaderNames      = ManagedRuleExclusion_MatchVariable_STATUS("RequestHeaderNames")
)

// Mapping from string to ManagedRuleExclusion_MatchVariable_STATUS
var managedRuleExclusion_MatchVariable_STATUS_Values = map[string]ManagedRuleExclusion_MatchVariable_STATUS{
	"querystringargnames":     ManagedRuleExclusion_MatchVariable_STATUS_QueryStringArgNames,
	"requestbodyjsonargnames": ManagedRuleExclusion_MatchVariable_STATUS_RequestBodyJsonArgNames,
	"requestbodypostargnames": ManagedRuleExclusion_MatchVariable_STATUS_RequestBodyPostArgNames,
	"requestcookienames":      ManagedRuleExclusion_MatchVariable_STATUS_RequestCookieNames,
	"requestheadernames":      ManagedRuleExclusion_MatchVariable_STATUS_RequestHeaderNames,
}

type ManagedRuleExclusion_SelectorMatchOperator_STATUS string

const (
	ManagedRuleExclusion_SelectorMatchOperator_STATUS_Contains   = ManagedRuleExclusion_SelectorMatchOperator_STATUS("Contains")
	ManagedRuleExclusion_SelectorMatchOperator_STATUS_EndsWith   = ManagedRuleExclusion_SelectorMatchOperator_STATUS("EndsWith")
	ManagedRuleExclusion_SelectorMatchOperator_STATUS_Equals     = ManagedRuleExclusion_SelectorMatchOperator_STATUS("Equals")
	ManagedRuleExclusion_SelectorMatchOperator_STATUS_EqualsAny  = ManagedRuleExclusion_SelectorMatchOperator_STATUS("EqualsAny")
	ManagedRuleExclusion_SelectorMatchOperator_STATUS_StartsWith = ManagedRuleExclusion_SelectorMatchOperator_STATUS("StartsWith")
)

// Mapping from string to ManagedRuleExclusion_SelectorMatchOperator_STATUS
var managedRuleExclusion_SelectorMatchOperator_STATUS_Values = map[string]ManagedRuleExclusion_SelectorMatchOperator_STATUS{
	"contains":   ManagedRuleExclusion_SelectorMatchOperator_STATUS_Contains,
	"endswith":   ManagedRuleExclusion_SelectorMatchOperator_STATUS_EndsWith,
	"equals":     ManagedRuleExclusion_SelectorMatchOperator_STATUS_Equals,
	"equalsany":  ManagedRuleExclusion_SelectorMatchOperator_STATUS_EqualsAny,
	"startswith": ManagedRuleExclusion_SelectorMatchOperator_STATUS_StartsWith,
}

// Defines a managed rule group override setting.
type ManagedRuleOverride_STATUS struct {
	// Action: Describes the override action to be applied when rule matches.
	Action *ActionType_STATUS `json:"action,omitempty"`

	// EnabledState: Describes if the managed rule is in enabled or disabled state. Defaults to Disabled if not specified.
	EnabledState *ManagedRuleEnabledState_STATUS `json:"enabledState,omitempty"`

	// Exclusions: Describes the exclusions that are applied to this specific rule.
	Exclusions []ManagedRuleExclusion_STATUS `json:"exclusions,omitempty"`

	// RuleId: Identifier for the managed rule.
	RuleId *string `json:"ruleId,omitempty"`
}

type MatchCondition_MatchVariable_STATUS string

const (
	MatchCondition_MatchVariable_STATUS_Cookies       = MatchCondition_MatchVariable_STATUS("Cookies")
	MatchCondition_MatchVariable_STATUS_PostArgs      = MatchCondition_MatchVariable_STATUS("PostArgs")
	MatchCondition_MatchVariable_STATUS_QueryString   = MatchCondition_MatchVariable_STATUS("QueryString")
	MatchCondition_MatchVariable_STATUS_RemoteAddr    = MatchCondition_MatchVariable_STATUS("RemoteAddr")
	MatchCondition_MatchVariable_STATUS_RequestBody   = MatchCondition_MatchVariable_STATUS("RequestBody")
	MatchCondition_MatchVariable_STATUS_RequestHeader = MatchCondition_MatchVariable_STATUS("RequestHeader")
	MatchCondition_MatchVariable_STATUS_RequestMethod = MatchCondition_MatchVariable_STATUS("RequestMethod")
	MatchCondition_MatchVariable_STATUS_RequestUri    = MatchCondition_MatchVariable_STATUS("RequestUri")
	MatchCondition_MatchVariable_STATUS_SocketAddr    = MatchCondition_MatchVariable_STATUS("SocketAddr")
)

// Mapping from string to MatchCondition_MatchVariable_STATUS
var matchCondition_MatchVariable_STATUS_Values = map[string]MatchCondition_MatchVariable_STATUS{
	"cookies":       MatchCondition_MatchVariable_STATUS_Cookies,
	"postargs":      MatchCondition_MatchVariable_STATUS_PostArgs,
	"querystring":   MatchCondition_MatchVariable_STATUS_QueryString,
	"remoteaddr":    MatchCondition_MatchVariable_STATUS_RemoteAddr,
	"requestbody":   MatchCondition_MatchVariable_STATUS_RequestBody,
	"requestheader": MatchCondition_MatchVariable_STATUS_RequestHeader,
	"requestmethod": MatchCondition_MatchVariable_STATUS_RequestMethod,
	"requesturi":    MatchCondition_MatchVariable_STATUS_RequestUri,
	"socketaddr":    MatchCondition_MatchVariable_STATUS_SocketAddr,
}

type MatchCondition_Operator_STATUS string

const (
	MatchCondition_Operator_STATUS_Any                = MatchCondition_Operator_STATUS("Any")
	MatchCondition_Operator_STATUS_BeginsWith         = MatchCondition_Operator_STATUS("BeginsWith")
	MatchCondition_Operator_STATUS_Contains           = MatchCondition_Operator_STATUS("Contains")
	MatchCondition_Operator_STATUS_EndsWith           = MatchCondition_Operator_STATUS("EndsWith")
	MatchCondition_Operator_STATUS_Equal              = MatchCondition_Operator_STATUS("Equal")
	MatchCondition_Operator_STATUS_GeoMatch           = MatchCondition_Operator_STATUS("GeoMatch")
	MatchCondition_Operator_STATUS_GreaterThan        = MatchCondition_Operator_STATUS("GreaterThan")
	MatchCondition_Operator_STATUS_GreaterThanOrEqual = MatchCondition_Operator_STATUS("GreaterThanOrEqual")
	MatchCondition_Operator_STATUS_IPMatch            = MatchCondition_Operator_STATUS("IPMatch")
	MatchCondition_Operator_STATUS_LessThan           = MatchCondition_Operator_STATUS("LessThan")
	MatchCondition_Operator_STATUS_LessThanOrEqual    = MatchCondition_Operator_STATUS("LessThanOrEqual")
	MatchCondition_Operator_STATUS_RegEx              = MatchCondition_Operator_STATUS("RegEx")
)

// Mapping from string to MatchCondition_Operator_STATUS
var matchCondition_Operator_STATUS_Values = map[string]MatchCondition_Operator_STATUS{
	"any":                MatchCondition_Operator_STATUS_Any,
	"beginswith":         MatchCondition_Operator_STATUS_BeginsWith,
	"contains":           MatchCondition_Operator_STATUS_Contains,
	"endswith":           MatchCondition_Operator_STATUS_EndsWith,
	"equal":              MatchCondition_Operator_STATUS_Equal,
	"geomatch":           MatchCondition_Operator_STATUS_GeoMatch,
	"greaterthan":        MatchCondition_Operator_STATUS_GreaterThan,
	"greaterthanorequal": MatchCondition_Operator_STATUS_GreaterThanOrEqual,
	"ipmatch":            MatchCondition_Operator_STATUS_IPMatch,
	"lessthan":           MatchCondition_Operator_STATUS_LessThan,
	"lessthanorequal":    MatchCondition_Operator_STATUS_LessThanOrEqual,
	"regex":              MatchCondition_Operator_STATUS_RegEx,
}

// Describes what transforms applied before matching.
type TransformType_STATUS string

const (
	TransformType_STATUS_Lowercase   = TransformType_STATUS("Lowercase")
	TransformType_STATUS_RemoveNulls = TransformType_STATUS("RemoveNulls")
	TransformType_STATUS_Trim        = TransformType_STATUS("Trim")
	TransformType_STATUS_Uppercase   = TransformType_STATUS("Uppercase")
	TransformType_STATUS_UrlDecode   = TransformType_STATUS("UrlDecode")
	TransformType_STATUS_UrlEncode   = TransformType_STATUS("UrlEncode")
)

// Mapping from string to TransformType_STATUS
var transformType_STATUS_Values = map[string]TransformType_STATUS{
	"lowercase":   TransformType_STATUS_Lowercase,
	"removenulls": TransformType_STATUS_RemoveNulls,
	"trim":        TransformType_STATUS_Trim,
	"uppercase":   TransformType_STATUS_Uppercase,
	"urldecode":   TransformType_STATUS_UrlDecode,
	"urlencode":   TransformType_STATUS_UrlEncode,
}

// Describes if the managed rule is in enabled or disabled state.
type ManagedRuleEnabledState_STATUS string

const (
	ManagedRuleEnabledState_STATUS_Disabled = ManagedRuleEnabledState_STATUS("Disabled")
	ManagedRuleEnabledState_STATUS_Enabled  = ManagedRuleEnabledState_STATUS("Enabled")
)

// Mapping from string to ManagedRuleEnabledState_STATUS
var managedRuleEnabledState_STATUS_Values = map[string]ManagedRuleEnabledState_STATUS{
	"disabled": ManagedRuleEnabledState_STATUS_Disabled,
	"enabled":  ManagedRuleEnabledState_STATUS_Enabled,
}
