{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2015-08-24",
    "endpointPrefix":"waf",
    "jsonVersion":"1.1",
    "protocol":"json",
    "serviceAbbreviation":"WAF",
    "serviceFullName":"AWS WAF",
    "signatureVersion":"v4",
    "targetPrefix":"AWSWAF_20150824"
  },
  "operations":{
    "CreateByteMatchSet":{
      "name":"CreateByteMatchSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateByteMatchSetRequest"},
      "output":{"shape":"CreateByteMatchSetResponse"},
      "errors":[
        {"shape":"WAFDisallowedNameException"},
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFInvalidParameterException"},
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFLimitsExceededException"}
      ]
    },
    "CreateIPSet":{
      "name":"CreateIPSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateIPSetRequest"},
      "output":{"shape":"CreateIPSetResponse"},
      "errors":[
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFDisallowedNameException"},
        {"shape":"WAFInvalidParameterException"},
        {"shape":"WAFLimitsExceededException"}
      ]
    },
    "CreateRule":{
      "name":"CreateRule",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateRuleRequest"},
      "output":{"shape":"CreateRuleResponse"},
      "errors":[
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFDisallowedNameException"},
        {"shape":"WAFInvalidParameterException"},
        {"shape":"WAFLimitsExceededException"}
      ]
    },
    "CreateSizeConstraintSet":{
      "name":"CreateSizeConstraintSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateSizeConstraintSetRequest"},
      "output":{"shape":"CreateSizeConstraintSetResponse"},
      "errors":[
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFDisallowedNameException"},
        {"shape":"WAFInvalidParameterException"},
        {"shape":"WAFLimitsExceededException"}
      ]
    },
    "CreateSqlInjectionMatchSet":{
      "name":"CreateSqlInjectionMatchSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateSqlInjectionMatchSetRequest"},
      "output":{"shape":"CreateSqlInjectionMatchSetResponse"},
      "errors":[
        {"shape":"WAFDisallowedNameException"},
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFInvalidParameterException"},
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFLimitsExceededException"}
      ]
    },
    "CreateWebACL":{
      "name":"CreateWebACL",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateWebACLRequest"},
      "output":{"shape":"CreateWebACLResponse"},
      "errors":[
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFDisallowedNameException"},
        {"shape":"WAFInvalidParameterException"},
        {"shape":"WAFLimitsExceededException"}
      ]
    },
    "CreateXssMatchSet":{
      "name":"CreateXssMatchSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateXssMatchSetRequest"},
      "output":{"shape":"CreateXssMatchSetResponse"},
      "errors":[
        {"shape":"WAFDisallowedNameException"},
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFInvalidParameterException"},
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFLimitsExceededException"}
      ]
    },
    "DeleteByteMatchSet":{
      "name":"DeleteByteMatchSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteByteMatchSetRequest"},
      "output":{"shape":"DeleteByteMatchSetResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFNonexistentItemException"},
        {"shape":"WAFReferencedItemException"},
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFNonEmptyEntityException"}
      ]
    },
    "DeleteIPSet":{
      "name":"DeleteIPSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteIPSetRequest"},
      "output":{"shape":"DeleteIPSetResponse"},
      "errors":[
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFNonexistentItemException"},
        {"shape":"WAFReferencedItemException"},
        {"shape":"WAFNonEmptyEntityException"}
      ]
    },
    "DeleteRule":{
      "name":"DeleteRule",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteRuleRequest"},
      "output":{"shape":"DeleteRuleResponse"},
      "errors":[
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFNonexistentItemException"},
        {"shape":"WAFReferencedItemException"},
        {"shape":"WAFNonEmptyEntityException"}
      ]
    },
    "DeleteSizeConstraintSet":{
      "name":"DeleteSizeConstraintSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteSizeConstraintSetRequest"},
      "output":{"shape":"DeleteSizeConstraintSetResponse"},
      "errors":[
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFNonexistentItemException"},
        {"shape":"WAFReferencedItemException"},
        {"shape":"WAFNonEmptyEntityException"}
      ]
    },
    "DeleteSqlInjectionMatchSet":{
      "name":"DeleteSqlInjectionMatchSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteSqlInjectionMatchSetRequest"},
      "output":{"shape":"DeleteSqlInjectionMatchSetResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFNonexistentItemException"},
        {"shape":"WAFReferencedItemException"},
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFNonEmptyEntityException"}
      ]
    },
    "DeleteWebACL":{
      "name":"DeleteWebACL",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteWebACLRequest"},
      "output":{"shape":"DeleteWebACLResponse"},
      "errors":[
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFNonexistentItemException"},
        {"shape":"WAFReferencedItemException"},
        {"shape":"WAFNonEmptyEntityException"}
      ]
    },
    "DeleteXssMatchSet":{
      "name":"DeleteXssMatchSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteXssMatchSetRequest"},
      "output":{"shape":"DeleteXssMatchSetResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFNonexistentItemException"},
        {"shape":"WAFReferencedItemException"},
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFNonEmptyEntityException"}
      ]
    },
    "GetByteMatchSet":{
      "name":"GetByteMatchSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetByteMatchSetRequest"},
      "output":{"shape":"GetByteMatchSetResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFNonexistentItemException"}
      ]
    },
    "GetChangeToken":{
      "name":"GetChangeToken",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetChangeTokenRequest"},
      "output":{"shape":"GetChangeTokenResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"}
      ]
    },
    "GetChangeTokenStatus":{
      "name":"GetChangeTokenStatus",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetChangeTokenStatusRequest"},
      "output":{"shape":"GetChangeTokenStatusResponse"},
      "errors":[
        {"shape":"WAFNonexistentItemException"},
        {"shape":"WAFInternalErrorException"}
      ]
    },
    "GetIPSet":{
      "name":"GetIPSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetIPSetRequest"},
      "output":{"shape":"GetIPSetResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFNonexistentItemException"}
      ]
    },
    "GetRule":{
      "name":"GetRule",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetRuleRequest"},
      "output":{"shape":"GetRuleResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFNonexistentItemException"}
      ]
    },
    "GetSampledRequests":{
      "name":"GetSampledRequests",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetSampledRequestsRequest"},
      "output":{"shape":"GetSampledRequestsResponse"},
      "errors":[
        {"shape":"WAFNonexistentItemException"},
        {"shape":"WAFInternalErrorException"}
      ]
    },
    "GetSizeConstraintSet":{
      "name":"GetSizeConstraintSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetSizeConstraintSetRequest"},
      "output":{"shape":"GetSizeConstraintSetResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFNonexistentItemException"}
      ]
    },
    "GetSqlInjectionMatchSet":{
      "name":"GetSqlInjectionMatchSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetSqlInjectionMatchSetRequest"},
      "output":{"shape":"GetSqlInjectionMatchSetResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFNonexistentItemException"}
      ]
    },
    "GetWebACL":{
      "name":"GetWebACL",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetWebACLRequest"},
      "output":{"shape":"GetWebACLResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFNonexistentItemException"}
      ]
    },
    "GetXssMatchSet":{
      "name":"GetXssMatchSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetXssMatchSetRequest"},
      "output":{"shape":"GetXssMatchSetResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFNonexistentItemException"}
      ]
    },
    "ListByteMatchSets":{
      "name":"ListByteMatchSets",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListByteMatchSetsRequest"},
      "output":{"shape":"ListByteMatchSetsResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"}
      ]
    },
    "ListIPSets":{
      "name":"ListIPSets",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListIPSetsRequest"},
      "output":{"shape":"ListIPSetsResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"}
      ]
    },
    "ListRules":{
      "name":"ListRules",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListRulesRequest"},
      "output":{"shape":"ListRulesResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"}
      ]
    },
    "ListSizeConstraintSets":{
      "name":"ListSizeConstraintSets",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListSizeConstraintSetsRequest"},
      "output":{"shape":"ListSizeConstraintSetsResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"}
      ]
    },
    "ListSqlInjectionMatchSets":{
      "name":"ListSqlInjectionMatchSets",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListSqlInjectionMatchSetsRequest"},
      "output":{"shape":"ListSqlInjectionMatchSetsResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"}
      ]
    },
    "ListWebACLs":{
      "name":"ListWebACLs",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListWebACLsRequest"},
      "output":{"shape":"ListWebACLsResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"}
      ]
    },
    "ListXssMatchSets":{
      "name":"ListXssMatchSets",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListXssMatchSetsRequest"},
      "output":{"shape":"ListXssMatchSetsResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"}
      ]
    },
    "UpdateByteMatchSet":{
      "name":"UpdateByteMatchSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateByteMatchSetRequest"},
      "output":{"shape":"UpdateByteMatchSetResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFInvalidOperationException"},
        {"shape":"WAFInvalidParameterException"},
        {"shape":"WAFNonexistentContainerException"},
        {"shape":"WAFNonexistentItemException"},
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFLimitsExceededException"}
      ]
    },
    "UpdateIPSet":{
      "name":"UpdateIPSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateIPSetRequest"},
      "output":{"shape":"UpdateIPSetResponse"},
      "errors":[
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFInvalidOperationException"},
        {"shape":"WAFInvalidParameterException"},
        {"shape":"WAFNonexistentContainerException"},
        {"shape":"WAFNonexistentItemException"},
        {"shape":"WAFReferencedItemException"},
        {"shape":"WAFLimitsExceededException"}
      ]
    },
    "UpdateRule":{
      "name":"UpdateRule",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateRuleRequest"},
      "output":{"shape":"UpdateRuleResponse"},
      "errors":[
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFInvalidOperationException"},
        {"shape":"WAFInvalidParameterException"},
        {"shape":"WAFNonexistentContainerException"},
        {"shape":"WAFNonexistentItemException"},
        {"shape":"WAFReferencedItemException"},
        {"shape":"WAFLimitsExceededException"}
      ]
    },
    "UpdateSizeConstraintSet":{
      "name":"UpdateSizeConstraintSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateSizeConstraintSetRequest"},
      "output":{"shape":"UpdateSizeConstraintSetResponse"},
      "errors":[
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFInvalidOperationException"},
        {"shape":"WAFInvalidParameterException"},
        {"shape":"WAFNonexistentContainerException"},
        {"shape":"WAFNonexistentItemException"},
        {"shape":"WAFReferencedItemException"},
        {"shape":"WAFLimitsExceededException"}
      ]
    },
    "UpdateSqlInjectionMatchSet":{
      "name":"UpdateSqlInjectionMatchSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateSqlInjectionMatchSetRequest"},
      "output":{"shape":"UpdateSqlInjectionMatchSetResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFInvalidOperationException"},
        {"shape":"WAFInvalidParameterException"},
        {"shape":"WAFNonexistentContainerException"},
        {"shape":"WAFNonexistentItemException"},
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFLimitsExceededException"}
      ]
    },
    "UpdateWebACL":{
      "name":"UpdateWebACL",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateWebACLRequest"},
      "output":{"shape":"UpdateWebACLResponse"},
      "errors":[
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFInvalidOperationException"},
        {"shape":"WAFInvalidParameterException"},
        {"shape":"WAFNonexistentContainerException"},
        {"shape":"WAFNonexistentItemException"},
        {"shape":"WAFReferencedItemException"},
        {"shape":"WAFLimitsExceededException"}
      ]
    },
    "UpdateXssMatchSet":{
      "name":"UpdateXssMatchSet",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateXssMatchSetRequest"},
      "output":{"shape":"UpdateXssMatchSetResponse"},
      "errors":[
        {"shape":"WAFInternalErrorException"},
        {"shape":"WAFInvalidAccountException"},
        {"shape":"WAFInvalidOperationException"},
        {"shape":"WAFInvalidParameterException"},
        {"shape":"WAFNonexistentContainerException"},
        {"shape":"WAFNonexistentItemException"},
        {"shape":"WAFStaleDataException"},
        {"shape":"WAFLimitsExceededException"}
      ]
    }
  },
  "shapes":{
    "Action":{"type":"string"},
    "ActivatedRule":{
      "type":"structure",
      "required":[
        "Priority",
        "RuleId",
        "Action"
      ],
      "members":{
        "Priority":{"shape":"RulePriority"},
        "RuleId":{"shape":"ResourceId"},
        "Action":{"shape":"WafAction"}
      }
    },
    "ActivatedRules":{
      "type":"list",
      "member":{"shape":"ActivatedRule"}
    },
    "ByteMatchSet":{
      "type":"structure",
      "required":[
        "ByteMatchSetId",
        "ByteMatchTuples"
      ],
      "members":{
        "ByteMatchSetId":{"shape":"ResourceId"},
        "Name":{"shape":"ResourceName"},
        "ByteMatchTuples":{"shape":"ByteMatchTuples"}
      }
    },
    "ByteMatchSetSummaries":{
      "type":"list",
      "member":{"shape":"ByteMatchSetSummary"}
    },
    "ByteMatchSetSummary":{
      "type":"structure",
      "required":[
        "ByteMatchSetId",
        "Name"
      ],
      "members":{
        "ByteMatchSetId":{"shape":"ResourceId"},
        "Name":{"shape":"ResourceName"}
      }
    },
    "ByteMatchSetUpdate":{
      "type":"structure",
      "required":[
        "Action",
        "ByteMatchTuple"
      ],
      "members":{
        "Action":{"shape":"ChangeAction"},
        "ByteMatchTuple":{"shape":"ByteMatchTuple"}
      }
    },
    "ByteMatchSetUpdates":{
      "type":"list",
      "member":{"shape":"ByteMatchSetUpdate"}
    },
    "ByteMatchTargetString":{"type":"blob"},
    "ByteMatchTuple":{
      "type":"structure",
      "required":[
        "FieldToMatch",
        "TargetString",
        "TextTransformation",
        "PositionalConstraint"
      ],
      "members":{
        "FieldToMatch":{"shape":"FieldToMatch"},
        "TargetString":{"shape":"ByteMatchTargetString"},
        "TextTransformation":{"shape":"TextTransformation"},
        "PositionalConstraint":{"shape":"PositionalConstraint"}
      }
    },
    "ByteMatchTuples":{
      "type":"list",
      "member":{"shape":"ByteMatchTuple"}
    },
    "ChangeAction":{
      "type":"string",
      "enum":[
        "INSERT",
        "DELETE"
      ]
    },
    "ChangeToken":{"type":"string"},
    "ChangeTokenStatus":{
      "type":"string",
      "enum":[
        "PROVISIONED",
        "PENDING",
        "INSYNC"
      ]
    },
    "ComparisonOperator":{
      "type":"string",
      "enum":[
        "EQ",
        "NE",
        "LE",
        "LT",
        "GE",
        "GT"
      ]
    },
    "Country":{"type":"string"},
    "CreateByteMatchSetRequest":{
      "type":"structure",
      "required":[
        "Name",
        "ChangeToken"
      ],
      "members":{
        "Name":{"shape":"ResourceName"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "CreateByteMatchSetResponse":{
      "type":"structure",
      "members":{
        "ByteMatchSet":{"shape":"ByteMatchSet"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "CreateIPSetRequest":{
      "type":"structure",
      "required":[
        "Name",
        "ChangeToken"
      ],
      "members":{
        "Name":{"shape":"ResourceName"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "CreateIPSetResponse":{
      "type":"structure",
      "members":{
        "IPSet":{"shape":"IPSet"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "CreateRuleRequest":{
      "type":"structure",
      "required":[
        "Name",
        "MetricName",
        "ChangeToken"
      ],
      "members":{
        "Name":{"shape":"ResourceName"},
        "MetricName":{"shape":"MetricName"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "CreateRuleResponse":{
      "type":"structure",
      "members":{
        "Rule":{"shape":"Rule"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "CreateSizeConstraintSetRequest":{
      "type":"structure",
      "required":[
        "Name",
        "ChangeToken"
      ],
      "members":{
        "Name":{"shape":"ResourceName"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "CreateSizeConstraintSetResponse":{
      "type":"structure",
      "members":{
        "SizeConstraintSet":{"shape":"SizeConstraintSet"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "CreateSqlInjectionMatchSetRequest":{
      "type":"structure",
      "required":[
        "Name",
        "ChangeToken"
      ],
      "members":{
        "Name":{"shape":"ResourceName"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "CreateSqlInjectionMatchSetResponse":{
      "type":"structure",
      "members":{
        "SqlInjectionMatchSet":{"shape":"SqlInjectionMatchSet"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "CreateWebACLRequest":{
      "type":"structure",
      "required":[
        "Name",
        "MetricName",
        "DefaultAction",
        "ChangeToken"
      ],
      "members":{
        "Name":{"shape":"ResourceName"},
        "MetricName":{"shape":"MetricName"},
        "DefaultAction":{"shape":"WafAction"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "CreateWebACLResponse":{
      "type":"structure",
      "members":{
        "WebACL":{"shape":"WebACL"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "CreateXssMatchSetRequest":{
      "type":"structure",
      "required":[
        "Name",
        "ChangeToken"
      ],
      "members":{
        "Name":{"shape":"ResourceName"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "CreateXssMatchSetResponse":{
      "type":"structure",
      "members":{
        "XssMatchSet":{"shape":"XssMatchSet"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "DeleteByteMatchSetRequest":{
      "type":"structure",
      "required":[
        "ByteMatchSetId",
        "ChangeToken"
      ],
      "members":{
        "ByteMatchSetId":{"shape":"ResourceId"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "DeleteByteMatchSetResponse":{
      "type":"structure",
      "members":{
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "DeleteIPSetRequest":{
      "type":"structure",
      "required":[
        "IPSetId",
        "ChangeToken"
      ],
      "members":{
        "IPSetId":{"shape":"ResourceId"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "DeleteIPSetResponse":{
      "type":"structure",
      "members":{
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "DeleteRuleRequest":{
      "type":"structure",
      "required":[
        "RuleId",
        "ChangeToken"
      ],
      "members":{
        "RuleId":{"shape":"ResourceId"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "DeleteRuleResponse":{
      "type":"structure",
      "members":{
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "DeleteSizeConstraintSetRequest":{
      "type":"structure",
      "required":[
        "SizeConstraintSetId",
        "ChangeToken"
      ],
      "members":{
        "SizeConstraintSetId":{"shape":"ResourceId"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "DeleteSizeConstraintSetResponse":{
      "type":"structure",
      "members":{
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "DeleteSqlInjectionMatchSetRequest":{
      "type":"structure",
      "required":[
        "SqlInjectionMatchSetId",
        "ChangeToken"
      ],
      "members":{
        "SqlInjectionMatchSetId":{"shape":"ResourceId"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "DeleteSqlInjectionMatchSetResponse":{
      "type":"structure",
      "members":{
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "DeleteWebACLRequest":{
      "type":"structure",
      "required":[
        "WebACLId",
        "ChangeToken"
      ],
      "members":{
        "WebACLId":{"shape":"ResourceId"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "DeleteWebACLResponse":{
      "type":"structure",
      "members":{
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "DeleteXssMatchSetRequest":{
      "type":"structure",
      "required":[
        "XssMatchSetId",
        "ChangeToken"
      ],
      "members":{
        "XssMatchSetId":{"shape":"ResourceId"},
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "DeleteXssMatchSetResponse":{
      "type":"structure",
      "members":{
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "FieldToMatch":{
      "type":"structure",
      "required":["Type"],
      "members":{
        "Type":{"shape":"MatchFieldType"},
        "Data":{"shape":"MatchFieldData"}
      }
    },
    "GetByteMatchSetRequest":{
      "type":"structure",
      "required":["ByteMatchSetId"],
      "members":{
        "ByteMatchSetId":{"shape":"ResourceId"}
      }
    },
    "GetByteMatchSetResponse":{
      "type":"structure",
      "members":{
        "ByteMatchSet":{"shape":"ByteMatchSet"}
      }
    },
    "GetChangeTokenRequest":{
      "type":"structure",
      "members":{
      }
    },
    "GetChangeTokenResponse":{
      "type":"structure",
      "members":{
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "GetChangeTokenStatusRequest":{
      "type":"structure",
      "required":["ChangeToken"],
      "members":{
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "GetChangeTokenStatusResponse":{
      "type":"structure",
      "members":{
        "ChangeTokenStatus":{"shape":"ChangeTokenStatus"}
      }
    },
    "GetIPSetRequest":{
      "type":"structure",
      "required":["IPSetId"],
      "members":{
        "IPSetId":{"shape":"ResourceId"}
      }
    },
    "GetIPSetResponse":{
      "type":"structure",
      "members":{
        "IPSet":{"shape":"IPSet"}
      }
    },
    "GetRuleRequest":{
      "type":"structure",
      "required":["RuleId"],
      "members":{
        "RuleId":{"shape":"ResourceId"}
      }
    },
    "GetRuleResponse":{
      "type":"structure",
      "members":{
        "Rule":{"shape":"Rule"}
      }
    },
    "GetSampledRequestsRequest":{
      "type":"structure",
      "required":[
        "WebAclId",
        "RuleId",
        "TimeWindow",
        "MaxItems"
      ],
      "members":{
        "WebAclId":{"shape":"ResourceId"},
        "RuleId":{"shape":"ResourceId"},
        "TimeWindow":{"shape":"TimeWindow"},
        "MaxItems":{"shape":"ListMaxItems"}
      }
    },
    "GetSampledRequestsResponse":{
      "type":"structure",
      "members":{
        "SampledRequests":{"shape":"SampledHTTPRequests"},
        "PopulationSize":{"shape":"PopulationSize"},
        "TimeWindow":{"shape":"TimeWindow"}
      }
    },
    "GetSizeConstraintSetRequest":{
      "type":"structure",
      "required":["SizeConstraintSetId"],
      "members":{
        "SizeConstraintSetId":{"shape":"ResourceId"}
      }
    },
    "GetSizeConstraintSetResponse":{
      "type":"structure",
      "members":{
        "SizeConstraintSet":{"shape":"SizeConstraintSet"}
      }
    },
    "GetSqlInjectionMatchSetRequest":{
      "type":"structure",
      "required":["SqlInjectionMatchSetId"],
      "members":{
        "SqlInjectionMatchSetId":{"shape":"ResourceId"}
      }
    },
    "GetSqlInjectionMatchSetResponse":{
      "type":"structure",
      "members":{
        "SqlInjectionMatchSet":{"shape":"SqlInjectionMatchSet"}
      }
    },
    "GetWebACLRequest":{
      "type":"structure",
      "required":["WebACLId"],
      "members":{
        "WebACLId":{"shape":"ResourceId"}
      }
    },
    "GetWebACLResponse":{
      "type":"structure",
      "members":{
        "WebACL":{"shape":"WebACL"}
      }
    },
    "GetXssMatchSetRequest":{
      "type":"structure",
      "required":["XssMatchSetId"],
      "members":{
        "XssMatchSetId":{"shape":"ResourceId"}
      }
    },
    "GetXssMatchSetResponse":{
      "type":"structure",
      "members":{
        "XssMatchSet":{"shape":"XssMatchSet"}
      }
    },
    "HTTPHeader":{
      "type":"structure",
      "members":{
        "Name":{"shape":"HeaderName"},
        "Value":{"shape":"HeaderValue"}
      }
    },
    "HTTPHeaders":{
      "type":"list",
      "member":{"shape":"HTTPHeader"}
    },
    "HTTPMethod":{"type":"string"},
    "HTTPRequest":{
      "type":"structure",
      "members":{
        "ClientIP":{"shape":"IPString"},
        "Country":{"shape":"Country"},
        "URI":{"shape":"URIString"},
        "Method":{"shape":"HTTPMethod"},
        "HTTPVersion":{"shape":"HTTPVersion"},
        "Headers":{"shape":"HTTPHeaders"}
      }
    },
    "HTTPVersion":{"type":"string"},
    "HeaderName":{"type":"string"},
    "HeaderValue":{"type":"string"},
    "IPSet":{
      "type":"structure",
      "required":[
        "IPSetId",
        "IPSetDescriptors"
      ],
      "members":{
        "IPSetId":{"shape":"ResourceId"},
        "Name":{"shape":"ResourceName"},
        "IPSetDescriptors":{"shape":"IPSetDescriptors"}
      }
    },
    "IPSetDescriptor":{
      "type":"structure",
      "required":[
        "Type",
        "Value"
      ],
      "members":{
        "Type":{"shape":"IPSetDescriptorType"},
        "Value":{"shape":"IPSetDescriptorValue"}
      }
    },
    "IPSetDescriptorType":{
      "type":"string",
      "enum":["IPV4"]
    },
    "IPSetDescriptorValue":{"type":"string"},
    "IPSetDescriptors":{
      "type":"list",
      "member":{"shape":"IPSetDescriptor"}
    },
    "IPSetSummaries":{
      "type":"list",
      "member":{"shape":"IPSetSummary"}
    },
    "IPSetSummary":{
      "type":"structure",
      "required":[
        "IPSetId",
        "Name"
      ],
      "members":{
        "IPSetId":{"shape":"ResourceId"},
        "Name":{"shape":"ResourceName"}
      }
    },
    "IPSetUpdate":{
      "type":"structure",
      "required":[
        "Action",
        "IPSetDescriptor"
      ],
      "members":{
        "Action":{"shape":"ChangeAction"},
        "IPSetDescriptor":{"shape":"IPSetDescriptor"}
      }
    },
    "IPSetUpdates":{
      "type":"list",
      "member":{"shape":"IPSetUpdate"}
    },
    "IPString":{"type":"string"},
    "ListByteMatchSetsRequest":{
      "type":"structure",
      "required":["Limit"],
      "members":{
        "NextMarker":{"shape":"NextMarker"},
        "Limit":{"shape":"PaginationLimit"}
      }
    },
    "ListByteMatchSetsResponse":{
      "type":"structure",
      "members":{
        "NextMarker":{"shape":"NextMarker"},
        "ByteMatchSets":{"shape":"ByteMatchSetSummaries"}
      }
    },
    "ListIPSetsRequest":{
      "type":"structure",
      "required":["Limit"],
      "members":{
        "NextMarker":{"shape":"NextMarker"},
        "Limit":{"shape":"PaginationLimit"}
      }
    },
    "ListIPSetsResponse":{
      "type":"structure",
      "members":{
        "NextMarker":{"shape":"NextMarker"},
        "IPSets":{"shape":"IPSetSummaries"}
      }
    },
    "ListMaxItems":{
      "type":"long",
      "max":100,
      "min":1
    },
    "ListRulesRequest":{
      "type":"structure",
      "required":["Limit"],
      "members":{
        "NextMarker":{"shape":"NextMarker"},
        "Limit":{"shape":"PaginationLimit"}
      }
    },
    "ListRulesResponse":{
      "type":"structure",
      "members":{
        "NextMarker":{"shape":"NextMarker"},
        "Rules":{"shape":"RuleSummaries"}
      }
    },
    "ListSizeConstraintSetsRequest":{
      "type":"structure",
      "required":["Limit"],
      "members":{
        "NextMarker":{"shape":"NextMarker"},
        "Limit":{"shape":"PaginationLimit"}
      }
    },
    "ListSizeConstraintSetsResponse":{
      "type":"structure",
      "members":{
        "NextMarker":{"shape":"NextMarker"},
        "SizeConstraintSets":{"shape":"SizeConstraintSetSummaries"}
      }
    },
    "ListSqlInjectionMatchSetsRequest":{
      "type":"structure",
      "required":["Limit"],
      "members":{
        "NextMarker":{"shape":"NextMarker"},
        "Limit":{"shape":"PaginationLimit"}
      }
    },
    "ListSqlInjectionMatchSetsResponse":{
      "type":"structure",
      "members":{
        "NextMarker":{"shape":"NextMarker"},
        "SqlInjectionMatchSets":{"shape":"SqlInjectionMatchSetSummaries"}
      }
    },
    "ListWebACLsRequest":{
      "type":"structure",
      "required":["Limit"],
      "members":{
        "NextMarker":{"shape":"NextMarker"},
        "Limit":{"shape":"PaginationLimit"}
      }
    },
    "ListWebACLsResponse":{
      "type":"structure",
      "members":{
        "NextMarker":{"shape":"NextMarker"},
        "WebACLs":{"shape":"WebACLSummaries"}
      }
    },
    "ListXssMatchSetsRequest":{
      "type":"structure",
      "required":["Limit"],
      "members":{
        "NextMarker":{"shape":"NextMarker"},
        "Limit":{"shape":"PaginationLimit"}
      }
    },
    "ListXssMatchSetsResponse":{
      "type":"structure",
      "members":{
        "NextMarker":{"shape":"NextMarker"},
        "XssMatchSets":{"shape":"XssMatchSetSummaries"}
      }
    },
    "MatchFieldData":{"type":"string"},
    "MatchFieldType":{
      "type":"string",
      "enum":[
        "URI",
        "QUERY_STRING",
        "HEADER",
        "METHOD",
        "BODY"
      ]
    },
    "MetricName":{"type":"string"},
    "Negated":{"type":"boolean"},
    "NextMarker":{
      "type":"string",
      "min":1
    },
    "PaginationLimit":{
      "type":"integer",
      "max":100,
      "min":1
    },
    "ParameterExceptionField":{
      "type":"string",
      "enum":[
        "CHANGE_ACTION",
        "WAF_ACTION",
        "PREDICATE_TYPE",
        "IPSET_TYPE",
        "BYTE_MATCH_FIELD_TYPE",
        "SQL_INJECTION_MATCH_FIELD_TYPE",
        "BYTE_MATCH_TEXT_TRANSFORMATION",
        "BYTE_MATCH_POSITIONAL_CONSTRAINT",
        "SIZE_CONSTRAINT_COMPARISON_OPERATOR"
      ]
    },
    "ParameterExceptionParameter":{
      "type":"string",
      "min":1
    },
    "ParameterExceptionReason":{
      "type":"string",
      "enum":[
        "INVALID_OPTION",
        "ILLEGAL_COMBINATION"
      ]
    },
    "PopulationSize":{"type":"long"},
    "PositionalConstraint":{
      "type":"string",
      "enum":[
        "EXACTLY",
        "STARTS_WITH",
        "ENDS_WITH",
        "CONTAINS",
        "CONTAINS_WORD"
      ]
    },
    "Predicate":{
      "type":"structure",
      "required":[
        "Negated",
        "Type",
        "DataId"
      ],
      "members":{
        "Negated":{"shape":"Negated"},
        "Type":{"shape":"PredicateType"},
        "DataId":{"shape":"ResourceId"}
      }
    },
    "PredicateType":{
      "type":"string",
      "enum":[
        "IPMatch",
        "ByteMatch",
        "SqlInjectionMatch",
        "SizeConstraint",
        "XssMatch"
      ]
    },
    "Predicates":{
      "type":"list",
      "member":{"shape":"Predicate"}
    },
    "ResourceId":{
      "type":"string",
      "max":128,
      "min":1
    },
    "ResourceName":{
      "type":"string",
      "max":128,
      "min":1
    },
    "Rule":{
      "type":"structure",
      "required":[
        "RuleId",
        "Predicates"
      ],
      "members":{
        "RuleId":{"shape":"ResourceId"},
        "Name":{"shape":"ResourceName"},
        "MetricName":{"shape":"MetricName"},
        "Predicates":{"shape":"Predicates"}
      }
    },
    "RulePriority":{"type":"integer"},
    "RuleSummaries":{
      "type":"list",
      "member":{"shape":"RuleSummary"}
    },
    "RuleSummary":{
      "type":"structure",
      "required":[
        "RuleId",
        "Name"
      ],
      "members":{
        "RuleId":{"shape":"ResourceId"},
        "Name":{"shape":"ResourceName"}
      }
    },
    "RuleUpdate":{
      "type":"structure",
      "required":[
        "Action",
        "Predicate"
      ],
      "members":{
        "Action":{"shape":"ChangeAction"},
        "Predicate":{"shape":"Predicate"}
      }
    },
    "RuleUpdates":{
      "type":"list",
      "member":{"shape":"RuleUpdate"}
    },
    "SampleWeight":{
      "type":"long",
      "min":0
    },
    "SampledHTTPRequest":{
      "type":"structure",
      "required":[
        "Request",
        "Weight"
      ],
      "members":{
        "Request":{"shape":"HTTPRequest"},
        "Weight":{"shape":"SampleWeight"},
        "Timestamp":{"shape":"Timestamp"},
        "Action":{"shape":"Action"}
      }
    },
    "SampledHTTPRequests":{
      "type":"list",
      "member":{"shape":"SampledHTTPRequest"}
    },
    "Size":{
      "type":"long",
      "max":21474836480,
      "min":0
    },
    "SizeConstraint":{
      "type":"structure",
      "required":[
        "FieldToMatch",
        "TextTransformation",
        "ComparisonOperator",
        "Size"
      ],
      "members":{
        "FieldToMatch":{"shape":"FieldToMatch"},
        "TextTransformation":{"shape":"TextTransformation"},
        "ComparisonOperator":{"shape":"ComparisonOperator"},
        "Size":{"shape":"Size"}
      }
    },
    "SizeConstraintSet":{
      "type":"structure",
      "required":[
        "SizeConstraintSetId",
        "SizeConstraints"
      ],
      "members":{
        "SizeConstraintSetId":{"shape":"ResourceId"},
        "Name":{"shape":"ResourceName"},
        "SizeConstraints":{"shape":"SizeConstraints"}
      }
    },
    "SizeConstraintSetSummaries":{
      "type":"list",
      "member":{"shape":"SizeConstraintSetSummary"}
    },
    "SizeConstraintSetSummary":{
      "type":"structure",
      "required":[
        "SizeConstraintSetId",
        "Name"
      ],
      "members":{
        "SizeConstraintSetId":{"shape":"ResourceId"},
        "Name":{"shape":"ResourceName"}
      }
    },
    "SizeConstraintSetUpdate":{
      "type":"structure",
      "required":[
        "Action",
        "SizeConstraint"
      ],
      "members":{
        "Action":{"shape":"ChangeAction"},
        "SizeConstraint":{"shape":"SizeConstraint"}
      }
    },
    "SizeConstraintSetUpdates":{
      "type":"list",
      "member":{"shape":"SizeConstraintSetUpdate"}
    },
    "SizeConstraints":{
      "type":"list",
      "member":{"shape":"SizeConstraint"}
    },
    "SqlInjectionMatchSet":{
      "type":"structure",
      "required":[
        "SqlInjectionMatchSetId",
        "SqlInjectionMatchTuples"
      ],
      "members":{
        "SqlInjectionMatchSetId":{"shape":"ResourceId"},
        "Name":{"shape":"ResourceName"},
        "SqlInjectionMatchTuples":{"shape":"SqlInjectionMatchTuples"}
      }
    },
    "SqlInjectionMatchSetSummaries":{
      "type":"list",
      "member":{"shape":"SqlInjectionMatchSetSummary"}
    },
    "SqlInjectionMatchSetSummary":{
      "type":"structure",
      "required":[
        "SqlInjectionMatchSetId",
        "Name"
      ],
      "members":{
        "SqlInjectionMatchSetId":{"shape":"ResourceId"},
        "Name":{"shape":"ResourceName"}
      }
    },
    "SqlInjectionMatchSetUpdate":{
      "type":"structure",
      "required":[
        "Action",
        "SqlInjectionMatchTuple"
      ],
      "members":{
        "Action":{"shape":"ChangeAction"},
        "SqlInjectionMatchTuple":{"shape":"SqlInjectionMatchTuple"}
      }
    },
    "SqlInjectionMatchSetUpdates":{
      "type":"list",
      "member":{"shape":"SqlInjectionMatchSetUpdate"}
    },
    "SqlInjectionMatchTuple":{
      "type":"structure",
      "required":[
        "FieldToMatch",
        "TextTransformation"
      ],
      "members":{
        "FieldToMatch":{"shape":"FieldToMatch"},
        "TextTransformation":{"shape":"TextTransformation"}
      }
    },
    "SqlInjectionMatchTuples":{
      "type":"list",
      "member":{"shape":"SqlInjectionMatchTuple"}
    },
    "TextTransformation":{
      "type":"string",
      "enum":[
        "NONE",
        "COMPRESS_WHITE_SPACE",
        "HTML_ENTITY_DECODE",
        "LOWERCASE",
        "CMD_LINE",
        "URL_DECODE"
      ]
    },
    "TimeWindow":{
      "type":"structure",
      "required":[
        "StartTime",
        "EndTime"
      ],
      "members":{
        "StartTime":{"shape":"Timestamp"},
        "EndTime":{"shape":"Timestamp"}
      }
    },
    "Timestamp":{"type":"timestamp"},
    "URIString":{"type":"string"},
    "UpdateByteMatchSetRequest":{
      "type":"structure",
      "required":[
        "ByteMatchSetId",
        "ChangeToken",
        "Updates"
      ],
      "members":{
        "ByteMatchSetId":{"shape":"ResourceId"},
        "ChangeToken":{"shape":"ChangeToken"},
        "Updates":{"shape":"ByteMatchSetUpdates"}
      }
    },
    "UpdateByteMatchSetResponse":{
      "type":"structure",
      "members":{
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "UpdateIPSetRequest":{
      "type":"structure",
      "required":[
        "IPSetId",
        "ChangeToken",
        "Updates"
      ],
      "members":{
        "IPSetId":{"shape":"ResourceId"},
        "ChangeToken":{"shape":"ChangeToken"},
        "Updates":{"shape":"IPSetUpdates"}
      }
    },
    "UpdateIPSetResponse":{
      "type":"structure",
      "members":{
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "UpdateRuleRequest":{
      "type":"structure",
      "required":[
        "RuleId",
        "ChangeToken",
        "Updates"
      ],
      "members":{
        "RuleId":{"shape":"ResourceId"},
        "ChangeToken":{"shape":"ChangeToken"},
        "Updates":{"shape":"RuleUpdates"}
      }
    },
    "UpdateRuleResponse":{
      "type":"structure",
      "members":{
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "UpdateSizeConstraintSetRequest":{
      "type":"structure",
      "required":[
        "SizeConstraintSetId",
        "ChangeToken",
        "Updates"
      ],
      "members":{
        "SizeConstraintSetId":{"shape":"ResourceId"},
        "ChangeToken":{"shape":"ChangeToken"},
        "Updates":{"shape":"SizeConstraintSetUpdates"}
      }
    },
    "UpdateSizeConstraintSetResponse":{
      "type":"structure",
      "members":{
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "UpdateSqlInjectionMatchSetRequest":{
      "type":"structure",
      "required":[
        "SqlInjectionMatchSetId",
        "ChangeToken",
        "Updates"
      ],
      "members":{
        "SqlInjectionMatchSetId":{"shape":"ResourceId"},
        "ChangeToken":{"shape":"ChangeToken"},
        "Updates":{"shape":"SqlInjectionMatchSetUpdates"}
      }
    },
    "UpdateSqlInjectionMatchSetResponse":{
      "type":"structure",
      "members":{
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "UpdateWebACLRequest":{
      "type":"structure",
      "required":[
        "WebACLId",
        "ChangeToken"
      ],
      "members":{
        "WebACLId":{"shape":"ResourceId"},
        "ChangeToken":{"shape":"ChangeToken"},
        "Updates":{"shape":"WebACLUpdates"},
        "DefaultAction":{"shape":"WafAction"}
      }
    },
    "UpdateWebACLResponse":{
      "type":"structure",
      "members":{
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "UpdateXssMatchSetRequest":{
      "type":"structure",
      "required":[
        "XssMatchSetId",
        "ChangeToken",
        "Updates"
      ],
      "members":{
        "XssMatchSetId":{"shape":"ResourceId"},
        "ChangeToken":{"shape":"ChangeToken"},
        "Updates":{"shape":"XssMatchSetUpdates"}
      }
    },
    "UpdateXssMatchSetResponse":{
      "type":"structure",
      "members":{
        "ChangeToken":{"shape":"ChangeToken"}
      }
    },
    "WAFDisallowedNameException":{
      "type":"structure",
      "members":{
        "message":{"shape":"errorMessage"}
      },
      "exception":true
    },
    "WAFInternalErrorException":{
      "type":"structure",
      "members":{
        "message":{"shape":"errorMessage"}
      },
      "exception":true,
      "fault":true
    },
    "WAFInvalidAccountException":{
      "type":"structure",
      "members":{
      },
      "exception":true
    },
    "WAFInvalidOperationException":{
      "type":"structure",
      "members":{
        "message":{"shape":"errorMessage"}
      },
      "exception":true
    },
    "WAFInvalidParameterException":{
      "type":"structure",
      "members":{
        "field":{"shape":"ParameterExceptionField"},
        "parameter":{"shape":"ParameterExceptionParameter"},
        "reason":{"shape":"ParameterExceptionReason"}
      },
      "exception":true
    },
    "WAFLimitsExceededException":{
      "type":"structure",
      "members":{
        "message":{"shape":"errorMessage"}
      },
      "exception":true
    },
    "WAFNonEmptyEntityException":{
      "type":"structure",
      "members":{
        "message":{"shape":"errorMessage"}
      },
      "exception":true
    },
    "WAFNonexistentContainerException":{
      "type":"structure",
      "members":{
        "message":{"shape":"errorMessage"}
      },
      "exception":true
    },
    "WAFNonexistentItemException":{
      "type":"structure",
      "members":{
        "message":{"shape":"errorMessage"}
      },
      "exception":true
    },
    "WAFReferencedItemException":{
      "type":"structure",
      "members":{
        "message":{"shape":"errorMessage"}
      },
      "exception":true
    },
    "WAFStaleDataException":{
      "type":"structure",
      "members":{
        "message":{"shape":"errorMessage"}
      },
      "exception":true
    },
    "WafAction":{
      "type":"structure",
      "required":["Type"],
      "members":{
        "Type":{"shape":"WafActionType"}
      }
    },
    "WafActionType":{
      "type":"string",
      "enum":[
        "BLOCK",
        "ALLOW",
        "COUNT"
      ]
    },
    "WebACL":{
      "type":"structure",
      "required":[
        "WebACLId",
        "DefaultAction",
        "Rules"
      ],
      "members":{
        "WebACLId":{"shape":"ResourceId"},
        "Name":{"shape":"ResourceName"},
        "MetricName":{"shape":"MetricName"},
        "DefaultAction":{"shape":"WafAction"},
        "Rules":{"shape":"ActivatedRules"}
      }
    },
    "WebACLSummaries":{
      "type":"list",
      "member":{"shape":"WebACLSummary"}
    },
    "WebACLSummary":{
      "type":"structure",
      "required":[
        "WebACLId",
        "Name"
      ],
      "members":{
        "WebACLId":{"shape":"ResourceId"},
        "Name":{"shape":"ResourceName"}
      }
    },
    "WebACLUpdate":{
      "type":"structure",
      "required":[
        "Action",
        "ActivatedRule"
      ],
      "members":{
        "Action":{"shape":"ChangeAction"},
        "ActivatedRule":{"shape":"ActivatedRule"}
      }
    },
    "WebACLUpdates":{
      "type":"list",
      "member":{"shape":"WebACLUpdate"}
    },
    "XssMatchSet":{
      "type":"structure",
      "required":[
        "XssMatchSetId",
        "XssMatchTuples"
      ],
      "members":{
        "XssMatchSetId":{"shape":"ResourceId"},
        "Name":{"shape":"ResourceName"},
        "XssMatchTuples":{"shape":"XssMatchTuples"}
      }
    },
    "XssMatchSetSummaries":{
      "type":"list",
      "member":{"shape":"XssMatchSetSummary"}
    },
    "XssMatchSetSummary":{
      "type":"structure",
      "required":[
        "XssMatchSetId",
        "Name"
      ],
      "members":{
        "XssMatchSetId":{"shape":"ResourceId"},
        "Name":{"shape":"ResourceName"}
      }
    },
    "XssMatchSetUpdate":{
      "type":"structure",
      "required":[
        "Action",
        "XssMatchTuple"
      ],
      "members":{
        "Action":{"shape":"ChangeAction"},
        "XssMatchTuple":{"shape":"XssMatchTuple"}
      }
    },
    "XssMatchSetUpdates":{
      "type":"list",
      "member":{"shape":"XssMatchSetUpdate"}
    },
    "XssMatchTuple":{
      "type":"structure",
      "required":[
        "FieldToMatch",
        "TextTransformation"
      ],
      "members":{
        "FieldToMatch":{"shape":"FieldToMatch"},
        "TextTransformation":{"shape":"TextTransformation"}
      }
    },
    "XssMatchTuples":{
      "type":"list",
      "member":{"shape":"XssMatchTuple"}
    },
    "errorMessage":{"type":"string"}
  }
}
