# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/fidl/fidl.gni")

fidl("fuchsia.net.oldhttp") {
  # TODO(fxbug.dev/35879): Remove lint exclusions by fixing known FIDL lint violations in this target
  excluded_checks = [
    "invalid-case-for-decl-name",
    "protocol-name-includes-service",
    "string-bounds-not-specified",
    "vector-bounds-not-specified",
  ]

  sdk_category = "partner"

  sources = [
    "http_error.fidl",
    "http_header.fidl",
    "http_service.fidl",
    "url_body.fidl",
    "url_loader.fidl",
    "url_request.fidl",
    "url_response.fidl",
  ]

  public_deps = [ "//sdk/fidl/fuchsia.mem" ]
}
