chromium/components/sync/protocol/printer_specifics.proto

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Sync protocol datatype extension for printer data.

// If you change or add any fields in this file, update proto_visitors.h and
// potentially proto_enum_conversions.{h, cc}.

syntax = "proto2";

option java_multiple_files = true;
option java_package = "org.chromium.components.sync.protocol";

option optimize_for = LITE_RUNTIME;

package sync_pb;

// User PPD configuration
message PrinterPPDReference {
  // Url for user provided file.  Overrides other fields.
  optional string user_supplied_ppd_url = 1;

  // Retired fields
  optional string effective_manufacturer = 2 [deprecated = true];
  optional string effective_model = 3 [deprecated = true];

  // String identifying the type of printer, used to look up a ppd to drive the
  // printer.
  optional string effective_make_and_model = 4;

  // True if the printer should be automatically configured, false otherwise.
  optional bool autoconf = 5 [default = false];
}

message PrinterSpecifics {
  // Printer record GUID
  optional string id = 1;

  // User visible name.  Any string.
  optional string display_name = 2;

  // User visible description.  Any string.
  optional string description = 3;

  // Printer manufacturer.  Should be a known manufacturuer.
  // Deprecated in favor of make_and_model.
  optional string manufacturer = 4 [deprecated = true];

  // Printer model.  Should match a known model for the manufacturer.
  // Deprecated in favor of make_and_model.
  optional string model = 5 [deprecated = true];

  // Universal Resource Identifier for the printer on the network.  usb:// will
  // be the scheme for USB printers.  Example
  // ipp://address.example:port/queue/queue/queue.
  optional string uri = 6;

  // Universally Unique Identifier provided by the printer.  Used for unique
  // identification of printers in a zeroconf environment.
  optional string uuid = 7;

  // PPDData was deprecated in favor of PPDReference format.
  optional bytes ppd = 8 [deprecated = true];

  // Structure representing the user's ppd configuration.
  optional PrinterPPDReference ppd_reference = 9;

  // Timestamp when printer was last updated.
  optional int64 updated_timestamp = 10;

  // The make and model of the printer in one string.  The typical arrangement
  // for this is '<make> <model>'.  This aligns with the typical formatting of
  // the IPP attribute printer-make-and-model.
  optional string make_and_model = 11;

  // Universal Resource Identifier for the print server on the network.  This
  // will only be populated if the printer is from a print server.  Example
  // ipp://address.example:port/
  optional string print_server_uri = 12;
}