blob: 5e65bdd9c9b090d789dbe4e89da70bd948da567c [file] [log] [blame]
// Copyright 2019 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.
library fuchsia.migration;
using fuchsia.io;
type MigrationStatus = strict enum {
UNKNOWN = 1;
IN_PROGRESS = 2;
COMPLETE = 3;
ENCOUNTERED_ERROR = 4;
};
/// Table for state of migration operations.
type MigrationState = table {
1: status MigrationStatus;
2: progress_percentage uint8;
};
protocol Provider {
Get(resource struct {
dir server_end:fuchsia.io.Directory;
});
Processed();
};
@discoverable
protocol CastProvider {
compose Provider;
};
@discoverable
protocol DisplayProvider {
compose Provider;
};
@discoverable
protocol KronkProvider {
compose Provider;
};
@discoverable
protocol UltrasoundProvider {
compose Provider;
};
@discoverable
protocol ProductPolicyProvider {
compose Provider;
};
/// Protocol to watch for changes when a migration of system data is started.
@discoverable
protocol State {
/// Hanging get. Will return immediatedly on first call per connection
/// and then on change after that.
Watch() -> (struct {
state MigrationState;
});
};