import { ArmResource } from '@yetics/armkit-core' ; import { Construct } from 'constructs' ; schema export class FrontDoorWebApplicationFirewallPolicies extends ArmResource { param scope param name param options public constructor ( scope , name , options ) { super ( scope , name , { ... options , armResourceType : 'FrontDoorWebApplicationFirewallPolicies' , } ) ; } } schema export interface FrontDoorWebApplicationFirewallPoliciesOptions { schema readonly apiVersion ? : MicrosoftNetworkFrontDoorWebApplicationFirewallPoliciesApiVersion ; schema readonly etag ? : string ; schema readonly location ? : string ; schema readonly name : string ; schema readonly properties : WebApplicationFirewallPolicyProperties ; schema readonly sku ? : Sku ; schema readonly tags ? : MicrosoftNetworkFrontDoorWebApplicationFirewallPoliciesTags ; schema readonly type : MicrosoftNetworkFrontDoorWebApplicationFirewallPoliciesType ; } export enum MicrosoftNetworkFrontDoorWebApplicationFirewallPoliciesApiVersion { "MicrosoftNetworkFrontDoorWebApplicationFirewallPoliciesApiVersion_2020_11_01" = '2020-11-01' } schema export interface WebApplicationFirewallPolicyProperties { schema readonly customRules ? : CustomRuleList ; schema readonly managedRules ? : ManagedRuleSetList ; schema readonly policySettings ? : PolicySettings ; } schema export interface Sku { schema readonly name ? : SkuName ; } schema export interface MicrosoftNetworkFrontDoorWebApplicationFirewallPoliciesTags { } export enum MicrosoftNetworkFrontDoorWebApplicationFirewallPoliciesType { "MicrosoftNetworkFrontDoorWebApplicationFirewallPoliciesType_MICROSOFT_NETWORK_FRONT_DOOR_WEB_APPLICATION_FIREWALL_POLICIES" = 'Microsoft.Network/FrontDoorWebApplicationFirewallPolicies' } schema export interface CustomRuleList { schema readonly rules ? : CustomRule [ ] ; } schema export interface ManagedRuleSetList { schema readonly managedRuleSets ? : ManagedRuleSet [ ] ; } schema export interface PolicySettings { schema readonly customBlockResponseBody ? : PolicySettingsCustomBlockResponseBodyPattern ; schema readonly customBlockResponseStatusCode ? : number ; default schema readonly enabledState ? : PolicySettingsEnabledState ; schema readonly mode ? : PolicySettingsMode ; schema readonly redirectUrl ? : string ; schema readonly requestBodyCheck ? : PolicySettingsRequestBodyCheck ; } export enum SkuName { CLASSIC_AZURE_FRONT_DOOR = 'Classic_AzureFrontDoor' , STANDARD_AZURE_FRONT_DOOR = 'Standard_AzureFrontDoor' , PREMIUM_AZURE_FRONT_DOOR = 'Premium_AzureFrontDoor' } schema export interface CustomRule { schema readonly action : CustomRuleAction ; default schema readonly enabledState ? : CustomRuleEnabledState ; schema readonly matchConditions : MatchCondition [ ] ; schema readonly name ? : string ; schema readonly priority : number ; default schema readonly rateLimitDurationInMinutes ? : number ; schema readonly rateLimitThreshold ? : number ; schema readonly ruleType : CustomRuleRuleType ; } schema export interface ManagedRuleSet { schema readonly exclusions ? : ManagedRuleExclusion [ ] ; schema readonly ruleGroupOverrides ? : ManagedRuleGroupOverride [ ] ; schema readonly ruleSetAction ? : ManagedRuleSetRuleSetAction ; schema readonly ruleSetType : string ; schema readonly ruleSetVersion : string ; } schema export class PolicySettingsCustomBlockResponseBodyPattern { public static pattern ( value ) { return value ; } } export enum PolicySettingsEnabledState { DISABLED = 'Disabled' , ENABLED = 'Enabled' } export enum PolicySettingsMode { PREVENTION = 'Prevention' , DETECTION = 'Detection' } export enum PolicySettingsRequestBodyCheck { DISABLED = 'Disabled' , ENABLED = 'Enabled' } export enum CustomRuleAction { ALLOW = 'Allow' , BLOCK = 'Block' , LOG = 'Log' , REDIRECT = 'Redirect' } export enum CustomRuleEnabledState { DISABLED = 'Disabled' , ENABLED = 'Enabled' } schema export interface MatchCondition { schema readonly matchValue : string [ ] ; schema readonly matchVariable : MatchConditionMatchVariable ; schema readonly negateCondition ? : boolean ; schema readonly operator : MatchConditionOperator ; default schema readonly selector ? : string ; schema readonly transforms ? : MatchConditionTransforms [ ] ; } export enum CustomRuleRuleType { MATCH_RULE = 'MatchRule' , RATE_LIMIT_RULE = 'RateLimitRule' } schema export interface ManagedRuleExclusion { schema readonly matchVariable : ManagedRuleExclusionMatchVariable ; schema readonly selector : string ; schema readonly selectorMatchOperator : ManagedRuleExclusionSelectorMatchOperator ; } schema export interface ManagedRuleGroupOverride { schema readonly exclusions ? : ManagedRuleExclusion [ ] ; schema readonly ruleGroupName : string ; schema readonly rules ? : ManagedRuleOverride [ ] ; } export enum ManagedRuleSetRuleSetAction { BLOCK = 'Block' , LOG = 'Log' , REDIRECT = 'Redirect' } export enum MatchConditionMatchVariable { REMOTE_ADDR = 'RemoteAddr' , REQUEST_METHOD = 'RequestMethod' , QUERY_STRING = 'QueryString' , POST_ARGS = 'PostArgs' , REQUEST_URI = 'RequestUri' , REQUEST_HEADER = 'RequestHeader' , REQUEST_BODY = 'RequestBody' , COOKIES = 'Cookies' , SOCKET_ADDR = 'SocketAddr' } export enum MatchConditionOperator { ANY = 'Any' , IP_MATCH = 'IPMatch' , GEO_MATCH = 'GeoMatch' , EQUAL = 'Equal' , CONTAINS = 'Contains' , LESS_THAN = 'LessThan' , GREATER_THAN = 'GreaterThan' , LESS_THAN_OR_EQUAL = 'LessThanOrEqual' , GREATER_THAN_OR_EQUAL = 'GreaterThanOrEqual' , BEGINS_WITH = 'BeginsWith' , ENDS_WITH = 'EndsWith' , REG_EX = 'RegEx' } export enum MatchConditionTransforms { LOWERCASE = 'Lowercase' , UPPERCASE = 'Uppercase' , TRIM = 'Trim' , URL_DECODE = 'UrlDecode' , URL_ENCODE = 'UrlEncode' , REMOVE_NULLS = 'RemoveNulls' } export enum ManagedRuleExclusionMatchVariable { REQUEST_HEADER_NAMES = 'RequestHeaderNames' , REQUEST_COOKIE_NAMES = 'RequestCookieNames' , QUERY_STRING_ARG_NAMES = 'QueryStringArgNames' , REQUEST_BODY_POST_ARG_NAMES = 'RequestBodyPostArgNames' , REQUEST_BODY_JSON_ARG_NAMES = 'RequestBodyJsonArgNames' } export enum ManagedRuleExclusionSelectorMatchOperator { EQUALS = 'Equals' , CONTAINS = 'Contains' , STARTS_WITH = 'StartsWith' , ENDS_WITH = 'EndsWith' , EQUALS_ANY = 'EqualsAny' } schema export interface ManagedRuleOverride { schema readonly action ? : ManagedRuleOverrideAction ; default schema readonly enabledState ? : ManagedRuleOverrideEnabledState ; schema readonly exclusions ? : ManagedRuleExclusion [ ] ; schema readonly ruleId : string ; } export enum ManagedRuleOverrideAction { ALLOW = 'Allow' , BLOCK = 'Block' , LOG = 'Log' , REDIRECT = 'Redirect' } export enum ManagedRuleOverrideEnabledState { DISABLED = 'Disabled' , ENABLED = 'Enabled' }