blob: a28f52c65f84408c6971bf72694fa3c66836e17f [file] [log] [blame]
{
"ownerName": "Google",
"resources": {
"photo": {
"methods": {
"delete": {
"path": "v1/photo/{photoId}",
"id": "streetviewpublish.photo.delete",
"description": "Deletes a Photo and its metadata.\n\nThis method returns the following error codes:\n\n* google.rpc.Code.PERMISSION_DENIED if the requesting user did not\ncreate the requested photo.\n* google.rpc.Code.NOT_FOUND if the photo ID does not exist.",
"response": {
"$ref": "Empty"
},
"parameterOrder": [
"photoId"
],
"httpMethod": "DELETE",
"parameters": {
"photoId": {
"description": "Required. ID of the Photo.",
"required": true,
"type": "string",
"location": "path"
}
},
"scopes": [
"https://www.googleapis.com/auth/streetviewpublish"
],
"flatPath": "v1/photo/{photoId}"
},
"get": {
"scopes": [
"https://www.googleapis.com/auth/streetviewpublish"
],
"parameters": {
"photoId": {
"required": true,
"type": "string",
"location": "path",
"description": "Required. ID of the Photo."
},
"view": {
"location": "query",
"enum": [
"BASIC",
"INCLUDE_DOWNLOAD_URL"
],
"description": "Specifies if a download URL for the photo bytes should be returned in the\nPhoto response.",
"type": "string"
}
},
"flatPath": "v1/photo/{photoId}",
"path": "v1/photo/{photoId}",
"id": "streetviewpublish.photo.get",
"description": "Gets the metadata of the specified\nPhoto.\n\nThis method returns the following error codes:\n\n* google.rpc.Code.PERMISSION_DENIED if the requesting user did not\ncreate the requested Photo.\n* google.rpc.Code.NOT_FOUND if the requested\nPhoto does not exist.",
"response": {
"$ref": "Photo"
},
"parameterOrder": [
"photoId"
],
"httpMethod": "GET"
},
"update": {
"request": {
"$ref": "Photo"
},
"description": "Updates the metadata of a Photo, such\nas pose, place association, connections, etc. Changing the pixels of a\nphoto is not supported.\n\nOnly the fields specified in the\nupdateMask\nfield are used. If `updateMask` is not present, the update applies to all\nfields.\n\n\u003caside class=\"note\"\u003e\u003cb\u003eNote:\u003c/b\u003e To update\nPose.altitude,\nPose.latLngPair has to be\nfilled as well. Otherwise, the request will fail.\u003c/aside\u003e\n\nThis method returns the following error codes:\n\n* google.rpc.Code.PERMISSION_DENIED if the requesting user did not\ncreate the requested photo.\n* google.rpc.Code.INVALID_ARGUMENT if the request is malformed.\n* google.rpc.Code.NOT_FOUND if the requested photo does not exist.",
"response": {
"$ref": "Photo"
},
"parameterOrder": [
"id"
],
"httpMethod": "PUT",
"parameters": {
"id": {
"description": "Required. A unique identifier for a photo.",
"required": true,
"type": "string",
"location": "path"
},
"updateMask": {
"description": "Mask that identifies fields on the photo metadata to update.\nIf not present, the old Photo\nmetadata will be entirely replaced with the\nnew Photo metadata in this request.\nThe update fails if invalid fields are specified. Multiple fields can be\nspecified in a comma-delimited list.\n\nThe following fields are valid:\n\n* `pose.heading`\n* `pose.latLngPair`\n* `pose.pitch`\n* `pose.roll`\n* `pose.level`\n* `pose.altitude`\n* `connections`\n* `places`\n\n\n\u003caside class=\"note\"\u003e\u003cb\u003eNote:\u003c/b\u003e Repeated fields in\nupdateMask\nmean the entire set of repeated values will be replaced with the new\ncontents. For example, if\nupdateMask\ncontains `connections` and `UpdatePhotoRequest.photo.connections` is empty,\nall connections will be removed.\u003c/aside\u003e",
"format": "google-fieldmask",
"type": "string",
"location": "query"
}
},
"scopes": [
"https://www.googleapis.com/auth/streetviewpublish"
],
"flatPath": "v1/photo/{id}",
"path": "v1/photo/{id}",
"id": "streetviewpublish.photo.update"
},
"create": {
"description": "After the client finishes uploading the photo with the returned\nUploadRef,\nCreatePhoto\npublishes the uploaded Photo to\nStreet View on Google Maps.\n\nCurrently, the only way to set heading, pitch, and roll in CreatePhoto is\nthrough the [Photo Sphere XMP\nmetadata](https://developers.google.com/streetview/spherical-metadata) in\nthe photo bytes. The `pose.heading`, `pose.pitch`, `pose.roll`,\n`pose.altitude`, and `pose.level` fields in Pose are ignored for\nCreatePhoto.\n\nThis method returns the following error codes:\n\n* google.rpc.Code.INVALID_ARGUMENT if the request is malformed.\n* google.rpc.Code.NOT_FOUND if the upload reference does not exist.\n* google.rpc.Code.RESOURCE_EXHAUSTED if the account has reached the\nstorage limit.",
"request": {
"$ref": "Photo"
},
"httpMethod": "POST",
"parameterOrder": [],
"response": {
"$ref": "Photo"
},
"scopes": [
"https://www.googleapis.com/auth/streetviewpublish"
],
"parameters": {},
"flatPath": "v1/photo",
"id": "streetviewpublish.photo.create",
"path": "v1/photo"
},
"startUpload": {
"description": "Creates an upload session to start uploading photo bytes. The upload URL of\nthe returned UploadRef is used to\nupload the bytes for the Photo.\n\nIn addition to the photo requirements shown in\nhttps://support.google.com/maps/answer/7012050?hl=en&ref_topic=6275604,\nthe photo must also meet the following requirements:\n\n* Photo Sphere XMP metadata must be included in the photo medadata. See\nhttps://developers.google.com/streetview/spherical-metadata for the\nrequired fields.\n* The pixel size of the photo must meet the size requirements listed in\nhttps://support.google.com/maps/answer/7012050?hl=en&ref_topic=6275604, and\nthe photo must be a full 360 horizontally.\n\nAfter the upload is complete, the\nUploadRef is used with\nCreatePhoto\nto create the Photo object entry.",
"request": {
"$ref": "Empty"
},
"response": {
"$ref": "UploadRef"
},
"parameterOrder": [],
"httpMethod": "POST",
"scopes": [
"https://www.googleapis.com/auth/streetviewpublish"
],
"parameters": {},
"flatPath": "v1/photo:startUpload",
"path": "v1/photo:startUpload",
"id": "streetviewpublish.photo.startUpload"
}
}
},
"photos": {
"methods": {
"batchUpdate": {
"httpMethod": "POST",
"parameterOrder": [],
"response": {
"$ref": "BatchUpdatePhotosResponse"
},
"parameters": {},
"scopes": [
"https://www.googleapis.com/auth/streetviewpublish"
],
"flatPath": "v1/photos:batchUpdate",
"id": "streetviewpublish.photos.batchUpdate",
"path": "v1/photos:batchUpdate",
"request": {
"$ref": "BatchUpdatePhotosRequest"
},
"description": "Updates the metadata of Photos, such\nas pose, place association, connections, etc. Changing the pixels of photos\nis not supported.\n\nNote that if\nBatchUpdatePhotos\nfails, either critical fields are missing or there was an authentication\nerror. Even if\nBatchUpdatePhotos\nsucceeds, there may have been failures for single photos in the batch.\nThese failures will be specified in each\nPhotoResponse.status\nin\nBatchUpdatePhotosResponse.results.\nSee\nUpdatePhoto\nfor specific failures that can occur per photo.\n\nOnly the fields specified in\nupdateMask\nfield are used. If `updateMask` is not present, the update applies to all\nfields.\n\n\u003caside class=\"note\"\u003e\u003cb\u003eNote:\u003c/b\u003e To update\nPose.altitude,\nPose.latLngPair has to be\nfilled as well. Otherwise, the request will fail.\u003c/aside\u003e"
},
"batchDelete": {
"response": {
"$ref": "BatchDeletePhotosResponse"
},
"parameterOrder": [],
"httpMethod": "POST",
"scopes": [
"https://www.googleapis.com/auth/streetviewpublish"
],
"parameters": {},
"flatPath": "v1/photos:batchDelete",
"path": "v1/photos:batchDelete",
"id": "streetviewpublish.photos.batchDelete",
"description": "Deletes a list of Photos and their\nmetadata.\n\nNote that if\nBatchDeletePhotos\nfails, either critical fields are missing or there was an authentication\nerror. Even if\nBatchDeletePhotos\nsucceeds, there may have been failures for single photos in the batch.\nThese failures will be specified in each\nPhotoResponse.status\nin\nBatchDeletePhotosResponse.results.\nSee\nDeletePhoto\nfor specific failures that can occur per photo.",
"request": {
"$ref": "BatchDeletePhotosRequest"
}
},
"batchGet": {
"response": {
"$ref": "BatchGetPhotosResponse"
},
"parameterOrder": [],
"httpMethod": "GET",
"scopes": [
"https://www.googleapis.com/auth/streetviewpublish"
],
"parameters": {
"view": {
"enum": [
"BASIC",
"INCLUDE_DOWNLOAD_URL"
],
"description": "Specifies if a download URL for the photo bytes should be returned in the\nPhoto response.",
"type": "string",
"location": "query"
},
"photoIds": {
"description": "Required. IDs of the Photos. For HTTP\nGET requests, the URL query parameter should be\n`photoIds=\u003cid1\u003e&photoIds=\u003cid2\u003e&...`.",
"type": "string",
"repeated": true,
"location": "query"
}
},
"flatPath": "v1/photos:batchGet",
"path": "v1/photos:batchGet",
"id": "streetviewpublish.photos.batchGet",
"description": "Gets the metadata of the specified\nPhoto batch.\n\nNote that if\nBatchGetPhotos\nfails, either critical fields are missing or there was an authentication\nerror. Even if\nBatchGetPhotos\nsucceeds, there may have been failures for single photos in the batch.\nThese failures will be specified in each\nPhotoResponse.status\nin\nBatchGetPhotosResponse.results.\nSee\nGetPhoto\nfor specific failures that can occur per photo."
},
"list": {
"httpMethod": "GET",
"parameterOrder": [],
"response": {
"$ref": "ListPhotosResponse"
},
"parameters": {
"pageSize": {
"description": "The maximum number of photos to return.\n`pageSize` must be non-negative. If `pageSize` is zero or is not provided,\nthe default page size of 100 will be used.\nThe number of photos returned in the response may be less than `pageSize`\nif the number of photos that belong to the user is less than `pageSize`.",
"format": "int32",
"type": "integer",
"location": "query"
},
"view": {
"location": "query",
"enum": [
"BASIC",
"INCLUDE_DOWNLOAD_URL"
],
"description": "Specifies if a download URL for the photos bytes should be returned in the\nPhotos response.",
"type": "string"
},
"filter": {
"location": "query",
"description": "The filter expression. For example: `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`.\n\nThe only filter supported at the moment is `placeId`.",
"type": "string"
},
"pageToken": {
"description": "The\nnextPageToken\nvalue returned from a previous\nListPhotos\nrequest, if any.",
"type": "string",
"location": "query"
}
},
"scopes": [
"https://www.googleapis.com/auth/streetviewpublish"
],
"flatPath": "v1/photos",
"id": "streetviewpublish.photos.list",
"path": "v1/photos",
"description": "Lists all the Photos that belong to\nthe user."
}
}
}
},
"parameters": {
"upload_protocol": {
"type": "string",
"location": "query",
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\")."
},
"prettyPrint": {
"location": "query",
"description": "Returns response with indentations and line breaks.",
"type": "boolean",
"default": "true"
},
"uploadType": {
"location": "query",
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"type": "string"
},
"fields": {
"location": "query",
"description": "Selector specifying which fields to include in a partial response.",
"type": "string"
},
"$.xgafv": {
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"enum": [
"1",
"2"
],
"description": "V1 error format.",
"type": "string"
},
"callback": {
"location": "query",
"description": "JSONP",
"type": "string"
},
"alt": {
"description": "Data format for response.",
"default": "json",
"enum": [
"json",
"media",
"proto"
],
"type": "string",
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query"
},
"access_token": {
"location": "query",
"description": "OAuth access token.",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"type": "string",
"location": "query"
},
"quotaUser": {
"location": "query",
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"type": "string"
},
"pp": {
"type": "boolean",
"default": "true",
"location": "query",
"description": "Pretty-print response."
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"type": "string",
"location": "query"
},
"bearer_token": {
"location": "query",
"description": "OAuth bearer token.",
"type": "string"
}
},
"version": "v1",
"baseUrl": "https://streetviewpublish.googleapis.com/",
"kind": "discovery#restDescription",
"description": "Publishes 360 photos to Google Maps, along with position, orientation, and connectivity metadata. Apps can offer an interface for positioning, connecting, and uploading user-generated Street View images.\n",
"servicePath": "",
"basePath": "",
"id": "streetviewpublish:v1",
"documentationLink": "https://developers.google.com/streetview/publish/",
"revision": "20171012",
"discoveryVersion": "v1",
"version_module": true,
"schemas": {
"BatchGetPhotosResponse": {
"properties": {
"results": {
"description": "List of results for each individual\nPhoto requested, in the same order as\nthe requests in\nBatchGetPhotos.",
"type": "array",
"items": {
"$ref": "PhotoResponse"
}
}
},
"id": "BatchGetPhotosResponse",
"description": "Response to batch get of Photos.",
"type": "object"
},
"Place": {
"description": "Place metadata for an entity.",
"type": "object",
"properties": {
"placeId": {
"type": "string",
"description": "Place identifier, as described in\nhttps://developers.google.com/places/place-id."
}
},
"id": "Place"
},
"UploadRef": {
"id": "UploadRef",
"description": "Upload reference for media files.",
"type": "object",
"properties": {
"uploadUrl": {
"description": "Required. An upload reference should be unique for each user. It follows\nthe form:\n\"https://streetviewpublish.googleapis.com/media/user/{account_id}/photo/{upload_reference}\"",
"type": "string"
}
}
},
"LatLng": {
"description": "An object representing a latitude/longitude pair. This is expressed as a pair\nof doubles representing degrees latitude and degrees longitude. Unless\nspecified otherwise, this must conform to the\n\u003ca href=\"http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf\"\u003eWGS84\nstandard\u003c/a\u003e. Values must be within normalized ranges.\n\nExample of normalization code in Python:\n\n def NormalizeLongitude(longitude):\n \"\"\"Wraps decimal degrees longitude to [-180.0, 180.0].\"\"\"\n q, r = divmod(longitude, 360.0)\n if r \u003e 180.0 or (r == 180.0 and q \u003c= -1.0):\n return r - 360.0\n return r\n\n def NormalizeLatLng(latitude, longitude):\n \"\"\"Wraps decimal degrees latitude and longitude to\n [-90.0, 90.0] and [-180.0, 180.0], respectively.\"\"\"\n r = latitude % 360.0\n if r \u003c= 90.0:\n return r, NormalizeLongitude(longitude)\n elif r \u003e= 270.0:\n return r - 360, NormalizeLongitude(longitude)\n else:\n return 180 - r, NormalizeLongitude(longitude + 180.0)\n\n assert 180.0 == NormalizeLongitude(180.0)\n assert -180.0 == NormalizeLongitude(-180.0)\n assert -179.0 == NormalizeLongitude(181.0)\n assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)\n assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)\n assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)\n assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)\n assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)\n assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)\n assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)\n assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)",
"type": "object",
"properties": {
"latitude": {
"description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
"format": "double",
"type": "number"
},
"longitude": {
"description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
"format": "double",
"type": "number"
}
},
"id": "LatLng"
},
"BatchDeletePhotosRequest": {
"type": "object",
"properties": {
"photoIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Required. IDs of the Photos. For HTTP\nGET requests, the URL query parameter should be\n`photoIds=\u003cid1\u003e&photoIds=\u003cid2\u003e&...`."
}
},
"id": "BatchDeletePhotosRequest",
"description": "Request to delete multiple Photos."
},
"UpdatePhotoRequest": {
"type": "object",
"properties": {
"updateMask": {
"description": "Mask that identifies fields on the photo metadata to update.\nIf not present, the old Photo\nmetadata will be entirely replaced with the\nnew Photo metadata in this request.\nThe update fails if invalid fields are specified. Multiple fields can be\nspecified in a comma-delimited list.\n\nThe following fields are valid:\n\n* `pose.heading`\n* `pose.latLngPair`\n* `pose.pitch`\n* `pose.roll`\n* `pose.level`\n* `pose.altitude`\n* `connections`\n* `places`\n\n\n\u003caside class=\"note\"\u003e\u003cb\u003eNote:\u003c/b\u003e Repeated fields in\nupdateMask\nmean the entire set of repeated values will be replaced with the new\ncontents. For example, if\nupdateMask\ncontains `connections` and `UpdatePhotoRequest.photo.connections` is empty,\nall connections will be removed.\u003c/aside\u003e",
"format": "google-fieldmask",
"type": "string"
},
"photo": {
"$ref": "Photo",
"description": "Required. Photo object containing the\nnew metadata."
}
},
"id": "UpdatePhotoRequest",
"description": "Request to update the metadata of a\nPhoto. Updating the pixels of a photo\nis not supported."
},
"PhotoId": {
"description": "Identifier for a Photo.",
"type": "object",
"properties": {
"id": {
"description": "Required. A unique identifier for a photo.",
"type": "string"
}
},
"id": "PhotoId"
},
"Pose": {
"description": "Raw pose measurement for an entity.",
"type": "object",
"properties": {
"level": {
"description": "Level (the floor in a building) used to configure vertical navigation.",
"$ref": "Level"
},
"heading": {
"description": "Compass heading, measured at the center of the photo in degrees clockwise\nfrom North. Value must be \u003e=0 and \u003c360.\nNaN indicates an unmeasured quantity.",
"format": "double",
"type": "number"
},
"altitude": {
"description": "Altitude of the pose in meters above ground level (as defined by WGS84).\nNaN indicates an unmeasured quantity.",
"format": "double",
"type": "number"
},
"pitch": {
"description": "Pitch, measured at the center of the photo in degrees. Value must be \u003e=-90\nand \u003c= 90. A value of -90 means looking directly down, and a value of 90\nmeans looking directly up.\nNaN indicates an unmeasured quantity.",
"format": "double",
"type": "number"
},
"latLngPair": {
"$ref": "LatLng",
"description": "Latitude and longitude pair of the pose, as explained here:\nhttps://cloud.google.com/datastore/docs/reference/rest/Shared.Types/LatLng\nWhen creating a Photo, if the\nlatitude and longitude pair are not provided here, the geolocation from the\nexif header will be used. If the latitude and longitude pair is not\nprovided and cannot be found in the exif header, the create photo process\nwill fail."
},
"roll": {
"description": "Roll, measured in degrees. Value must be \u003e= 0 and \u003c360. A value of 0\nmeans level with the horizon.\nNaN indicates an unmeasured quantity.",
"format": "double",
"type": "number"
}
},
"id": "Pose"
},
"BatchUpdatePhotosRequest": {
"type": "object",
"properties": {
"updatePhotoRequests": {
"description": "Required. List of\nUpdatePhotoRequests.",
"type": "array",
"items": {
"$ref": "UpdatePhotoRequest"
}
}
},
"id": "BatchUpdatePhotosRequest",
"description": "Request to update the metadata of photos.\nUpdating the pixels of photos is not supported."
},
"ListPhotosResponse": {
"description": "Response to list all photos that belong to a user.",
"type": "object",
"properties": {
"photos": {
"description": "List of photos. The maximum number of items returned is based on the\npageSize field\nin the request.",
"type": "array",
"items": {
"$ref": "Photo"
}
},
"nextPageToken": {
"type": "string",
"description": "Token to retrieve the next page of results, or empty if there are no more\nresults in the list."
}
},
"id": "ListPhotosResponse"
},
"Photo": {
"description": "Photo is used to store 360 photos along with photo metadata.",
"type": "object",
"properties": {
"viewCount": {
"description": "Output only. View count of the photo.",
"format": "int64",
"type": "string"
},
"downloadUrl": {
"description": "Output only. The download URL for the photo bytes. This field is set only\nwhen\nGetPhotoRequest.view\nis set to\nPhotoView.INCLUDE_DOWNLOAD_URL.",
"type": "string"
},
"places": {
"description": "Places where this photo belongs.",
"type": "array",
"items": {
"$ref": "Place"
}
},
"connections": {
"type": "array",
"items": {
"$ref": "Connection"
},
"description": "Connections to other photos. A connection represents the link from this\nphoto to another photo."
},
"uploadReference": {
"description": "Required when creating a photo. Input only. The resource URL where the\nphoto bytes are uploaded to.",
"$ref": "UploadRef"
},
"photoId": {
"description": "Required when updating a photo. Output only when creating a photo.\nIdentifier for the photo, which is unique among all photos in\nGoogle.",
"$ref": "PhotoId"
},
"pose": {
"$ref": "Pose",
"description": "Pose of the photo."
},
"shareLink": {
"description": "Output only. The share link for the photo.",
"type": "string"
},
"thumbnailUrl": {
"type": "string",
"description": "Output only. The thumbnail URL for showing a preview of the given photo."
},
"captureTime": {
"description": "Absolute time when the photo was captured.\nWhen the photo has no exif timestamp, this is used to set a timestamp in\nthe photo metadata.",
"format": "google-datetime",
"type": "string"
}
},
"id": "Photo"
},
"Operation": {
"description": "This resource represents a long-running operation that is the result of a\nnetwork API call.",
"type": "object",
"properties": {
"name": {
"description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.",
"type": "string"
},
"error": {
"description": "The error result of the operation in case of failure or cancellation.",
"$ref": "Status"
},
"metadata": {
"description": "Service-specific metadata associated with the operation. It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.",
"type": "object",
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
}
},
"done": {
"description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.",
"type": "boolean"
},
"response": {
"description": "The normal response of the operation in case of success. If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.",
"type": "object",
"additionalProperties": {
"type": "any",
"description": "Properties of the object. Contains field @type with type URL."
}
}
},
"id": "Operation"
},
"PhotoResponse": {
"description": "Response payload for a single\nPhoto\nin batch operations including\nBatchGetPhotos\nand\nBatchUpdatePhotos.",
"type": "object",
"properties": {
"status": {
"$ref": "Status",
"description": "The status for the operation to get or update a single photo in the batch\nrequest."
},
"photo": {
"$ref": "Photo",
"description": "The Photo resource, if the request\nwas successful."
}
},
"id": "PhotoResponse"
},
"Connection": {
"description": "A connection is the link from a source photo to a destination photo.",
"type": "object",
"properties": {
"target": {
"$ref": "PhotoId",
"description": "Required. The destination of the connection from the containing photo to\nanother photo."
}
},
"id": "Connection"
},
"BatchUpdatePhotosResponse": {
"description": "Response to batch update of metadata of one or more\nPhotos.",
"type": "object",
"properties": {
"results": {
"description": "List of results for each individual\nPhoto updated, in the same order as\nthe request.",
"type": "array",
"items": {
"$ref": "PhotoResponse"
}
}
},
"id": "BatchUpdatePhotosResponse"
},
"BatchDeletePhotosResponse": {
"description": "Response to batch delete of one or more\nPhotos.",
"type": "object",
"properties": {
"status": {
"type": "array",
"items": {
"$ref": "Status"
},
"description": "The status for the operation to delete a single\nPhoto in the batch request."
}
},
"id": "BatchDeletePhotosResponse"
},
"Status": {
"description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.",
"type": "object",
"properties": {
"message": {
"description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.",
"type": "string"
},
"details": {
"description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.",
"type": "array",
"items": {
"type": "object",
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
}
}
},
"code": {
"description": "The status code, which should be an enum value of google.rpc.Code.",
"format": "int32",
"type": "integer"
}
},
"id": "Status"
},
"Empty": {
"description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.",
"type": "object",
"properties": {},
"id": "Empty"
},
"Level": {
"id": "Level",
"description": "Level information containing level number and its corresponding name.",
"type": "object",
"properties": {
"number": {
"description": "Floor number, used for ordering. 0 indicates the ground level, 1 indicates\nthe first level above ground level, -1 indicates the first level under\nground level. Non-integer values are OK.",
"format": "double",
"type": "number"
},
"name": {
"description": "Required. A name assigned to this Level, restricted to 3 characters.\nConsider how the elevator buttons would be labeled for this level if there\nwas an elevator.",
"type": "string"
}
}
}
},
"icons": {
"x32": "http://www.google.com/images/icons/product/search-32.gif",
"x16": "http://www.google.com/images/icons/product/search-16.gif"
},
"protocol": "rest",
"canonicalName": "Street View Publish",
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/streetviewpublish": {
"description": "Publish and manage your 360 photos on Google Street View"
}
}
}
},
"rootUrl": "https://streetviewpublish.googleapis.com/",
"ownerDomain": "google.com",
"name": "streetviewpublish",
"batchPath": "batch",
"fullyEncodeReservedExpansion": true,
"title": "Street View Publish API"
}