// Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. syntax="proto2"; package addressbook; message Person { required string name = 1; required int32 id = 2; // Unique ID number for this person. optional string email = 3; enum PhoneType { MOBILE = 0; HOME = 1; WORK = 2; } message PhoneNumber { required string number = 1; optional PhoneType type = 2 [default = HOME]; } repeated PhoneNumber phone = 4; optional int64 data = 5; optional sint32 data32 = 6; optional sint64 data64 = 7; required double datadouble = 8; optional float datafloat = 9; optional uint32 datau32 = 10; optional uint64 datau64 = 11; optional bool databool = 12; optional bytes databyte = 13; optional fixed32 datafix32 = 14; optional fixed64 datafix64 = 15; optional sfixed32 datasfix32 = 16; optional sfixed64 datasfix64 = 17; optional float datafloat_scientific = 18; optional double datadouble_scientific = 19; extensions 100 to 200; } extend Person { optional string hobby = 100; } message AddressBook { repeated Person person = 1; }