# Copyright 2017 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# Contributing to Chrome DevTools Protocol: https://goo.gle/devtools-contribution-guide-cdp

experimental domain FileSystem
  depends on Network
  depends on Storage

  type File extends object
    properties
      string name
      # Timestamp
      Network.TimeSinceEpoch lastModified
      # Size in bytes
      number size
      string type

  type Directory extends object
    properties
      string name
      array of string nestedDirectories
      # Files that are directly nested under this directory.
      array of File nestedFiles

  type BucketFileSystemLocator extends object
    properties
      # Storage key
      Storage.SerializedStorageKey storageKey
      # Bucket name. Not passing a `bucketName` will retrieve the default Bucket. (https://developer.mozilla.org/en-US/docs/Web/API/Storage_API#storage_buckets)
      optional string bucketName
      # Path to the directory using each path component as an array item.
      array of string pathComponents

  command getDirectory
    parameters
      BucketFileSystemLocator bucketFileSystemLocator
    returns
      # Returns the directory object at the path.
      Directory directory
