naiveproxy/components/arc/common/policy.mojom

105 lines
3.8 KiB
Plaintext
Raw Normal View History

2018-12-10 05:59:24 +03:00
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Next MinVersion: 5
module arc.mojom;
import "mojo/public/mojom/base/time.mojom";
[Extensible]
//See depot/google3/wireless/android/enterprise/clouddps/proto/clouddps.proto
enum InstallErrorReason {
// If the reason is unspecified, this error should be treated as a
// non-transient error.
REASON_UNSPECIFIED = 0,
// The server didn't get a response from Play in time. The install may
// still succeed or may fail with any error.
TIMEOUT = 1,
// A potentially transient error, for example, the device is not found (due
// to replication delay), or Play was unavailable. A retry in a short amount
// of time is likely to succeed.
TRANSIENT_ERROR = 2,
// The app was not found in Play.
NOT_FOUND = 3,
// The app is incompatible with the device.
NOT_COMPATIBLE_WITH_DEVICE = 4,
// The app has not been approved by the admin.
NOT_APPROVED = 5,
// The app has new permissions that have not been accepted by the admin.
PERMISSIONS_NOT_ACCEPTED = 6,
// The app is not available in the user's country.
NOT_AVAILABLE_IN_COUNTRY = 7,
// There are no more licenses to assign to the user.
NO_LICENSES_REMAINING = 8,
// The enterprise is no longer enrolled with Play for Work or CloudDPC is
// not enabled for the enterprise.
NOT_ENROLLED = 9,
// The user is no longer valid. The user may have been deleted or disabled.
USER_INVALID = 10,
};
// Should be kept in sync with device_management_backend.proto/
// RemoteCommandResult/ResultType.
[Extensible]
enum CommandResultType {
IGNORED = 0, // The command was ignored as obsolete.
FAILURE = 1, // The command could not be executed.
SUCCESS = 2, // The command was successfully executed.
};
// Next Method ID: 2
interface PolicyHost {
// Get policies from Chrome OS, as JSON-encoded dictionary with the policies'
// names as keys and their values as values. The list of possible policies can
// be found in components/policy/resources/policy_templates.json
GetPolicies@0() => (string policies);
// Pass a JSON with policy compliance details that reference fields in
// CloudDps NonComplianceReason. Should return ChromeOS response to the report
// in JSON format as in CloudDps PolicyComplianceReportResponse.
// ChromeOS always returns that it's compliant with the report.
[MinVersion=1] ReportCompliance@1(string request) => (string response);
// Reports that request was sent to CloudDPS for set of packages.
[MinVersion=3] ReportCloudDpsRequested(mojo_base.mojom.Time time,
array<string> package_names);
// Reports that successful response was received from CloudDPS for set of
// packages.
[MinVersion=3] ReportCloudDpsSucceeded(mojo_base.mojom.Time time,
array<string> package_names);
// Reports that CloudDPS reports an error for packages.
[MinVersion=3] ReportCloudDpsFailed(mojo_base.mojom.Time time,
string package_name,
InstallErrorReason reason);
};
// Next Method ID: 4
interface PolicyInstance {
// DEPRECATED: Please use Init@2 instead.
InitDeprecated@0(PolicyHost host_ptr);
// Establishes full-duplex communication with the host.
[MinVersion=2] Init@2(PolicyHost host_ptr) => ();
// Indicates some policies have changed
OnPolicyUpdated@1();
// Forwards a command received from the management server. The payload is
// opaque to Chrome (it contains JSON from the RemoteCommand.payload field for
// the USER_ARC_COMMAND RemoteCommand - cf. device_management_backend.proto).
[MinVersion=4] OnCommandReceived@3(string command)
=> (CommandResultType result);
};