// 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; } message WalletMaskedCreditCard { enum WalletCardStatus { VALID = 0; EXPIRED = 1; } enum WalletCardType { UNKNOWN = 0; AMEX = 1; DISCOVER = 2; JCB = 3; MAESTRO = 4; MASTER_CARD = 5; SOLO = 6; SWITCH = 7; VISA = 8; } // Server-generated unique ID string. This is opaque to the client. optional string id = 1; // What the server thinks of this card. optional WalletCardStatus status = 2; optional string name_on_card = 3; optional WalletCardType type = 4; // Last 4 digits of the credit card number. optional string last_four = 5; // Month number 1-12. optional int32 exp_month = 6; // Four-digit year (e.g. 2017). optional int32 exp_year = 7; } // Different than an AutofillProfile because this represents some known address // on the server that is pulled down rather than synced between Chromes. message WalletPostalAddress { // Server-generated unique ID string. This is opaque to the client. optional string id = 1; optional string company_name = 2; // This is the street address, of which there may be multiple lines. This // corresponds to "address_home_line[1|2] in the AutofillProfileSpecifics // message above. In some locales there may be more than two lines. repeated string street_address = 3; // Also known as "administrative area". This is normally the state or // province in most countries. optional string address_1 = 4; // Also known as "locality". In the US this is the city. optional string address_2 = 5; // A sub-classification beneath the city, e.g. an inner-city district or // suburb. Also known as "dependent_locality" optional string address_3 = 6; // Used in certain countries. Also known as "sub_dependent_locality". optional string address_4 = 7; optional string postal_code = 8; // Similar to the zipcode column, but used for businesses or organizations // that might not be geographically contiguous. The canonical example is // CEDEX in France. optional string sorting_code = 9; optional string country_code = 10; optional string language_code = 11; } message AutofillWalletSpecifics { enum WalletInfoType { UNKNOWN = 0; MASKED_CREDIT_CARD = 1; POSTAL_ADDRESS = 2; } optional WalletInfoType type = 1; // This field exists if and only if the "type" field equals to // MASKED_CREDIT_CARD. optional WalletMaskedCreditCard masked_card = 2; // This field exists if and only if the "type" field equals to ADDRESS. optional WalletPostalAddress address = 3; }