# Copyright 2018 The Fuchsia 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("account") {
  # TODO(fxb/35879): Remove lint exclusions by fixing known FIDL lint violations in this target
  excluded_checks = [ "string-bounds-not-specified" ]

  name = "fuchsia.identity.internal"

  sources = [
    "account_handler.fidl",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.auth",
    "//sdk/fidl/fuchsia.identity.account",
    "//sdk/fidl/fuchsia.identity.external",
    "//sdk/fidl/fuchsia.kms",
  ]
}

fidl("account-transfer") {
  name = "fuchsia.identity.transfer"

  sources = [
    "account_transfer.fidl",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.identity.account",
    "//sdk/fidl/fuchsia.kms",
  ]
}

fidl("account-prototype") {
  name = "fuchsia.identity.prototype"

  sources = [
    "account_transfer_prototype.fidl",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.identity.account",
    "//sdk/fidl/fuchsia.overnet.protocol",
  ]
}
