# CloudStorage Protocol Reference

# CloudStorage

    public protocol CloudStorage : StorageInterface

The `CloudStorage` represents `StorageInterface`s that are synchronized from a cloud-based store.

- `cacheFileURL`

  The `NSURL` that points to the store file

  #### Declaration

  Swift

      var cacheFileURL: URL { get }

- `cloudStorageOptions`

  Options that tell the `DataStack` how to setup the persistent store

  #### Declaration

  Swift

      var cloudStorageOptions: CloudStorageOptions { get }

- `dictionary(forOptions:)`

  The options dictionary for the specified `CloudStorageOptions`

  #### Declaration

  Swift

      func dictionary(forOptions options: CloudStorageOptions) -> [AnyHashable : Any]?

- `cs_eraseStorageAndWait(soureModel:)`

  Called by the `DataStack` to perform actual deletion of the store file from disk. Do not call directly! The `sourceModel` argument is a hint for the existing store’s model version. Implementers can use the `sourceModel` to perform necessary store operations. (Cloud stores for example, can set the NSPersistentStoreRemoveUbiquitousMetadataOption option before deleting)

  #### Declaration

  Swift

      func cs_eraseStorageAndWait(soureModel: NSManagedObjectModel) throws