chromium/chrome/browser/apps/peripherals/proto/peripherals.proto

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package apps.proto;

import "chrome/browser/apps/almanac_api_client/proto/client_context.proto";

// This file is a mirror of the proto file maintained in the server code base at
// go/peripherals-proto. Changes should be made by updating the server code base
// and then copying the result to Chromium.

// Inbound request for the Peripherals endpoint.
message PeripheralsGetRequest {
  // Context information about the device making this request.
  optional ClientDeviceContext device_context = 1;

  // Context information about the user making this request.
  optional ClientUserContext user_context = 2;

  // The string device identifier (ie. "vpid:dvid") for the vendor/product being
  // requested.
  optional string device = 3;
}

message PeripheralsGetResponse {
  // An individual App Icon.
  message Icon {
    // Url to query to get the icon itself (ie. the bytes).
    optional string url = 1;

    // Width of the icon in pixels.
    optional int32 width_in_pixels = 2;

    // Mime type of the icon.
    optional string mime_type = 3;

    // Whether or not we have permission from the platform to mask the icon.
    // This means that ChromeOS will put a circle around it.
    optional bool is_masking_allowed = 4;
  }
  // The UUID of the AppGroup for this application.
  optional string app_group_uuid = 1;

  // The PackageId for this app.
  optional string package_id = 2;

  // The Icon to display for this app.
  optional Icon icon = 3;

  // The localised human readable string for the name of this app.
  optional string name = 4;

  // The URL to invoke to initiate Unified App Installation for this app.
  optional string action_link = 5;
}