{
  "version": "2.0",
  "metadata": {
    "apiVersion": "2019-07-29",
    "endpointPrefix": "wafv2",
    "jsonVersion": "1.1",
    "protocol": "json",
    "serviceAbbreviation": "WAFV2",
    "serviceFullName": "AWS WAFV2",
    "serviceId": "WAFV2",
    "signatureVersion": "v4",
    "targetPrefix": "AWSWAF_20190729",
    "uid": "wafv2-2019-07-29"
  },
  "operations": {
    "AssociateWebACL": {
      "input": {
        "type": "structure",
        "required": [
          "WebACLArn",
          "ResourceArn"
        ],
        "members": {
          "WebACLArn": {},
          "ResourceArn": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "CheckCapacity": {
      "input": {
        "type": "structure",
        "required": [
          "Scope",
          "Rules"
        ],
        "members": {
          "Scope": {},
          "Rules": {
            "shape": "S6"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Capacity": {
            "type": "long"
          }
        }
      }
    },
    "CreateIPSet": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Scope",
          "IPAddressVersion",
          "Addresses"
        ],
        "members": {
          "Name": {},
          "Scope": {},
          "Description": {},
          "IPAddressVersion": {},
          "Addresses": {
            "shape": "S2g"
          },
          "Tags": {
            "shape": "S2i"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Summary": {
            "shape": "S2n"
          }
        }
      }
    },
    "CreateRegexPatternSet": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Scope",
          "RegularExpressionList"
        ],
        "members": {
          "Name": {},
          "Scope": {},
          "Description": {},
          "RegularExpressionList": {
            "shape": "S2r"
          },
          "Tags": {
            "shape": "S2i"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Summary": {
            "shape": "S2v"
          }
        }
      }
    },
    "CreateRuleGroup": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Scope",
          "Capacity",
          "VisibilityConfig"
        ],
        "members": {
          "Name": {},
          "Scope": {},
          "Capacity": {
            "type": "long"
          },
          "Description": {},
          "Rules": {
            "shape": "S6"
          },
          "VisibilityConfig": {
            "shape": "S28"
          },
          "Tags": {
            "shape": "S2i"
          },
          "CustomResponseBodies": {
            "shape": "S2y"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Summary": {
            "shape": "S33"
          }
        }
      }
    },
    "CreateWebACL": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Scope",
          "DefaultAction",
          "VisibilityConfig"
        ],
        "members": {
          "Name": {},
          "Scope": {},
          "DefaultAction": {
            "shape": "S35"
          },
          "Description": {},
          "Rules": {
            "shape": "S6"
          },
          "VisibilityConfig": {
            "shape": "S28"
          },
          "Tags": {
            "shape": "S2i"
          },
          "CustomResponseBodies": {
            "shape": "S2y"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Summary": {
            "shape": "S37"
          }
        }
      }
    },
    "DeleteFirewallManagerRuleGroups": {
      "input": {
        "type": "structure",
        "required": [
          "WebACLArn",
          "WebACLLockToken"
        ],
        "members": {
          "WebACLArn": {},
          "WebACLLockToken": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "NextWebACLLockToken": {}
        }
      }
    },
    "DeleteIPSet": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Scope",
          "Id",
          "LockToken"
        ],
        "members": {
          "Name": {},
          "Scope": {},
          "Id": {},
          "LockToken": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DeleteLoggingConfiguration": {
      "input": {
        "type": "structure",
        "required": [
          "ResourceArn"
        ],
        "members": {
          "ResourceArn": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DeletePermissionPolicy": {
      "input": {
        "type": "structure",
        "required": [
          "ResourceArn"
        ],
        "members": {
          "ResourceArn": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DeleteRegexPatternSet": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Scope",
          "Id",
          "LockToken"
        ],
        "members": {
          "Name": {},
          "Scope": {},
          "Id": {},
          "LockToken": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DeleteRuleGroup": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Scope",
          "Id",
          "LockToken"
        ],
        "members": {
          "Name": {},
          "Scope": {},
          "Id": {},
          "LockToken": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DeleteWebACL": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Scope",
          "Id",
          "LockToken"
        ],
        "members": {
          "Name": {},
          "Scope": {},
          "Id": {},
          "LockToken": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DescribeManagedRuleGroup": {
      "input": {
        "type": "structure",
        "required": [
          "VendorName",
          "Name",
          "Scope"
        ],
        "members": {
          "VendorName": {},
          "Name": {},
          "Scope": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Capacity": {
            "type": "long"
          },
          "Rules": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "Name": {},
                "Action": {
                  "shape": "S1s"
                }
              }
            }
          },
          "LabelNamespace": {},
          "AvailableLabels": {
            "shape": "S3q"
          },
          "ConsumedLabels": {
            "shape": "S3q"
          }
        }
      }
    },
    "DisassociateWebACL": {
      "input": {
        "type": "structure",
        "required": [
          "ResourceArn"
        ],
        "members": {
          "ResourceArn": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "GetIPSet": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Scope",
          "Id"
        ],
        "members": {
          "Name": {},
          "Scope": {},
          "Id": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "IPSet": {
            "type": "structure",
            "required": [
              "Name",
              "Id",
              "ARN",
              "IPAddressVersion",
              "Addresses"
            ],
            "members": {
              "Name": {},
              "Id": {},
              "ARN": {},
              "Description": {},
              "IPAddressVersion": {},
              "Addresses": {
                "shape": "S2g"
              }
            }
          },
          "LockToken": {}
        }
      }
    },
    "GetLoggingConfiguration": {
      "input": {
        "type": "structure",
        "required": [
          "ResourceArn"
        ],
        "members": {
          "ResourceArn": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "LoggingConfiguration": {
            "shape": "S3z"
          }
        }
      }
    },
    "GetPermissionPolicy": {
      "input": {
        "type": "structure",
        "required": [
          "ResourceArn"
        ],
        "members": {
          "ResourceArn": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Policy": {}
        }
      }
    },
    "GetRateBasedStatementManagedKeys": {
      "input": {
        "type": "structure",
        "required": [
          "Scope",
          "WebACLName",
          "WebACLId",
          "RuleName"
        ],
        "members": {
          "Scope": {},
          "WebACLName": {},
          "WebACLId": {},
          "RuleName": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "ManagedKeysIPV4": {
            "shape": "S4h"
          },
          "ManagedKeysIPV6": {
            "shape": "S4h"
          }
        }
      }
    },
    "GetRegexPatternSet": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Scope",
          "Id"
        ],
        "members": {
          "Name": {},
          "Scope": {},
          "Id": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "RegexPatternSet": {
            "type": "structure",
            "members": {
              "Name": {},
              "Id": {},
              "ARN": {},
              "Description": {},
              "RegularExpressionList": {
                "shape": "S2r"
              }
            }
          },
          "LockToken": {}
        }
      }
    },
    "GetRuleGroup": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Scope",
          "Id"
        ],
        "members": {
          "Name": {},
          "Scope": {},
          "Id": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "RuleGroup": {
            "type": "structure",
            "required": [
              "Name",
              "Id",
              "Capacity",
              "ARN",
              "VisibilityConfig"
            ],
            "members": {
              "Name": {},
              "Id": {},
              "Capacity": {
                "type": "long"
              },
              "ARN": {},
              "Description": {},
              "Rules": {
                "shape": "S6"
              },
              "VisibilityConfig": {
                "shape": "S28"
              },
              "LabelNamespace": {},
              "CustomResponseBodies": {
                "shape": "S2y"
              },
              "AvailableLabels": {
                "shape": "S3q"
              },
              "ConsumedLabels": {
                "shape": "S3q"
              }
            }
          },
          "LockToken": {}
        }
      }
    },
    "GetSampledRequests": {
      "input": {
        "type": "structure",
        "required": [
          "WebAclArn",
          "RuleMetricName",
          "Scope",
          "TimeWindow",
          "MaxItems"
        ],
        "members": {
          "WebAclArn": {},
          "RuleMetricName": {},
          "Scope": {},
          "TimeWindow": {
            "shape": "S4p"
          },
          "MaxItems": {
            "type": "long"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "SampledRequests": {
            "type": "list",
            "member": {
              "type": "structure",
              "required": [
                "Request",
                "Weight"
              ],
              "members": {
                "Request": {
                  "type": "structure",
                  "members": {
                    "ClientIP": {},
                    "Country": {},
                    "URI": {},
                    "Method": {},
                    "HTTPVersion": {},
                    "Headers": {
                      "shape": "S51"
                    }
                  }
                },
                "Weight": {
                  "type": "long"
                },
                "Timestamp": {
                  "type": "timestamp"
                },
                "Action": {},
                "RuleNameWithinRuleGroup": {},
                "RequestHeadersInserted": {
                  "shape": "S51"
                },
                "ResponseCodeSent": {
                  "type": "integer"
                },
                "Labels": {
                  "shape": "S25"
                }
              }
            }
          },
          "PopulationSize": {
            "type": "long"
          },
          "TimeWindow": {
            "shape": "S4p"
          }
        }
      }
    },
    "GetWebACL": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Scope",
          "Id"
        ],
        "members": {
          "Name": {},
          "Scope": {},
          "Id": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "WebACL": {
            "shape": "S5a"
          },
          "LockToken": {}
        }
      }
    },
    "GetWebACLForResource": {
      "input": {
        "type": "structure",
        "required": [
          "ResourceArn"
        ],
        "members": {
          "ResourceArn": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "WebACL": {
            "shape": "S5a"
          }
        }
      }
    },
    "ListAvailableManagedRuleGroups": {
      "input": {
        "type": "structure",
        "required": [
          "Scope"
        ],
        "members": {
          "Scope": {},
          "NextMarker": {},
          "Limit": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "NextMarker": {},
          "ManagedRuleGroups": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "VendorName": {},
                "Name": {},
                "Description": {}
              }
            }
          }
        }
      }
    },
    "ListIPSets": {
      "input": {
        "type": "structure",
        "required": [
          "Scope"
        ],
        "members": {
          "Scope": {},
          "NextMarker": {},
          "Limit": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "NextMarker": {},
          "IPSets": {
            "type": "list",
            "member": {
              "shape": "S2n"
            }
          }
        }
      }
    },
    "ListLoggingConfigurations": {
      "input": {
        "type": "structure",
        "members": {
          "Scope": {},
          "NextMarker": {},
          "Limit": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "LoggingConfigurations": {
            "type": "list",
            "member": {
              "shape": "S3z"
            }
          },
          "NextMarker": {}
        }
      }
    },
    "ListRegexPatternSets": {
      "input": {
        "type": "structure",
        "required": [
          "Scope"
        ],
        "members": {
          "Scope": {},
          "NextMarker": {},
          "Limit": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "NextMarker": {},
          "RegexPatternSets": {
            "type": "list",
            "member": {
              "shape": "S2v"
            }
          }
        }
      }
    },
    "ListResourcesForWebACL": {
      "input": {
        "type": "structure",
        "required": [
          "WebACLArn"
        ],
        "members": {
          "WebACLArn": {},
          "ResourceType": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "ResourceArns": {
            "type": "list",
            "member": {}
          }
        }
      }
    },
    "ListRuleGroups": {
      "input": {
        "type": "structure",
        "required": [
          "Scope"
        ],
        "members": {
          "Scope": {},
          "NextMarker": {},
          "Limit": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "NextMarker": {},
          "RuleGroups": {
            "type": "list",
            "member": {
              "shape": "S33"
            }
          }
        }
      }
    },
    "ListTagsForResource": {
      "input": {
        "type": "structure",
        "required": [
          "ResourceARN"
        ],
        "members": {
          "NextMarker": {},
          "Limit": {
            "type": "integer"
          },
          "ResourceARN": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "NextMarker": {},
          "TagInfoForResource": {
            "type": "structure",
            "members": {
              "ResourceARN": {},
              "TagList": {
                "shape": "S2i"
              }
            }
          }
        }
      }
    },
    "ListWebACLs": {
      "input": {
        "type": "structure",
        "required": [
          "Scope"
        ],
        "members": {
          "Scope": {},
          "NextMarker": {},
          "Limit": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "NextMarker": {},
          "WebACLs": {
            "type": "list",
            "member": {
              "shape": "S37"
            }
          }
        }
      }
    },
    "PutLoggingConfiguration": {
      "input": {
        "type": "structure",
        "required": [
          "LoggingConfiguration"
        ],
        "members": {
          "LoggingConfiguration": {
            "shape": "S3z"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "LoggingConfiguration": {
            "shape": "S3z"
          }
        }
      }
    },
    "PutPermissionPolicy": {
      "input": {
        "type": "structure",
        "required": [
          "ResourceArn",
          "Policy"
        ],
        "members": {
          "ResourceArn": {},
          "Policy": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "TagResource": {
      "input": {
        "type": "structure",
        "required": [
          "ResourceARN",
          "Tags"
        ],
        "members": {
          "ResourceARN": {},
          "Tags": {
            "shape": "S2i"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "UntagResource": {
      "input": {
        "type": "structure",
        "required": [
          "ResourceARN",
          "TagKeys"
        ],
        "members": {
          "ResourceARN": {},
          "TagKeys": {
            "type": "list",
            "member": {}
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "UpdateIPSet": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Scope",
          "Id",
          "Addresses",
          "LockToken"
        ],
        "members": {
          "Name": {},
          "Scope": {},
          "Id": {},
          "Description": {},
          "Addresses": {
            "shape": "S2g"
          },
          "LockToken": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "NextLockToken": {}
        }
      }
    },
    "UpdateRegexPatternSet": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Scope",
          "Id",
          "RegularExpressionList",
          "LockToken"
        ],
        "members": {
          "Name": {},
          "Scope": {},
          "Id": {},
          "Description": {},
          "RegularExpressionList": {
            "shape": "S2r"
          },
          "LockToken": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "NextLockToken": {}
        }
      }
    },
    "UpdateRuleGroup": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Scope",
          "Id",
          "VisibilityConfig",
          "LockToken"
        ],
        "members": {
          "Name": {},
          "Scope": {},
          "Id": {},
          "Description": {},
          "Rules": {
            "shape": "S6"
          },
          "VisibilityConfig": {
            "shape": "S28"
          },
          "LockToken": {},
          "CustomResponseBodies": {
            "shape": "S2y"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "NextLockToken": {}
        }
      }
    },
    "UpdateWebACL": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Scope",
          "Id",
          "DefaultAction",
          "VisibilityConfig",
          "LockToken"
        ],
        "members": {
          "Name": {},
          "Scope": {},
          "Id": {},
          "DefaultAction": {
            "shape": "S35"
          },
          "Description": {},
          "Rules": {
            "shape": "S6"
          },
          "VisibilityConfig": {
            "shape": "S28"
          },
          "LockToken": {},
          "CustomResponseBodies": {
            "shape": "S2y"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "NextLockToken": {}
        }
      }
    }
  },
  "shapes": {
    "S6": {
      "type": "list",
      "member": {
        "type": "structure",
        "required": [
          "Name",
          "Priority",
          "Statement",
          "VisibilityConfig"
        ],
        "members": {
          "Name": {},
          "Priority": {
            "type": "integer"
          },
          "Statement": {
            "shape": "Sa"
          },
          "Action": {
            "shape": "S1s"
          },
          "OverrideAction": {
            "shape": "S23"
          },
          "RuleLabels": {
            "shape": "S25"
          },
          "VisibilityConfig": {
            "shape": "S28"
          }
        }
      }
    },
    "Sa": {
      "type": "structure",
      "members": {
        "ByteMatchStatement": {
          "type": "structure",
          "required": [
            "SearchString",
            "FieldToMatch",
            "TextTransformations",
            "PositionalConstraint"
          ],
          "members": {
            "SearchString": {
              "type": "blob"
            },
            "FieldToMatch": {
              "shape": "Sd"
            },
            "TextTransformations": {
              "shape": "St"
            },
            "PositionalConstraint": {}
          }
        },
        "SqliMatchStatement": {
          "type": "structure",
          "required": [
            "FieldToMatch",
            "TextTransformations"
          ],
          "members": {
            "FieldToMatch": {
              "shape": "Sd"
            },
            "TextTransformations": {
              "shape": "St"
            }
          }
        },
        "XssMatchStatement": {
          "type": "structure",
          "required": [
            "FieldToMatch",
            "TextTransformations"
          ],
          "members": {
            "FieldToMatch": {
              "shape": "Sd"
            },
            "TextTransformations": {
              "shape": "St"
            }
          }
        },
        "SizeConstraintStatement": {
          "type": "structure",
          "required": [
            "FieldToMatch",
            "ComparisonOperator",
            "Size",
            "TextTransformations"
          ],
          "members": {
            "FieldToMatch": {
              "shape": "Sd"
            },
            "ComparisonOperator": {},
            "Size": {
              "type": "long"
            },
            "TextTransformations": {
              "shape": "St"
            }
          }
        },
        "GeoMatchStatement": {
          "type": "structure",
          "members": {
            "CountryCodes": {
              "type": "list",
              "member": {}
            },
            "ForwardedIPConfig": {
              "shape": "S16"
            }
          }
        },
        "RuleGroupReferenceStatement": {
          "shape": "S19"
        },
        "IPSetReferenceStatement": {
          "type": "structure",
          "required": [
            "ARN"
          ],
          "members": {
            "ARN": {},
            "IPSetForwardedIPConfig": {
              "type": "structure",
              "required": [
                "HeaderName",
                "FallbackBehavior",
                "Position"
              ],
              "members": {
                "HeaderName": {},
                "FallbackBehavior": {},
                "Position": {}
              }
            }
          }
        },
        "RegexPatternSetReferenceStatement": {
          "type": "structure",
          "required": [
            "ARN",
            "FieldToMatch",
            "TextTransformations"
          ],
          "members": {
            "ARN": {},
            "FieldToMatch": {
              "shape": "Sd"
            },
            "TextTransformations": {
              "shape": "St"
            }
          }
        },
        "RateBasedStatement": {
          "type": "structure",
          "required": [
            "Limit",
            "AggregateKeyType"
          ],
          "members": {
            "Limit": {
              "type": "long"
            },
            "AggregateKeyType": {},
            "ScopeDownStatement": {
              "shape": "Sa"
            },
            "ForwardedIPConfig": {
              "shape": "S16"
            }
          }
        },
        "AndStatement": {
          "type": "structure",
          "required": [
            "Statements"
          ],
          "members": {
            "Statements": {
              "shape": "S1k"
            }
          }
        },
        "OrStatement": {
          "type": "structure",
          "required": [
            "Statements"
          ],
          "members": {
            "Statements": {
              "shape": "S1k"
            }
          }
        },
        "NotStatement": {
          "type": "structure",
          "required": [
            "Statement"
          ],
          "members": {
            "Statement": {
              "shape": "Sa"
            }
          }
        },
        "ManagedRuleGroupStatement": {
          "shape": "S1n"
        },
        "LabelMatchStatement": {
          "type": "structure",
          "required": [
            "Scope",
            "Key"
          ],
          "members": {
            "Scope": {},
            "Key": {}
          }
        }
      }
    },
    "Sd": {
      "type": "structure",
      "members": {
        "SingleHeader": {
          "type": "structure",
          "required": [
            "Name"
          ],
          "members": {
            "Name": {}
          }
        },
        "SingleQueryArgument": {
          "type": "structure",
          "required": [
            "Name"
          ],
          "members": {
            "Name": {}
          }
        },
        "AllQueryArguments": {
          "type": "structure",
          "members": {}
        },
        "UriPath": {
          "type": "structure",
          "members": {}
        },
        "QueryString": {
          "type": "structure",
          "members": {}
        },
        "Body": {
          "type": "structure",
          "members": {}
        },
        "Method": {
          "type": "structure",
          "members": {}
        },
        "JsonBody": {
          "type": "structure",
          "required": [
            "MatchPattern",
            "MatchScope"
          ],
          "members": {
            "MatchPattern": {
              "type": "structure",
              "members": {
                "All": {
                  "type": "structure",
                  "members": {}
                },
                "IncludedPaths": {
                  "type": "list",
                  "member": {}
                }
              }
            },
            "MatchScope": {},
            "InvalidFallbackBehavior": {}
          }
        }
      }
    },
    "St": {
      "type": "list",
      "member": {
        "type": "structure",
        "required": [
          "Priority",
          "Type"
        ],
        "members": {
          "Priority": {
            "type": "integer"
          },
          "Type": {}
        }
      }
    },
    "S16": {
      "type": "structure",
      "required": [
        "HeaderName",
        "FallbackBehavior"
      ],
      "members": {
        "HeaderName": {},
        "FallbackBehavior": {}
      }
    },
    "S19": {
      "type": "structure",
      "required": [
        "ARN"
      ],
      "members": {
        "ARN": {},
        "ExcludedRules": {
          "shape": "S1a"
        }
      }
    },
    "S1a": {
      "type": "list",
      "member": {
        "type": "structure",
        "required": [
          "Name"
        ],
        "members": {
          "Name": {}
        }
      }
    },
    "S1k": {
      "type": "list",
      "member": {
        "shape": "Sa"
      }
    },
    "S1n": {
      "type": "structure",
      "required": [
        "VendorName",
        "Name"
      ],
      "members": {
        "VendorName": {},
        "Name": {},
        "ExcludedRules": {
          "shape": "S1a"
        },
        "ScopeDownStatement": {
          "shape": "Sa"
        }
      }
    },
    "S1s": {
      "type": "structure",
      "members": {
        "Block": {
          "shape": "S1t"
        },
        "Allow": {
          "shape": "S20"
        },
        "Count": {
          "shape": "S22"
        }
      }
    },
    "S1t": {
      "type": "structure",
      "members": {
        "CustomResponse": {
          "type": "structure",
          "required": [
            "ResponseCode"
          ],
          "members": {
            "ResponseCode": {
              "type": "integer"
            },
            "CustomResponseBodyKey": {},
            "ResponseHeaders": {
              "shape": "S1w"
            }
          }
        }
      }
    },
    "S1w": {
      "type": "list",
      "member": {
        "type": "structure",
        "required": [
          "Name",
          "Value"
        ],
        "members": {
          "Name": {},
          "Value": {}
        }
      }
    },
    "S20": {
      "type": "structure",
      "members": {
        "CustomRequestHandling": {
          "shape": "S21"
        }
      }
    },
    "S21": {
      "type": "structure",
      "required": [
        "InsertHeaders"
      ],
      "members": {
        "InsertHeaders": {
          "shape": "S1w"
        }
      }
    },
    "S22": {
      "type": "structure",
      "members": {
        "CustomRequestHandling": {
          "shape": "S21"
        }
      }
    },
    "S23": {
      "type": "structure",
      "members": {
        "Count": {
          "shape": "S22"
        },
        "None": {
          "type": "structure",
          "members": {}
        }
      }
    },
    "S25": {
      "type": "list",
      "member": {
        "type": "structure",
        "required": [
          "Name"
        ],
        "members": {
          "Name": {}
        }
      }
    },
    "S28": {
      "type": "structure",
      "required": [
        "SampledRequestsEnabled",
        "CloudWatchMetricsEnabled",
        "MetricName"
      ],
      "members": {
        "SampledRequestsEnabled": {
          "type": "boolean"
        },
        "CloudWatchMetricsEnabled": {
          "type": "boolean"
        },
        "MetricName": {}
      }
    },
    "S2g": {
      "type": "list",
      "member": {}
    },
    "S2i": {
      "type": "list",
      "member": {
        "type": "structure",
        "required": [
          "Key",
          "Value"
        ],
        "members": {
          "Key": {},
          "Value": {}
        }
      }
    },
    "S2n": {
      "type": "structure",
      "members": {
        "Name": {},
        "Id": {},
        "Description": {},
        "LockToken": {},
        "ARN": {}
      }
    },
    "S2r": {
      "type": "list",
      "member": {
        "type": "structure",
        "members": {
          "RegexString": {}
        }
      }
    },
    "S2v": {
      "type": "structure",
      "members": {
        "Name": {},
        "Id": {},
        "Description": {},
        "LockToken": {},
        "ARN": {}
      }
    },
    "S2y": {
      "type": "map",
      "key": {},
      "value": {
        "type": "structure",
        "required": [
          "ContentType",
          "Content"
        ],
        "members": {
          "ContentType": {},
          "Content": {}
        }
      }
    },
    "S33": {
      "type": "structure",
      "members": {
        "Name": {},
        "Id": {},
        "Description": {},
        "LockToken": {},
        "ARN": {}
      }
    },
    "S35": {
      "type": "structure",
      "members": {
        "Block": {
          "shape": "S1t"
        },
        "Allow": {
          "shape": "S20"
        }
      }
    },
    "S37": {
      "type": "structure",
      "members": {
        "Name": {},
        "Id": {},
        "Description": {},
        "LockToken": {},
        "ARN": {}
      }
    },
    "S3q": {
      "type": "list",
      "member": {
        "type": "structure",
        "members": {
          "Name": {}
        }
      }
    },
    "S3z": {
      "type": "structure",
      "required": [
        "ResourceArn",
        "LogDestinationConfigs"
      ],
      "members": {
        "ResourceArn": {},
        "LogDestinationConfigs": {
          "type": "list",
          "member": {}
        },
        "RedactedFields": {
          "type": "list",
          "member": {
            "shape": "Sd"
          }
        },
        "ManagedByFirewallManager": {
          "type": "boolean"
        },
        "LoggingFilter": {
          "type": "structure",
          "required": [
            "Filters",
            "DefaultBehavior"
          ],
          "members": {
            "Filters": {
              "type": "list",
              "member": {
                "type": "structure",
                "required": [
                  "Behavior",
                  "Requirement",
                  "Conditions"
                ],
                "members": {
                  "Behavior": {},
                  "Requirement": {},
                  "Conditions": {
                    "type": "list",
                    "member": {
                      "type": "structure",
                      "members": {
                        "ActionCondition": {
                          "type": "structure",
                          "required": [
                            "Action"
                          ],
                          "members": {
                            "Action": {}
                          }
                        },
                        "LabelNameCondition": {
                          "type": "structure",
                          "required": [
                            "LabelName"
                          ],
                          "members": {
                            "LabelName": {}
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "DefaultBehavior": {}
          }
        }
      }
    },
    "S4h": {
      "type": "structure",
      "members": {
        "IPAddressVersion": {},
        "Addresses": {
          "shape": "S2g"
        }
      }
    },
    "S4p": {
      "type": "structure",
      "required": [
        "StartTime",
        "EndTime"
      ],
      "members": {
        "StartTime": {
          "type": "timestamp"
        },
        "EndTime": {
          "type": "timestamp"
        }
      }
    },
    "S51": {
      "type": "list",
      "member": {
        "type": "structure",
        "members": {
          "Name": {},
          "Value": {}
        }
      }
    },
    "S5a": {
      "type": "structure",
      "required": [
        "Name",
        "Id",
        "ARN",
        "DefaultAction",
        "VisibilityConfig"
      ],
      "members": {
        "Name": {},
        "Id": {},
        "ARN": {},
        "DefaultAction": {
          "shape": "S35"
        },
        "Description": {},
        "Rules": {
          "shape": "S6"
        },
        "VisibilityConfig": {
          "shape": "S28"
        },
        "Capacity": {
          "type": "long"
        },
        "PreProcessFirewallManagerRuleGroups": {
          "shape": "S5b"
        },
        "PostProcessFirewallManagerRuleGroups": {
          "shape": "S5b"
        },
        "ManagedByFirewallManager": {
          "type": "boolean"
        },
        "LabelNamespace": {},
        "CustomResponseBodies": {
          "shape": "S2y"
        }
      }
    },
    "S5b": {
      "type": "list",
      "member": {
        "type": "structure",
        "required": [
          "Name",
          "Priority",
          "FirewallManagerStatement",
          "OverrideAction",
          "VisibilityConfig"
        ],
        "members": {
          "Name": {},
          "Priority": {
            "type": "integer"
          },
          "FirewallManagerStatement": {
            "type": "structure",
            "members": {
              "ManagedRuleGroupStatement": {
                "shape": "S1n"
              },
              "RuleGroupReferenceStatement": {
                "shape": "S19"
              }
            }
          },
          "OverrideAction": {
            "shape": "S23"
          },
          "VisibilityConfig": {
            "shape": "S28"
          }
        }
      }
    }
  }
}