blob: b2c1b88786e47b7412825b72094a8915f24f8c38 [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.
@available(added=7)
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;
};
closed protocol Provider {
strict Get(resource struct {
dir server_end:fuchsia.io.Directory;
});
strict Processed();
};
@discoverable
closed protocol CastProvider {
compose Provider;
};
@discoverable
closed protocol DisplayProvider {
compose Provider;
};
@discoverable
closed protocol KronkProvider {
compose Provider;
};
@discoverable
closed protocol UltrasoundProvider {
compose Provider;
};
@discoverable
closed protocol ProductPolicyProvider {
compose Provider;
};
/// Protocol to watch for changes when a migration of system data is started.
@discoverable
closed protocol State {
/// Hanging get. Will return immediatedly on first call per connection
/// and then on change after that.
strict Watch() -> (struct {
state MigrationState;
});
};