// Copyright (c) 2012 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.
//
// Sync protocol datatype extension for autofill.

// Update proto_value_conversions{.h,.cc,_unittest.cc} if you change
// any fields in this file.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;
option retain_unknown_fields = true;

package sync_pb;

// Properties of autofill sync objects.

// An AutofillProfile.
message AutofillProfileSpecifics {
  optional string guid = 15;
  optional string origin = 16;

  // Contact info.
  repeated string name_first = 2;
  repeated string name_middle = 3;
  repeated string name_last = 4;
  repeated string name_full = 21;
  repeated string email_address = 5;
  optional string company_name = 6;

  // Address.
  optional string address_home_line1 = 7;
  optional string address_home_line2 = 8;
  optional string address_home_city = 9;
  optional string address_home_state = 10;
  optional string address_home_zip = 11;
  optional string address_home_country = 12;

  // Additional address fields for i18n.
  optional string address_home_street_address = 17;
  optional string address_home_sorting_code = 18;
  optional string address_home_dependent_locality = 19;
  optional string address_home_language_code = 20;

  // Phone.
  repeated string phone_home_whole_number = 13;

  // Deprecated.
  optional string label = 1 [deprecated=true];
  optional string phone_fax_whole_number = 14 [deprecated=true];
}

message AutofillSpecifics {
  // If any of these 3 fields are present, then all 3 should be, and it implies
  // that this entity represents a classic autofill object.  In this case,
  // none of the autofill++ objects below should be present.
  optional string name = 1;
  optional string value = 2;
  repeated int64 usage_timestamp = 3;

  // An autofill++ profile object.  If present, indicates this entity
  // represents an AutofillProfile exclusively, and no other fields (such as
  // name/value or credit_card) should be present.
  optional AutofillProfileSpecifics profile = 4;

  // Obsolete credit card fields.
  // optional bytes deprecated_encrypted_credit_card = 5;
  // optional AutofillCreditCardSpecifics deprecated_credit_card = 6;
}