aboutsummaryrefslogtreecommitdiff
path: root/google/streetview/publish/v1/streetview_publish.proto
diff options
context:
space:
mode:
Diffstat (limited to 'google/streetview/publish/v1/streetview_publish.proto')
-rw-r--r--google/streetview/publish/v1/streetview_publish.proto243
1 files changed, 243 insertions, 0 deletions
diff --git a/google/streetview/publish/v1/streetview_publish.proto b/google/streetview/publish/v1/streetview_publish.proto
new file mode 100644
index 000000000..0ea2112be
--- /dev/null
+++ b/google/streetview/publish/v1/streetview_publish.proto
@@ -0,0 +1,243 @@
+// Copyright 2019 Google LLC.
+//
+// Licensed 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 = "proto3";
+
+package google.streetview.publish.v1;
+
+import "google/api/annotations.proto";
+import "google/protobuf/empty.proto";
+import "google/streetview/publish/v1/resources.proto";
+import "google/streetview/publish/v1/rpcmessages.proto";
+
+option go_package = "google.golang.org/genproto/googleapis/streetview/publish/v1;publish";
+option java_outer_classname = "StreetViewPublish";
+option java_package = "com.google.geo.ugc.streetview.publish.v1";
+
+// Definition of the service that backs the Street View Publish API.
+
+// Publishes and connects user-contributed photos on Street View.
+service StreetViewPublishService {
+ // Creates an upload session to start uploading photo bytes. The method uses
+ // the upload URL of the returned
+ // [UploadRef][google.streetview.publish.v1.UploadRef] to upload the bytes for
+ // the [Photo][google.streetview.publish.v1.Photo].
+ //
+ // In addition to the photo requirements shown in
+ // https://support.google.com/maps/answer/7012050?hl=en&ref_topic=6275604,
+ // the photo must meet the following requirements:
+ //
+ // * Photo Sphere XMP metadata must be included in the photo medadata. See
+ // https://developers.google.com/streetview/spherical-metadata for the
+ // required fields.
+ // * The pixel size of the photo must meet the size requirements listed in
+ // https://support.google.com/maps/answer/7012050?hl=en&ref_topic=6275604, and
+ // the photo must be a full 360 horizontally.
+ //
+ // After the upload completes, the method uses
+ // [UploadRef][google.streetview.publish.v1.UploadRef] with
+ // [CreatePhoto][google.streetview.publish.v1.StreetViewPublishService.CreatePhoto]
+ // to create the [Photo][google.streetview.publish.v1.Photo] object entry.
+ rpc StartUpload(google.protobuf.Empty) returns (UploadRef) {
+ option (google.api.http) = {
+ post: "/v1/photo:startUpload"
+ body: "*"
+ };
+ }
+
+ // After the client finishes uploading the photo with the returned
+ // [UploadRef][google.streetview.publish.v1.UploadRef],
+ // [CreatePhoto][google.streetview.publish.v1.StreetViewPublishService.CreatePhoto]
+ // publishes the uploaded [Photo][google.streetview.publish.v1.Photo] to
+ // Street View on Google Maps.
+ //
+ // Currently, the only way to set heading, pitch, and roll in CreatePhoto is
+ // through the [Photo Sphere XMP
+ // metadata](https://developers.google.com/streetview/spherical-metadata) in
+ // the photo bytes. CreatePhoto ignores the `pose.heading`, `pose.pitch`,
+ // `pose.roll`, `pose.altitude`, and `pose.level` fields in Pose.
+ //
+ // This method returns the following error codes:
+ //
+ // * [google.rpc.Code.INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT] if
+ // the request is malformed or if the uploaded photo is not a 360 photo.
+ // * [google.rpc.Code.NOT_FOUND][google.rpc.Code.NOT_FOUND] if the upload
+ // reference does not exist.
+ // * [google.rpc.Code.RESOURCE_EXHAUSTED][google.rpc.Code.RESOURCE_EXHAUSTED]
+ // if the account has reached the storage limit.
+ rpc CreatePhoto(CreatePhotoRequest) returns (Photo) {
+ option (google.api.http) = {
+ post: "/v1/photo"
+ body: "photo"
+ };
+ }
+
+ // Gets the metadata of the specified
+ // [Photo][google.streetview.publish.v1.Photo].
+ //
+ // This method returns the following error codes:
+ //
+ // * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED] if
+ // the requesting user did not create the requested
+ // [Photo][google.streetview.publish.v1.Photo].
+ // * [google.rpc.Code.NOT_FOUND][google.rpc.Code.NOT_FOUND] if the requested
+ // [Photo][google.streetview.publish.v1.Photo] does not exist.
+ // * [google.rpc.Code.UNAVAILABLE][google.rpc.Code.UNAVAILABLE] if the
+ // requested [Photo][google.streetview.publish.v1.Photo] is still being
+ // indexed.
+ rpc GetPhoto(GetPhotoRequest) returns (Photo) {
+ option (google.api.http) = {
+ get: "/v1/photo/{photo_id}"
+ };
+ }
+
+ // Gets the metadata of the specified
+ // [Photo][google.streetview.publish.v1.Photo] batch.
+ //
+ // Note that if
+ // [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos]
+ // fails, either critical fields are missing or there is an authentication
+ // error. Even if
+ // [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos]
+ // succeeds, individual photos in the batch may have failures.
+ // These failures are specified in each
+ // [PhotoResponse.status][google.streetview.publish.v1.PhotoResponse.status]
+ // in
+ // [BatchGetPhotosResponse.results][google.streetview.publish.v1.BatchGetPhotosResponse.results].
+ // See
+ // [GetPhoto][google.streetview.publish.v1.StreetViewPublishService.GetPhoto]
+ // for specific failures that can occur per photo.
+ rpc BatchGetPhotos(BatchGetPhotosRequest) returns (BatchGetPhotosResponse) {
+ option (google.api.http) = {
+ get: "/v1/photos:batchGet"
+ };
+ }
+
+ // Lists all the [Photos][google.streetview.publish.v1.Photo] that belong to
+ // the user.
+ //
+ // <aside class="note"><b>Note:</b> Recently created photos that are still
+ // being indexed are not returned in the response.</aside>
+ rpc ListPhotos(ListPhotosRequest) returns (ListPhotosResponse) {
+ option (google.api.http) = {
+ get: "/v1/photos"
+ };
+ }
+
+ // Updates the metadata of a [Photo][google.streetview.publish.v1.Photo], such
+ // as pose, place association, connections, etc. Changing the pixels of a
+ // photo is not supported.
+ //
+ // Only the fields specified in the
+ // [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
+ // field are used. If `updateMask` is not present, the update applies to all
+ // fields.
+ //
+ // This method returns the following error codes:
+ //
+ // * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED] if
+ // the requesting user did not create the requested photo.
+ // * [google.rpc.Code.INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT] if
+ // the request is malformed.
+ // * [google.rpc.Code.NOT_FOUND][google.rpc.Code.NOT_FOUND] if the requested
+ // photo does not exist.
+ // * [google.rpc.Code.UNAVAILABLE][google.rpc.Code.UNAVAILABLE] if the
+ // requested [Photo][google.streetview.publish.v1.Photo] is still being
+ // indexed.
+ rpc UpdatePhoto(UpdatePhotoRequest) returns (Photo) {
+ option (google.api.http) = {
+ put: "/v1/photo/{photo.photo_id.id}"
+ body: "photo"
+ };
+ }
+
+ // Updates the metadata of [Photos][google.streetview.publish.v1.Photo], such
+ // as pose, place association, connections, etc. Changing the pixels of photos
+ // is not supported.
+ //
+ // Note that if
+ // [BatchUpdatePhotos][google.streetview.publish.v1.StreetViewPublishService.BatchUpdatePhotos]
+ // fails, either critical fields are missing or there is an authentication
+ // error. Even if
+ // [BatchUpdatePhotos][google.streetview.publish.v1.StreetViewPublishService.BatchUpdatePhotos]
+ // succeeds, individual photos in the batch may have failures.
+ // These failures are specified in each
+ // [PhotoResponse.status][google.streetview.publish.v1.PhotoResponse.status]
+ // in
+ // [BatchUpdatePhotosResponse.results][google.streetview.publish.v1.BatchUpdatePhotosResponse.results].
+ // See
+ // [UpdatePhoto][google.streetview.publish.v1.StreetViewPublishService.UpdatePhoto]
+ // for specific failures that can occur per photo.
+ //
+ // Only the fields specified in
+ // [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
+ // field are used. If `updateMask` is not present, the update applies to all
+ // fields.
+ //
+ // The number of
+ // [UpdatePhotoRequest][google.streetview.publish.v1.UpdatePhotoRequest]
+ // messages in a
+ // [BatchUpdatePhotosRequest][google.streetview.publish.v1.BatchUpdatePhotosRequest]
+ // must not exceed 20.
+ //
+ // <aside class="note"><b>Note:</b> To update
+ // [Pose.altitude][google.streetview.publish.v1.Pose.altitude],
+ // [Pose.latLngPair][google.streetview.publish.v1.Pose.lat_lng_pair] has to be
+ // filled as well. Otherwise, the request will fail.</aside>
+ rpc BatchUpdatePhotos(BatchUpdatePhotosRequest)
+ returns (BatchUpdatePhotosResponse) {
+ option (google.api.http) = {
+ post: "/v1/photos:batchUpdate"
+ body: "*"
+ };
+ }
+
+ // Deletes a [Photo][google.streetview.publish.v1.Photo] and its metadata.
+ //
+ // This method returns the following error codes:
+ //
+ // * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED] if
+ // the requesting user did not create the requested photo.
+ // * [google.rpc.Code.NOT_FOUND][google.rpc.Code.NOT_FOUND] if the photo ID
+ // does not exist.
+ rpc DeletePhoto(DeletePhotoRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1/photo/{photo_id}"
+ };
+ }
+
+ // Deletes a list of [Photos][google.streetview.publish.v1.Photo] and their
+ // metadata.
+ //
+ // Note that if
+ // [BatchDeletePhotos][google.streetview.publish.v1.StreetViewPublishService.BatchDeletePhotos]
+ // fails, either critical fields are missing or there was an authentication
+ // error. Even if
+ // [BatchDeletePhotos][google.streetview.publish.v1.StreetViewPublishService.BatchDeletePhotos]
+ // succeeds, individual photos in the batch may have failures.
+ // These failures are specified in each
+ // [PhotoResponse.status][google.streetview.publish.v1.PhotoResponse.status]
+ // in
+ // [BatchDeletePhotosResponse.results][google.streetview.publish.v1.BatchDeletePhotosResponse.status].
+ // See
+ // [DeletePhoto][google.streetview.publish.v1.StreetViewPublishService.DeletePhoto]
+ // for specific failures that can occur per photo.
+ rpc BatchDeletePhotos(BatchDeletePhotosRequest)
+ returns (BatchDeletePhotosResponse) {
+ option (google.api.http) = {
+ post: "/v1/photos:batchDelete"
+ body: "*"
+ };
+ }
+}