[Telemetry] Add interaction_record field to Value
[chromium-blink-merge.git] / sync / protocol / autofill_specifics.proto
blob5abb158ed81d043076dff9d20cdcd87266ce013f
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 //
5 // Sync protocol datatype extension for autofill.
7 // Update proto_value_conversions{.h,.cc,_unittest.cc} if you change
8 // any fields in this file.
10 syntax = "proto2";
12 option optimize_for = LITE_RUNTIME;
13 option retain_unknown_fields = true;
15 package sync_pb;
17 // Properties of autofill sync objects.
19 // An AutofillProfile.
20 message AutofillProfileSpecifics {
21   optional string guid = 15;
22   optional string origin = 16;
23   optional int64 use_count = 22;
25   // The time_t value of the last time this profile was used. This
26   // value makes sense wrt base::Time::To/FromTimeT, which measures
27   // from the Windows epoch.
28   optional int64 use_date = 23;
30   // Contact info.
31   repeated string name_first = 2;
32   repeated string name_middle = 3;
33   repeated string name_last = 4;
34   repeated string name_full = 21;
35   repeated string email_address = 5;
36   optional string company_name = 6;
38   // Address.
39   optional string address_home_line1 = 7;
40   optional string address_home_line2 = 8;
41   optional string address_home_city = 9;
42   optional string address_home_state = 10;
43   optional string address_home_zip = 11;
44   optional string address_home_country = 12;
46   // Additional address fields for i18n.
47   optional string address_home_street_address = 17;
48   optional string address_home_sorting_code = 18;
49   optional string address_home_dependent_locality = 19;
50   optional string address_home_language_code = 20;
52   // Phone.
53   repeated string phone_home_whole_number = 13;
55   // Deprecated.
56   optional string label = 1 [deprecated=true];
57   optional string phone_fax_whole_number = 14 [deprecated=true];
60 message AutofillSpecifics {
61   // If any of these 3 fields are present, then all 3 should be, and it implies
62   // that this entity represents a classic autofill object.  In this case,
63   // none of the autofill++ objects below should be present.
64   optional string name = 1;
65   optional string value = 2;
66   repeated int64 usage_timestamp = 3;
68   // An autofill++ profile object.  If present, indicates this entity
69   // represents an AutofillProfile exclusively, and no other fields (such as
70   // name/value or credit_card) should be present.
71   optional AutofillProfileSpecifics profile = 4;
73   // Obsolete credit card fields.
74   // optional bytes deprecated_encrypted_credit_card = 5;
75   // optional AutofillCreditCardSpecifics deprecated_credit_card = 6;
78 message WalletMaskedCreditCard {
79   enum WalletCardStatus {
80     VALID = 0;
81     EXPIRED = 1;
82   }
84   enum WalletCardType {
85     UNKNOWN = 0;
86     AMEX = 1;
87     DISCOVER = 2;
88     JCB = 3;
89     MAESTRO = 4;
90     MASTER_CARD = 5;
91     SOLO = 6;
92     SWITCH = 7;
93     VISA = 8;
94   }
96   // Server-generated unique ID string. This is opaque to the client.
97   optional string id = 1;
99   // What the server thinks of this card.
100   optional WalletCardStatus status = 2;
102   optional string name_on_card = 3;
104   optional WalletCardType type = 4;
106   // Last 4 digits of the credit card number.
107   optional string last_four = 5;
109   // Month number 1-12.
110   optional int32 exp_month = 6;
112   // Four-digit year (e.g. 2017).
113   optional int32 exp_year = 7;
116 // Different than an AutofillProfile because this represents some known address
117 // on the server that is pulled down rather than synced between Chromes.
118 message WalletPostalAddress {
119   // Server-generated unique ID string. This is opaque to the client.
120   optional string id = 1; 
122   optional string recipient_name = 12;
123   optional string company_name = 2;
125   // This is the street address, of which there may be multiple lines. This
126   // corresponds to "address_home_line[1|2] in the AutofillProfileSpecifics
127   // message above. In some locales there may be more than two lines.
128   repeated string street_address = 3;
130   // Also known as "administrative area". This is normally the state or
131   // province in most countries.
132   optional string address_1 = 4;
134   // Also known as "locality". In the US this is the city.
135   optional string address_2 = 5;
137   // A sub-classification beneath the city, e.g. an inner-city district or
138   // suburb. Also known as "dependent_locality"
139   optional string address_3 = 6;
141   // Used in certain countries. Also known as "sub_dependent_locality".
142   optional string address_4 = 7;
144   optional string postal_code = 8;
146   // Similar to the zipcode column, but used for businesses or organizations
147   // that might not be geographically contiguous. The canonical example is
148   // CEDEX in France.
149   optional string sorting_code = 9;
151   optional string country_code = 10;
152   optional string language_code = 11;
155 message AutofillWalletSpecifics {
156   enum WalletInfoType {
157     UNKNOWN = 0;
158     MASKED_CREDIT_CARD = 1;
159     POSTAL_ADDRESS = 2;
160   }
162   optional WalletInfoType type = 1;
164   // This field exists if and only if the "type" field equals to
165   // MASKED_CREDIT_CARD.
166   optional WalletMaskedCreditCard masked_card = 2;
168   // This field exists if and only if the "type" field equals to ADDRESS.
169   optional WalletPostalAddress address = 3;