| // See README.md for information and build instructions. | 
 | // | 
 | // Note: START and END tags are used in comments to define sections used in | 
 | // tutorials.  They are not part of the syntax for Protocol Buffers. | 
 | // | 
 | // To get an in-depth walkthrough of this file and the related examples, see: | 
 | // https://developers.google.com/protocol-buffers/docs/tutorials | 
 |  | 
 | // [START declaration] | 
 | syntax = "proto3"; | 
 | package tutorial; | 
 |  | 
 | import "google/protobuf/timestamp.proto"; | 
 | // [END declaration] | 
 |  | 
 | // [START java_declaration] | 
 | option java_multiple_files = true; | 
 | option java_package = "com.example.tutorial.protos"; | 
 | option java_outer_classname = "AddressBookProtos"; | 
 | // [END java_declaration] | 
 |  | 
 | // [START csharp_declaration] | 
 | option csharp_namespace = "Google.Protobuf.Examples.AddressBook"; | 
 | // [END csharp_declaration] | 
 |  | 
 | // [START go_declaration] | 
 | option go_package = "github.com/protocolbuffers/protobuf/examples/go/tutorialpb"; | 
 | // [END go_declaration] | 
 |  | 
 | // [START messages] | 
 | message Person { | 
 |   string name = 1; | 
 |   int32 id = 2;  // Unique ID number for this person. | 
 |   string email = 3; | 
 |  | 
 |   enum PhoneType { | 
 |     MOBILE = 0; | 
 |     HOME = 1; | 
 |     WORK = 2; | 
 |   } | 
 |  | 
 |   message PhoneNumber { | 
 |     string number = 1; | 
 |     PhoneType type = 2; | 
 |   } | 
 |  | 
 |   repeated PhoneNumber phones = 4; | 
 |  | 
 |   google.protobuf.Timestamp last_updated = 5; | 
 | } | 
 |  | 
 | // Our address book file is just one of these. | 
 | message AddressBook { | 
 |   repeated Person people = 1; | 
 | } | 
 | // [END messages] |