| // 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; |
| optional int64 use_count = 22; |
| |
| // The time_t value of the last time this profile was used. This |
| // value makes sense wrt base::Time::To/FromTimeT, which measures |
| // from the Windows epoch. |
| optional int64 use_date = 23; |
| |
| // 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 recipient_name = 12; |
| 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; |
| } |