// 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 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;
}
