// 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.
library fuchsia.settings.policy;

/// Common error code used across policies.
type Error = strict enum {
    /// Generic internal failure.
    FAILED = 1;

    /// The specified policy ID is not known.
    ///
    /// This may happen if another client removed a policy between a Get call
    /// and a RemovePolicy call.
    UNKNOWN_POLICY = 2;

    /// The specified policy contradicts an existing policy.
    ///
    /// This may happen if another client added a policy between a Get call
    /// and an AddPolicy call.
    INVALID_POLICY = 3;
};
