# Copyright 2020 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.

# Please, read https://fuchsia.dev/fuchsia-src/community/contribute/docs/documentation_navigation_toc
# before making changes to this file, and add a member of the fuchsia.dev
# team as reviewer
toc:
- title: "Overview"
  path: /docs/reference/diagnostics/README.md

# TODO(fxbug.dev/60819)
# - title: "Glossary"
#   path: /docs/reference/diagnostics/glossary.md

# TODO(fxbug.dev/60821)
# - title: "Data"
#   path: /docs/reference/diagnostics/data.md

# TODO(fxbug.dev/60763)
# - title: "Access"
#   path: /docs/reference/diagnostics/access.md

# TODO(fxbug.dev/60811)
# - title: "Selectors"
#   path: /docs/reference/diagnostics/selectors.md

# TODO(fxbug.dev/60812)
# - title: "Product Integration"
#   path: /docs/reference/diagnostics/products.md

# TODO(fxbug.dev/60768)
# - title: "Component Lifecycle"
#   path: /docs/reference/diagnostics/lifecycle.md

- title: "Inspect"
  section:
  - title: "Overview"
    path: /docs/reference/diagnostics/inspect

  # TODO(fxbug.dev/60817)
  # - title: "Access"
  #   path: /docs/reference/diagnostics/inspect/access.md

  - title: "Inspect VMO file format"
    path: /docs/reference/diagnostics/inspect/vmo-format.md
  - title: "Extending the VMO file format"
    path: /docs/reference/diagnostics/inspect/updating-vmo-format.md

  # TODO(fxbug.dev/60816)
  # - title: "VMO Lifecycle"
  #   path: /docs/reference/diagnostics/inspect/lifecycle.md

  - title: "Inspect discovery and hosting"
    path: /docs/reference/diagnostics/inspect/tree.md
  - title: "Validating implementations"
    section:
    - title: "Validator architecture"
      path: /docs/reference/diagnostics/inspect/validator/README.md
    - title: "Inspect validator puppet architecture"
      path: /docs/reference/diagnostics/inspect/validator/puppet.md
- title: "Logs"
  section:
  - title: "Overview"
    path: /docs/reference/diagnostics/logs

  - title: "Message encoding"
    path: /docs/reference/diagnostics/logs/encoding.md

  - title: "Access"
    path: /docs/reference/diagnostics/logs/access.md

# TODO(fxbug.dev/60813)
# - title: "Producers"
#   path: /docs/reference/diagnostics/producers.md

- title: "Consumers"
  section:
  # - title: "Analysis"
  #   section:

  # TODO(fxbug.dev/60826)
  #   - title: "Detect"
  #     path: /docs/reference/diagnostics/consumers/detect.md

  # TODO(fxbug.dev/53921)
  #   - title: "Log Stats"
  #     path: /docs/reference/diagnostics/consumers/log-stats.md

  # - title: "Forwarding"
  #   section:

  # TODO(fxbug.dev/60825)
  #   - title: "Forensics"
  #     path: /docs/reference/diagnostics/consumers/forensics.md

  # TODO(fxbug.dev/60823)
  #   - title: "System Monitor"
  #     path: /docs/reference/diagnostics/consumers/system-monitor.md

  - title: "Local and development"
    section:
    - title: "iquery"
      path: /docs/reference/diagnostics/consumers/iquery.md

    - title: "log_listener CLI"
      path: /docs/reference/diagnostics/consumers/log_listener.md

    # TODO(fxbug.dev/60828)
    # - title: "triage tool"
    #   path: /docs/reference/diagnostics/consumers/triage.md
