Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / google-proto-files / google / streetview / publish / v1 / resources.proto
1 // Copyright 2019 Google LLC.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 syntax = "proto3";
16
17 package google.streetview.publish.v1;
18
19 import "google/api/annotations.proto";
20 import "google/protobuf/timestamp.proto";
21 import "google/type/latlng.proto";
22
23 option go_package = "google.golang.org/genproto/googleapis/streetview/publish/v1;publish";
24 option java_outer_classname = "StreetViewPublishResources";
25 option java_package = "com.google.geo.ugc.streetview.publish.v1";
26
27 // Upload reference for media files.
28 message UploadRef {
29   // Required. An upload reference should be unique for each user. It follows
30   // the form:
31   // "https://streetviewpublish.googleapis.com/media/user/{account_id}/photo/{upload_reference}"
32   string upload_url = 1;
33 }
34
35 // Identifier for a [Photo][google.streetview.publish.v1.Photo].
36 message PhotoId {
37   // Required. A unique identifier for a photo.
38   string id = 1;
39 }
40
41 // Level information containing level number and its corresponding name.
42 message Level {
43   // Floor number, used for ordering. 0 indicates the ground level, 1 indicates
44   // the first level above ground level, -1 indicates the first level under
45   // ground level. Non-integer values are OK.
46   double number = 1;
47
48   // Required. A name assigned to this Level, restricted to 3 characters.
49   // Consider how the elevator buttons would be labeled for this level if there
50   // was an elevator.
51   string name = 2;
52 }
53
54 // Raw pose measurement for an entity.
55 message Pose {
56   // Latitude and longitude pair of the pose, as explained here:
57   // https://cloud.google.com/datastore/docs/reference/rest/Shared.Types/LatLng
58   // When creating a [Photo][google.streetview.publish.v1.Photo], if the
59   // latitude and longitude pair are not provided, the geolocation from the
60   // exif header is used. A latitude and longitude pair not provided in the
61   // photo or exif header causes the create photo process to fail.
62   google.type.LatLng lat_lng_pair = 1;
63
64   // Altitude of the pose in meters above WGS84 ellipsoid.
65   // NaN indicates an unmeasured quantity.
66   double altitude = 2;
67
68   // Compass heading, measured at the center of the photo in degrees clockwise
69   // from North. Value must be >=0 and <360.
70   // NaN indicates an unmeasured quantity.
71   double heading = 3;
72
73   // Pitch, measured at the center of the photo in degrees. Value must be >=-90
74   // and <= 90. A value of -90 means looking directly down, and a value of 90
75   // means looking directly up.
76   // NaN indicates an unmeasured quantity.
77   double pitch = 4;
78
79   // Roll, measured in degrees. Value must be >= 0 and <360. A value of 0
80   // means level with the horizon.
81   // NaN indicates an unmeasured quantity.
82   double roll = 5;
83
84   // Level (the floor in a building) used to configure vertical navigation.
85   Level level = 7;
86
87   // The estimated horizontal accuracy of this pose in meters with 68%
88   // confidence (one standard deviation). For example, on Android, this value is
89   // available from this method:
90   // https://developer.android.com/reference/android/location/Location#getAccuracy().
91   // Other platforms have different methods of obtaining similar accuracy
92   // estimations.
93   float accuracy_meters = 9;
94 }
95
96 // Place metadata for an entity.
97 message Place {
98   // Place identifier, as described in
99   // https://developers.google.com/places/place-id.
100   string place_id = 1;
101
102   // Output-only. The name of the place, localized to the language_code.
103   string name = 2;
104
105   // Output-only. The language_code that the name is localized with. This should
106   // be the language_code specified in the request, but may be a fallback.
107   string language_code = 3;
108 }
109
110 // A connection is the link from a source photo to a destination photo.
111 message Connection {
112   // Required. The destination of the connection from the containing photo to
113   // another photo.
114   PhotoId target = 1;
115 }
116
117 // Photo is used to store 360 photos along with photo metadata.
118 message Photo {
119   // Required when updating a photo. Output only when creating a photo.
120   // Identifier for the photo, which is unique among all photos in
121   // Google.
122   PhotoId photo_id = 1;
123
124   // Required when creating a photo. Input only. The resource URL where the
125   // photo bytes are uploaded to.
126   UploadRef upload_reference = 2;
127
128   // Output only. The download URL for the photo bytes. This field is set only
129   // when
130   // [GetPhotoRequest.view][google.streetview.publish.v1.GetPhotoRequest.view]
131   // is set to
132   // [PhotoView.INCLUDE_DOWNLOAD_URL][google.streetview.publish.v1.PhotoView.INCLUDE_DOWNLOAD_URL].
133   string download_url = 3;
134
135   // Output only. The thumbnail URL for showing a preview of the given photo.
136   string thumbnail_url = 9;
137
138   // Output only. The share link for the photo.
139   string share_link = 11;
140
141   // Pose of the photo.
142   Pose pose = 4;
143
144   // Connections to other photos. A connection represents the link from this
145   // photo to another photo.
146   repeated Connection connections = 5;
147
148   // Absolute time when the photo was captured.
149   // When the photo has no exif timestamp, this is used to set a timestamp in
150   // the photo metadata.
151   google.protobuf.Timestamp capture_time = 6;
152
153   // Places where this photo belongs.
154   repeated Place places = 7;
155
156   // Output only. View count of the photo.
157   int64 view_count = 10;
158
159   // Status of rights transfer.
160   enum TransferStatus {
161     // The status of this transfer is unspecified.
162     TRANSFER_STATUS_UNKNOWN = 0;
163
164     // This photo has never been in a transfer.
165     NEVER_TRANSFERRED = 1;
166
167     // This photo transfer has been initiated, but the receiver has not yet
168     // responded.
169     PENDING = 2;
170
171     // The photo transfer has been completed, and this photo has been
172     // transferred to the recipient.
173     COMPLETED = 3;
174
175     // The recipient rejected this photo transfer.
176     REJECTED = 4;
177
178     // The photo transfer expired before the recipient took any action.
179     EXPIRED = 5;
180
181     // The sender cancelled this photo transfer.
182     CANCELLED = 6;
183
184     // The recipient owns this photo due to a rights transfer.
185     RECEIVED_VIA_TRANSFER = 7;
186   }
187
188   // Output only. Status of rights transfer on this photo.
189   TransferStatus transfer_status = 12;
190
191   // Publication status of the photo in Google Maps.
192   enum MapsPublishStatus {
193     // The status of the photo is unknown.
194     UNSPECIFIED_MAPS_PUBLISH_STATUS = 0;
195
196     // The photo is published to the public through Google Maps.
197     PUBLISHED = 1;
198
199     // The photo has been rejected for an unknown reason.
200     REJECTED_UNKNOWN = 2;
201   }
202
203   // Output only. Status in Google Maps, whether this photo was published or
204   // rejected.
205   MapsPublishStatus maps_publish_status = 13;
206 }